:root{--c-bg: #f6f7f9;--c-surface: #ffffff;--c-border: #d6dbe3;--c-border-strong: #aab3c0;--c-text: #1c2530;--c-text-2: #4a5666;--c-primary: #2563ab;--c-primary-strong: #1c4e8a;--c-primary-soft: #e8f0fa;--c-accent: #0e7a5f;--c-accent-soft: #e2f3ee;--c-danger: #b3261e;--c-warn-soft: #fdf3e0;--c-focus: #1c4e8a;--fs-1: .75rem;--fs-2: .875rem;--fs-3: 1rem;--fs-4: 1.25rem;--fs-5: 1.5rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--radius: 8px;--radius-sm: 6px;--tap: 44px;--shadow-1: 0 1px 2px rgba(16, 24, 40, .3), 0 1px 3px 1px rgba(16, 24, 40, .15);--shadow-2: 0 1px 2px rgba(16, 24, 40, .3), 0 2px 6px 2px rgba(16, 24, 40, .15);--shadow-3: 0 1px 3px rgba(16, 24, 40, .3), 0 4px 8px 3px rgba(16, 24, 40, .15)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--c-bg);color:var(--c-text);font-size:var(--fs-2);line-height:1.45}button{font:inherit;color:inherit;cursor:pointer}input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{min-height:100vh;display:flex;flex-direction:column}.masthead{background:var(--c-surface);border-bottom:1px solid var(--c-border);padding:var(--sp-4) var(--sp-5);display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);align-items:center;justify-content:space-between;box-shadow:var(--shadow-1);position:relative;z-index:10}.masthead h1{font-size:var(--fs-4);margin:0;letter-spacing:-.01em}.masthead .sub{font-size:var(--fs-1);color:var(--c-text-2);margin:2px 0 0}.masthead-controls{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.view-toggle{display:inline-flex;border:1px solid var(--c-border-strong);border-radius:var(--radius);overflow:hidden;background:var(--c-surface)}.view-toggle button{border:0;background:transparent;padding:10px 16px;min-height:var(--tap);font-size:var(--fs-2);font-weight:600;color:var(--c-text-2)}.view-toggle button[aria-pressed=true]{background:var(--c-primary);color:#fff}.annot-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);border:1px solid var(--c-border-strong);background:var(--c-surface);border-radius:var(--radius);padding:10px 14px;min-height:var(--tap);font-weight:600;font-size:var(--fs-2);color:var(--c-text-2)}.annot-toggle[aria-pressed=true]{background:var(--c-accent);border-color:var(--c-accent);color:#fff}.pin-wrap{position:relative;display:inline-block}.pin{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:0;background:var(--c-accent);color:#fff;font-size:var(--fs-1);font-weight:700;line-height:1;vertical-align:middle;margin-inline-start:var(--sp-2)}.pin.pin-issue{background:var(--c-danger)}.pin-pop{position:absolute;z-index:40;top:calc(100% + 8px);inset-inline-start:0;width:min(320px,78vw);background:var(--c-text);color:#fff;border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-1);line-height:1.5;box-shadow:var(--shadow-3);font-weight:400;text-transform:none;letter-spacing:0}.pin-pop strong{color:#9fd4c3}.pin-pop.pin-pop-issue strong{color:#ffb4ab}.filters .pin-wrap{position:static}.filters .fgroup,.filters .filters-head,.filters .acc{position:relative}.filters .pin-pop{top:44px;inset-inline:var(--sp-3);width:auto}.legacy .pin-wrap{position:static}.legacy h2,.legacy .legacy-actions,.legacy-tiles{position:relative}.legacy .pin-pop{top:22px;inset-inline:4px;width:auto}.legacy-tiles .pin-pop{top:40px;inset-inline:20%}.workspace{display:flex;gap:var(--sp-5);align-items:flex-start;padding:var(--sp-5);max-width:1360px;margin:0 auto;width:100%}.filters{width:338px;flex:none;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-1);position:sticky;top:var(--sp-4);max-height:calc(100vh - 32px);overflow-y:auto}.filters-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4);border-bottom:1px solid var(--c-border);position:sticky;top:0;background:var(--c-surface);z-index:5}.filters-head h2{font-size:var(--fs-3);margin:0}.btn-link{border:0;background:none;color:var(--c-primary);font-weight:600;font-size:var(--fs-2);padding:var(--sp-2);border-radius:var(--radius-sm)}.btn-link:hover{text-decoration:underline}.fgroup{border:0;margin:0;padding:var(--sp-4);border-bottom:1px solid var(--c-border)}.fgroup:last-child{border-bottom:0}.fgroup legend,.fgroup .fgroup-legend{font-size:var(--fs-1);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-2);padding:0;margin-bottom:var(--sp-3);display:block}.fgroup-hint{font-size:var(--fs-1);color:var(--c-text-2);margin:var(--sp-2) 0 0}.shape-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-2)}.shape-chip{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);padding:8px 2px 6px;min-height:var(--tap);font-size:var(--fs-1);color:var(--c-text-2)}.shape-chip svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.4}.shape-chip[aria-pressed=true]{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary-strong);font-weight:600}.grade-row{display:flex;gap:2px}.grade-cell{flex:1;min-width:0;min-height:36px;padding:6px 0;border:1px solid var(--c-border);background:var(--c-surface);font-size:var(--fs-1);font-weight:600;color:var(--c-text-2);letter-spacing:-.03em}.grade-cell:first-child{border-start-start-radius:var(--radius-sm);border-end-start-radius:var(--radius-sm)}.grade-cell:last-child{border-start-end-radius:var(--radius-sm);border-end-end-radius:var(--radius-sm)}.grade-cell[aria-pressed=true]{background:var(--c-primary);border-color:var(--c-primary-strong);color:#fff;position:relative;z-index:1}.grade-value{font-size:var(--fs-1);color:var(--c-text-2);margin-top:var(--sp-2);min-height:1.2em}.grade-value b{color:var(--c-text)}.dual{margin-top:var(--sp-2)}.dual-track{position:relative;height:28px}.dual-track input[type=range]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;pointer-events:none;margin:0}.dual-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:auto;width:20px;height:20px;border-radius:50%;background:var(--c-surface);border:2px solid var(--c-primary);box-shadow:var(--shadow-2);cursor:grab;margin-top:-8px}.dual-track input[type=range]::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;background:var(--c-surface);border:2px solid var(--c-primary);box-shadow:var(--shadow-2);cursor:grab}.dual-track input[type=range]::-webkit-slider-runnable-track{height:4px;background:none}.dual-track input[type=range]::-moz-range-track{height:4px;background:none}.dual-rail{position:absolute;top:12px;left:0;right:0;height:4px;border-radius:2px;background:var(--c-border)}.dual-fill{position:absolute;top:12px;height:4px;border-radius:2px;background:var(--c-primary)}.dual-inputs{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}.dual-inputs input{width:100%;min-height:40px;padding:6px 8px;border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);font-size:var(--fs-2)}.dual-inputs span{color:var(--c-text-2);font-size:var(--fs-1)}.seg-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.seg-label{flex:none;width:74px;font-size:var(--fs-1);font-weight:600;color:var(--c-text-2)}.check-row{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4)}.check{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--tap);font-size:var(--fs-2);cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--c-primary)}.acc-btn{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:0;padding:var(--sp-4);font-size:var(--fs-1);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-2)}.acc-btn .chev{transition:transform .15s ease}.acc-btn[aria-expanded=true] .chev{transform:rotate(180deg)}.acc-body{padding:0 var(--sp-4) var(--sp-4)}.acc{border-bottom:1px solid var(--c-border)}.results{flex:1;min-width:0}.results-bar{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.results-count{font-size:var(--fs-3);font-weight:700}.results-count .muted{color:var(--c-text-2);font-weight:400;font-size:var(--fs-2)}.sort-wrap{display:flex;align-items:center;gap:var(--sp-2)}.sort-wrap label{font-size:var(--fs-1);color:var(--c-text-2);font-weight:600}.sort-wrap select{min-height:40px;border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);padding:6px 8px;background:var(--c-surface)}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--c-primary-soft);color:var(--c-primary-strong);border:1px solid #bcd2ea;border-radius:999px;padding:4px 6px 4px 12px;font-size:var(--fs-1);font-weight:600}.chip button{border:0;background:none;color:inherit;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-2);line-height:1}.chip button:hover{background:#1c4e8a1f}.table-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden}.dtable{width:100%;border-collapse:collapse}.dtable th,.dtable td{padding:10px 12px;text-align:start;font-size:var(--fs-2)}.dtable thead th{font-size:var(--fs-1);text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-2);background:#fbfcfd;border-bottom:1px solid var(--c-border);position:sticky;top:0}.dtable thead th button{border:0;background:none;font:inherit;color:inherit;font-weight:700;display:inline-flex;align-items:center;gap:4px;padding:4px;min-height:32px}.dtable tbody tr{border-bottom:1px solid #edf0f4}.dtable tbody tr:hover{background:#f4f8fd}.dtable .num{text-align:end;font-variant-numeric:tabular-nums}.dtable .shape-cell{display:flex;align-items:center;gap:var(--sp-2);font-weight:600}.dtable .shape-cell svg{width:18px;height:18px;stroke:var(--c-text-2);fill:none;stroke-width:1.4;flex:none}.lab-tag{font-size:var(--fs-1);font-weight:700;color:var(--c-accent);background:var(--c-accent-soft);border-radius:4px;padding:2px 6px}.price-strong{font-weight:700}.cards{display:none}.empty{padding:var(--sp-6);text-align:center;color:var(--c-text-2)}.empty h3{color:var(--c-text);margin:0 0 var(--sp-2);font-size:var(--fs-3)}.pager{display:flex;justify-content:center;padding:var(--sp-3);gap:var(--sp-3);align-items:center}.pager button{min-height:40px;padding:6px 14px;border:1px solid var(--c-border-strong);background:var(--c-surface);border-radius:var(--radius-sm);font-weight:600}.pager button:disabled{opacity:.45;cursor:default}.pager span{font-size:var(--fs-1);color:var(--c-text-2)}.mobile-bar{display:none}.legacy-note{max-width:1150px;margin:var(--sp-4) auto 0;padding:var(--sp-3) var(--sp-4);background:var(--c-warn-soft);border:1px solid #ecd9ac;border-radius:var(--radius);font-size:var(--fs-1);color:#6b5416}.legacy-scroll{overflow-x:auto;padding:var(--sp-4)}.legacy{width:1120px;margin:0 auto;background:#f4f4f4;border:1px solid #c9c9c9;font-family:Verdana,Tahoma,Arial,sans-serif;font-size:9px;color:#6e6e6e;padding:6px}.legacy h2{font-size:11px;color:#1e3a70;margin:2px 0 6px;font-weight:700}.legacy-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.legacy-tile{background:#e4e4e4;border:1px solid #c6c6c6;padding:5px;height:192px;display:flex;flex-direction:column}.legacy-tile h3{font-size:9px;color:#8f8f8f;margin:0 0 3px;font-weight:700;text-align:left}.legacy-pillbox{height:30px;flex:none;background:#fff;border:1px solid #b8b8b8;margin-bottom:4px;padding:2px;display:flex;flex-wrap:wrap;gap:2px;overflow:hidden;align-content:flex-start}.legacy-pill{display:inline-flex;align-items:center;font-size:8px;line-height:1;color:#1e3a70;background:#e8edf6;border:1px solid #9fb0d0;border-radius:2px;padding:1px 3px;height:11px}.legacy-list{flex:1;min-height:0;background:#fff;border:1px solid #b8b8b8;overflow-y:scroll;scrollbar-width:thin;scrollbar-color:#1e3a70 #e0e0e0}.legacy-list::-webkit-scrollbar{width:7px}.legacy-list::-webkit-scrollbar-track{background:#e0e0e0}.legacy-list::-webkit-scrollbar-thumb{background:#1e3a70}.legacy-list label{display:flex;align-items:center;gap:3px;line-height:1.9;padding:0 3px;cursor:pointer;color:#6e6e6e}.legacy-list label.sel{background:#1e3a70;color:#fff}.legacy-list input[type=checkbox]{width:10px;height:10px;margin:0;accent-color:#1e3a70;flex:none}.legacy-adv{margin-top:8px;background:#e4e4e4;border:1px solid #c6c6c6;padding:5px}.legacy-adv-toggle{border:0;background:none;color:#1e3a70;font-size:9px;font-weight:700;padding:0;cursor:pointer}.legacy-adv-body{margin-top:5px;background:#fff;border:1px solid #b8b8b8;padding:4px 6px;display:grid;grid-template-columns:repeat(4,1fr);gap:0 14px}.legacy-adv-body input[type=text]{width:42px;font-size:9px;border:1px solid #c0c0c0;padding:1px 2px}.legacy-fieldrow{display:flex;align-items:center;gap:3px;line-height:2}.legacy-fieldrow span{width:52px;flex:none}.legacy-actions{display:flex;gap:6px;margin-top:6px;align-items:center}.legacy-actions button{font-size:9px;padding:2px 10px;background:#e3e3e3;border:1px solid #ababab;color:#5a5a5a}.legacy-actions .legacy-hint{color:#a0a0a0}.legacy table{border-collapse:collapse;width:100%;margin-top:8px;background:#fff}.legacy table th{background:#e8e8ee;border:1px solid #d0d0d0;font-size:8px;color:#8a8a9a;padding:2px 4px;text-transform:uppercase;text-align:left}.legacy table td{border:1px solid #e2e2e2;padding:2px 4px;font-size:9px;white-space:nowrap}.legacy .pin{width:20px;height:20px;font-size:11px}.context-strip{background:var(--c-surface);border-top:1px solid var(--c-border);padding:var(--sp-5);margin-top:auto}.context-strip .inner{max-width:1360px;margin:0 auto;font-size:var(--fs-1);color:var(--c-text-2)}.context-strip a{color:var(--c-primary)}@media (max-width: 900px){.workspace{flex-direction:column;padding:var(--sp-3);gap:var(--sp-3)}.mobile-bar{display:flex;position:sticky;top:0;z-index:30;background:var(--c-bg);padding:var(--sp-2) 0;width:100%}.mobile-filter-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--tap);border:1px solid var(--c-border-strong);border-radius:var(--radius);background:var(--c-surface);font-weight:700;box-shadow:var(--shadow-2)}.badge{background:var(--c-primary);color:#fff;border-radius:999px;font-size:var(--fs-1);padding:1px 8px;font-weight:700}.filters{display:none}.filters.sheet-open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;width:100%;max-height:none;border-radius:0;border:0}.sheet-footer{position:sticky;bottom:0;background:var(--c-surface);border-top:1px solid var(--c-border);padding:var(--sp-3) var(--sp-4);display:flex;gap:var(--sp-3)}.sheet-footer .btn-primary{flex:1;min-height:var(--tap);border:0;border-radius:var(--radius);background:var(--c-primary);color:#fff;font-weight:700;font-size:var(--fs-3)}.close-x{border:1px solid var(--c-border-strong);background:var(--c-surface);border-radius:var(--radius);min-width:var(--tap);min-height:var(--tap);font-size:var(--fs-3)}.table-card{display:none}.cards{display:grid;gap:var(--sp-3)}.dcard{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:var(--sp-4)}.dcard-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-2)}.dcard-title{display:flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:var(--fs-3)}.dcard-title svg{width:20px;height:20px;stroke:var(--c-text-2);fill:none;stroke-width:1.4}.dcard-price{font-weight:700;font-size:var(--fs-3)}.dcard-meta{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.dcard-meta span{font-size:var(--fs-1);color:var(--c-text-2);background:var(--c-bg);border-radius:4px;padding:2px 8px}.pager-note{display:none}}
