:root{--bg-paper:#f6f3ec;--bg-surface:#fdfbf7;--bg-recessed:#ede8dd;--bg-subtle:#e5dfd2;--ink-primary:#181816;--ink-secondary:#43413b;--ink-muted:#66635b;--teal-primary:#0d6e6e;--teal-hover:#095252;--teal-deep:#063838;--teal-tint:#dff0ed;--teal-border:#8ec4be;--status-pass-bg:#e1f2e8;--status-pass-ink:#125430;--status-warn-bg:#faeed7;--status-warn-ink:#6e4808;--status-err-bg:#fbe5e3;--status-err-ink:#7d1a14;--status-err-border:#dc8c85;--border-hairline:#d6cfc2;--border-strong:#9e9789;--font-editorial:"Iowan Old Style", "Palatino Linotype", "URW Palladio L", P052, Georgia, serif;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;--radius-sm:4px;--radius-md:6px;--shadow-card:0 1px 3px #1818160d;--transition-calm:.14s ease-out}*,:before,:after{box-sizing:border-box}html,body{background-color:var(--bg-paper);color:var(--ink-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:15px;line-height:1.5}.skip-link{z-index:999;background:var(--teal-primary);color:#fff;border-radius:var(--radius-sm);padding:.5rem 1rem;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:1rem}.skip-link:focus{top:.75rem}:focus-visible{outline:2px solid var(--teal-primary);outline-offset:2px}.suite-shell{flex-direction:column;min-height:100vh;display:flex}.suite-header{background:var(--bg-surface);border-bottom:1px solid var(--border-hairline);z-index:20;padding:.75rem 1.5rem;position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1320px;margin:0 auto;display:flex}.brand-group{align-items:baseline;gap:.75rem;display:flex}.brand-link{font-family:var(--font-editorial);color:var(--ink-primary);letter-spacing:-.01em;font-size:1.25rem;font-weight:700;text-decoration:none}.brand-link:hover{color:var(--teal-primary)}.brand-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;background:var(--teal-tint);color:var(--teal-deep);border:1px solid var(--teal-border);border-radius:var(--radius-sm);padding:.15rem .45rem;font-size:.72rem}.suite-nav{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--ink-secondary);transition:background-color var(--transition-calm), color var(--transition-calm);border:1px solid #0000;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.88rem;font-weight:500;text-decoration:none;display:inline-flex}.nav-link:hover{background:var(--bg-recessed);color:var(--ink-primary)}.nav-link[aria-current=page]{background:var(--teal-primary);color:#fff;border-color:var(--teal-deep)}.nav-code{font-family:var(--font-mono);opacity:.8;font-size:.72rem}.suite-main{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:1.5rem}.suite-footer{border-top:1px solid var(--border-hairline);background:var(--bg-recessed);color:var(--ink-muted);padding:1rem 1.5rem;font-size:.82rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;max-width:1320px;margin:0 auto;display:flex}.workspace-header{border-bottom:1px solid var(--border-hairline);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.workspace-kicker{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--teal-primary);margin:0 0 .25rem;font-size:.74rem;font-weight:600}.workspace-title{font-family:var(--font-editorial);color:var(--ink-primary);margin:0 0 .35rem;font-size:1.85rem;line-height:1.15}.workspace-subtitle{color:var(--ink-secondary);max-width:68ch;margin:0;font-size:.95rem}.panel-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1.25rem;display:grid}.panel-grid>*{min-width:0}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-12{grid-column:span 12}.panel{background:var(--bg-surface);border:1px solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:1.15rem}.panel-title{font-family:var(--font-editorial);border-bottom:1px solid var(--border-hairline);justify-content:space-between;align-items:center;margin:0 0 .75rem;padding-bottom:.45rem;font-size:1.12rem;font-weight:700;display:flex}.directory-hero{background:var(--bg-surface);border:1px solid var(--border-hairline);border-left:4px solid var(--teal-primary);border-radius:var(--radius-md);margin-bottom:1.5rem;padding:1.5rem}.directory-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}.tool-card{background:var(--bg-surface);border:1px solid var(--border-hairline);border-radius:var(--radius-md);transition:border-color var(--transition-calm), transform var(--transition-calm);flex-direction:column;justify-content:space-between;padding:1.35rem;display:flex}.tool-card:hover{border-color:var(--teal-primary)}.tool-card-meta{font-family:var(--font-mono);color:var(--teal-primary);justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.75rem;display:flex}.tool-card h2{font-family:var(--font-editorial);margin:0 0 .45rem;font-size:1.35rem}.tool-card p{color:var(--ink-secondary);margin:0 0 1rem;font-size:.92rem}.tool-card-actions{border-top:1px solid var(--bg-recessed);justify-content:space-between;align-items:center;padding-top:.75rem;display:flex}.control-group{flex-direction:column;gap:.3rem;margin-bottom:.85rem;display:flex}.control-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}label,.field-label{color:var(--ink-secondary);font-size:.82rem;font-weight:600}input[type=text],input[type=number],input[type=search],select,textarea{width:100%;font-family:var(--font-sans);color:var(--ink-primary);background:var(--bg-paper);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.48rem .65rem;font-size:.9rem}input.mono-input,textarea.mono-input{font-family:var(--font-mono);font-size:.84rem}input[type=color]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-paper);cursor:pointer;width:44px;height:36px;padding:2px}input[type=range]{width:100%;accent-color:var(--teal-primary)}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-paper);color:var(--ink-primary);cursor:pointer;transition:background-color var(--transition-calm), border-color var(--transition-calm);justify-content:center;align-items:center;gap:.4rem;padding:.48rem .9rem;font-size:.86rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--bg-subtle)}.btn-primary{background:var(--teal-primary);color:#fff;border-color:var(--teal-deep)}.btn-primary:hover{background:var(--teal-hover)}.btn-sm{padding:.3rem .6rem;font-size:.78rem}.alert-banner{border-radius:var(--radius-sm);border:1px solid var(--status-err-border);background:var(--status-err-bg);color:var(--status-err-ink);margin-bottom:1rem;padding:.65rem .9rem;font-size:.86rem;font-weight:500}.notice-banner{border-radius:var(--radius-sm);border:1px solid var(--teal-border);background:var(--teal-tint);color:var(--teal-deep);margin-bottom:1rem;padding:.6rem .9rem;font-size:.84rem}.badge{border-radius:var(--radius-sm);font-family:var(--font-mono);align-items:center;padding:.15rem .5rem;font-size:.74rem;font-weight:600;display:inline-flex}.badge-pass{background:var(--status-pass-bg);color:var(--status-pass-ink)}.badge-warn{background:var(--status-warn-bg);color:var(--status-warn-ink)}.badge-fail{background:var(--status-err-bg);color:var(--status-err-ink)}.shades-grid{grid-template-columns:repeat(5,1fr);gap:.6rem;display:grid}.shade-card{border:1px solid var(--border-hairline);border-radius:var(--radius-sm);background:var(--bg-paper);overflow:hidden}.shade-swatch{border-bottom:1px solid var(--border-hairline);width:100%;height:52px}.shade-meta{font-family:var(--font-mono);flex-direction:column;gap:.15rem;padding:.4rem .5rem;font-size:.74rem;display:flex}.harmony-strip{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;display:grid}.harmony-item{border:1px solid var(--border-hairline);border-radius:var(--radius-sm);background:var(--bg-paper);font-family:var(--font-mono);padding:.45rem;font-size:.75rem}.harmony-color-box{border:1px solid #0000001f;border-radius:3px;height:36px;margin-bottom:.35rem}.gradient-preview{border-radius:var(--radius-sm);border:1px solid var(--border-strong);height:76px;margin-bottom:.6rem}.contrast-preview-box{border-radius:var(--radius-sm);border:1px solid var(--border-strong);margin-bottom:.75rem;padding:1rem}.dropzone{border:2px dashed var(--teal-border);background:var(--bg-paper);border-radius:var(--radius-md);text-align:center;cursor:pointer;margin-bottom:.85rem;padding:1rem}.dropzone.dragover{background:var(--teal-tint);border-color:var(--teal-primary)}.ascii-output-wrap{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.ascii-output-wrap>*{min-width:0}.ascii-pre{background:var(--bg-paper);color:var(--ink-primary);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);font-family:var(--font-mono);letter-spacing:.04em;max-height:400px;margin:0;padding:.85rem;font-size:8px;line-height:1.05;overflow-x:auto}.ascii-canvas{border:1px solid var(--border-hairline);border-radius:var(--radius-sm);max-width:100%;height:auto;display:block}.metrics-strip{grid-template-columns:repeat(5,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.metric-box{background:var(--bg-paper);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);padding:.65rem .8rem}.metric-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-family:var(--font-mono)}.metric-value{font-family:var(--font-editorial);color:var(--ink-primary);font-size:1.45rem;font-weight:700}.table-scroll{border:1px solid var(--border-hairline);border-radius:var(--radius-sm);max-height:440px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.84rem}.data-table th,.data-table td{border-bottom:1px solid var(--border-hairline);text-align:left;vertical-align:top;white-space:pre-wrap;padding:.5rem .7rem}.data-table th{background:var(--bg-recessed);font-weight:700;position:sticky;top:0}.data-table td.cell-missing{background:var(--status-warn-bg);color:var(--status-warn-ink);font-style:italic}.data-table td.cell-formula{background:var(--status-err-bg);color:var(--status-err-ink);font-family:var(--font-mono)}.terrahour-map-wrap{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#102024;margin-bottom:.75rem;overflow:hidden}.terrahour-canvas{width:100%;height:auto;display:block}.overlap-bar-grid{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-recessed);grid-template-columns:repeat(96,1fr);height:22px;margin:.5rem 0;display:grid;overflow:hidden}.overlap-slot{height:100%}.overlap-slot.slot-open{background:var(--teal-primary)}.overlap-slot.slot-partial{background:#9ec5bf}.clocks-grid{grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:.85rem;display:grid}.clock-card{background:var(--bg-paper);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);flex-direction:column;gap:.45rem;padding:.85rem;display:flex}.clock-card-top{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.clock-city-name{font-family:var(--font-editorial);margin:0;font-size:1.15rem;font-weight:700}.clock-time-big{font-family:var(--font-mono);color:var(--teal-deep);font-size:1.4rem;font-weight:700}.clock-badges{flex-wrap:wrap;gap:.35rem;display:flex}.search-results-list{border:1px solid var(--border-hairline);border-radius:var(--radius-sm);background:var(--bg-paper);max-height:210px;margin:.5rem 0 0;padding:0;list-style:none;overflow-y:auto}.search-result-item{border-bottom:1px solid var(--border-hairline);justify-content:space-between;align-items:center;padding:.4rem .65rem;font-size:.84rem;display:flex}@media (width<=960px){.col-4,.col-5,.col-6,.col-7,.col-8{grid-column:span 12}.directory-grid{grid-template-columns:1fr}.shades-grid,.metrics-strip{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.suite-header,.suite-main,.suite-footer{padding-left:1rem;padding-right:1rem}.workspace-title{font-size:1.45rem}}
