:root{color-scheme:light;--paper:#f3f6f4;--ink:#203b3e;--muted:#587072;--line:#d8e3de;--teal:#236c70;--amber:#bd7415;--white:#fff;--error:#9a332d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 0%,#e2eeea,transparent 55%),var(--paper);color:var(--ink)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button{border:1px solid #c5d6cf;background:#fff;border-radius:10px;padding:.67rem .85rem;color:var(--ink);cursor:pointer;min-height:42px;transition:background .15s}button:hover:not(:disabled){background:#eaf2ee}button:disabled{opacity:.46;cursor:not-allowed}button.solid{background:var(--teal);color:white;border-color:var(--teal)}button.solid:hover:not(:disabled){background:#185357}button.danger{color:var(--error)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #bc771a;outline-offset:3px}input,select,textarea{border:1px solid #bfd0c9;border-radius:8px;padding:.64rem .7rem;background:#fcfefd;color:var(--ink);min-width:0;max-width:100%}input:not([type=checkbox]),select,textarea{width:100%}input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--teal)}textarea{resize:vertical;line-height:1.55}label{font-size:.87rem;display:grid;gap:.4rem;min-width:0}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.13;letter-spacing:-.045em;max-width:800px;margin-bottom:1rem}h2{font-size:1.3rem;letter-spacing:-.02em;margin-bottom:0}h3{font-size:1rem}p{line-height:1.6}main{max-width:1460px;margin:auto;padding:0 28px 36px;min-width:0}.masthead{max-width:1460px;padding:22px 28px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.wordmark{text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:-.03em;font-size:1.2rem;display:flex;align-items:center;gap:.7rem}.logo{background:var(--teal);color:white;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;font-size:1.5rem}.language{display:flex;align-items:center;gap:.7rem}.language select{width:auto}.intro{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:3rem;padding:22px 0 10px;align-items:center}.intro p:not(.eyebrow){color:var(--muted);max-width:760px}.eyebrow{font-size:.73rem;letter-spacing:.09em;text-transform:uppercase;font-weight:750;color:var(--teal);margin-bottom:.55rem}.reference-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:#ffffffa6}.inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.reference-card .inline{flex-wrap:nowrap}.reference-card input{flex:1;min-width:0}.status{padding:13px 17px;background:#e6efeb;border:1px solid #ccded4;border-radius:12px;font-size:.94rem;min-height:49px;overflow-wrap:anywhere}.workspace{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(290px,1fr);gap:20px;align-items:start}.map-card,.inventory-card,.input-card,.storage-card{background:var(--white);border:1px solid var(--line);border-radius:20px;box-shadow:0 9px 28px #203b3e07;min-width:0;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:20px 22px}.badge{background:#edf3f0;border:1px solid var(--line);padding:.4rem .6rem;border-radius:8px;font-size:.77rem;white-space:normal;text-align:center}.scene-wrap{position:relative;height:470px;background:radial-gradient(ellipse at 50% 35%,#fcfdfb,#e5eeea);overflow:hidden;border-top:1px solid #e9efeb;border-bottom:1px solid #e2eae5}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.scene-empty{position:absolute;top:23px;left:24px;right:24px;pointer-events:none;display:grid;gap:.3rem;max-width:420px}.scene-empty strong{font-size:1.15rem}.scene-empty span{font-size:.84rem;color:var(--muted);line-height:1.5}.scene-caption{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:.71rem;background:#fffffff0;border:1px solid var(--line);padding:.65rem;border-radius:9px;pointer-events:none}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.teal{background:#367d82}.amber{background:#d78f24}.map-controls{display:flex;gap:.5rem;padding:15px 20px 10px;flex-wrap:wrap}.settings{display:flex;gap:1.3rem;padding:4px 22px;flex-wrap:wrap}.settings label,.import-options label:has(input){display:flex;align-items:center;gap:.5rem}.map-card .help,.map-card .axis-note,.map-card .disclaimer{margin:12px 22px}.help{font-size:.82rem;color:var(--muted);line-height:1.6}.axis-note{font-size:.86rem;font-weight:650}.disclaimer{font-size:.76rem;color:var(--muted);padding-top:12px;border-top:1px solid var(--line);padding-bottom:6px}.inventory-card>.help{margin:0 22px 12px}.inventory{max-height:510px;overflow-y:auto;overscroll-behavior:contain;padding:0 14px 15px;display:grid;gap:8px}.record{display:grid;gap:.35rem;width:100%;text-align:left;min-width:0;padding:13px 14px;background:#f8fbf9;border-color:#dce6df;border-left:4px solid #619698}.record[aria-pressed=true]{background:#fff7e8;border-color:#dba958;border-left-color:#bc781c}.record-head{display:flex;align-items:start;justify-content:space-between;gap:.7rem}.record strong{overflow-wrap:anywhere;min-width:0;font-size:.95rem}.record .age{white-space:nowrap;font-weight:750;color:var(--teal)}.record[aria-pressed=true] .age{color:#965c10}.record-meta{font-size:.76rem;color:var(--muted);overflow-wrap:anywhere}.record-tag{font-size:.69rem;color:#996013;font-weight:700}.empty-list{color:var(--muted);padding:18px 8px;line-height:1.6;font-size:.88rem}.editor{background:#f6f9f7;border-top:1px solid var(--line);padding:20px}.selection-summary{font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.errors{font-size:.82rem;color:var(--error);white-space:pre-line;overflow-wrap:anywhere;line-height:1.6;margin:.75rem 0}.errors:empty{display:none}.input-card,.storage-card{margin-top:20px;padding:0 22px 22px}.input-card .card-head{padding:22px 0 15px}.input-card>label{margin-bottom:.45rem}.import-options{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:14px 0}.import-options select{width:auto}.mappings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.preview{margin:12px 0;max-height:320px;overflow:auto;border-radius:10px}.preview table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.8rem}.preview th,.preview td{text-align:left;padding:9px;border-bottom:1px solid var(--line);overflow-wrap:anywhere;vertical-align:top}.preview th{position:sticky;top:0;background:#edf3ef;color:var(--ink)}.preview tr.bad{background:#fff3ee}.preview .preview-note{margin:0 0 8px;padding:10px;background:#edf5ef;border-radius:8px;font-size:.83rem}.primary{min-width:210px}.manual{margin-top:22px;border-top:1px solid var(--line);padding-top:15px}.manual summary{cursor:pointer;font-weight:650}.manual form{padding-top:16px;max-width:800px}.storage-card{padding-top:22px}.storage-card h2{margin-bottom:10px}.storage-actions{display:flex;gap:.55rem;flex-wrap:wrap}#output{margin-top:20px}#output label{margin-bottom:.6rem}#output .inline{margin-top:10px}#output-text{font: .8rem/1.65 ui-monospace,SFMono-Regular,Consolas,monospace}.fallback{padding:18px 22px;background:#f1f6f2}.fallback p{font-size:.86rem;color:var(--muted)}#fallback-rows{display:grid;gap:6px;max-height:240px;overflow:auto}#fallback-rows button{text-align:left;font-size:.8rem;overflow-wrap:anywhere}footer{padding:24px 8px 0;font-size:.76rem;color:var(--muted);line-height:1.6}
@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr)}.scene-wrap{height:425px}.intro{gap:1.5rem}.map-controls button{font-size:.82rem}}
@media(max-width:760px){main{padding:0 14px 28px}.masthead{padding:16px 14px;align-items:start}.wordmark{font-size:1rem;gap:.4rem}.logo{width:30px;height:30px}.language{display:grid;gap:.2rem;font-size:.73rem}.language select{max-width:120px;padding:.45rem}.intro{grid-template-columns:minmax(0,1fr);gap:6px;padding-top:15px}.reference-card{padding:12px;margin-bottom:12px}.reference-card>label{margin-bottom:.4rem}.reference-card .inline{max-width:360px}.workspace{grid-template-columns:minmax(0,1fr)}.scene-wrap{height:380px}.card-head{padding:17px 15px;align-items:start}.card-head h2{font-size:1.14rem}.map-controls{padding:12px 14px}.settings{padding:4px 15px}.map-card .help,.map-card .axis-note,.map-card .disclaimer{margin:12px 15px}.inventory{max-height:360px}.input-card,.storage-card{padding-left:15px;padding-right:15px}.input-card .card-head{flex-wrap:wrap;gap:.6rem}.mappings{grid-template-columns:repeat(2,minmax(0,1fr))}.preview table{font-size:.7rem}.preview th,.preview td{padding:6px 4px}.import-options{gap:.75rem}.scene-empty{left:16px;right:16px}.scene-caption{font-size:.64rem}.preview{max-height:300px}.fields{gap:10px}.storage-actions button{flex:1 1 145px}}
@media(max-width:380px){.wordmark{font-size:.9rem}.scene-wrap{height:330px}.fields{grid-template-columns:minmax(0,1fr)}.map-controls button{padding:.6rem}.card-head{gap:.5rem}.scene-empty strong{font-size:1rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
