:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#243c35;background:#f7f9f7;font-synthesis:none;font-size:16px;line-height:1.5;--green:#18594c;--muted:#68756e;--line:#dde4de}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,summary,select{touch-action:manipulation}button{cursor:pointer;border:0;border-radius:9px;padding:10px 17px;font-weight:600;min-height:44px}button:disabled{opacity:.55;cursor:wait}a{color:var(--green);text-underline-offset:3px}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid #bd822c;outline-offset:4px}.top{max-width:1120px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:25px 30px}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:#243c35;font-weight:700;letter-spacing:-.3px}.brand span{font-weight:400;font-size:12px;color:var(--muted);margin-left:5px}.quiet{color:#40564b;background:transparent}.quiet:hover{background:#ebf0eb}.primary{background:var(--green);color:white;padding:12px 23px}.primary:hover{background:#10483d}.secondary{background:#eef3ef;color:var(--green);border:1px solid #d4dfd6}.secondary:hover{background:#e2eae3}main{max-width:820px;margin:35px auto 60px;padding:0 24px;min-height:calc(100vh - 255px)}.intro{text-align:center;margin-bottom:32px}.intro h1{font-size:36px;font-weight:650;line-height:1.2;letter-spacing:-1.4px;margin:0 0 12px}.intro p{margin:0;color:var(--muted);font-size:17px}.workspace{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 10px 32px #243c3504}.dropzone{display:flex;align-items:center;flex-direction:column;justify-content:center;border:1.5px dashed #b8cbbb;border-radius:12px;min-height:300px;background:#fcfdfb;transition:background .15s,border-color .15s}.dropzone.dragging{background:#e5f1e8;border-color:var(--green)}.uploadIcon{width:52px;height:52px;fill:none;stroke:#50795f;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:20px}.dropzone p{font-size:14px;color:#66776c;margin:17px 12px 3px;text-align:center}.dropzone small{font-size:12px;color:#7b877f}.privacyNote{display:flex;gap:7px;align-items:center;justify-content:center;color:#617267;font-size:13px;margin:18px 0 29px}.privacyNote svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.2}.help{max-width:580px;margin:0 auto;color:#64736a;font-size:14px}.help summary{text-align:center;cursor:pointer;padding:8px}.help p{margin:14px 0}.working{text-align:center;min-height:300px;display:flex;flex-direction:column;justify-content:center;align-items:center}.spinner{width:29px;height:29px;border:3px solid #dce8df;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.working p{margin:23px 0 12px}.resultTop{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.resultTop h2{font-size:23px;margin:0;letter-spacing:-.6px}.resultGrid{display:grid;grid-template-columns:190px minmax(0,1fr);gap:25px}.preview{display:flex;align-items:center;flex-direction:column;gap:10px}.preview img{max-width:100%;max-height:200px;object-fit:contain;border:1px solid #edf0eb;border-radius:7px;background:#fff;padding:4px}.preview span{font-size:12px;color:var(--muted)}.resultContent p{margin:0 0 14px;font-size:14px;color:#53665a}.resultContent label{display:block;font-size:12px;font-weight:600;margin-bottom:5px}textarea{width:100%;resize:vertical;min-height:110px;max-height:400px;border:1px solid #d4ded5;border-radius:8px;padding:11px;font-size:14px;line-height:1.5;background:#fcfdfb;color:#243c35;overflow-wrap:anywhere}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.actions button{font-size:14px;padding:9px 14px}#resultDetails{border-top:1px solid var(--line);margin-top:24px;padding-top:15px;font-size:13px}summary{cursor:pointer;padding:6px 0}dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.error{color:#943c27;font-size:14px;margin:15px 0 0}footer{border-top:1px solid #e2e7e0;max-width:1060px;padding:23px 30px;margin:auto;display:flex;justify-content:space-between;font-size:12px;color:#738075}footer nav{display:flex;gap:20px}footer a{color:#627365;text-decoration:none}footer a:hover{text-decoration:underline}dialog{border:1px solid var(--line);border-radius:16px;max-width:460px;width:calc(100vw - 32px);padding:24px;color:inherit;box-shadow:0 20px 90px #1c342629}dialog::backdrop{background:#15251b66}.dialogTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialogTop h2{margin:0;font-size:23px}.settingGroup{margin-bottom:20px}h3{font-size:14px;margin:0 0 13px}.check{display:flex;gap:10px;align-items:flex-start;margin:0 0 20px}.check input{margin-top:6px;accent-color:var(--green);width:17px;height:17px;flex-shrink:0}.check small{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:4px}dialog label{font-size:14px}select{display:block;width:100%;padding:10px;margin-top:7px;border:1px solid #d2dcd3;border-radius:7px;background:#fff;color:inherit}dialog details{border-top:1px solid var(--line);padding-top:12px;font-size:14px}.muted{font-size:12px;color:var(--muted);margin:22px 0 0}.skip{position:absolute;left:12px;top:-100px;background:white;padding:10px;z-index:4}.skip:focus{top:10px}.prose{max-width:680px;margin:30px auto 70px;padding:0 24px}.prose h1{font-size:30px;letter-spacing:-1px}.prose h2{font-size:20px;margin-top:30px}.prose p,.prose li{color:#52675a}.prose li{margin:8px 0}.prose .back{display:inline-block;margin-bottom:15px}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none;border-style:dotted}}@media(max-width:600px){.top{padding:18px 18px}.brand span{display:none}main{margin-top:28px;padding:0 16px}.intro h1{font-size:30px}.intro p{font-size:15px}.workspace{padding:16px;border-radius:14px}.dropzone{min-height:290px}.resultGrid{grid-template-columns:1fr;gap:18px}.preview img{max-height:145px;max-width:165px}.resultTop{margin-bottom:18px}.resultTop h2{font-size:21px}.actions{gap:6px}footer{padding:20px 18px;gap:15px;flex-wrap:wrap}footer nav{gap:15px}dl{grid-template-columns:95px minmax(0,1fr)}}

.buttonLink{display:inline-flex;align-items:center;border-radius:9px;min-height:44px;font-weight:600;text-decoration:none;font-size:14px;padding:9px 14px;cursor:pointer}

/* Tool layout: one title, input or output, and controls. */
.top{max-width:820px;padding:28px 24px 12px}.top h1{margin:0;font-size:23px;line-height:1.3;letter-spacing:-.6px;font-weight:650}main{margin:12px auto 40px;min-height:0}.dropzone,.working{min-height:220px}.resultTop{justify-content:flex-end;margin-bottom:16px}.settingsLinks{display:flex;gap:20px;margin-top:24px;padding-top:16px;border-top:1px solid var(--line);font-size:13px}.settingsLinks a{text-decoration:none}.settingsLinks a:hover{text-decoration:underline}@media(max-width:600px){.top{padding:20px 16px 12px}main{margin-top:8px}.dropzone,.working{min-height:200px}}
/* Advanced remains one workspace; optional text/matrix details collapse in place. */
.editorStatus{display:flex;align-items:center;gap:12px;font-size:13px;color:#846024;min-height:35px}.editorStatus #editBusy{margin-left:auto;color:#68756e}.compactNote{font-size:12px;color:#68756e;margin:10px 0}.editorDetails{border-top:1px solid var(--line);padding-top:10px;margin-top:20px;font-size:13px}.editorDetails textarea{margin:8px 0}.editorDetails p{font-size:12px}.editorSetup{max-width:330px;font-size:13px;margin:12px 0 20px}.editorSetup button{margin-top:12px}.repairBar{margin:12px 0 20px}.editorWorkspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,1fr);gap:24px;align-items:start}.gridWorkspace,.dataWorkspace{min-width:0}.paintTools{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.paintTools button,.modeTools button{display:inline-flex;align-items:center;gap:7px;background:white;color:#40564b;border:1px solid #d4dfd6;padding:8px 10px;font-size:12px;min-height:38px}.paintTools button[aria-pressed="true"],.modeTools button[aria-pressed="true"]{background:#e5f0ea;border-color:var(--green);color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.swatch{display:inline-block;width:14px;height:14px;border:1px solid #81928a;border-radius:2px}.swatch.black{background:#17271f}.swatch.white{background:white}.swatch.unknown{background:#d49b46}.areaIcon{width:15px;height:15px;border:1.5px dashed #846024;background:#f6e2bd}.gridToolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:10px}.gridToolbar button{padding:8px 10px}.zoomTools{display:flex;align-items:center;margin-left:auto;font-size:12px;gap:3px}.zoomTools output{min-width:35px;text-align:center}.gridScroll{overflow:auto;background:#f0f2ee;border:1px solid var(--line);max-height:560px}.gridScroll canvas{display:block;width:100%;height:auto;touch-action:none;image-rendering:pixelated;max-width:none}.editorSource{display:block;max-width:100%;max-height:450px;object-fit:contain}.modeTools{border:0;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:5px}.modeTools legend{font-size:13px;margin-bottom:7px}#matrixText{font-family:ui-monospace,monospace;white-space:pre;font-size:11px;overflow:auto}#partialText{min-height:160px}.advancedLinks{display:flex;gap:20px;font-size:13px;margin-top:24px}main:has(#manualEditor:not([hidden])){max-width:1120px}@media(max-width:760px){.editorWorkspace{grid-template-columns:1fr;gap:18px}.editorStatus{flex-wrap:wrap}.paintTools button{flex-grow:1}.dataWorkspace{border-top:1px solid var(--line);padding-top:18px}}

/* One fixed slot per encoded character; known data is read-only. */
.characterSlots{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px;align-content:start;padding:3px;max-height:340px;overflow:auto}.characterSlot{min-width:0;width:100%;height:40px;border:1px solid #bcaa87;border-radius:5px;background:#fffaf0;color:#243c35;text-align:center;padding:2px;font:17px ui-monospace,monospace;caret-color:transparent}.characterSlot.known{border-color:#e0e6e1;background:#f3f6f3}.characterSlot.guessed{border-color:#327dba;background:#eaf4fc}.characterSlot.byteValue{font-size:10px}.characterSlot::placeholder{color:#967646}.characterSlot:focus{outline:2px solid #297ee1;outline-offset:0}.characterSegment+.characterSegment{margin-top:16px}.slotPages{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px}.slotPages button{padding:5px 12px}.slotPages button:disabled{cursor:default}
