:root{--font-ui:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--color-red-cross:#d8001b;--color-red-dark:#9f0014;--color-red-pressed:#79000f;--color-red-soft:#fff0f2;--color-ink:#20242b;--color-ink-strong:#111318;--color-muted:#69717d;--color-subtle:#8b95a1;--color-line:#dfe3e8;--color-canvas:#f5f6f7;--color-surface:#fff;--color-surface-raised:#f9fafb;--color-map-blue:#eaf4fb;--color-info:#1d4ed8;--color-success:#2d7a3e;--color-warning:#b7791f;--color-danger:#9f0014;--radius-control:6px;--radius-panel:8px;--shadow-panel:0 10px 30px #1f293714;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;font-family:var(--font-ui);color:var(--color-ink);background:var(--color-canvas);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--color-canvas)}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{color:inherit}a{color:var(--color-red-dark)}::selection{color:#fff;background:var(--color-red-cross)}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:64px;padding:0 var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-line);display:flex}.brand-lockup{align-items:center;gap:var(--space-3);min-width:0;display:flex}.brand-lockup img{object-fit:contain;width:38px;height:38px}.brand-lockup h1{color:var(--color-ink-strong);margin:0;font-size:18px;line-height:1.1}.brand-lockup p,.preview-header p,.step p,.color-mode small,.example-button small,.guardrail,.map-caption,.empty-state,.note-list{color:var(--color-muted)}.brand-lockup p{margin:2px 0 0;font-size:13px}.topbar-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.composer-grid{grid-template-columns:var(--left-panel-width) minmax(0, 1fr) var(--right-panel-width);min-height:calc(100vh - 65px);display:grid}.panel{box-shadow:none;background:var(--color-surface);border:0;border-radius:0;min-width:0;position:relative}.prompt-panel{border-right:1px solid var(--color-line)}.spec-panel{border-left:1px solid var(--color-line)}.panel-content{height:calc(100vh - 65px);padding:var(--space-5);overflow:auto}.panel[data-collapsed=true] .panel-content,.panel[data-collapsed=true] .resize-handle,.collapsed-label{display:none}.panel[data-collapsed=true] .collapsed-label{height:calc(100vh - 65px);color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;place-items:center;font-size:12px;font-weight:800;display:grid}.resize-handle{z-index:4;cursor:col-resize;background:0 0;border:0;width:10px;height:100%;padding:0;position:absolute;top:0}.resize-handle-left{right:-5px}.resize-handle-right{left:-5px}.resize-handle:hover{background:#d8001b14}.panel-heading,.preview-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.panel-heading{margin-bottom:var(--space-4)}.panel-heading span,.eyebrow{color:var(--color-red-dark);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.panel-heading strong{border-radius:var(--radius-control);color:var(--color-red-dark);background:var(--color-red-soft);padding:5px 8px;font-size:12px}textarea{resize:vertical;box-sizing:border-box;border:1px solid var(--color-line);border-radius:var(--radius-control);width:100%;color:var(--color-ink);background:var(--color-surface-raised);padding:12px;line-height:1.45}textarea:focus,button:focus-visible{outline-offset:2px;outline:3px solid #d8001b38}.example-list,.color-mode-list,.code-rows,.row-table{gap:var(--space-2);display:grid}.example-list{margin-top:var(--space-4)}.example-button,.color-mode{text-align:left;background:var(--color-surface-raised);border:1px solid var(--color-line);border-radius:var(--radius-control);cursor:pointer;gap:4px;width:100%;padding:12px;display:grid}.example-button:hover,.color-mode:hover,.color-mode[data-active=true]{border-color:var(--color-red-cross)}.example-button span,.color-mode span{color:var(--color-ink-strong);font-weight:750}.guardrail{margin-top:var(--space-4);background:var(--color-red-soft);border-radius:var(--radius-control);border:1px solid #ffd6dc;padding:12px;font-size:13px}.preview-panel{min-width:0;padding:var(--space-5);overflow:auto}.preview-header{margin-bottom:var(--space-4)}.preview-header h2{color:var(--color-ink-strong);margin:4px 0 8px;font-size:clamp(26px,3vw,44px);line-height:1.05}.preview-header p{max-width:760px;margin:0}.metric-strip{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.metric{border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);min-width:88px;padding:10px 12px}.metric span{color:var(--color-muted);text-transform:uppercase;font-size:11px;font-weight:800;display:block}.metric strong{color:var(--color-red-dark);font-family:var(--font-mono);margin-top:3px;font-size:22px;display:block}.map-frame-sheet{border:1px solid var(--color-line);border-radius:var(--radius-panel);background:#fff;overflow:hidden;box-shadow:0 16px 40px #1f293714}.map-frame-rendered{border:1px solid var(--color-line);border-radius:var(--radius-panel);background:#fff;overflow:auto;box-shadow:0 16px 40px #1f293714}.map-frame-rendered img{background:#fff;width:100%;height:auto;display:block}.renderer-needed{align-content:center;gap:var(--space-4);background:linear-gradient(#fff 0%,#f8fafc 100%);min-height:560px;padding:clamp(22px,4vw,48px);display:grid}.renderer-needed h3{max-width:640px;color:var(--color-ink-strong);margin:0;font-size:clamp(28px,3.6vw,48px);line-height:1.04}.renderer-needed p{max-width:650px;color:var(--color-muted);margin:0;font-size:16px;line-height:1.5}.renderer-needed code{border:1px solid var(--color-line);border-radius:var(--radius-control);width:fit-content;max-width:100%;color:var(--color-ink-strong);font-family:var(--font-mono);overflow-wrap:anywhere;background:#fff;padding:10px 12px;font-size:13px}.map-sheet{background:#fff;min-height:560px;padding:clamp(18px,3vw,34px)}.sheet-header{justify-content:space-between;align-items:flex-start;gap:var(--space-5);display:flex}.sheet-header h3{color:#ed1b2e;letter-spacing:0;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4.2vw,48px);font-weight:500;line-height:.98}.sheet-header p{color:#6c6c6c;margin:8px 0 0;font-size:clamp(14px,1.8vw,22px);font-weight:650}.sheet-header img{object-fit:contain;width:clamp(132px,16vw,220px);height:auto}.sheet-body{grid-template-columns:minmax(0,1.45fr) minmax(180px,245px);align-items:center;gap:clamp(18px,3vw,38px);margin-top:clamp(16px,3vw,34px);display:grid}.sheet-map-art{min-width:0}.sheet-map-art svg{width:100%;height:auto;display:block}.county-grid path{stroke:#fff;stroke-width:2.2px;vector-effect:non-scaling-stroke}.state-outline{stroke:#15191f;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chapter-boundary{stroke:#767a7f;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.region-boundary{stroke:#15191f;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.map-labels text,.region-title{fill:#15191f;font-size:19px;font-weight:850}.sheet-legend{gap:clamp(28px,5vw,68px);display:grid}.sheet-legend h4{color:#15191f;margin:0 0 18px;font-size:clamp(18px,2vw,28px);font-weight:850}.legend-row{grid-template-columns:24px minmax(0,1fr);align-items:start;gap:12px;display:grid}.legend-row+.legend-row{margin-top:28px}.legend-row>span{border:1px solid #11131814;width:20px;height:42px}.legend-row p{color:#33373d;margin:0;font-size:15px;line-height:1.25}.legend-row strong,.legend-row small{font-weight:500;display:block}.boundary-row{color:#33373d;grid-template-columns:44px 1fr;align-items:center;gap:12px;font-size:15px;display:grid}.boundary-row+.boundary-row{margin-top:14px}.boundary-row span{height:0;display:block}.county-line{border-top:2px solid #d5d7da}.chapter-line{border-top:3px solid #767a7f}.region-line{border-top:6px solid #15191f}.boundary-row p{margin:0}.sheet-footer{color:#777;margin-top:clamp(18px,3vw,32px);font-size:13px;line-height:1.4}.workflow-row{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.step{gap:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-surface);padding:14px;display:flex}.step>span{color:#fff;background:var(--color-red-cross);width:28px;height:28px;font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.step strong{color:var(--color-ink-strong);margin-bottom:4px;display:block}.step p{margin:0;font-size:13px}.settings-section{padding:var(--space-4) 0;border-top:1px solid var(--color-line)}.settings-section h3{margin:0 0 var(--space-3);color:var(--color-ink-strong);font-size:15px}.color-mode[data-active=true]{background:var(--color-red-soft)}.code-row{gap:var(--space-2);border-bottom:1px solid var(--color-line);grid-template-columns:68px minmax(0,1fr);align-items:start;padding:10px 0;display:grid}.code-row span{color:var(--color-red-dark);font-family:var(--font-mono);font-weight:800}.code-row p{color:var(--color-ink);font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.45}.row-record{border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface-raised);grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:6px;padding:8px;display:grid}.row-record span{min-width:0;color:var(--color-ink-strong);font-size:13px;font-weight:700}code{color:var(--color-ink-strong);font-family:var(--font-mono);background:#edf0f3;border-radius:4px;padding:3px 5px;font-size:11px}.note-list{margin:0;padding-left:18px;font-size:13px}.note-list li+li{margin-top:8px}.empty-state{border:1px dashed var(--color-line);border-radius:var(--radius-control);margin:0;padding:12px}.btn{border-radius:var(--radius-control);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 14px;font-size:13px;font-weight:750;line-height:1;display:inline-flex}.btn-primary{color:#fff;background:var(--color-red-cross);border:1px solid var(--color-red-cross)}.btn-primary:hover{background:var(--color-red-dark);border-color:var(--color-red-dark)}.btn-secondary{color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line)}.btn-secondary:hover{border-color:var(--color-red-cross)}@media (width<=1100px){.composer-grid{grid-template-columns:1fr}.panel,.prompt-panel,.spec-panel{border:0;border-bottom:1px solid var(--color-line)}.panel-content{height:auto;max-height:none}.resize-handle,.collapsed-label{display:none!important}.spec-panel{order:3}}@media (width<=760px){.topbar{padding:var(--space-3);flex-direction:column;align-items:flex-start}.topbar-actions{width:100%}.topbar-actions .btn{flex:auto}.preview-panel,.panel-content{padding:var(--space-3)}.preview-header{display:grid}.metric-strip,.workflow-row{grid-template-columns:1fr}.metric-strip{justify-content:stretch}.row-record{grid-template-columns:1fr 1fr}.map-frame svg{min-height:0}.sheet-header{display:grid}.sheet-body{grid-template-columns:1fr;align-items:start}.sheet-legend{gap:22px}.legend-row+.legend-row{margin-top:14px}.legend-row>span{height:30px}}
