:root{--bg:#f4f7fb;--surface:#fff;--surface-soft:#f8fafc;--text:#101828;--muted:#71809a;--line:#e4e9f1;--blue:#2468e8;--blue-light:#5bc0ed;--green:#22a879;--orange:#f47a1f;--violet:#8b5cf6;--ink:#1a2233;--shadow:0 10px 28px rgba(26,47,85,.08);--radius:18px}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 10% -10%,rgba(36,104,232,.08),transparent 25rem),linear-gradient(180deg,#f8faff 0,var(--bg) 34rem);color:var(--text);font-family:"Manrope",sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,label[for]{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid rgba(36,104,232,.22);outline-offset:2px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app-shell{max-width:1540px;margin:0 auto;padding:34px 44px 24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:26px;margin-bottom:54px}.brand{display:flex;align-items:center;gap:16px;color:inherit;text-decoration:none}.brand-mark{color:var(--blue);display:grid;place-items:center}.brand-mark svg{width:37px;height:37px}.brand strong{display:block;font-size:25px;line-height:1.15;letter-spacing:-.8px}.brand small{display:block;color:var(--muted);margin-top:7px;font-size:13px}.header-actions{display:flex;justify-content:flex-end;gap:10px}.button,.icon-button{border:1px solid var(--line);color:var(--text);background:var(--surface);border-radius:12px;min-height:44px;font-weight:700;transition:transform .18s ease,box-shadow .18s ease}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 15px}.button svg{width:18px}.button:hover,.icon-button:hover{transform:translateY(-1px);box-shadow:0 7px 17px rgba(35,54,90,.1)}.button-muted{background:#edf1f6;color:#56647a;border-color:#e0e5ed}.button-dark{color:#fff;background:var(--ink);border-color:var(--ink)}.button-danger{color:var(--orange);background:var(--surface);border-color:color-mix(in srgb,var(--orange) 28%,var(--line))}.icon-button{width:44px;padding:0;font-size:23px;display:grid;place-items:center}
.hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:30px}.eyebrow{margin:0 0 9px;color:var(--blue);font-size:12px;line-height:1;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.eyebrow.orange{color:var(--orange)}h1,h2,h3,p{margin-top:0}h1{margin-bottom:9px;font-size:clamp(34px,4vw,55px);line-height:1.02;letter-spacing:-.045em}h2{margin:0;font-size:25px;letter-spacing:-.025em}.lead{margin:0;max-width:720px;color:var(--muted);font-size:16px;line-height:1.7}.active-filter{border:1px solid #cfe0ff;border-radius:99px;padding:9px 14px;color:var(--blue);background:#eaf1ff;font-size:12px;font-weight:800}.active-filter::after{content:" ×"}
.import-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:18px;margin-bottom:18px}.upload-card,.add-card{min-height:130px;padding:21px 23px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:.2s ease}.upload-card{display:flex;align-items:center;gap:16px}.upload-card:hover,.add-card:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(26,47,85,.12)}.upload-icon{flex:0 0 auto;width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:var(--blue);background:#eaf1ff}.upload-card strong,.add-card strong{display:block;font-size:14px}.upload-card small,.add-card small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.file-row{display:flex;align-items:center;gap:8px;margin-top:14px;min-width:0}.file-row b{flex:0 0 auto;padding:6px 9px;border-radius:8px;background:#edf1f6;color:#56647a;font-size:10px}.file-row em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px;font-style:normal}.add-card{display:flex;align-items:center;justify-content:space-between;text-align:left}.add-card>b{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;color:#fff;background:var(--ink);font-size:24px}
.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.kpi-card,.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi-card{min-height:148px;padding:24px 26px;position:relative;overflow:hidden;transition:.18s ease}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(26,47,85,.12)}.kpi-label{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:700}.kpi-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 12%,transparent)}.kpi-value{display:block;margin-top:22px;color:var(--accent);font-size:36px;line-height:1;font-weight:800;letter-spacing:-1.5px}.kpi-detail{display:block;overflow:hidden;margin-top:9px;color:var(--muted);font-size:10px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.section-block{margin-top:54px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.section-note{color:var(--muted);font-size:12px}.analytics-grid{display:grid;gap:18px}.analytics-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-card{padding:26px;overflow:hidden}.chart-card h3{margin-bottom:5px;font-size:16px}.chart-card>p{margin-bottom:24px;color:var(--muted);font-size:11px}.horizontal-chart{display:grid;gap:12px}.ranked-chart{max-height:430px;overflow-y:auto;padding-right:8px;scrollbar-color:var(--line) transparent;scrollbar-width:thin}.bar-row{display:grid;grid-template-columns:minmax(85px,130px) 1fr auto;align-items:center;gap:10px;font-size:11px}.bar-label{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.bar-track{height:11px;overflow:hidden;border-radius:0 7px 7px 0;background:#edf0f5}.bar-fill{display:block;height:100%;min-width:2px;border-radius:0 7px 7px 0;background:var(--bar,var(--blue));transition:width .45s ease}.bar-value{min-width:32px;text-align:right;font-weight:800}.theme-row{width:100%;padding:0;border:0;background:transparent;text-align:inherit}.theme-row:hover .bar-label,.theme-row.is-active .bar-label{color:var(--blue);font-weight:800}.theme-row.is-dimmed{opacity:.38}.chart-toggle{width:100%;min-height:40px;margin-top:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--blue);font-size:11px;font-weight:800;transition:transform .18s ease,box-shadow .18s ease}.chart-toggle:hover{transform:translateY(-1px);box-shadow:0 7px 17px rgba(35,54,90,.1)}.year-chart{display:flex;align-items:flex-end;gap:8px;min-height:255px;padding-top:24px;overflow-x:auto;border-bottom:1px solid var(--line)}.year-item{display:grid;grid-template-rows:1fr auto;align-items:end;justify-items:center;gap:8px;min-width:35px;height:230px}.year-bar-wrap{display:flex;align-items:flex-end;width:24px;height:190px}.year-bar{display:block;width:100%;min-height:3px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--blue-light),var(--bar,var(--blue)))}.year-label{color:var(--muted);font-size:9px;transform:rotate(-45deg);transform-origin:center;white-space:nowrap}
.catalog-section{margin-top:68px}.catalog-heading{align-items:flex-end}.catalog-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) repeat(3,minmax(150px,210px));gap:10px;margin-bottom:15px}.search-field{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.search-field svg{flex:0 0 auto;width:18px;color:var(--muted)}.search-field input{width:100%;border:0;outline:0;background:transparent;color:var(--text)}.catalog-toolbar select{min-height:46px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font-size:11px;font-weight:700}.set-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.set-table{width:100%;min-width:1080px;table-layout:fixed;border-collapse:collapse}.set-table .col-cover{width:92px}.set-table .col-title{width:auto}.set-table .col-theme{width:180px}.set-table .col-year{width:72px}.set-table .col-qty{width:58px}.set-table .col-condition{width:175px}.set-table .col-purchase{width:132px}.set-table .col-note{width:210px}.set-table .col-action{width:54px}.set-table.is-wishlist .col-theme{width:210px}.set-table.is-wishlist .col-year{width:85px}.set-table.is-wishlist .col-qty{width:68px}.set-table.is-wishlist .col-condition{width:135px}.set-table.is-wishlist .col-note{width:300px}.set-table.is-wishlist th:nth-child(7),.set-table.is-wishlist td:nth-child(7){display:none}.set-table th{padding:13px 11px;border-bottom:1px solid var(--line);color:var(--muted);background:var(--surface-soft);font-size:9px;font-weight:800;letter-spacing:.08em;text-align:left;text-transform:uppercase}.set-table td{padding:11px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:11px}.set-table tbody tr:last-child td{border-bottom:0}.set-table tbody tr{transition:background .16s ease}.set-table tbody tr:hover{background:var(--surface-soft)}.set-table tbody tr:last-child td{border-bottom:0}.set-table tbody tr{transition:background .16s ease}.set-table tbody tr:hover{background:var(--surface-soft)}.set-cover-cell{width:92px}.set-cover-wrap{position:relative;width:68px;height:54px}.set-cover,.set-cover-placeholder{width:68px;height:54px;border-radius:8px;background:var(--surface-soft)}.set-cover{display:block;object-fit:contain}.set-cover-placeholder{display:grid;place-items:center;color:var(--muted);font-size:9px;font-weight:800}.set-cover-placeholder[hidden]{display:none}.set-title{display:grid;gap:3px;min-width:0;padding-right:10px}.set-title strong,.set-title small,.set-theme strong,.set-theme small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.set-title strong{font-size:12px}.set-title small,.set-theme small{color:var(--muted);font-size:9px}.set-theme{display:grid;gap:3px;min-width:0;padding-right:8px}.set-number{color:var(--blue);font-weight:800}.condition-stack{display:flex;flex-wrap:wrap;gap:4px;max-width:180px}.condition-pill{display:inline-flex;align-items:center;min-height:24px;padding:4px 7px;border-radius:7px;background:#eef1f5;color:#56647a;font-size:9px;font-weight:800}.condition-pill[data-condition="new"]{background:#edf3ff;color:#315fba}.condition-pill[data-condition="mint-box"],.condition-pill[data-condition="mint-no-box"]{background:#e9f8f2;color:#13835c}.condition-pill[data-condition="unspecified"]{background:#fff2e7;color:#b05b19}.purchase-price{display:grid;gap:2px;font-weight:800;white-space:nowrap}.purchase-price small{color:var(--muted);font-size:8px}.set-note{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:9px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.set-note.is-empty{display:inline;color:var(--muted)}.row-button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--blue)}.row-button:hover{background:#eaf1ff}.row-button svg{width:15px}.catalog-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px}.catalog-pagination span{min-width:120px;color:var(--muted);font-size:11px;text-align:center}.catalog-pagination button:disabled{opacity:.4;transform:none;box-shadow:none;cursor:default}
footer{display:grid;justify-items:center;gap:16px;margin-top:54px;padding:24px;color:var(--muted);font-size:11px}.footer-meta{display:flex;justify-content:center;gap:11px}.footer-meta span+span::before{content:"·";margin-right:11px}.backup-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:800;box-shadow:0 5px 16px rgba(26,47,85,.05);transition:color .18s ease,transform .18s ease,box-shadow .18s ease}.backup-button svg{width:15px;height:15px}.backup-button:hover{color:var(--blue);transform:translateY(-1px);box-shadow:0 8px 20px rgba(26,47,85,.09)}
dialog{width:min(760px,calc(100% - 32px));padding:0;border:0;border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 30px 90px rgba(16,24,40,.27)}dialog::backdrop{background:rgba(20,29,44,.48);backdrop-filter:blur(4px)}dialog form{padding:28px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:25px}.dialog-heading h2{font-size:27px}.dialog-close{border:0;background:transparent;color:var(--muted);font-size:28px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:grid;gap:7px}.field-wide{grid-column:1/-1}.field span{color:var(--muted);font-size:11px;font-weight:700}.field input,.field select,.field textarea{width:100%;min-height:44px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text)}.field textarea{resize:vertical}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.set-details-dialog{width:min(980px,calc(100% - 32px))}.set-details-layout{display:grid;grid-template-columns:270px 1fr;gap:28px}.set-details-preview{display:grid;align-content:start;gap:16px}.set-details-image{min-height:210px;display:grid;place-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.set-details-image img{display:block;max-width:100%;max-height:250px;object-fit:contain}.set-details-image span{color:var(--muted);font-size:11px}.set-details-facts{display:grid;gap:9px;padding:16px;border-radius:12px;background:var(--surface-soft)}.set-details-facts div{display:flex;justify-content:space-between;gap:14px;font-size:10px}.set-details-facts span{color:var(--muted)}.set-details-facts strong{text-align:right}.set-editor-column,.set-copy-form{display:grid;align-content:start;gap:16px}.set-metadata-editor{border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.set-metadata-editor summary{padding:13px 15px;color:var(--blue);font-size:11px;font-weight:800;cursor:pointer}.set-metadata-fields{padding:2px 15px 15px}.wishlist-card-note{display:grid;gap:10px;align-content:start}.wishlist-card-note .condition-pill{justify-self:start}.wishlist-card-note p{margin:0;color:var(--muted);font-size:11px;line-height:1.65}.toast{position:fixed;z-index:20;right:24px;bottom:24px;max-width:360px;padding:13px 17px;border-radius:11px;background:var(--ink);color:#fff;font-size:12px;box-shadow:0 15px 40px rgba(15,23,42,.25);opacity:0;transform:translateY(12px);pointer-events:none;transition:.22s ease}.toast.is-visible{opacity:1;transform:none}.empty-chart{padding:35px;color:var(--muted);text-align:center;font-size:12px}
body.dark{--bg:#151a22;--surface:#202631;--surface-soft:#252c38;--text:#f2f5fa;--muted:#9ba8ba;--line:#313a48;--ink:#0f141c;--shadow:0 11px 32px rgba(0,0,0,.19);background:radial-gradient(circle at 10% -10%,rgba(50,120,255,.14),transparent 25rem),#151a22}body.dark .button-muted,body.dark .file-row b{background:#262e3a;color:#b0bccd;border-color:#313a48}body.dark .bar-track{background:#2b3340}body.dark .upload-icon{background:#263a60}body.dark .active-filter{background:#263a60;border-color:#35517e}body.dark .condition-pill{background:#2c3542;color:#b0bccd}body.dark .condition-pill[data-condition="new"]{background:#263a60;color:#8eb5ff}body.dark .condition-pill[data-condition="mint-box"],body.dark .condition-pill[data-condition="mint-no-box"]{background:#1d4439;color:#75d8b6}body.dark .condition-pill[data-condition="unspecified"]{background:#493323;color:#f7aa68}body.dark .row-button:hover{background:#263a60}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.import-grid{grid-template-columns:1fr 1fr}.add-card{grid-column:1/-1}.analytics-grid{grid-template-columns:1fr}.catalog-toolbar{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}}
@media(max-width:760px){.app-shell{padding:22px 17px}.topbar{align-items:flex-start;flex-wrap:wrap;margin-bottom:42px}.brand{width:100%}.brand strong{font-size:20px}.brand small{font-size:11px}.header-actions{margin-left:auto}.hero-row{align-items:flex-start;flex-direction:column}.import-grid,.kpi-grid{grid-template-columns:1fr}.add-card{grid-column:auto}h1{font-size:35px}.lead{font-size:13px}.section-note{display:none}.chart-card{padding:20px}.bar-row{grid-template-columns:95px 1fr auto}.catalog-toolbar{grid-template-columns:1fr}.search-field{grid-column:auto}.set-details-layout{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.dialog-actions{flex-wrap:wrap}.dialog-actions .button{flex:1}.footer-meta{flex-wrap:wrap}}

.set-cover,.set-details-image img{cursor:zoom-in;transition:transform .2s ease,box-shadow .2s ease}.set-cover{position:relative;z-index:1}.set-cover:focus-visible,.set-details-image img:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 35%,transparent);outline-offset:3px}.set-image-dialog{width:min(920px,calc(100% - 30px));overflow:visible;background:transparent;box-shadow:none}.set-image-dialog-inner{position:relative;display:grid;justify-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 30px 90px rgba(16,24,40,.32)}.set-image-dialog-inner img{display:block;max-width:100%;max-height:min(78vh,820px);border-radius:10px;object-fit:contain;background:var(--surface-soft)}.set-image-dialog-inner strong{max-width:100%;padding:0 44px 4px;font-size:14px;text-align:center}.set-image-dialog-close{position:absolute;z-index:2;top:25px;right:25px;width:38px;height:38px;display:grid;place-items:center;padding:0;border-radius:50%;background:rgba(16,24,40,.76);color:#fff;font-size:0;line-height:0}.set-image-dialog-close svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;pointer-events:none}

@media(hover:hover){.set-cover:hover{z-index:3;transform:scale(1.12);box-shadow:0 12px 25px rgba(16,24,40,.25)}.set-details-image img:hover{transform:scale(1.025);box-shadow:0 14px 30px rgba(16,24,40,.16)}}

@media(max-width:520px){.set-image-dialog{width:calc(100% - 18px)}.set-image-dialog-inner{padding:10px;border-radius:14px}.set-image-dialog-inner strong{padding:0 42px 4px;font-size:12px}.set-image-dialog-close{top:17px;right:17px}}

.catalog-tabs{display:inline-flex;gap:5px;margin-bottom:15px;padding:5px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}
.catalog-tab{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:11px;font-weight:800;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.catalog-tab span{display:grid;min-width:22px;height:22px;padding:0 6px;place-items:center;border-radius:7px;background:var(--surface);font-size:9px}
.catalog-tab.is-active{background:var(--surface);color:var(--blue);box-shadow:0 5px 14px rgba(35,54,90,.08)}
.wanted-pill{background:#fff2e7;color:#b05b19}
.catalog-empty{display:grid;justify-items:center;gap:8px;padding:46px 24px;text-align:center}
.catalog-empty strong{font-size:13px}
.catalog-empty small{max-width:510px;color:var(--muted);font-size:10px;line-height:1.7}
.wishlist-empty-mark{display:grid;width:46px;height:46px;margin-bottom:3px;place-items:center;border-radius:14px;background:#fff2e7;color:var(--orange)}
.wishlist-empty-mark svg{width:21px;height:21px}
body.dark .wanted-pill,body.dark .wishlist-empty-mark{background:#493323;color:#f7aa68}

.destination-choice{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0;padding:5px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}
.destination-choice legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.destination-choice label{position:relative;display:grid;min-height:40px;place-items:center;border-radius:9px;color:var(--muted);font-size:11px;font-weight:800}
.destination-choice input{position:absolute;opacity:0;pointer-events:none}
.destination-choice label:has(input:checked){background:var(--surface);color:var(--blue);box-shadow:0 5px 14px rgba(35,54,90,.08)}
.destination-choice label:has(input:focus-visible){outline:3px solid rgba(36,104,232,.22);outline-offset:2px}
.lookup-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.lookup-button{min-width:72px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);color:var(--blue);font-size:10px;font-weight:800;transition:background .18s ease,box-shadow .18s ease}
.lookup-button:hover{background:#eaf1ff;box-shadow:0 5px 14px rgba(35,54,90,.08)}
.lookup-button:disabled{opacity:.55;cursor:wait}
.lookup-status{overflow:hidden;color:var(--muted);font-size:9px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.lookup-status.is-success{color:var(--green)}
.lookup-status.is-error{color:var(--orange)}
body.dark .lookup-button:hover{background:#263a60}
.catalog-toolbar.is-wishlist{grid-template-columns:minmax(280px,1fr) repeat(2,minmax(150px,210px))}
.set-table.is-wishlist .col-purchase{display:none;width:0}
.set-table.is-wishlist .purchase-column{display:none}
.note-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0}
.note-actions .row-button{justify-self:end}
@media(max-width:1100px){.catalog-toolbar.is-wishlist{grid-template-columns:1fr 1fr}.catalog-toolbar.is-wishlist .search-field{grid-column:1/-1}}
@media(max-width:760px){.catalog-toolbar.is-wishlist{grid-template-columns:1fr}.catalog-toolbar.is-wishlist .search-field{grid-column:auto}}
