:root{--bg: #0c111d;--bg2: #111827;--panel: #161e31;--panel2: #1c2640;--line: #2a3554;--line2: #364368;--text: #ece6d6;--muted: #8f98b3;--faint: #5d6684;--gold: #e2b357;--gold2: #f6d68c;--gold-ink: #2a1d05;--ok: #63d49c;--danger: #ef7a6c;--c-clashmas: #4fbf7a;--c-anniversary: #ec7fb0;--c-halloween: #f28c3d;--c-lunar: #ea5a4f;--c-event: #a184f2;--c-special: #5fb8e8;--c-shop: #9aa5c4;--c-league: #e2b357;--c-regular: #7d8aa8;--radius: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:radial-gradient(1200px 600px at 80% -10%,rgba(226,179,87,.1),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(95,120,220,.1),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--gold2)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.container{max-width:1240px;margin:0 auto;padding:0 20px 40px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:#0c111dd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(54,67,104,.6)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{width:40px;height:40px;border-radius:11px;flex:none;display:grid;place-items:center;background:linear-gradient(145deg,#2b3657,#151c2e);border:1px solid var(--line2);box-shadow:inset 0 0 12px #e2b35740}.brand-mark img{width:30px;height:30px;object-fit:contain}.brand-name{white-space:nowrap;font-weight:800;font-size:18px;letter-spacing:.06em;color:var(--gold2)}.brand-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-actions{display:flex;gap:8px;align-items:center}.btn{border:1px solid var(--line2);background:var(--panel2);padding:8px 14px;border-radius:10px;font-weight:600;white-space:nowrap;transition:border-color .15s,background .15s,transform .1s}.btn:hover{border-color:var(--gold)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-gold{background:linear-gradient(180deg,var(--gold2),var(--gold));color:var(--gold-ink);border-color:#f7dc9c;box-shadow:0 4px 14px #e2b35747}.btn-gold:hover{filter:brightness(1.05)}.btn-lg{padding:12px 22px;font-size:16px;border-radius:12px}.link-btn{background:none;border:0;padding:0;color:var(--faint);font-size:13px;text-decoration:underline;margin-top:6px}.link-btn:hover{color:var(--danger)}.select{background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:8px 10px;max-width:180px}.search{flex:1 1 240px;min-width:0;background:var(--panel);border:1px solid var(--line2);border-radius:10px;padding:9px 12px;outline:none}.search:focus,.select:focus,textarea:focus{border-color:var(--gold);outline:none}.seg{display:inline-flex;background:var(--panel);border:1px solid var(--line2);border-radius:10px;padding:3px}.seg button{background:none;border:0;padding:6px 12px;border-radius:7px;color:var(--muted);white-space:nowrap}.seg button.on{background:var(--panel2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line2)}.welcome{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:center;padding:48px 0 36px}.eyebrow{font-size:12px;letter-spacing:.22em;color:var(--gold);font-weight:700}.welcome h1{font-size:clamp(30px,4.4vw,50px);line-height:1.15;margin:12px 0 14px;letter-spacing:.02em}.welcome p{color:var(--muted);max-width:520px;margin:0 0 24px}.welcome-actions{display:flex;gap:12px;flex-wrap:wrap}.shelf{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px;border-radius:20px;background:linear-gradient(180deg,#1c2640b3,#111827b3);border:1px solid var(--line);box-shadow:var(--shadow)}.shelf-item{aspect-ratio:1;border-radius:14px;position:relative;display:grid;place-items:center;background:radial-gradient(circle at 50% 75%,rgba(226,179,87,.22),transparent 65%),var(--panel);border:1px solid var(--line);animation:rise .6s both ease-out}.shelf-item:first-child{grid-column:span 2;grid-row:span 2}.shelf-item img{position:absolute;top:11%;right:11%;bottom:11%;left:11%;width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}.shelf-item span{position:absolute;bottom:6px;right:8px;font-size:11px;color:var(--gold);font-weight:700}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.summary{display:grid;grid-template-columns:minmax(300px,1fr) 1.4fr;gap:18px;margin:26px 0 8px}.summary-main{display:flex;gap:20px;align-items:center;padding:20px;border-radius:18px;background:linear-gradient(160deg,#1d2745,#141b2d);border:1px solid var(--line)}.summary-text{min-width:0}.tag{margin:2px 0 4px;font-size:26px;letter-spacing:.04em;font-variant-numeric:tabular-nums}.meta{font-size:13px;color:var(--muted)}.meta-strong{margin-top:8px;font-size:14px}.meta-strong b{color:var(--gold2)}.ring{position:relative;width:116px;height:116px;flex:none}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:9}.ring-bg{stroke:#26304d}.ring-fg{stroke:var(--gold);stroke-linecap:round;transition:stroke-dashoffset .8s ease;filter:drop-shadow(0 0 6px rgba(226,179,87,.45))}.ring-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-text b{font-size:30px;line-height:1;color:var(--gold2);font-variant-numeric:tabular-nums}.ring-text b+span{position:absolute;top:40px;right:22px;font-size:13px;color:var(--gold)}.ring-text small{font-size:11px;color:var(--muted);margin-top:4px;letter-spacing:.1em}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{text-align:left;padding:16px;border-radius:16px;background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:10px;--c: var(--gold);transition:border-color .15s,transform .15s}.stat:hover{border-color:var(--c);transform:translateY(-2px)}.stat-tree{--c: var(--c-clashmas)}.stat-obstacle{--c: var(--c-halloween)}.stat-deco{--c: var(--c-event)}.stat-label{color:var(--muted);font-size:13px}.stat-num b{font-size:28px;color:var(--text);font-variant-numeric:tabular-nums}.stat-num span{color:var(--faint);margin-left:2px}.bar{height:6px;border-radius:6px;background:#252f4b;overflow:hidden}.bar i{display:block;height:100%;background:var(--c);border-radius:6px;transition:width .6s ease}.notice{margin:14px 0 0;padding:12px 14px;border-radius:12px;border:1px dashed rgba(226,179,87,.5);background:#e2b35712;font-size:13px;color:var(--muted)}.notice b{color:var(--gold2)}.notice code{display:inline-block;margin:2px 4px;padding:1px 6px;border-radius:6px;background:var(--panel2);color:var(--text)}.tabs{display:flex;gap:6px;margin-top:26px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line)}.tabs::-webkit-scrollbar{display:none}.tab{background:none;border:0;padding:10px 14px 12px;white-space:nowrap;color:var(--muted);font-weight:600;position:relative}.tab:hover{color:var(--text)}.tab.on{color:var(--gold2)}.tab.on:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--gold);border-radius:2px}.tab-count{margin-left:6px;font-size:12px;color:var(--faint);font-weight:500;font-variant-numeric:tabular-nums}.tab.on .tab-count{color:var(--gold)}.tab-hint{margin:10px 0 0;font-size:13px;color:var(--faint)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;align-items:center}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{--c: var(--muted);background:transparent;border:1px solid var(--line2);color:var(--muted);padding:5px 12px;border-radius:999px;font-size:13px}.chip.on{border-color:var(--c);color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent)}.result-line{margin:16px 0 10px;font-size:13px;color:var(--faint)}.empty{padding:60px 0;text-align:center;color:var(--faint)}.cat-clashmas{--c: var(--c-clashmas)}.cat-anniversary{--c: var(--c-anniversary)}.cat-halloween{--c: var(--c-halloween)}.cat-lunar{--c: var(--c-lunar)}.cat-event{--c: var(--c-event)}.cat-special{--c: var(--c-special)}.cat-shop{--c: var(--c-shop)}.cat-league{--c: var(--c-league)}.cat-regular{--c: var(--c-regular)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px}.card{--c: var(--gold);position:relative;text-align:left;display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:var(--radius);background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);transition:transform .15s,border-color .15s,box-shadow .15s;min-width:0}.card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 70%,var(--line));box-shadow:var(--shadow)}.card.owned{border-color:color-mix(in srgb,var(--c) 38%,var(--line))}.card.owned:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:radial-gradient(120% 60% at 50% 100%,color-mix(in srgb,var(--c) 16%,transparent),transparent 70%)}.card.missing{background:linear-gradient(180deg,#161d2f,#121827)}.card.missing .card-name{color:var(--muted)}.card-top{display:flex;gap:6px;flex-wrap:wrap;min-height:20px}.pill{--c: var(--muted);font-size:11px;padding:1px 8px;border-radius:999px;font-weight:600;white-space:nowrap;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}.pill-bb{--c: #6fc3d9}.pill-size{--c: var(--muted);font-variant-numeric:tabular-nums}.muted{color:var(--faint);margin-left:4px}.other-hits{margin-left:6px}.link-chip{background:none;border:1px solid var(--line2);color:var(--gold2);border-radius:999px;padding:1px 10px;margin-left:6px;font-size:12px}.link-chip:hover{border-color:var(--gold)}.thumb{aspect-ratio:1;width:100%;margin:4px 0 6px;border-radius:12px;display:grid;place-items:center;background:radial-gradient(circle at 50% 78%,rgba(255,220,150,.16),transparent 62%),#10172a;border:1px solid rgba(54,67,104,.6);overflow:hidden}.thumb{position:relative}.thumb img{position:absolute;top:9%;right:9%;bottom:9%;left:9%;width:82%;height:82%;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,0,0,.5))}.card:hover .thumb img{transform:scale(1.06)}.thumb.dim{background:#0f1424}.thumb img{transition:transform .2s,filter .2s,opacity .2s}.thumb.dim img{filter:grayscale(1) brightness(.45) contrast(.9);opacity:.55}.card.missing:hover .thumb.dim,.card.missing:focus-visible .thumb.dim{background:#10172a}.card.missing:hover .thumb.dim img,.card.missing:focus-visible .thumb.dim img{filter:drop-shadow(0 6px 8px rgba(0,0,0,.5));opacity:1}.card.missing:hover .card-name{color:var(--text)}.missing-tag{position:absolute;left:8px;bottom:8px;z-index:1;font-size:11px;padding:1px 8px;border-radius:999px;color:var(--muted);background:#0c111dc7;border:1px dashed var(--line2);opacity:0;transition:opacity .2s}.card.missing:hover .missing-tag,.card.missing:focus-visible .missing-tag{opacity:1}.thumb-fallback{font-size:22px;color:var(--faint);font-weight:700}.card-name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-en{font-size:11.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-foot{margin-top:6px;display:flex;justify-content:space-between;align-items:baseline;gap:6px}.count{font-weight:800;color:var(--gold2);font-variant-numeric:tabular-nums}.count small{color:var(--faint);font-weight:500}.lack{font-size:12px;color:var(--faint)}.year{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#05080fb8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;animation:fade .15s ease-out}@keyframes fade{0%{opacity:0}}.dialog{position:relative;width:min(620px,100%);max-height:calc(100vh - 32px);overflow:auto;background:linear-gradient(180deg,#1c2541,#151c30);border:1px solid var(--line2);border-radius:20px;padding:24px;box-shadow:0 30px 80px #0000008c}.dialog h2{margin:0 0 12px;font-size:22px}.close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:10px;background:var(--panel);border:1px solid var(--line2);font-size:20px;line-height:1;color:var(--muted)}.close:hover{color:var(--text);border-color:var(--gold)}.steps{margin:0 0 14px;padding-left:20px;color:var(--muted);font-size:14px}.steps b{color:var(--text)}.drop textarea{width:100%;height:190px;resize:vertical;background:#0d1323;border:1px dashed var(--line2);border-radius:12px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:#cfd6ea}.drop.over textarea{border-color:var(--gold);background:#e2b3570f}.error{margin-top:10px;color:var(--danger);font-size:13px}.dialog-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.grow{flex:1}.tip{margin:14px 0 0;font-size:12.5px;color:var(--faint)}.detail-head{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;margin-bottom:16px;padding-right:30px}.detail-head .thumb{margin:0}.detail-head h2{margin:8px 0 2px}.detail-own{margin-top:10px;display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600}.detail-own.yes{background:#63d49c1f;color:var(--ok);border:1px solid rgba(99,212,156,.35)}.detail-own.yes b{font-size:15px}.detail-own.no{background:#8f98b31a;color:var(--muted);border:1px solid var(--line2)}.rows{margin:0;border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}.row dt{color:var(--faint)}.row dd{margin:0;word-break:break-all}.footer{border-top:1px solid var(--line);padding:22px 20px 36px;text-align:center;color:var(--faint);font-size:12.5px}.footer p{margin:4px auto;max-width:760px}.show-sm{display:none}@media(max-width:960px){.summary{grid-template-columns:1fr}.welcome{grid-template-columns:1fr;padding-top:28px}}@media(max-width:640px){.container{padding:0 16px 32px}.topbar{padding:10px 16px}.brand-sub,.hide-sm{display:none}.show-sm{display:inline}.topbar-actions .select{max-width:112px}.topbar-actions .select{max-width:120px}.topbar-actions .btn{padding:8px 10px;font-size:13px}.summary-main{padding:16px;gap:14px}.ring{width:96px;height:96px}.ring-text b{font-size:24px}.ring-text b+span{top:32px;right:16px}.tag{font-size:21px}.summary-grid{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:repeat(2,1fr);gap:10px}.card{padding:10px}.filters .seg{flex:1 1 auto}.filters .seg button{flex:1;padding:6px 8px}.detail-head{grid-template-columns:96px 1fr;gap:12px}.dialog{padding:18px}}
