:root{--bg: #111111;--surface: #1a1a1a;--surface-hover: #222222;--border: #27272a;--text: #fafafa;--text-muted: #a1a1aa;--perfect: #4ade80;--good: #60a5fa;--marginal: #facc15;--wont-run: #f87171;--radius: 2px;--font-mono: "SF Mono", "Fira Code", Consolas, "Liberation Mono", monospace;color-scheme:dark}[data-theme=light]{--bg: #fafaf9;--surface: #f5f5f4;--surface-hover: #e7e5e4;--border: #e7e5e4;--text: #1c1917;--text-muted: #a8a29e;--perfect: #16a34a;--good: #2563eb;--marginal: #ca8a04;--wont-run: #ef4444;color-scheme:light}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg: #fafaf9;--surface: #f5f5f4;--surface-hover: #e7e5e4;--border: #e7e5e4;--text: #1c1917;--text-muted: #a8a29e;--perfect: #16a34a;--good: #2563eb;--marginal: #ca8a04;--wont-run: #ef4444;color-scheme:light}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-mono);background:var(--bg);color:var(--text);line-height:1.5;font-size:13px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{max-width:1200px;margin:0 auto;padding:1rem;min-height:100vh;min-height:100dvh}.app-header{display:flex;align-items:baseline;gap:.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.app-logo{font-size:1rem;font-weight:700;color:var(--text);cursor:pointer;letter-spacing:-.03em}.app-tagline{color:var(--text-muted);font-size:.8125rem}.header-actions{margin-left:auto;display:flex;align-items:center;gap:.4rem}.github-link{display:flex;align-items:center;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);padding:.2rem .35rem;transition:color .15s,border-color .15s}.github-link:hover{color:var(--text);border-color:var(--text-muted)}.theme-toggle{background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:.875rem;padding:.15rem .4rem;border-radius:var(--radius);font-family:var(--font-mono);line-height:1;transition:color .15s,border-color .15s}.theme-toggle:hover{color:var(--text);border-color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.35rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .1s ease;font-family:var(--font-mono);line-height:1.4;white-space:nowrap;background:var(--surface);color:var(--text)}.btn:hover{background:var(--surface-hover)}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-primary:hover{opacity:.85}.btn-ghost{background:transparent;color:var(--text-muted);border-color:transparent}.btn-ghost:hover{color:var(--text);background:var(--surface-hover)}.btn-sm{padding:.2rem .5rem;font-size:.6875rem}.btn-icon{padding:.2rem .4rem;font-size:1rem;line-height:1}.hardware-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.8125rem}.hw-spec{display:flex;align-items:center;gap:.25rem}.hw-spec-label{color:var(--text-muted);text-transform:uppercase;font-size:.6875rem;letter-spacing:.04em}.hw-spec-value{color:var(--text)}.hw-sep{color:var(--border);-webkit-user-select:none;user-select:none}.hw-ram-select{background:transparent;color:var(--text);border:none;border-bottom:1px solid transparent;font:inherit;font-family:var(--font-mono);padding:0 .15rem;margin:-1px 0;cursor:pointer;outline:none;transition:border-color .15s,color .15s}.hw-ram-select:hover,.hw-ram-select:focus{border-bottom-color:var(--text-muted)}.hw-ram-select-hint{border-bottom:1px dashed var(--text-muted);color:var(--text-muted)}.hw-ram-select-hint:hover{color:var(--text);border-bottom-style:solid}.hw-actions{margin-left:auto;display:flex;gap:.35rem}.hardware-prompt{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;color:var(--text-muted)}.hardware-panel{display:flex;flex-direction:column;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--border);margin-bottom:1rem}.hw-row-2up{display:flex;flex-wrap:wrap;gap:.75rem}.hw-row-2up>.hw-field{flex:1 1 200px;min-width:0}.hw-system-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.hw-system-row>.hw-field{flex:0 0 auto}.hw-row-spacer{flex:1 1 auto}.hw-gpu-view-row{display:flex;align-items:flex-end;gap:.75rem}.hw-gpu-view-row>.hw-field{flex:1 1 auto;min-width:0}.hw-gpu-summary{font-family:var(--font-mono);font-size:.8125rem;color:var(--text);line-height:1.4;padding:.3rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hw-gpu-actions{display:flex;align-items:center;gap:.5rem}.hw-add-gpu{align-self:flex-start;background:transparent;border:1px dashed var(--border);color:var(--text-muted);border-radius:var(--radius);padding:.35rem .75rem;font-family:var(--font-mono);font-size:.75rem;cursor:pointer;transition:border-color .15s,color .15s}.hw-add-gpu:hover{border-color:var(--text-muted);color:var(--text);border-style:solid}select.hw-input,select.hw-ram-select{color-scheme:light dark}.hw-input-hint{color:var(--text-muted);border-style:dashed}.hw-combo-caret{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.7rem;pointer-events:none}.hw-input-combo{padding-right:1.5rem}.hw-field{display:flex;flex-direction:column;gap:.15rem}.hw-field-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.hw-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.3rem .5rem;color:var(--text);font-size:.8125rem;font-family:var(--font-mono);width:100%;outline:none;transition:border-color .1s}.hw-input:focus{border-color:var(--text-muted)}.hw-input[type=number]{-moz-appearance:textfield;width:5rem}.hw-input[type=number]::-webkit-inner-spin-button,.hw-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.hw-badge{display:inline-flex;align-items:center;padding:.1rem .35rem;font-size:.5625rem;font-weight:600;border-radius:var(--radius);border:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.gpu-search-wrap{position:relative;min-width:200px}.gpu-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:400px;overflow-y:auto;list-style:none;margin-top:2px;box-shadow:0 4px 12px #0000004d}.gpu-dropdown li{padding:.3rem .5rem;font-size:.75rem;cursor:pointer;transition:background .1s}.gpu-dropdown li:hover{background:var(--surface-hover)}.gpu-dropdown-empty{color:var(--text-muted);cursor:default!important}.filter-bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:.75rem;padding:.4rem 0;border-bottom:1px solid var(--border)}.filter-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.3rem .5rem;color:var(--text);font-size:.75rem;font-family:var(--font-mono);outline:none;transition:border-color .1s}.filter-input:focus{border-color:var(--text-muted)}.filter-search{flex:1;min-width:140px}.filter-right{margin-left:auto;display:flex;align-items:center;gap:.75rem}.filter-count{font-size:.6875rem;color:var(--text-muted);white-space:nowrap}.fit-legend{display:flex;gap:.5rem;font-size:.625rem;color:var(--text-muted);white-space:nowrap}.fit-legend-item{display:flex;align-items:center;gap:.2rem}select.filter-input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23a1a1aa'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .4rem center;padding-right:1.4rem}.results-layout{display:flex;gap:1rem;align-items:flex-start}.results-table-wrap{flex:1;overflow-x:auto}.results-empty{text-align:center;padding:2rem 1rem;color:var(--text-muted);font-size:.8125rem}.results-table{width:100%;border-collapse:collapse;font-size:.75rem}.results-table th{text-align:left;padding:.35rem .5rem;font-size:.625rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap}.results-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.results-table th.sortable-th:hover{color:var(--text)}.sort-arrow{font-size:.5rem;margin-left:.25rem;opacity:.3}.sort-arrow-active{opacity:1}.results-table td{padding:.3rem .5rem;border-bottom:1px solid var(--border);white-space:nowrap}.results-table tbody tr{cursor:pointer;transition:background .1s}.results-table tbody tr:hover{background:var(--surface-hover)}.results-table tbody tr.row-selected{background:var(--surface)}.cell-model{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;row-gap:.15rem}.model-name{font-weight:500;font-size:.75rem}.model-provider{font-size:.6875rem;color:var(--text-muted)}.model-provider:before{content:"/";margin-right:.15rem}.model-tag{font-size:.5625rem;padding:.05rem .3rem;border-radius:var(--radius);color:var(--text-muted);border:1px solid var(--border);text-transform:lowercase;letter-spacing:.02em;line-height:1.4;white-space:nowrap}.model-tag-usecase{color:var(--text-muted)}.model-tag-cap{border:none;padding:0;font-size:.75rem;cursor:help}.fit-dot{font-size:.875rem;line-height:1}.fit-dot-perfect{color:var(--perfect)}.fit-dot-good{color:var(--good)}.fit-dot-marginal{color:var(--marginal)}.fit-dot-wont_run{color:var(--wont-run)}.detail-panel{width:340px;min-width:300px;position:sticky;top:1rem;border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;max-height:calc(100vh - 2rem);overflow-y:auto;background:var(--surface);z-index:10}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.detail-title{font-size:.875rem;font-weight:600;word-break:break-word}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.75rem}.detail-item{display:flex;flex-direction:column;gap:.1rem}.detail-label{font-size:.5625rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.detail-value{font-size:.75rem}.detail-hf-link{display:inline-block;font-size:.6875rem;color:var(--text-muted);text-decoration:none;margin-top:.2rem;word-break:break-all}.detail-hf-link:hover{color:var(--text)}.detail-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.detail-tag{font-size:.6875rem;padding:.15rem .5rem;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted)}.detail-links{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.5rem}.detail-link{font-size:.6875rem;color:var(--text-muted);text-decoration:none;word-break:break-all}.detail-link:hover{color:var(--text)}.detail-section-title{font-size:.6875rem;font-weight:600;margin-bottom:.5rem;margin-top:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.score-bars{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.score-bar-header{display:flex;justify-content:space-between;font-size:.6875rem;margin-bottom:.15rem}.score-bar-label{color:var(--text-muted)}.score-bar-help-wrap{position:relative;display:inline-flex;align-items:center;margin-left:3px}.score-bar-help{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;font-size:9px;border:1px solid var(--border);border-radius:50%;color:var(--text-muted);cursor:help;vertical-align:middle}.score-bar-tooltip{display:none;position:absolute;top:calc(100% + 8px);left:-4px;width:240px;padding:.5rem .625rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.6875rem;line-height:1.5;box-shadow:0 4px 16px #0000004d;z-index:100;pointer-events:none;white-space:normal}.score-bar-tooltip:before{content:"";position:absolute;bottom:100%;left:10px;border:5px solid transparent;border-bottom-color:var(--border)}.score-bar-help-wrap:hover .score-bar-tooltip{display:block}.score-bar-value{font-weight:600}.score-bar-track{height:4px;background:var(--bg);border-radius:2px;overflow:hidden}.score-bar-fill{height:100%;border-radius:2px;background:var(--text-muted);transition:width .3s ease}.quant-table{width:100%;border-collapse:collapse;font-size:.6875rem}.quant-table th{text-align:left;padding:.3rem .4rem;font-size:.5625rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border)}.quant-table td{padding:.3rem .4rem;border-bottom:1px solid var(--border);font-size:.6875rem}.quant-table tr.quant-best{background:var(--surface-hover)}.fit-yes{color:var(--perfect);font-weight:600}.fit-no{color:var(--wont-run)}.results-disabled{position:relative;opacity:.3;pointer-events:none;-webkit-user-select:none;user-select:none}.results-editing-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:5;color:var(--text-muted);font-size:.875rem;pointer-events:none}.scan-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;gap:1.25rem;border:1px dashed var(--border);border-radius:var(--radius);margin-top:.5rem}.scan-prompt-text{color:var(--text-muted);font-size:.875rem}.scan-prompt-actions{display:flex;gap:.75rem}.loading{text-align:center;padding:2rem 1rem;color:var(--text-muted);font-size:.8125rem}.error-banner{border:1px solid var(--wont-run);border-radius:var(--radius);padding:.5rem .75rem;margin-bottom:.75rem;font-size:.75rem;color:var(--wont-run)}.filter-context{display:inline-flex;align-items:center;gap:.3rem;font-size:.6875rem;color:var(--text-muted)}.filter-context-label{text-transform:uppercase;letter-spacing:.06em}.filter-context-select{padding:.25rem 1.2rem .25rem .4rem}.filter-share{border:1px solid var(--border)}.detail-section-hint{text-transform:none;letter-spacing:0;color:var(--text-muted);font-weight:400;margin-left:.35rem}.mem-breakdown{margin-bottom:.75rem}.mem-bar-stack{display:flex;width:100%;height:10px;border-radius:2px;overflow:hidden;background:var(--bg);border:1px solid var(--border);margin-bottom:.5rem}.mem-bar-seg{height:100%;transition:width .2s ease;min-width:2px}.mem-bar-weights{background:var(--good)}.mem-bar-kv{background:var(--marginal)}.mem-bar-overhead{background:var(--text-muted)}.mem-bar-legend{display:flex;flex-direction:column;gap:.2rem;font-size:.6875rem}.mem-bar-legend-row{display:flex;justify-content:space-between;align-items:center;gap:.4rem}.mem-bar-legend-row dt{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-muted)}.mem-bar-legend-row dd{font-variant-numeric:tabular-nums}.mem-bar-legend-total{border-top:1px dashed var(--border);margin-top:.15rem;padding-top:.2rem;font-weight:600;color:var(--text)}.mem-bar-legend-total dt{color:var(--text)}.mem-swatch{display:inline-block;width:10px;height:10px;border-radius:2px}.col-compare{width:1.5rem;text-align:center;padding-right:0!important}.compare-checkbox{cursor:pointer;accent-color:var(--good)}.compare-checkbox:disabled{cursor:not-allowed;opacity:.4}.compare-panel{border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem .75rem;margin-bottom:.75rem;background:var(--surface)}.compare-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.compare-title{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem}.compare-card{border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .625rem;background:var(--bg)}.compare-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.4rem}.compare-card-name{font-size:.75rem;font-weight:600;word-break:break-word}.compare-card-provider{font-size:.625rem;color:var(--text-muted);margin-bottom:.4rem}.compare-card-stats{display:grid;grid-template-columns:auto 1fr;gap:.2rem .6rem;font-size:.6875rem}.compare-card-stats dt{color:var(--text-muted);text-transform:uppercase;font-size:.5625rem;letter-spacing:.05em;align-self:center}.compare-card-stats dd{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:900px){.detail-panel{width:280px;min-width:260px}}@media(max-width:640px){.app{padding:.75rem .75rem calc(1rem + env(safe-area-inset-bottom))}.app-header{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"logo . actions" "tag  tag tag";align-items:center;column-gap:.35rem;row-gap:.1rem;padding-bottom:.5rem}.app-logo{grid-area:logo}.app-tagline{grid-area:tag;font-size:.75rem}.header-actions{grid-area:actions;margin-left:0}.hardware-bar{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:.35rem .75rem;font-size:.75rem}.hw-sep{display:none}.hw-spec{min-width:0;gap:.35rem}.hw-spec-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hw-actions{grid-column:1 / -1;justify-content:flex-end;margin-left:0;gap:.5rem}.hardware-bar .btn-sm{padding:.4rem .75rem;font-size:.75rem}.filter-bar{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:.4rem}.filter-search{grid-column:1 / -1;min-width:0}.filter-input{width:100%;min-width:0;padding:.5rem .55rem;font-size:.8125rem}select.filter-input{padding-right:1.6rem}.filter-context{grid-column:1 / -1;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem}.filter-right{grid-column:1 / -1;margin-left:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.filter-count{font-size:.75rem}.filter-share{padding:.45rem .85rem;font-size:.75rem}.fit-legend{display:none}.results-layout{flex-direction:column}.col-compare{width:1.75rem}.compare-checkbox{width:18px;height:18px}.results-table-wrap{overflow-x:hidden}.results-table{table-layout:fixed;width:100%}.results-table th,.results-table td{padding:.4rem;white-space:normal}.results-table th:first-child,.results-table td:first-child{padding-left:.2rem}.model-name,.model-provider{overflow-wrap:anywhere;word-break:break-word}.compare-grid{grid-template-columns:1fr}.detail-panel{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;min-width:0;max-height:85vh;max-height:85dvh;margin:0;padding:.85rem .85rem calc(1rem + env(safe-area-inset-bottom));border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;box-shadow:0 -8px 24px #00000059;overflow-y:auto;z-index:50;animation:detail-sheet-in .16s ease-out}body.detail-open:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40;animation:detail-backdrop-in .16s ease-out}body.detail-open{overflow:hidden}.detail-grid{grid-template-columns:1fr 1fr;gap:.65rem .75rem}.detail-header{position:sticky;top:-.85rem;margin:-.85rem -.85rem .6rem;padding:.85rem .85rem .6rem;background:var(--surface);border-bottom:1px solid var(--border);z-index:1}.detail-header .btn-icon{font-size:1.5rem;padding:.25rem .6rem}@keyframes detail-sheet-in{0%{transform:translateY(12%);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes detail-backdrop-in{0%{opacity:0}to{opacity:1}}.scan-prompt{padding:2.5rem 1rem}.scan-prompt-actions{flex-direction:column;width:100%;max-width:280px}.scan-prompt-actions .btn{width:100%;padding:.6rem .75rem;font-size:.8125rem}.col-hide-mobile{display:none}}@media(max-width:380px){.hardware-bar{grid-template-columns:1fr}.hardware-bar .hw-actions{grid-column:1}.detail-grid{grid-template-columns:1fr}}.hw-gpu-row{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.hw-field-grow{flex:1 1 220px;min-width:180px}.hw-input-narrow{width:80px}.hw-gpu-remove{padding:.25rem .5rem;font-size:1.1rem;line-height:1}.hw-gpu-add{margin-top:.25rem}.hw-unified-toggle{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.hw-unified-toggle input{margin:0;cursor:pointer}
