:root{--bg:#f6f6f4;--surface:#fff;--border:#dcdcd6;--ink:#1a1a1a;--muted:#666;--header-bg:#2f3a40;--header-ink:#f4f4f1;--row-alt:#f4f6f7;--pareto-row:#fff9db;--pareto-row-alt:#fff3bf;--accent:#0645ad;color:var(--ink);background:var(--bg);font-family:ui-sans-serif,system-ui,sans-serif;line-height:1.4}*{box-sizing:border-box}body{margin:0}#app{max-width:1500px;margin:0 auto;padding:1rem;position:relative}header{text-align:center;margin-bottom:1rem}.top-bar{z-index:10;align-items:center;gap:.4rem;display:flex;position:absolute;top:1rem;right:1rem}.top-links{gap:.4rem;display:flex}.top-link{width:2rem;height:2rem;color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:6px;justify-content:center;align-items:center;text-decoration:none;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.top-link:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.top-link-reddit:hover{color:#ff4500;border-color:color-mix(in srgb, #ff4500 45%, var(--border));background:color-mix(in srgb, #ff4500 8%, var(--surface))}.top-link svg{display:block}header h1{letter-spacing:-.02em;margin:0 0 .25rem;font-family:ui-sans-serif,system-ui,sans-serif;font-size:2.25rem;font-weight:700}.tagline,.meta,footer{color:var(--muted);font-size:.85rem}.tagline{margin:0}.layout{flex-direction:column;gap:1rem;display:flex}.content{flex:auto;min-width:0}.filters{flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:1rem;display:flex}.scale-group,.sort-group{flex-direction:column;flex:none;gap:.25rem;display:flex}.sort-group{margin-left:auto}.filters-fields{flex-wrap:wrap;flex:18rem;justify-content:center;align-items:flex-end;gap:.6rem;min-width:0;display:flex}.filter-group-label{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.7rem;font-weight:600}.filter-btn-row{display:flex}.filter-btn-row .sort-btn{box-sizing:border-box;justify-content:center;align-items:center;min-height:2rem;padding:0 .68rem;font-size:.64rem;display:inline-flex}@media (width<=1400px){.scale-group,.sort-group{order:1}.sort-group{margin-left:auto}.filters-fields{flex-basis:100%;order:2;width:100%}}.filters label{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);flex-direction:column;flex:none;gap:.25rem;font-size:.7rem;font-weight:600;display:flex}.filters input,.filters select{border:1px solid var(--border);background:var(--surface);text-transform:none;letter-spacing:normal;width:100%;color:var(--ink);box-sizing:border-box;border-radius:4px;min-height:2rem;padding:.4rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:400}.table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:4px;overflow:visible}.est-mark{color:var(--muted);cursor:help;font-weight:600}.table-note{border-top:1px solid var(--border);color:var(--muted);margin:0;padding:.4rem .75rem;font-size:.72rem}.cond-chip{text-transform:uppercase;letter-spacing:.02em;vertical-align:middle;white-space:nowrap;color:var(--muted);border:1px solid var(--border);background:#f0f0ee;border-radius:999px;padding:.05rem .35rem;font-size:.62rem;font-weight:600;display:inline-block}table{border-collapse:separate;border-spacing:0;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;overflow:visible}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #eee;padding:.45rem .7rem}thead th{z-index:1;background:var(--header-bg);color:var(--header-ink);white-space:nowrap;font-family:ui-sans-serif,system-ui,sans-serif;font-weight:600;position:sticky;top:0}tbody tr:nth-child(2n){background:var(--row-alt)}tbody tr.pareto-row{background:var(--pareto-row)}tbody tr.pareto-row:nth-child(2n){background:var(--pareto-row-alt)}tbody tr:hover{background:#eef3f5}tbody tr.pareto-row:hover{background:#ffe066}td.num,th.num{text-align:right;white-space:nowrap}th.cpu,td.cpu{width:200px;max-width:200px}th.gpu,td.gpu{width:180px;max-width:180px}th.ram,td.ram{width:100px;max-width:100px}th.storage,td.storage{width:160px;max-width:160px}td.price{font-weight:700}.title a{color:var(--accent);font-weight:700;text-decoration:none}.title a:hover{text-decoration:underline}.loading,.error{padding:2rem 0}code{background:#eee;padding:.1rem .3rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}footer{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}#admin{max-width:1500px;margin:0 auto;padding:1rem}#admin .content{flex-direction:column;gap:1.25rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1rem 1.25rem}.card h2{margin:0 0 .75rem;font-size:1.1rem}.card h2 small{color:var(--muted);font-weight:400}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.stat{border:1px solid var(--border);background:var(--row-alt);border-radius:4px;flex-direction:column;gap:.15rem;padding:.6rem .75rem;display:flex}.stat-value{font-size:1.4rem;font-weight:700}.stat-label{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.72rem}.pipeline-flow{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.pipe-stage{border:1px solid var(--border);background:var(--row-alt);border-radius:6px;flex-direction:column;flex:140px;gap:.2rem;padding:.75rem .9rem;display:flex}.pipe-stage.pipe-warn{background:var(--pareto-row);border-color:var(--pareto-row-alt)}.pipe-value{font-size:1.6rem;font-weight:700;line-height:1.1}.pipe-label{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.72rem}.pipe-arrow{color:var(--muted);align-self:center;font-size:1.3rem}.pipeline-aside{border-top:1px dashed var(--border);flex-wrap:wrap;gap:.75rem;margin-top:.9rem;padding-top:.9rem;display:flex}.pipe-side{align-items:baseline;gap:.4rem;font-size:.85rem;display:flex}.pipe-side-value{font-size:1rem;font-weight:700}.pipe-side.pipe-warn .pipe-side-value{color:#b54708}.pipe-side.pipe-muted,.pipe-side-label{color:var(--muted)}@media (width<=640px){.pipe-arrow{text-align:center;width:100%;transform:rotate(90deg)}}button{border:1px solid var(--border);background:var(--header-bg);color:var(--header-ink);cursor:pointer;border-radius:4px;padding:.4rem .9rem;font-weight:600}button:disabled{opacity:.5;cursor:default}textarea{border:1px solid var(--border);border-radius:4px;width:100%;margin-bottom:.5rem;padding:.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.pager{align-items:center;gap:.75rem;margin-top:.75rem;font-size:.85rem;display:flex}.run-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.run-buttons button{text-transform:capitalize}.run-error td{background:#fdf0f0}.run-error pre{white-space:pre-wrap;max-width:600px;font-size:.72rem}@media (width<=720px){.charts .chart{display:none}.charts-mobile-note{display:block}.scale-group{display:none}.filters-fields label{flex:120px}.table-wrap table thead{display:none}.table-wrap tbody tr{border-bottom:1px solid #eee;flex-wrap:wrap;align-items:baseline;gap:.2rem .45rem;padding:.55rem .7rem;display:flex}.table-wrap tbody tr td{border-bottom:none;padding:0}.table-wrap tbody tr td.title{flex:8rem;order:1;min-width:0}.table-wrap tbody tr td.price{flex:none;order:2;margin-left:auto}.table-wrap tbody tr td.admin-cell{flex:none;order:3}.table-wrap tbody tr:after{content:"";flex-basis:100%;order:4;width:0;height:0}.table-wrap tbody tr td.source,.table-wrap tbody tr td.cpu,.table-wrap tbody tr td.ram,.table-wrap tbody tr td.storage{width:auto;max-width:none;color:var(--muted);flex:0 auto;order:5;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.72rem}.table-wrap tbody tr td.cpu{min-width:0}.table-wrap tbody tr td.cpu:before,.table-wrap tbody tr td.ram:before,.table-wrap tbody tr td.storage:before{content:"·";color:var(--border);margin:0 .35rem}.table-wrap tbody tr td.gpu,.table-wrap tbody tr td.bench{display:none}.table-wrap tbody tr td[colspan]{flex:100%;order:1;font-family:ui-sans-serif,system-ui,sans-serif}}.admin-exit{color:#e8e0b0;letter-spacing:.04em;cursor:pointer;background:#2d2a16;border:1px solid #5c5320;border-radius:4px;padding:.35rem .75rem;font-size:.75rem;font-weight:600}.admin-exit:hover{background:#5c5320}th.admin-cell,td.admin-cell{text-align:center;width:2.5rem}.row-action{cursor:pointer;border:none;border-radius:4px;padding:.15rem .4rem;font-size:.85rem;line-height:1}.row-action.remove{color:#ffd9d9;background:#5a1f1f}.row-action.restore{color:#d9f1ff;background:#1f4a5a}tr.hidden-row{opacity:.4}td.zero{color:#ff6b6b;font-weight:700}.charts{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;display:flex}.charts-mobile-note{text-align:center;color:var(--muted);flex:100%;margin:0;font-size:.85rem;display:none}.chart{background:var(--surface);border:1px solid var(--border);border-radius:4px;flex:320px;min-width:280px;padding:.75rem .9rem .5rem}.chart-title{margin:0 0 .5rem;font-size:.95rem;font-weight:600}.chart-metric-select{color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;margin-left:-.3rem;padding:.15rem .3rem;font-family:inherit;font-size:.95rem;font-weight:600}.chart-metric-select:hover,.chart-metric-select:focus{border-color:var(--border);outline:none}.chart-svg{width:100%;height:auto;display:block}.chart-empty{color:var(--muted);font-size:.85rem}.chart-axis{stroke:var(--border);stroke-width:1px}.chart-grid{stroke:#eee;stroke-width:1px}.chart-tick{stroke:var(--border);stroke-width:1px}.chart-tick-label{fill:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.chart-axis-label{fill:var(--muted);font-size:11px;font-weight:600}circle.chart-dot{fill:var(--accent);fill-opacity:.55;stroke:var(--accent);stroke-width:1px;cursor:pointer;transition:cx .35s,cy .35s,opacity .25s,fill-opacity .1s,r .1s,stroke-width .1s}circle.chart-dot.entering{opacity:0;transition:none}circle.chart-dot.removing{opacity:0}circle.chart-dot:hover{fill-opacity:.95;r:4.8}circle.chart-dot.barebones{fill:#ff6b6b;stroke:#c92a2a}circle.chart-dot.pareto{fill:#fcc419;stroke:#e67700;fill-opacity:.9}circle.chart-dot.chart-dot-highlight{stroke:#000;stroke-width:2.5px;fill-opacity:.95;r:5}circle.chart-dot.pareto.chart-dot-highlight{stroke:#e67700}tbody tr.row-outline-hover:not(.row-outline-selected){z-index:1000;position:relative;box-shadow:0 0 0 2px #000}tbody tr.row-outline-selected{z-index:1000;animation:8s forwards row-selected-ring;position:relative}@keyframes row-selected-ring{0%{box-shadow:0 0 0 5px #000}to{box-shadow:0 0 #0000}}.filters input[type=number]{width:5.5rem}.filters #keyword{width:12rem}.filters select{min-width:8rem}.sort-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--ink);padding:.4rem .85rem;font-size:.8rem;font-weight:600}.sort-btn+.sort-btn{border-left:none}.sort-btn:first-child{border-radius:4px 0 0 4px}.sort-btn:last-child{border-radius:0 4px 4px 0}.sort-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.cpu-grid{width:100%}.cpu-grid td{vertical-align:top}.grid-cell{white-space:nowrap}.grid-cell input[type=number]{width:6rem}.igpu-cell{white-space:normal;min-width:16rem;position:relative}.igpu-cell .igpu-input{width:11rem}.badge{vertical-align:middle;border-radius:999px;padding:.05rem .35rem;font-size:.68rem;font-weight:600;display:inline-block}.badge-warn{color:#b54708;background:#fff4e5;border:1px solid #f3c896}.badge-muted{color:var(--muted);border:1px solid var(--border);background:#f0f0ee}.no-igpu{padding:.1rem .4rem;font-size:.72rem}.autocomplete{z-index:1200;background:var(--surface);border:1px solid var(--border);border-radius:4px;width:22rem;max-height:16rem;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 6px 18px #0000001f}.ac-item{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;width:100%;padding:.4rem .6rem;font-size:.85rem;display:block}.ac-item:hover{background:#eef4ff}.ac-create{color:var(--accent);font-weight:600}.cell-note{margin-left:.4rem;font-size:.72rem;display:inline-block}
