:root{--bg:#131722;--bg-panel:#0f1219;--bg-dark:#0a0d14;--bg-hover:#181c28;--bg-active:#1a1e2e;--bg-input:#1e222d;--border:#2a2e39;--border-inner:#1e222d;--text:#d1d4dc;--text-dim:#9598a1;--text-faint:#555;--white:#fff;--blue:#2962ff;--teal:#26a69a;--orange:#f5a623;--red:#ef5350}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Trebuchet MS,sans-serif}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.main{flex:1;display:flex;overflow:hidden}.hdr{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:9px 16px;display:flex}.hdr h1{color:var(--white);font-size:13px;font-weight:700}.sub{color:var(--text-dim);font-size:11px}.spacer{flex:1}.ts{color:var(--text-faint);font-size:10px}.sidebar{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:420px;display:flex;overflow:hidden}.sidebar-hidden{display:none}.grades{gap:6px;display:flex}.grade{flex:1}.glbl{border-radius:3px;align-items:center;margin-bottom:3px;padding:1px 5px;font-size:9px;font-weight:700;display:inline-flex}.g9{color:var(--blue);background:#2962ff21;border:1px solid #2962ff54}.g10{color:var(--teal);background:#26a69a21;border:1px solid #26a69a54}.gval{color:var(--text);font-size:12px;font-weight:600}.gsub{color:var(--text-dim);font-size:10px}.up{color:var(--teal)}.down{color:var(--red)}.na{color:var(--text-faint)}.sidebar-actions{border-top:1px solid var(--border);flex-shrink:0}.action-row{border-bottom:1px solid var(--border-inner);display:flex}.action-btn{color:var(--text-dim);cursor:pointer;text-align:center;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;flex:1;padding:9px 4px;font-size:10px;transition:all .1s;overflow:hidden}.action-btn:hover{background:var(--bg-hover);color:var(--text)}.action-btn+.action-btn{border-left:1px solid var(--border-inner)}.action-btn.running{color:var(--orange)}.action-btn:disabled{cursor:default}.fetch-panel{background:var(--bg-dark);max-height:0;transition:max-height .2s;overflow:hidden}.fetch-panel.open{max-height:200px}.fetch-log{height:180px;color:var(--text-dim);padding:8px 12px;font-family:Courier New,monospace;font-size:10px;line-height:1.6;overflow-y:auto}.fetch-log::-webkit-scrollbar{width:3px}.fetch-log::-webkit-scrollbar-thumb{background:var(--border)}.log-ok{color:var(--teal)}.log-err{color:var(--red)}.log-hdr{color:var(--orange)}.chart-area{flex-direction:column;flex:1;display:flex;overflow:hidden}.price-chart{flex-direction:column;height:100%;display:flex}.chart-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:8px 14px;display:flex}.chart-title{color:var(--white);white-space:nowrap;text-overflow:ellipsis;max-width:280px;font-size:12px;font-weight:600;overflow:hidden}.chart-stats{flex:1;gap:16px;display:flex}.cs-block{align-items:center;gap:6px;display:flex}.cs-price{color:var(--text);font-size:13px;font-weight:600}.cs-meta{color:var(--text-dim);font-size:10px}.chart-modes{flex-shrink:0;align-items:center;gap:4px;display:flex}.chart-ma-label{color:var(--text-faint);margin-right:2px;font-size:10px}.chart-ma-sep{background:var(--border);width:1px;height:14px;margin:0 4px}.mode-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:3px;padding:4px 10px;font-size:11px;transition:all .12s}.mode-btn:hover{background:var(--bg-hover);color:var(--text)}.mode-btn.active{border-color:var(--blue);color:var(--blue);background:#2962ff26}.chart-panels{flex:1;min-height:0;position:relative}.chart-single{position:absolute;inset:0}.chart-nodata-zone{pointer-events:none;background:repeating-linear-gradient(135deg,#ffffff0b 0 8px,#ffffff17 8px 16px);border-left:1px dashed #ffffff4d;display:none;position:absolute;top:0;bottom:0}.chart-nodata-label{color:var(--text-faint);letter-spacing:.03em;white-space:nowrap;font-size:9px;position:absolute;top:6px;left:6px;overflow:hidden}.panel-label{color:var(--text-faint);letter-spacing:.05em;text-transform:uppercase;pointer-events:none;z-index:2;background:#131722b3;border-radius:2px;padding:1px 4px;font-size:9px;position:absolute;left:8px}.compare-select{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:3px;outline:none;max-width:180px;padding:3px 6px;font-size:11px}.compare-select:focus{border-color:var(--blue)}.score-panel{border-bottom:1px solid var(--border-inner);background:var(--bg-panel);flex-shrink:0;padding:8px 14px}.score-loading{color:var(--text-faint);font-size:11px}.score-header{align-items:center;gap:10px;margin-bottom:6px;display:flex}.score-total{color:var(--white);font-size:20px;font-weight:700}.score-max{color:var(--text-faint);font-size:11px;font-weight:400}.score-verdict{letter-spacing:.08em;background:#ffffff0f;border-radius:3px;padding:2px 7px;font-size:10px;font-weight:700}.score-price{color:var(--text-dim);font-size:12px}.score-grade-badge{color:var(--text-faint);border:1px solid var(--border);border-radius:3px;margin-left:auto;padding:1px 5px;font-size:9px}.score-bars{flex-direction:column;gap:4px;display:flex}.score-bar-row{align-items:center;gap:6px;display:flex}.score-bar-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;width:64px;font-size:9px}.score-bar-track{background:var(--bg-hover);border-radius:2px;flex:1;height:4px;overflow:hidden}.score-bar-fill{background:var(--blue);border-radius:2px;height:100%;transition:width .3s}.score-bar-val{color:var(--text-dim);text-align:right;flex-shrink:0;width:34px;font-size:9px}.score-bar-detail{color:var(--text-faint);flex-shrink:0;width:90px;font-size:9px}.compare-panel{border-top:1px solid var(--border);flex-shrink:0;max-height:160px;display:flex;overflow:hidden}.compare-col{border-right:1px solid var(--border-inner);flex:1;overflow:hidden}.compare-col:last-child{border-right:none}.compare-col-header{border-top:2px solid #0000;align-items:center;gap:8px;padding:6px 10px 4px;display:flex}.compare-col-label{color:var(--white);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.compare-col-grade{color:var(--text-faint);border:1px solid var(--border);border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:9px}.compare-col-body{padding:0 10px 6px}.compare-col-loading{color:var(--text-faint);padding:10px;font-size:11px}.compare-score-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.compare-score-total{color:var(--white);font-size:16px;font-weight:700}.compare-verdict{letter-spacing:.06em;background:#ffffff0d;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:700}.compare-metrics{flex-wrap:wrap;gap:8px;margin-bottom:5px;display:flex}.cmp-metric{flex-direction:column;display:flex}.cmp-metric-label{color:var(--text-faint);text-transform:uppercase;font-size:8px}.cmp-metric-val{color:var(--text);font-size:11px;font-weight:500}.compare-bars{flex-direction:column;gap:3px;display:flex}.cmp-bar-row{align-items:center;gap:4px;display:flex}.cmp-bar-label{color:var(--text-faint);text-transform:uppercase;flex-shrink:0;width:52px;font-size:8px}.cmp-bar-track{background:var(--bg-hover);border-radius:2px;flex:1;height:3px;overflow:hidden}.cmp-bar-fill{background:var(--blue);border-radius:2px;height:100%;transition:width .3s}.cmp-bar-val{color:var(--text-faint);text-align:right;flex-shrink:0;width:20px;font-size:8px}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:3px;display:inline-block}.overview{flex-direction:column;flex:1;gap:24px;padding:20px 28px;display:flex;overflow-y:auto}.overview::-webkit-scrollbar{width:4px}.overview::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.overview-loading{color:var(--text-faint);flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.ov-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:11px;font-weight:700}.ov-grade-row{gap:12px;display:flex}.ov-grade-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;flex:1;gap:6px;padding:12px 14px;display:flex}.ov-grade-stat{align-items:baseline;gap:6px;display:flex}.ov-stat-val{color:var(--white);font-size:18px;font-weight:700}.ov-stat-label{color:var(--text-faint);font-size:10px}.ov-table{border-collapse:collapse;width:100%;font-size:11px}.ov-table th{text-align:left;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding:5px 10px;font-size:9px}.ov-table td{border-bottom:1px solid var(--border-inner);color:var(--text);padding:7px 10px}.ov-table tr:last-child td{border-bottom:none}.ov-table tr:hover td{background:var(--bg-hover)}.ov-strength-bar{background:var(--bg-hover);border-radius:2px;width:80px;height:4px;overflow:hidden}.ov-strength-fill{background:var(--orange);border-radius:2px;height:100%}.ov-empty{color:var(--text-faint);text-align:center;padding:40px;font-size:13px}.ov-title-row{align-items:center;gap:8px;margin-bottom:10px;display:flex}.ov-title-row .ov-title{margin-bottom:0}.ov-ts{color:var(--text-faint);flex:1;font-size:10px}.action-btn.inline{height:auto;padding:2px 8px;font-size:10px}.ov-subtitle{color:var(--text-faint);margin-top:-7px;margin-bottom:10px;font-size:10px}.ge-loading,.ge-empty{color:var(--text-faint);padding:16px 0;font-size:12px}.ge-legend{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.ge-legend-intro{color:var(--text-dim);background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;grid-column:1/-1;padding:8px 12px;font-size:11px;line-height:1.5}.ge-legend-intro strong{color:var(--white)}.ge-legend-intro code{background:var(--bg-input);color:var(--teal);border-radius:3px;padding:0 4px;font-size:10px}.ge-legend-item{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:11px;display:flex}.ge-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:3px}.ge-legend-item.q-opp .ge-legend-dot{background:var(--teal)}.ge-legend-item.q-just .ge-legend-dot{background:var(--orange)}.ge-legend-item.q-over .ge-legend-dot{background:var(--red)}.ge-legend-item.q-neu .ge-legend-dot{background:var(--text-faint)}.ge-legend-item strong{color:var(--white);margin-bottom:2px;font-size:11px;display:block}.ge-legend-item span{color:var(--text-dim);font-size:10px;line-height:1.4}.ge-th-sub{color:var(--text-faint);letter-spacing:0;text-transform:none;font-size:9px;font-weight:400}.ge-filters{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.ge-pill{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-dim);cursor:pointer;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600;transition:opacity .15s}.ge-pill.active{border-color:var(--blue);color:var(--white);background:#2962ff26}.ge-pill.q-opp{border-color:var(--teal)}.ge-pill.q-opp.active{color:var(--teal);background:#26a69a33}.ge-pill.q-just{border-color:var(--orange)}.ge-pill.q-just.active{color:var(--orange);background:#f5a62326}.ge-pill.q-over{border-color:var(--red)}.ge-pill.q-over.active{color:var(--red);background:#ef535026}.ge-minpop-label{color:var(--text-faint);margin-left:6px;font-size:10px}.ge-minpop-sel{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:2px 4px;font-size:10px}.ge-table{table-layout:auto}.ge-name{max-width:180px;color:var(--white);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.ge-num{color:var(--text-faint);margin-left:5px;font-size:10px}.ge-set{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:10px;overflow:hidden}.ge-ratio{font-size:12px;font-weight:700}.ge-ratio-prix{color:var(--orange)}.ge-ratio-pop{color:#7c86f5}.ge-pct-ratio{color:var(--white);font-size:13px}.ge-pct{color:var(--text-dim)}.ge-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:8px;padding:1px 7px;font-size:9px;font-weight:700;display:inline-block}.ge-badge.q-opp{color:var(--teal);background:#26a69a33}.ge-badge.q-just{color:var(--orange);background:#f5a62326}.ge-badge.q-neu{color:var(--text-dim);background:#9598a11a}.ge-badge.q-over{color:var(--red);background:#ef535026}.ge-row.q-opp td:first-child{border-left:2px solid var(--teal)}.ge-row.q-just td:first-child{border-left:2px solid var(--orange)}.ge-row.q-over td:first-child{border-left:2px solid var(--red)}.pop-table-wrap{overflow-x:auto}.pop-table .pop-rank{width:32px;color:var(--text-faint);text-align:right}.pop-table .pop-subject{max-width:220px}.pop-table .pop-name{color:var(--white);font-weight:500;display:block}.pop-table .pop-set{color:var(--text-faint);margin-top:1px;font-size:10px;display:block}.pop-table .pop-num{text-align:right;color:var(--text-dim);white-space:nowrap}.pop-table .pop-zero{color:var(--text-faint)}.pop-table .pop-total-cell{min-width:120px}.pop-bar-wrap{align-items:center;gap:6px;display:flex}.pop-bar-fill{background:var(--teal);border-radius:2px;min-width:2px;height:4px;transition:width .3s}.pop-bar-label{color:var(--text-dim);white-space:nowrap;font-size:10px}.pokedex{flex:1;display:flex;overflow:hidden}.pokedex-loading,.pokedex-empty{color:var(--text-dim);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:40px;font-size:13px;display:flex}.pokedex-hint{color:var(--text-faint);font-size:11px}.pokedex-left{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:420px;display:flex;overflow:hidden}.pokedex-search-bar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:10px 12px;display:flex}.pokedex-input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;flex:1;padding:6px 10px;font-size:12px}.pokedex-input:focus{border-color:var(--blue)}.pokedex-clear{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:13px}.pokedex-clear:hover{color:var(--text)}.pokedex-list{flex:1;overflow-y:auto}.pokedex-list::-webkit-scrollbar{width:4px}.pokedex-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pokedex-hint-row{color:var(--text-faint);text-align:center;padding:20px 16px;font-size:12px}.pokedex-row{cursor:pointer;border-bottom:1px solid var(--border-inner);align-items:center;gap:10px;padding:7px 14px;display:flex}.pokedex-row:hover{background:var(--bg-hover)}.pokedex-row.selected{background:var(--bg-active);border-left:2px solid var(--blue)}.pokedex-num{color:var(--text-faint);font-variant-numeric:tabular-nums;flex-shrink:0;width:38px;font-size:10px}.pokedex-name-fr{color:var(--white);flex:1;font-size:12px}.pokedex-name-en{color:var(--text-dim);text-align:right;width:100px;font-size:11px}.pokedex-right{flex-direction:column;flex:1;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.pokedex-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;padding:20px 24px;display:flex}.pokedex-card-empty{color:var(--text-faint);justify-content:center;align-items:center;min-height:80px;font-size:13px}.pokedex-card-num{color:var(--text-faint);font-size:11px}.pokedex-card-names{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pokedex-card-fr{color:var(--white);font-size:22px;font-weight:700}.pokedex-card-arrow{color:var(--text-faint);font-size:18px}.pokedex-card-en{color:var(--teal);font-size:18px}.pokedex-assoc{flex-direction:column;gap:8px;display:flex}.pokedex-assoc-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:700}.pokedex-link-msg{border-radius:4px;padding:6px 10px;font-size:12px}.pokedex-link-msg.ok{color:var(--teal);background:#1a2e1a}.pokedex-link-msg.err{color:var(--red);background:#2e1a1a}.catalog-panel{flex-direction:column;flex:1;gap:14px;padding:20px 24px;display:flex;overflow:hidden}.catalog-header{flex-shrink:0;align-items:center;gap:10px;display:flex}.catalog-title{color:var(--white);font-size:13px;font-weight:700}.catalog-meta{color:var(--text-faint);font-size:11px}.catalog-filters{flex-wrap:wrap;flex-shrink:0;gap:8px;display:flex}.catalog-select{background:var(--bg-input);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;padding:5px 8px;font-size:12px}.catalog-select:focus{border-color:var(--blue);outline:none}.catalog-set-select{flex:1;min-width:180px}.catalog-year-input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:4px;width:72px;padding:5px 8px;font-size:12px}.catalog-year-input:focus{border-color:var(--blue);outline:none}.catalog-search-wrap{flex:1;min-width:160px;position:relative}.catalog-search-inner{display:flex;position:relative}.catalog-search{background:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text);border-radius:4px;flex:1;padding:5px 10px;font-size:12px}.catalog-search.poke-selected{color:var(--teal);border-color:var(--teal)}.catalog-search:focus{border-color:var(--blue);outline:none}.catalog-search-clear{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.catalog-search-clear:hover{color:var(--text)}.catalog-poke-drop{background:var(--bg-panel);border:1px solid var(--border);z-index:50;border-radius:4px;max-height:240px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto}.catalog-poke-opt{cursor:pointer;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.catalog-poke-opt:hover{background:var(--bg-hover)}.catalog-poke-fr{color:var(--text);font-weight:500}.catalog-poke-en{color:var(--text-dim);font-size:11px}.catalog-loading{color:var(--text-faint);align-items:center;gap:8px;padding:12px 0;font-size:12px;display:flex}.catalog-hint,.catalog-empty{color:var(--text-faint);padding:16px 0;font-size:12px;line-height:1.6}.catalog-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));align-content:start;gap:10px;display:grid;overflow-y:auto}.catalog-grid::-webkit-scrollbar{width:4px}.catalog-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.catalog-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:6px;padding:8px;transition:border-color .15s;display:flex}.catalog-card-img{aspect-ratio:.72;object-fit:cover;background:var(--bg-dark);border-radius:4px;width:100%;display:block}.catalog-card-info{flex-direction:column;gap:2px;display:flex}.catalog-card-name{color:var(--white);align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.catalog-card-name>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.catalog-holo-badge{letter-spacing:.03em;background:linear-gradient(90deg,#a78bfa,#60a5fa,#34d399);-webkit-text-fill-color:transparent;-webkit-background-clip:text;border:1px solid #a78bfa55;border-radius:3px;flex-shrink:0;padding:0 4px;font-size:9px;font-weight:700;line-height:1.6}.catalog-card-sub{color:var(--text-faint);font-size:10px;line-height:1.3}.catalog-price-stats{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.catalog-price-grade{background:var(--bg-input);border-radius:3px;align-items:baseline;gap:2px;padding:1px 5px;font-size:10px;line-height:1.5;display:flex}.cpg-label{color:var(--text-dim);font-weight:600}.cpg-val{color:var(--teal);font-weight:700}.cpg-n{color:var(--text-faint);font-size:9px}.cpg-refresh{color:var(--text-faint);align-self:center;font-size:9px}.catalog-tag-watch{color:var(--teal);font-size:10px}.catalog-card-actions{flex-wrap:wrap;gap:4px;display:flex}.catalog-link{border-radius:3px;padding:3px 6px;font-size:10px;font-weight:600;text-decoration:none;transition:opacity .15s}.catalog-link:hover{opacity:.75}.psa-link{color:#6a9df0;background:#1a233e}.alt-link{color:var(--teal);background:#1a2e1a}.catalog-add-btn{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:3px;margin-left:auto;padding:3px 6px;font-size:10px;font-weight:600;transition:opacity .15s}.catalog-add-btn:hover{opacity:.8}.catalog-no-img{aspect-ratio:.72;background:var(--bg-dark);color:var(--text-faint);border-radius:4px;justify-content:center;align-items:center;font-size:20px;display:flex}.lang-toggle{border:1px solid var(--border);border-radius:4px;display:flex;overflow:hidden}.lang-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:3px 10px;font-size:11px;font-weight:700;transition:background .15s,color .15s}.lang-btn.active{background:var(--blue);color:#fff}.lang-btn:not(.active):hover{background:var(--bg-hover);color:var(--text)}.catalog{background:var(--bg-panel);flex-direction:column;flex:1;display:flex;overflow:hidden}.catalog-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:10px 14px;display:flex}.catalog-stats{color:var(--text-dim);font-size:12px}.catalog-body{flex:1;display:flex;overflow:hidden}.catalog-col{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.catalog-series{width:max-content;min-width:180px;max-width:260px}.catalog-sets{width:max-content;min-width:200px;max-width:300px}.resize-handle{cursor:col-resize;z-index:2;background:0 0;flex-shrink:0;width:5px;transition:background .15s}.resize-handle:hover,.resize-handle.dragging{background:var(--teal,#26c6da);opacity:.5}.catalog-col-search{border:none;border-bottom:1px solid var(--border);color:var(--text);background:0 0;outline:none;flex-shrink:0;width:100%;padding:6px 10px;font-size:12px}.catalog-col-search::placeholder{color:var(--text-faint)}.catalog-col-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);background:var(--bg-panel);z-index:1;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px;font-size:10px;font-weight:700;display:flex;position:sticky;top:0}.catalog-row{cursor:pointer;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:6px;padding:8px 14px;font-size:13px;transition:background .1s;display:flex}.catalog-row:hover{background:var(--bg-hover)}.catalog-row.active{color:var(--blue);background:#1a233e}.catalog-row-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.catalog-row-count{color:var(--text-faint);flex-shrink:0;font-size:10px}.catalog-hint-row{color:var(--text-faint);padding:14px 12px;font-size:12px}.catalog-top-label{color:var(--text-faint);padding:6px 12px 2px;font-size:11px}.catalog-load-more-row{justify-content:center;padding:16px 0 8px;display:flex}.catalog-load-more-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:6px 20px;font-size:12px}.catalog-load-more-btn:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.catalog-load-more-btn:disabled{opacity:.5;cursor:default}.catalog-set-fetch-btn{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:11px;line-height:1.4;transition:background .1s,color .1s}.catalog-set-fetch-btn:hover:not(:disabled){background:var(--blue);border-color:var(--blue);color:#fff}.catalog-set-fetch-btn:disabled{opacity:.4;cursor:not-allowed}.catalog-cards{flex:1;padding:12px;overflow-y:auto}.catalog-cards::-webkit-scrollbar{width:4px}.catalog-cards::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.catalog-card{background:var(--bg);border:1px solid var(--border);cursor:default;border-radius:6px;flex-direction:column;gap:5px;transition:border-color .15s;display:flex;overflow:hidden}.catalog-card:hover{border-color:var(--blue)}.catalog-card-img{aspect-ratio:.72;object-fit:cover;width:100%;display:block}.catalog-card-no-img{aspect-ratio:.72;background:var(--bg-dark);width:100%;color:var(--text-faint);justify-content:center;align-items:center;font-size:18px;display:flex}.catalog-card-info{flex-direction:column;gap:3px;padding:6px 8px 8px;display:flex}.catalog-card-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.catalog-card-ja{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.catalog-card-sub{color:var(--text-dim);font-size:11px}.catalog-card-psa{color:#34d399;letter-spacing:.02em;font-size:11px;font-weight:600}.catalog-card{cursor:pointer}.catalog-card.in-watchlist{border-color:var(--teal)}.catalog-watchlist-btn{border:1px solid var(--border);width:100%;color:var(--text-faint);cursor:pointer;background:0 0;border-radius:4px;margin-top:5px;padding:4px 0;font-size:10px;transition:all .15s}.catalog-watchlist-btn:hover{border-color:var(--teal);color:var(--teal)}.catalog-watchlist-btn.in{border-color:var(--teal);color:var(--teal);background:#26a69a18}.catalog-search-bar{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:6px;padding:10px 12px;display:flex}.catalog-search-input{background:var(--bg-dark);border:1px solid var(--border);width:100%;color:var(--text);box-sizing:border-box;border-radius:6px;outline:none;padding:6px 10px;font-size:13px}.catalog-search-input:focus{border-color:var(--blue)}.catalog-search-row{align-items:center;gap:6px;display:flex}.catalog-sort-select{background:var(--bg-dark);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:6px;flex-shrink:0;padding:4px 8px;font-size:11px}.catalog-sort-select:focus{border-color:var(--blue);outline:none}.catalog-scope-chips{gap:4px;display:flex}.catalog-scope-chip{background:var(--bg-dark);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:20px;padding:3px 10px;font-size:11px}.catalog-scope-chip:hover{border-color:var(--text-dim);color:var(--text)}.catalog-scope-chip.active{background:var(--blue);border-color:var(--blue);color:#fff}.catalog-vintage-list{background:var(--bg-dark);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:3px;max-height:160px;padding:6px 10px;display:flex;overflow-y:auto}.catalog-vintage-item{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;font-size:11px;display:flex}.catalog-vintage-item:hover{color:var(--text)}.catalog-vintage-item input{accent-color:var(--blue)}.card-modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.card-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:92%;max-width:560px;max-height:88vh;padding:24px;display:flex;position:relative;overflow-y:auto}.card-modal-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:16px;line-height:1;position:absolute;top:12px;right:12px}.card-modal-close:hover{color:var(--white);background:var(--border)}.card-modal-body{flex:1;align-items:flex-start;gap:20px;min-height:0;display:flex;overflow:hidden}.card-modal-img{aspect-ratio:.72;object-fit:cover;border-radius:8px;flex-shrink:0;width:160px}.card-modal-no-img{aspect-ratio:.72;background:var(--bg-dark);border-radius:8px;flex-shrink:0;width:160px}@keyframes img-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.catalog-card-img,.card-modal-img{background:linear-gradient(90deg, var(--bg-dark) 25%, var(--border) 50%, var(--bg-dark) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite img-shimmer}.card-modal-info{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;overflow-y:auto}.card-modal-name{color:var(--white);flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.card-modal-hot{color:#fb923c;font-size:11px;font-weight:600}.catalog-year{color:var(--text-faint);letter-spacing:.02em;margin-right:4px;font-size:10px;font-weight:600}.card-modal-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.card-modal-num{color:var(--text-dim);font-size:11px}.card-modal-set{color:var(--text-dim);background:var(--bg-input);border:1px solid var(--border-inner);border-radius:4px;padding:1px 6px;font-size:11px}.card-modal-serie{color:var(--text-faint);background:var(--bg-dark);border:1px solid var(--border-inner);border-radius:4px;padding:1px 6px;font-size:10px}.card-modal-prices-block{flex-direction:column;gap:6px;display:flex}.card-modal-no-prices{color:var(--text-faint);font-size:12px;font-style:italic}.card-modal-prices-featured{gap:8px;display:flex}.card-modal-price-feature{background:var(--bg-input);border:1px solid var(--border-inner);border-radius:8px;flex-direction:column;flex:1;gap:2px;padding:10px 12px;display:flex}.card-modal-price-feature.p10{background:#14532d22;border-color:#22c55e44}.card-modal-price-feature.p9{background:#1e3a5f22;border-color:#3b82f644}.card-modal-pf-label{color:var(--text-faint);letter-spacing:.04em;font-size:10px;font-weight:700}.card-modal-pf-price{color:var(--white);font-size:22px;font-weight:800;line-height:1.1}.card-modal-price-feature.p10 .card-modal-pf-price{color:#4ade80}.card-modal-price-feature.p9 .card-modal-pf-price{color:#60a5fa}.card-modal-pf-stats{border-top:1px solid var(--border-inner);flex-direction:column;gap:1px;margin-top:5px;padding-top:5px;display:flex}.card-modal-pf-vol{color:var(--text-faint);font-size:10px}.card-modal-pf-pop1{color:var(--orange);font-size:10px;font-weight:600}.card-modal-prices-secondary{flex-wrap:wrap;gap:5px;display:flex}.card-modal-price-sec{background:var(--bg-input);border:1px solid var(--border-inner);border-radius:5px;align-items:center;gap:5px;padding:4px 9px;display:flex}.card-modal-ps-label{color:var(--text-faint);font-size:10px}.card-modal-ps-val{color:var(--text);font-size:12px;font-weight:700}.card-modal-date{color:var(--text-faint);flex-direction:column;gap:3px;font-size:10px;display:flex}.card-modal-date-row{align-items:center;gap:6px;display:flex}.card-modal-sources{gap:6px;display:flex}.card-modal-source-chip{border:1px solid var(--border);background:var(--bg-input);border-radius:6px;align-items:center;gap:5px;padding:5px 10px;font-size:11px;display:flex}.card-modal-source-chip.disabled{opacity:.45}.card-modal-source-chip.altxyz.on{background:#14532d22;border-color:#22c55e55}.cms-dot{background:var(--text-faint);border-radius:50%;flex-shrink:0;width:6px;height:6px}.card-modal-source-chip.on .cms-dot{background:#22c55e}.cms-label{color:var(--text-dim);font-weight:600}.card-modal-source-chip.on .cms-label{color:#4ade80}.cms-action{color:var(--text-faint);margin-left:2px;font-size:11px;text-decoration:none}.cms-action:hover{color:var(--blue)}.card-modal-vol-history{flex-direction:column;gap:5px;display:flex}.card-modal-vol-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700}.card-modal-vol-table{flex-direction:column;gap:1px;display:flex}.cmvt-fetched{color:var(--text-faint);font-weight:400}.cmvt-header{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-inner);grid-template-columns:60px 80px 54px 64px 70px;padding:3px 6px;font-size:9px;font-weight:700;display:grid}.cmvt-row{border-radius:3px;grid-template-columns:60px 80px 54px 64px 70px;padding:3px 6px;font-size:10px;transition:background .1s;display:grid}.cmvt-row:hover{background:var(--bg-hover)}.cmvt-week{color:var(--text-dim);font-variant-numeric:tabular-nums}.cmvt-vol{color:var(--white);text-align:right;font-weight:600}.cmvt-price{color:var(--teal);text-align:right;font-variant-numeric:tabular-nums}.cmvt-pop1{color:var(--orange);text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.cmvt-date{color:var(--text-faint);text-align:right}.catalog-card-grades{flex-direction:column;gap:4px;margin-top:4px;display:flex}.catalog-grade-row{flex-direction:column;gap:1px;font-size:11px;display:flex}.cgr-top{align-items:baseline;gap:7px;display:flex}.cgr-label{min-width:40px;color:var(--text-faint);font-size:10px;font-weight:700}.g10 .cgr-label{color:#4ade80}.g9 .cgr-label{color:#60a5fa}.cgr-price{color:var(--white);font-size:12px;font-weight:700}.g10 .cgr-price{color:#4ade80}.g9 .cgr-price{color:#60a5fa}.cgr-bot{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;padding-left:40px;font-size:10px;overflow:hidden}.cgr-pct{color:var(--orange);font-weight:700}.cgr-pop-ratio-row{align-items:center;gap:5px;margin-top:4px;display:flex}.cgr-pop-ratio-label{color:var(--text-faint);flex-shrink:0;font-size:9px}.cgr-pop-ratio-val{flex-shrink:0;font-size:10px}.cgr-pc-bar{background:var(--border);border-radius:2px;flex:1;height:3px;overflow:hidden}.cgr-pc-fill{border-radius:2px;height:100%;transition:width .3s}.cgr-main-ratio{margin-top:6px}.cgr-pop-ratio-val{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:9px;font-weight:700}.cgr-nopop{font-style:italic}.cgr-pop{color:var(--text-faint);font-size:10px}.pf-no-pop{color:var(--text-faint);font-size:9px;font-style:italic}.card-modal-pf-nopop{color:var(--text-faint);border-top:1px solid var(--border-inner);margin-top:4px;padding-top:4px;font-size:9px;font-style:italic}.card-modal-source-chip.psa.on{background:#7c2d1222;border-color:#f59e0b55}.card-modal-source-chip.psa.on .cms-dot{background:#f59e0b}.card-modal-source-chip.psa.on .cms-label{color:#fbbf24}.card-modal-link-section{flex-direction:column;gap:6px;display:flex}.card-modal-link-divider{background:var(--border-inner);height:1px;margin:2px 0}.card-modal-links-badge.psa.linked{color:#fbbf24}.card-modal-psa-hint{color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:6px;font-size:10px;display:flex}.card-modal-psa-search{color:var(--orange);white-space:nowrap;font-weight:600;text-decoration:none}.card-modal-psa-search:hover{text-decoration:underline}.card-modal-links{background:var(--bg-dark);border:1px solid var(--border-inner);border-radius:7px;flex-direction:column;gap:7px;margin-top:2px;padding:10px 12px;display:flex}.card-modal-links-header{justify-content:space-between;align-items:center;display:flex}.card-modal-links-badge{letter-spacing:.04em;color:var(--text-faint);text-transform:uppercase;font-size:10px;font-weight:700;transition:color .2s}.card-modal-links-badge.linked{color:#22c55e}.card-modal-link-del{cursor:pointer;color:var(--text-faint);background:0 0;border:none;border-radius:4px;padding:2px 5px;font-size:11px;line-height:1;transition:color .15s,background .15s}.card-modal-link-del:hover{color:var(--red);background:#ef535022}.card-modal-link-row{align-items:center;gap:6px;display:flex}.card-modal-link-input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:5px;outline:none;flex:1;padding:5px 9px;font-size:11px;transition:border-color .15s}.card-modal-link-input:focus{border-color:var(--blue)}.card-modal-link-input::placeholder{color:var(--text-faint)}.card-modal-link-save{background:var(--bg-input);border:1px solid var(--border);color:var(--text-faint);cursor:pointer;border-radius:5px;flex-shrink:0;padding:5px 11px;font-size:11px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.card-modal-link-save.ready{color:var(--white);border-color:var(--blue);background:#2962ff22}.card-modal-link-save:disabled{opacity:.4;cursor:not-allowed}.card-modal-link-actions{align-items:center;gap:6px;display:flex}.card-modal-link-open{color:var(--blue);background:#2962ff15;border:1px solid #2962ff44;border-radius:5px;padding:4px 9px;font-size:11px;font-weight:600;text-decoration:none;transition:background .15s}.card-modal-link-open:hover{background:#2962ff30}.card-modal-link-fetch{background:var(--bg-input);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:5px;padding:4px 10px;font-size:11px;font-weight:600;transition:color .15s,border-color .15s}.card-modal-link-fetch:hover:not(:disabled){color:var(--white);border-color:var(--teal)}.card-modal-link-fetch.running{opacity:.6;cursor:not-allowed}.card-modal-link-fetch:disabled{opacity:.4;cursor:not-allowed}.card-modal-alt-link{color:var(--text-dim);background:var(--bg-input);border:1px solid var(--border);border-radius:5px;align-items:center;gap:5px;margin-top:4px;padding:5px 10px;font-size:11px;font-weight:600;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.card-modal-alt-link:hover{color:var(--white);border-color:var(--blue)}.price-led{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.price-led.fresh{background:#22c55e;box-shadow:0 0 4px #22c55e88}.price-led.ok{background:#facc15;box-shadow:0 0 4px #facc1588}.price-led.stale{background:#f97316;box-shadow:0 0 4px #f9731688}.price-led.old{background:#ef4444;box-shadow:0 0 4px #ef444488}.stale-label{color:var(--text-faint);margin-left:3px;font-size:9px}.fetch-warn{cursor:help;margin-left:3px;font-size:10px}.fetch-warn.warn-empty{color:var(--text-dim)}.fetch-warn.warn-refresh{color:var(--orange)}.catalog-empty{color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.catalog-hint{color:var(--text-faint);font-size:12px}.catalog-loading{color:var(--text-faint);flex:1;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.catalog-loading:before{content:"";border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite catalog-spin}@keyframes catalog-spin{to{transform:rotate(360deg)}}.action-btn.sm{padding:3px 8px;font-size:11px}.catalog-not-loaded{color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex}.catalog-src-tabs{gap:2px;display:flex}.catalog-src-tab{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:11px;transition:all .15s}.catalog-src-tab:hover{color:var(--text);border-color:var(--text-dim)}.catalog-src-tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}.catalog-src-tab.disabled{opacity:.35;cursor:not-allowed}.catalog-src-tab.disabled:hover{color:var(--text-dim);border-color:var(--border)}.catalog-import-btns{flex-direction:column;align-items:center;gap:14px;display:flex}.catalog-import-option{flex-direction:column;align-items:center;gap:4px;display:flex}.action-btn.secondary{background:var(--bg-hover);color:var(--text-dim);border:1px solid var(--border)}.action-btn.secondary:hover{color:var(--text);border-color:var(--text-dim)}.catalog-sets-psa-progress{align-items:center;gap:6px;display:flex}.catalog-psa-badge{color:#e57373;letter-spacing:.03em;background:#e5393512;border:1px solid #e5393540;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700}.catalog-psa-badge.complete{color:#22c55e;background:#22c55e12;border-color:#22c55e60}.catalog-psa-filter-btn{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:3px;padding:1px 7px;font-size:10px;font-weight:600;transition:all .1s}.catalog-psa-filter-btn:hover{color:var(--white);border-color:var(--text-dim)}.catalog-psa-filter-btn.active{color:#e57373;background:#e5393520;border-color:#e53935}.catalog-psa-btn{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;letter-spacing:.04em;background:0 0;border-radius:3px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:700;line-height:1.5;transition:background .1s,color .1s,border-color .1s}.catalog-psa-btn:hover{color:#fff;background:#e53935;border-color:#e53935}.catalog-psa-btn.linked{color:#e53935;background:#e5393520;border-color:#e53935}.catalog-psa-btn.linked:hover{color:#fff;background:#e53935}.catalog-pop-btn{color:#1565c0!important;background:#1565c015!important;border-color:#1565c0!important}.catalog-pop-btn:hover:not(:disabled){color:#fff!important;background:#1565c0!important}.catalog-pop-btn.running,.catalog-pop-btn:disabled{opacity:.45;cursor:not-allowed}.catalog-pop-all-btn{color:#ce93d8;cursor:pointer;background:#6a1b9a15;border:1px solid #6a1b9a;border-radius:4px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:600;transition:background .15s,color .15s}.catalog-pop-all-btn:hover:not(:disabled){color:#fff;background:#6a1b9a}.catalog-pop-all-btn.running,.catalog-pop-all-btn:disabled{opacity:.45;cursor:not-allowed}.catalog-refresh-btn{color:#81c784;cursor:pointer;text-transform:none;letter-spacing:0;background:#2e7d3215;border:1px solid #2e7d32;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:600;transition:background .15s,color .15s}.catalog-refresh-btn:hover:not(:disabled){color:#fff;background:#2e7d32}.catalog-refresh-btn.running,.catalog-refresh-btn:disabled{opacity:.45;cursor:not-allowed}.psa-set-filters{gap:4px;padding:4px 8px 6px;display:flex}.psa-set-search{flex:1;min-width:0}.psa-set-sidebar{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.psa-set-sidebar-list{flex:1;overflow-y:auto}.psa-set-sidebar-list::-webkit-scrollbar{width:4px}.psa-set-sidebar-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.serie-complete-btn{opacity:.3}.serie-complete-btn:hover{opacity:1}.serie-complete-btn.active{opacity:1;color:var(--teal)}.serie-hidden{opacity:.45}.serie-show-hidden-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-faint);cursor:pointer;border-radius:3px;padding:1px 5px;font-size:10px;line-height:1.4}.serie-show-hidden-btn:hover{border-color:var(--border-bright);color:var(--text)}.serie-show-hidden-btn.active{color:var(--teal);border-color:var(--teal)}.catalog-card-footer{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.psa-card-fetch-btn{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:3px;padding:1px 5px;font-size:10px;line-height:1.4;transition:color .15s,border-color .15s,background .15s}.psa-card-fetch-btn:hover:not(:disabled){color:var(--white);border-color:var(--border-bright);background:var(--bg-card)}.psa-card-fetch-btn:disabled{opacity:.35;cursor:default}.psa-fetch-price-group{flex-shrink:0;align-items:center;gap:2px;display:flex}.psa-skip-days-input{text-align:center;background:var(--bg-card);border:1px solid var(--border);width:42px;color:var(--text);border-radius:4px;padding:3px 4px;font-size:12px}.psa-skip-days-input:focus{border-color:var(--border-bright);outline:none}.psa-skip-days-label{color:var(--text-faint);padding-right:4px;font-size:11px}.psa-bulk-year-bar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;padding:6px 8px;display:flex}.psa-bulk-year-label{color:var(--text-faint);font-size:12px}.psa-bulk-year-input{text-align:center;background:var(--bg-card);border:1px solid var(--border);width:58px;color:var(--text);border-radius:4px;padding:3px 4px;font-size:12px}.psa-bulk-year-input:focus{border-color:var(--border-bright);outline:none}.catalog-set-fetch-btn.disabled{opacity:.35;cursor:default}.card-modal-no-img{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;flex-shrink:0;width:140px;min-width:140px;height:196px}.img-badge{letter-spacing:.5px;border-radius:4px;padding:2px 5px;font-size:10px;font-weight:700}.img-badge-404{color:#ef5350;background:#ef535020;border:1px solid #ef535060}.img-badge-noimg{color:#aaa;background:#78787820;border:1px solid #78787860}.img-badge-missing{color:#ff9800;background:#ff980020;border:1px solid #ff980060}.psa-modal-hist{border-top:1px solid var(--border-inner);flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;display:flex}.psa-modal-hist-header{align-items:center;gap:10px;display:flex}.psa-hist-view-tabs{gap:2px;margin-left:auto;display:flex}.psa-hist-tab{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;transition:background .15s,color .15s}.psa-hist-tab:hover{background:var(--bg-card);color:var(--text)}.psa-hist-tab.active{background:var(--bg-card);color:var(--white);border-color:var(--border-bright)}.psa-modal-chart-wrap{width:100%;min-width:0;height:360px}.psa-spec-chart-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.psa-spec-back-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:5px;padding:4px 10px;font-size:12px;font-weight:600;transition:color .15s,border-color .15s}.psa-spec-back-btn:hover{color:var(--white);border-color:var(--border-bright)}.psa-spec-chart-name{color:var(--white);flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.psa-spec-variety{color:var(--text-dim);font-weight:400}.psa-spec-num,.psa-spec-set{color:var(--text-faint);font-size:12px;font-weight:400}.card-modal-psa-suggest-btn{text-align:left;color:#e57373;cursor:pointer;background:#e5393515;border:1px solid #e5393540;border-radius:5px;width:100%;margin-bottom:8px;padding:7px 12px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s;display:block}.card-modal-psa-suggest-btn:hover{color:#ef5350;background:#e5393525;border-color:#e53935}.psa-linker-backdrop{z-index:400;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.psa-linker-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;width:480px;max-width:95vw;max-height:80vh;padding:20px;display:flex}.psa-linker-header{justify-content:space-between;align-items:center;display:flex}.psa-linker-title{color:var(--white);font-size:14px;font-weight:700}.psa-linker-close{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.psa-linker-close:hover{color:var(--white)}.psa-linker-set-name{color:var(--text-dim);font-size:12px}.psa-linker-current{background:#e5393510;border:1px solid #e5393530;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.psa-linker-current-label{color:var(--text-faint)}.psa-linker-current-link{color:#e57373;font-weight:600;text-decoration:none}.psa-linker-current-link:hover{text-decoration:underline}.psa-linker-current-count{color:var(--text-faint);margin-left:auto}.psa-linker-unlink{color:#e57373;cursor:pointer;background:0 0;border:1px solid #e5393560;border-radius:4px;flex-shrink:0;padding:2px 9px;font-size:11px;transition:background .1s}.psa-linker-unlink:hover{background:#e5393530}.psa-linker-popurl-row{align-items:center;gap:6px;padding:6px 0 0;display:flex}.psa-linker-popurl-input{font-size:11px}.psa-linker-popurl-badge{color:var(--blue);white-space:nowrap;background:#2962ff22;border:1px solid #2962ff44;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px}.psa-linker-search{gap:6px;display:flex}.psa-linker-input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:5px;outline:none;flex:1;padding:6px 10px;font-size:12px}.psa-linker-input:focus{border-color:var(--blue)}.psa-linker-search-btn{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:5px;flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:600;transition:opacity .15s}.psa-linker-search-btn:disabled{opacity:.5;cursor:not-allowed}.psa-linker-suggestions{flex-direction:column;gap:4px;display:flex;overflow-y:auto}.psa-linker-row{border:1px solid var(--border);background:var(--bg-input);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;transition:border-color .1s;display:flex}.psa-linker-row:hover{border-color:var(--text-faint)}.psa-linker-row-info{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.psa-linker-row-year{color:var(--text-faint);flex-shrink:0;font-size:11px}.psa-linker-row-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.psa-linker-row-count{color:var(--text-faint);font-size:11px}.psa-linker-row-setname{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.psa-linker-row-score{color:var(--teal);flex-shrink:0;margin-left:auto;font-size:11px;font-weight:600}.psa-linker-global-badge{color:#42a5f5;vertical-align:middle;background:#1565c020;border:1px solid #1565c040;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:10px}.psa-linker-row-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.psa-linker-row-ext{color:var(--text-faint);border-radius:4px;padding:3px 5px;font-size:13px;text-decoration:none;transition:color .1s}.psa-linker-row-ext:hover{color:var(--white)}.psa-linker-row-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600;transition:background .1s,color .1s,border-color .1s}.psa-linker-row-btn:hover:not(:disabled){color:#fff;background:#e53935;border-color:#e53935}.psa-linker-row-btn.active{color:#e57373;background:#e5393520;border-color:#e53935}.psa-linker-row-btn:disabled{opacity:.4;cursor:not-allowed}.psa-linker-empty{color:var(--text-faint);text-align:center;padding:12px 0;font-size:12px}.psa-linker-error{color:#ef5350}.admin-panel{flex:1;min-height:0;display:flex;overflow:hidden}.admin-col{flex-direction:column;display:flex;overflow:hidden}.admin-col-series{flex-shrink:0;width:200px}.admin-col-detail{flex:1;min-width:0;overflow-y:auto}.admin-col-avail{flex-shrink:0;width:380px}.admin-col-header{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:10px 12px 8px;font-size:12px;font-weight:700;display:flex}.admin-assign-hint{color:var(--teal);text-transform:none;letter-spacing:0;font-size:10px;font-weight:400}.admin-series-list{flex:1;overflow-y:auto}.admin-serie-item{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:7px 10px;font-size:13px;display:flex}.admin-serie-item:hover{background:var(--hover)}.admin-serie-item.active{background:var(--blue-dark,#0d2137)}.admin-serie-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.admin-serie-name-input{background:var(--bg2,var(--bg-panel));border:1px solid var(--teal);min-width:0;color:var(--white);border-radius:3px;outline:none;flex:1;padding:2px 6px;font-size:13px}.admin-serie-actions{flex-shrink:0;gap:2px;display:flex}.admin-serie-actions button{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:3px;padding:1px 4px;font-size:11px}.admin-serie-actions button:hover:not(:disabled){color:var(--white);border-color:var(--text-dim)}.admin-serie-actions button:disabled{opacity:.3;cursor:not-allowed}.admin-new-serie{border-top:1px solid var(--border);gap:4px;padding:8px;display:flex}.admin-new-serie input{background:var(--bg2,var(--bg-panel));border:1px solid var(--border);color:var(--white);border-radius:4px;flex:1;padding:4px 7px;font-size:12px}.admin-new-serie button{color:#fff;cursor:pointer;background:#1565c0;border:none;border-radius:4px;padding:4px 8px;font-size:13px;font-weight:700}.admin-new-serie button:hover{background:#1976d2}.admin-empty{text-align:center;color:var(--text-faint);padding:24px;font-size:12px}.admin-error{color:#fff;z-index:999;background:#b71c1c;border-radius:6px;padding:8px 18px;font-size:13px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.admin-section-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;padding:8px 12px 4px;font-size:11px;font-weight:700;display:flex}.admin-assign-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:3px;margin-left:auto;padding:2px 7px;font-size:10px}.admin-assign-btn:hover{border-color:var(--teal);color:var(--teal)}.admin-slot-row{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:5px 12px;font-size:12px;display:flex}.admin-slot-row.admin-slot-hidden{opacity:.4}.admin-slot-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.admin-slot-date{color:var(--text-faint);flex-shrink:0;font-size:10px}.admin-slot-actions{flex-shrink:0;gap:2px;display:flex}.admin-slot-actions button{color:var(--text-faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;padding:1px 4px;font-size:11px}.admin-slot-actions button:hover{color:var(--white);border-color:var(--border)}.admin-slot-menu-wrap{position:relative}.admin-slot-menu{background:var(--bg2,var(--bg-panel));border:1px solid var(--border);z-index:100;border-radius:4px;min-width:160px;position:absolute;top:100%;right:0}.admin-slot-menu button{text-align:left;width:100%;color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:11px;display:block}.admin-slot-menu button:hover{background:var(--hover);color:var(--white)}.admin-subsection{margin:0}.admin-subsection-header{background:var(--bg2,var(--bg-panel));border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;padding:5px 12px;font-size:11px;font-weight:700;display:flex}.admin-subsection-header:hover{background:var(--hover)}.admin-sub-name{flex:1}.admin-sub-count{color:var(--text-faint);font-size:10px}.admin-sub-hidden-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:0 3px;font-size:13px}.admin-sub-hidden-btn.active{opacity:1}.admin-new-sub{border-top:1px solid var(--border);align-items:center;gap:6px;padding:8px 12px;display:flex}.admin-new-sub input{background:var(--bg2,var(--bg-panel));border:1px solid var(--border);color:var(--white);border-radius:4px;flex:1;padding:4px 7px;font-size:12px}.admin-new-sub button{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:4px 8px;font-size:11px}.admin-new-sub button:hover{border-color:var(--teal);color:var(--teal)}.admin-sub-hidden-check{color:var(--text-faint);white-space:nowrap;align-items:center;gap:3px;font-size:11px;display:flex}.admin-avail-filters{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:6px;padding:8px;display:flex}.admin-avail-filters input{background:var(--bg2,var(--bg-panel));border:1px solid var(--border);color:var(--white);border-radius:4px;padding:4px 8px;font-size:12px}.admin-source-chips{gap:4px;display:flex}.admin-chip{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:10px}.admin-chip.active{border-color:var(--teal);color:var(--teal)}.admin-avail-list{flex:1;overflow-y:auto}.admin-avail-item{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 10px;display:flex}.admin-avail-info{flex:1;min-width:0}.admin-avail-name{word-break:break-word;font-size:12px;display:block}.admin-avail-meta{color:var(--text-faint);font-size:10px}.admin-avail-item button{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:3px;flex-shrink:0;padding:2px 8px;font-size:14px;font-weight:700}.admin-avail-item button:hover:not(:disabled){color:#42a5f5;border-color:#42a5f5}.admin-avail-item button:disabled{opacity:.3;cursor:not-allowed}.catalog-custom-badge{color:var(--teal);margin-left:4px;font-size:11px}.catalog-subsection{margin:0}.catalog-subsection-header{background:var(--bg2,var(--bg-panel));border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-faint);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:5px 10px;font-size:11px;font-weight:700;display:flex}.catalog-subsection-header:hover{background:var(--hover)}.catalog-row-sub{padding-left:28px!important}.catalog-sub-toggle{opacity:.6;font-size:9px}.catalog-sub-name{flex:1}.catalog-subrow{padding-left:20px!important}.catalog-body-2col{display:flex}.catalog-body-2col .catalog-series-tree{flex-shrink:0;width:220px;min-width:180px}.catalog-row-serie-hdr{background:var(--bg2,var(--bg-panel));cursor:pointer;-webkit-user-select:none;user-select:none;gap:6px;font-weight:600}.catalog-row-serie-hdr:hover{background:var(--hover)}.catalog-row-serie-hdr.expanded{color:var(--teal)}.catalog-row-defaut{border-top:1px solid var(--border);margin-top:2px;font-style:italic}.catalog-tree-arrow{color:var(--text-faint);flex-shrink:0;font-size:9px}.catalog-tree-sets{background:0 0}.catalog-row-set{font-size:12px;padding-left:18px!important}.admin-avail-group{border-bottom:1px solid var(--border)}.admin-avail-group-header{cursor:pointer;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;background:var(--bg2,var(--bg-panel));-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:700;display:flex}.admin-avail-group-header:hover{background:var(--hover)}.admin-avail-group-name{flex:1}.admin-avail-group-count{color:var(--text-faint);text-transform:none;font-size:10px;font-weight:400}.admin-avail-group .admin-avail-item{border-bottom:1px solid var(--border)}.admin-avail-group .admin-avail-item:last-child{border-bottom:none}.chart-area{overflow-y:auto}.spec-dashboard{flex-direction:column;gap:10px;padding:12px 16px 24px;display:flex}.kpi-row{flex-wrap:wrap;gap:10px;display:flex}.kpi-card{background:var(--bg-panel);border:1px solid var(--border);border-top:3px solid var(--border);border-radius:6px;flex:190px;min-width:190px;padding:10px 12px}.kpi-card-wide{flex:240px}.kpi-card-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.kpi-grade{color:var(--text);letter-spacing:.3px;font-size:12px;font-weight:700}.kpi-weak{color:var(--orange);border:1px solid #f5a62366;border-radius:3px;padding:0 4px;font-size:10px}.kpi-value{color:var(--white);margin-bottom:6px;font-size:22px;font-weight:700}.kpi-grid{grid-template-columns:auto 1fr;gap:3px 12px;font-size:11px;display:grid}.kpi-grid>span:nth-child(odd){color:var(--text-dim)}.kpi-grid>span:nth-child(2n){color:var(--text);text-align:right}.kpi-dim{color:var(--text-faint);font-size:10px}.kpi-na{color:var(--text-faint)}.kpi-verdict{margin-top:1px;font-size:10px;display:block}.spec-toolbar{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.spec-charts{flex-direction:column;display:flex}.spec-chart{width:100%;position:relative}.spec-chart-price{height:360px}.spec-chart-small{height:140px}.spec-chart-small.with-time{height:170px}.spec-chart-label{color:var(--text-dim);margin:8px 0 3px;font-size:10px}.spec-sales-table td,.spec-sales-table th{padding:3px 8px;font-size:11px}.sale-outlier td{color:var(--text-faint);text-decoration:line-through}.sale-outlier td:last-child{color:var(--red);text-decoration:none}.min-value-field{border-bottom:1px solid var(--border-inner);gap:8px;padding:8px 12px}.min-value-field .psa-skip-days-label{color:var(--text-dim);white-space:nowrap;padding-right:0;font-size:12px}.min-value-field .psa-skip-days-input{text-align:right;flex:1;min-width:90px;max-width:160px;padding:6px 10px;font-size:14px}.spec-tip{z-index:20;pointer-events:none;border:1px solid var(--border);max-width:340px;color:var(--text);background:#0a0d14f0;border-radius:5px;padding:6px 9px;font-size:11px;line-height:1.5;display:none;position:absolute}.spec-tip .tip-head{color:var(--white);margin-bottom:2px;font-weight:700}.spec-tip .tip-dim{color:var(--text-dim)}.spec-tip .tip-warn{color:var(--orange)}.spec-tip .tip-sep{border-top:1px solid var(--border);color:var(--text-dim);margin-top:4px;padding-top:3px}.spec-tip .tip-out{opacity:.6;text-decoration:line-through}.market-banner{color:var(--orange);border:1px solid #f5a62366;border-radius:5px;align-items:center;gap:10px;margin:6px 0 10px;padding:8px 12px;font-size:12px;display:flex}.market-hint{color:var(--text-dim);margin:6px 0;font-size:11px}.market-filter{width:180px;margin-left:4px}.market-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.market-table tr.clickable{cursor:pointer}.market-table tr.clickable:hover td{background:var(--bg-hover)}.market-table tr.selected td{background:var(--bg-active)}.market-table td,.market-table th{padding:4px 10px;font-size:12px}.overview .kpi-row{margin-bottom:10px}.entity-row{flex-wrap:wrap;gap:12px;margin:8px 0;display:flex}.entity-picker{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;flex:360px;padding:8px 10px}.entity-title{color:var(--text-dim);margin-bottom:6px;font-size:12px}.entity-title b{color:var(--text)}.entity-select{flex:1;min-width:200px}.entity-search{margin-top:6px;position:relative}.entity-search input{width:100%}.entity-results{z-index:30;background:var(--bg-dark);border:1px solid var(--border);border-radius:4px;max-height:280px;position:absolute;left:0;right:0;overflow-y:auto}.entity-result{cursor:pointer;padding:5px 8px;font-size:12px}.entity-result:hover{background:var(--bg-hover)}.compare-verdict{border:1px solid var(--border);color:var(--text);border-radius:5px;margin:8px 0;padding:8px 12px;font-size:12px}.compare-verdict.signal{border-color:#26a69a99}.market-table tr.pair-signal td{background:#26a69a14}.vm-summary{flex-wrap:wrap;align-items:center;gap:22px;margin:8px 0 12px;display:flex}.vm-grade-toggle{gap:4px;display:flex}.vm-stat{flex-direction:column;max-width:220px;display:flex}.vm-effects{flex-wrap:wrap;gap:16px;margin-bottom:12px;display:flex}.vm-effects-col{flex:380px;min-width:0}.vm-chips{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.vm-chip{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-dim);cursor:pointer;border-radius:10px;padding:2px 7px;font-size:10px}.vm-chip b{color:var(--text);font-weight:600}.vm-chip.active{border-color:var(--blue);color:var(--white);background:#2962ff26}.vm-check{color:var(--text-dim);cursor:pointer;align-items:center;gap:4px;font-size:10px;display:flex}.vm-basket{color:var(--text-dim);margin-bottom:8px;font-size:12px}.vm-basket strong{color:var(--white)}.vm-table{width:100%}.vm-table td{vertical-align:top}.vm-row{cursor:pointer}.vm-card{max-width:300px}.vm-card-name{color:var(--text)}.vm-variety{color:var(--text-dim);font-size:10px}.vm-table .kpi-weak{margin-left:6px}.vm-factors{flex-wrap:wrap;gap:3px;display:flex}.vm-factor{background:var(--bg-input);color:var(--text-dim);white-space:nowrap;border-radius:3px;padding:0 5px;font-size:10px}.vm-factor.up{color:var(--teal)}.vm-factor.down{color:var(--red)}.vm-caveat{margin-top:8px}.vm-card-box{flex-basis:100%}.vm-card-grade{margin-top:6px}.vm-card-grade .vm-factors{margin-top:4px}.vm-tag{border:1px solid var(--border);color:var(--text-dim);border-radius:3px;padding:0 5px;font-size:10px}@media (width<=700px){.vm-table th:nth-child(5),.vm-table td:nth-child(5),.vm-table th:nth-child(7),.vm-table td:nth-child(7){display:none}}.gc-history{margin:6px 0 12px}.gc-history td,.gc-history th{text-align:center}.gc-history td:first-child,.gc-history th:first-child{text-align:left}.gc-badge{border:1px solid var(--border);white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600}.gc-psa10{color:var(--teal);border-color:#26a69a80}.gc-psa9{color:var(--orange);border-color:#f5a62380}.gc-neutral{color:var(--text-dim)}.kpi-span{color:var(--text-dim);grid-column:1/-1;font-size:10px;line-height:1.4}.pop-status{color:var(--text-dim);align-items:center;gap:8px;margin-left:auto;font-size:11px;display:flex}.pop-status.due{color:var(--orange)}
