:root{--surface-1:#fcfcfb;--page:#f9f9f7;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#898781;--hairline:#e1e0d9;--border:#0b0b0b1a;--accent:#2a78d6}@media (prefers-color-scheme:dark){:root{--surface-1:#1a1a19;--page:#0d0d0d;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#898781;--hairline:#2c2c2a;--border:#ffffff1a;--accent:#3987e5}}*{box-sizing:border-box}body{background:var(--page);color:var(--text-primary);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app{flex-direction:column;height:100vh;display:flex}.topbar{border-bottom:1px solid var(--hairline);background:var(--surface-1);justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.credit{color:var(--text-muted);text-align:right;flex-shrink:1;font-size:12px;text-decoration:none}.credit strong{color:var(--text-secondary)}.credit:hover{color:var(--accent)}.topbar h1{margin:0;font-size:18px}.subtitle{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.layout{flex:1;min-height:0;display:flex}.sidebar{resize:horizontal;border-right:1px solid var(--hairline);background:var(--surface-1);flex-shrink:0;width:320px;min-width:260px;max-width:560px;padding:16px;overflow:auto}.sidebar section{margin-bottom:22px}.sidebar h2,.results h2,.recs h2{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 8px;font-size:13px}.dropzone{border:1.5px dashed var(--text-muted);text-align:center;color:var(--text-secondary);cursor:pointer;word-break:break-all;border-radius:8px;padding:18px 12px;font-size:13px}.dropzone.over{border-color:var(--accent);color:var(--accent)}.error{color:#d03b3b;font-size:13px}.demos{flex-direction:column;gap:4px;margin-top:8px;display:flex}.linklike{text-align:left;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px}.linklike:hover{text-decoration:underline}.plates{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.platebtn{background:var(--surface-1);border:1px solid var(--hairline);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:3px 10px;font-size:12.5px}.platebtn:hover{border-color:var(--accent)}.platebtn.active{border-color:var(--accent);color:var(--accent);font-weight:600}.cond-table{table-layout:fixed;border-collapse:collapse;width:100%;margin-top:6px;font-size:12.5px}.cond-table col.c-bed,.cond-table col.c-chamber{width:56px}.cond-table col.c-brim{width:46px}.cond-table th{color:var(--text-muted);text-align:left;text-overflow:ellipsis;white-space:nowrap;padding:2px 4px 2px 0;font-weight:500;overflow:hidden}.cond-table thead th{font-size:10.5px}.cond-table td{padding:2px 4px 2px 0}.cond-table input[type=number]{background:var(--surface-1);width:100%;color:var(--text-primary);border:1px solid var(--hairline);appearance:textfield;border-radius:6px;padding:2px 4px;font-size:12.5px}.cond-table input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cond-table input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cond-table input::placeholder{color:var(--text-muted)}.surface-row select{background:var(--surface-1);min-width:0;color:var(--text-primary);border:1px solid var(--hairline);border-radius:6px;flex:1;padding:3px 6px;font-size:12.5px}.cond-table .brim-cell{text-align:center}.brim-all{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.metrics{grid-template-columns:auto 1fr;gap:2px 10px;margin:12px 0 0;font-size:13px;display:grid}.metrics dt{color:var(--text-muted)}.metrics dd{font-variant-numeric:tabular-nums;margin:0}.filament-list{margin:0;padding:0;font-size:14px;list-style:none}.filament-list label{cursor:pointer;align-items:center;gap:8px;padding:3px 0;display:flex}.tag{color:var(--text-muted);border:1px solid var(--hairline);border-radius:999px;padding:0 6px;font-size:10.5px}.row{align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.row input[type=number]{border:1px solid var(--hairline);background:var(--page);width:72px;color:var(--text-primary);font:inherit;border-radius:6px;margin-left:auto;padding:4px 6px}.fine{color:var(--text-muted);font-size:12px;line-height:1.45}.main{flex-direction:column;flex:1;gap:18px;min-width:0;padding:16px 20px;display:flex;overflow-y:auto}.empty{text-align:center;max-width:460px;color:var(--text-secondary);margin:auto}.viewer-wrap{border:1px solid var(--hairline);resize:vertical;background:var(--surface-1);border-radius:10px;flex-shrink:0;height:440px;min-height:240px;max-height:85vh;position:relative;overflow:hidden}.viewer{width:100%;height:100%}.legend{background:var(--surface-1);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px;position:absolute;bottom:12px;left:12px}.legend-title{margin-bottom:4px;font-weight:600}.legend-scale{color:var(--text-secondary);align-items:center;gap:6px;display:flex}.legend-gradient{border-radius:4px;width:120px;height:8px}.legend-note{color:var(--text-muted);margin-top:4px}.results table{border-collapse:collapse;background:var(--surface-1);border:1px solid var(--hairline);border-radius:10px;width:100%;font-size:13.5px;overflow:hidden}.results th,.results td{text-align:left;border-bottom:1px solid var(--hairline);padding:8px 10px}.results thead th{color:var(--text-muted);font-size:12px;font-weight:500}.results tbody tr{cursor:pointer}.results tbody tr:hover{background:color-mix(in srgb, var(--accent) 7%, transparent)}.results tbody tr.active{background:color-mix(in srgb, var(--accent) 14%, transparent)}.results .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.badge{color:var(--text-primary);white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:5px;padding:1px 9px;font-size:12px;display:inline-flex}.scorebar{vertical-align:middle;background:var(--hairline);border-radius:3px;width:70px;height:6px;margin-right:8px;display:inline-block;overflow:hidden}.scorebar-fill{border-radius:3px;height:100%}.advice{color:var(--text-secondary);max-width:420px}.recs ul{color:var(--text-secondary);margin:0;padding-left:20px;font-size:14px;line-height:1.55}@media (width<=860px){.layout{flex-direction:column;overflow-y:auto}.sidebar{resize:none;border-right:none;border-bottom:1px solid var(--hairline);width:100%;max-width:none}.app{height:auto}}
