:root,html[data-theme=dark]{--bg:#0f1216;--panel:#161b22;--border:#2a313c;--text:#e6edf3;--muted:#9aa7b4;--accent:#5db0ff;--accent-fg:#08131f;--row-hover:rgba(255,255,255,0.03);--thead-bg:#161b22;--chip-bg:rgba(93,176,255,0.12);--chip-border:rgba(93,176,255,0.35);--chip-bg-hover:rgba(93,176,255,0.2);--shadow:0 1px 3px rgba(0,0,0,0.4);--pos:#3fb950;--neg:#f85149}html[data-theme=light]{--bg:#f6f8fa;--panel:#ffffff;--border:#d0d7de;--text:#1f2328;--muted:#57606a;--accent:#0969da;--accent-fg:#ffffff;--row-hover:rgba(9,105,218,0.06);--thead-bg:#f6f8fa;--chip-bg:rgba(9,105,218,0.1);--chip-border:rgba(9,105,218,0.3);--chip-bg-hover:rgba(9,105,218,0.18);--shadow:0 1px 3px rgba(140,149,159,0.25);--pos:#1a7f37;--neg:#cf222e}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}body{transition:background-color .2s ease,color .2s ease}main{max-width:1800px;margin:0 auto;padding:24px 24px 64px}@media (min-width:1800px){main{max-width:none;padding-left:16px;padding-right:16px}}@media (min-width:2400px){main{padding-left:8px;padding-right:8px}}.topbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 16px;margin-bottom:20px}.header h1{font-size:20px;margin:0 0 4px}.meta{color:var(--muted);font-size:12px}.meta a{color:var(--accent);text-decoration:none}.theme-toggle{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.theme-toggle:hover{border-color:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle-icon{display:inline-flex;color:var(--accent)}.layout{display:grid;grid-template-columns:264px minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.sidebar{position:-webkit-sticky;position:sticky;top:16px}.content{min-width:0}.filters{display:flex;flex-direction:column;gap:14px;padding:16px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.filters-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.filters-title{margin:0;font-size:14px;font-weight:600}.filters-reset{font-size:12px;color:var(--muted);text-decoration:none}.filters-reset:hover{color:var(--accent)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.filters input,.filters select{width:100%;height:38px;padding:0 10px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px;font-family:inherit}.filters input::placeholder{color:var(--muted)}.filters input:focus,.filters select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.field-range{display:flex;align-items:center;gap:6px}.field-range input{width:100%;min-width:0}.range-sep{color:var(--muted);flex:0 0 auto}.check-field{display:flex;align-items:center;gap:8px;min-height:32px;font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.check-field input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:0 0 auto}.btn-primary{height:40px;padding:0 16px;border:none;border-radius:8px;background:var(--accent);color:var(--accent-fg);font-weight:600;font-size:14px;font-family:inherit;cursor:pointer;margin-top:2px}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.result-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px}.result-count{color:var(--muted);font-size:13px}.result-bar-spacer{flex:1 1 auto;min-width:12px}.chips{flex-wrap:wrap}.chip,.chips{display:inline-flex;gap:6px}.chip{align-items:center;padding:4px 10px;border-radius:999px;background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--text);font-size:12px;text-decoration:none}.chip:hover{background:var(--chip-bg-hover)}.chip-x{color:var(--muted);font-size:11px}.col-menu{position:relative}.col-menu-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);font-size:12px;cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.col-menu-btn::-webkit-details-marker{display:none}.col-menu-btn:hover{border-color:var(--accent)}.col-menu-btn svg{color:var(--accent)}.col-menu[open] .col-menu-btn{border-color:var(--accent)}.col-menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:220px;max-height:70vh;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.col-menu-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:var(--text);cursor:pointer}.col-menu-item:hover{background:var(--row-hover)}.col-menu-item input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex:0 0 auto}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;white-space:nowrap}.hscroll{position:-webkit-sticky;position:sticky;bottom:0;z-index:20;overflow-x:auto;overflow-y:hidden;height:16px;background:var(--bg);border-top:1px solid var(--border)}.hscroll-inner{height:1px}td,th{padding:8px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}tbody tr:last-child td{border-bottom:none}thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--thead-bg);font-weight:600;color:var(--muted)}.th-sort{display:inline-flex;align-items:center;gap:4px;color:inherit;text-decoration:none;cursor:pointer;white-space:nowrap}.th-sort.active,.th-sort:hover{color:var(--text)}.th-sort:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.th-arrow{display:inline-block;min-width:8px;color:var(--accent);font-size:11px}tbody tr:hover{background:var(--row-hover)}.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pos{color:var(--pos)}.neg{color:var(--neg)}.th-help{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:1px solid var(--border);border-radius:50%;font-size:10px;font-weight:600;line-height:1;color:var(--muted);cursor:help;vertical-align:middle}.th-help:hover{border-color:var(--accent);color:var(--accent)}.badge{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--chip-bg);border:1px solid var(--chip-border);font-size:11px;white-space:nowrap}.badge-sale{background:rgba(63,185,80,.12);border-color:rgba(63,185,80,.4);color:var(--pos)}.tech-tags{display:inline-flex;flex-wrap:wrap;gap:4px}.name-cell{display:inline-flex;align-items:center}.row-icon{flex:0 0 auto;width:20px;height:20px;margin-right:8px;border-radius:4px;object-fit:contain;vertical-align:middle;background:var(--panel)}.desc{white-space:normal;width:34%;min-width:240px;max-width:640px;color:var(--muted)}td a{color:var(--accent);text-decoration:none}td a:hover{text-decoration:underline}.load-status{display:flex;justify-content:center;align-items:center;min-height:44px;margin-top:12px;color:var(--muted);font-size:13px}.load-retry{height:38px;padding:0 16px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font-size:13px;font-family:inherit;cursor:pointer}.load-retry:hover{border-color:var(--accent)}.load-retry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.empty{padding:48px 16px;text-align:center;color:var(--muted)}@media (max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:static}.btn-primary,.filters input,.filters select{height:44px}.theme-toggle{height:40px}}.topbar-actions{flex:0 0 auto}.account-link,.topbar-actions{display:inline-flex;align-items:center;gap:8px}.account-link{max-width:220px;height:38px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);font-size:13px;text-decoration:none;white-space:nowrap;overflow:hidden;transition:border-color .15s ease}.account-link,.account-link span{text-overflow:ellipsis}.account-link svg{color:var(--accent);flex:0 0 auto}.account-link:hover{border-color:var(--accent)}.fav-cell{text-align:center}.fav-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:none;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;border-radius:6px;text-decoration:none;transition:color .12s ease,transform .12s ease}.fav-btn:hover{transform:scale(1.15)}.fav-btn.on,.fav-btn:hover{color:var(--neg)}.fav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.account{max-width:760px}.account h1{font-size:22px;margin:8px 0 20px}.account h2{font-size:16px;margin:0 0 8px}.back-link{display:inline-block;color:var(--muted);text-decoration:none;font-size:13px}.back-link:hover{color:var(--accent)}.account-profile{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px;margin-bottom:28px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.account-profile p{margin:0;color:var(--muted)}.account-profile strong,.logout-btn{color:var(--text)}.logout-btn{height:36px;padding:0 16px;border:1px solid var(--border);border-radius:8px;background:var(--panel);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.logout-btn:hover{border-color:var(--neg);color:var(--neg)}.account-auth{margin-bottom:28px}.account-lead{color:var(--muted);font-size:13px;margin:0 0 16px;max-width:52ch}.account-section{padding-top:20px;border-top:1px solid var(--border)}.account-section-lead{color:var(--muted);font-size:13px;margin:0 0 16px;max-width:60ch}.auth-card{max-width:380px;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.auth-tabs{display:flex;gap:4px;padding:4px;margin-bottom:18px;background:var(--bg);border:1px solid var(--border);border-radius:10px}.auth-tabs button{flex:1 1;height:34px;border:none;border-radius:7px;background:none;color:var(--muted);font-size:13px;font-family:inherit;cursor:pointer;transition:background-color .15s ease,color .15s ease}.auth-tabs button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.auth-form{gap:14px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:6px;font-size:13px}.auth-field span{color:var(--muted)}.auth-field input{height:40px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:14px;font-family:inherit}.auth-field input:focus{outline:none;border-color:var(--accent)}.auth-error{margin:0;padding:8px 12px;border-radius:8px;background:rgba(248,81,73,.12);color:var(--neg);font-size:13px}.auth-submit{height:42px;border:none;border-radius:8px;background:var(--accent);color:var(--accent-fg);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer}.auth-submit:disabled{opacity:.6;cursor:progress}.auth-hint{margin:14px 0 0;color:var(--muted);font-size:12px}.col-settings-loading{color:var(--muted);font-size:13px}.col-settings-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px}.col-settings-count{color:var(--muted);font-size:13px}.col-settings-actions{display:inline-flex;gap:6px}.col-settings-actions button{height:30px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);font-size:12px;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.col-settings-actions button:hover{border-color:var(--accent)}.col-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:6px 16px;gap:6px 16px}.col-settings-item{display:flex;align-items:center;gap:8px;min-height:32px;font-size:13px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.col-settings-item input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:0 0 auto}.col-settings-note{margin:16px 0 0;color:var(--muted);font-size:12px}@media (max-width:900px){.account-link{max-width:150px}}@media (prefers-reduced-motion:reduce){.fav-btn,.theme-toggle,body{transition:none}}