:root{color-scheme:light;--ink: #17211d;--muted: #66736d;--line: #d8ded7;--paper: #f1eee4;--panel: #fffdf8;--field: #f8faf7;--green: #0f7c55;--green-dark: #09573f;--red: #b73a35;--amber: #bd7a16;--blue: #1d6f9f;--shadow: 0 18px 45px rgba(23, 33, 29, .12)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 6% 0%,rgba(15,124,85,.16),transparent 28rem),linear-gradient(135deg,rgba(29,111,159,.12),transparent 40rem),var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button,select,input{border:1px solid var(--line)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem clamp(1rem,3vw,2rem);color:#fff;background:linear-gradient(120deg,#0a5a41fa,#116b4fe6),repeating-linear-gradient(45deg,rgba(255,255,255,.12) 0 1px,transparent 1px 16px)}.eyebrow{margin:0 0 .25rem;color:#ffffffb8;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.65rem,4vw,3rem);line-height:1}h2{margin-bottom:0;font-size:1rem}.topbar-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.icon-button,.topbar-button{display:grid;place-items:center;min-height:2.55rem;color:#fff;background:#ffffff24;border-color:#ffffff47;border-radius:.5rem;font-size:.72rem;font-weight:900}.icon-button{width:2.8rem}.topbar-button{min-width:5.4rem;padding:0 .85rem}.danger-icon{background:#b73a358c}.file-action input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.app-shell{width:min(1420px,calc(100% - 2rem));margin:1rem auto 2rem}.is-hidden{display:none!important}.site-home{width:min(1120px,calc(100% - 2rem));margin:1.25rem auto 2rem}.album-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,20rem));gap:1rem;align-items:start}.album-entry{display:grid;gap:.85rem;width:100%;padding:.8rem;text-align:left;background:#fffdf8f0;border:1px solid rgba(216,222,215,.94);border-radius:.55rem;box-shadow:var(--shadow)}.album-cover{position:relative;display:grid;align-content:space-between;width:100%;aspect-ratio:3 / 4;overflow:hidden;padding:1rem;color:#fff;background:radial-gradient(circle at 70% 35%,rgba(255,255,255,.22),transparent 0 18%,transparent 19%),linear-gradient(145deg,#0f7c55 0 42%,#1d6f9f 42% 72%,#bd7a16 72%);border-radius:.5rem}.album-cover:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 1px,transparent 1px 18px)}.album-cover-title,.album-cover-footer{position:relative;z-index:1;font-weight:950}.album-cover-title{max-width:8rem;font-size:1.8rem;line-height:1}.album-cover-footer{font-size:.82rem;text-transform:uppercase}.album-cover-ball{position:absolute;right:1.1rem;bottom:3.2rem;width:4.6rem;height:4.6rem;background:radial-gradient(circle at 50% 50%,#17211d 0 16%,transparent 17%),radial-gradient(circle,#fff 0 60%,#d8ded7 61%);border-radius:50%;z-index:1}.album-entry-copy{display:grid;gap:.25rem}.album-entry-copy strong{font-size:1rem}.album-entry-copy small{color:var(--muted);font-weight:750}.summary-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}.extra-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:.75rem}.metric,.mini-metric,.panel{background:#fffdf8f0;border:1px solid rgba(216,222,215,.94);box-shadow:var(--shadow)}.metric{min-height:7.6rem;padding:1rem;border-radius:.5rem}.duplicate-metric{cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.duplicate-metric:hover,.duplicate-metric:focus-visible{border-color:var(--amber);box-shadow:0 18px 45px #bd7a1633;outline:0;transform:translateY(-1px)}.mini-metric{min-height:4.5rem;padding:.75rem;border-radius:.45rem}.metric-label,.muted{color:var(--muted);font-size:.86rem}.metric strong{display:block;margin:.55rem 0 .2rem;font-size:2.25rem;line-height:1}.mini-metric strong{display:block;margin-top:.45rem;font-size:1rem;line-height:1.25}.pack-controls{display:grid;grid-template-columns:2.1rem minmax(0,1fr) 2.1rem;gap:.35rem;margin-top:.45rem}.pack-controls button,.pack-controls input{min-height:2.15rem;border-radius:.42rem;font-weight:850}.pack-controls button{background:#fff}.pack-controls input{width:100%;padding:0 .45rem;text-align:center}.progress-track,.group-progress{overflow:hidden;background:#e4ebe3;border-radius:999px}.progress-track{height:.7rem;margin:1rem 0 .65rem}.progress-fill,.group-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--blue));transition:width .18s ease}.tools{display:grid;grid-template-columns:minmax(16rem,1fr) 13rem;gap:.9rem;align-items:center;margin:.9rem 0}.search-box{display:flex;align-items:center;gap:.6rem;min-height:2.75rem;padding:0 .85rem;background:var(--panel);border:1px solid var(--line);border-radius:.5rem}.search-box input{width:100%;min-width:0;border:0;outline:0;background:transparent}select,input{min-height:2.75rem;padding:0 .75rem;background:var(--field);border-radius:.5rem}.album-layout{display:grid;grid-template-columns:22rem minmax(0,1fr);gap:.9rem;align-items:start}.panel{border-radius:.5rem;overflow:hidden}.sidebar{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}.panel-header,.album-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--line)}.album-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}.album-header-actions button,.album-footer-actions button{min-height:2.25rem;padding:0 .8rem;background:#fff;border-radius:.42rem;font-size:.82rem;font-weight:850}.album-header-actions button:disabled,.album-footer-actions button:disabled{cursor:not-allowed;opacity:.45}.group-list{display:grid;gap:.65rem;padding:.8rem}.group-block{background:#fff;border:1px solid var(--line);border-radius:.5rem}.group-block summary{display:grid;grid-template-columns:1fr auto;gap:.7rem;align-items:center;padding:.75rem;list-style:none;cursor:pointer}.group-block summary::-webkit-details-marker{display:none}.group-block strong,.group-block small{display:block}.group-title{display:flex;align-items:center;gap:.45rem;min-width:0}.group-title strong{flex:0 0 auto}.group-flags{display:inline-flex;align-items:center;gap:.18rem;min-width:0}.group-flags .flag{width:1.35rem;height:1rem}.group-block small{margin-top:.15rem;color:var(--muted)}.group-block b{color:var(--green-dark)}.group-progress{height:.38rem;margin:0 .75rem .7rem}.side-team-list{display:grid;gap:.4rem;padding:0 .55rem .65rem}.side-team{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.55rem;min-height:2.8rem;padding:.45rem;text-align:left;background:var(--field);border-radius:.45rem}.side-team.is-active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.side-team span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-team strong{font-size:.84rem}.flag{width:2rem;height:1.5rem;object-fit:cover;border:1px solid rgba(0,0,0,.12);border-radius:.2rem;background:#fff}.team-mark{display:grid;place-items:center;width:2rem;height:2rem;color:#fff;background:var(--blue);border-radius:50%;font-size:.7rem;font-weight:900}.team-tabs{display:flex;gap:.5rem;overflow-x:auto;padding:.75rem 1rem;border-bottom:1px solid var(--line)}.team-tab{display:inline-flex;align-items:center;gap:.5rem;min-width:max-content;min-height:2.65rem;padding:.35rem .75rem;background:#fff;border-radius:.5rem;font-weight:800}.team-tab.is-active{color:var(--green-dark);border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.team-tab strong{padding:.16rem .38rem;color:#fff;background:var(--green);border-radius:.28rem;font-size:.72rem;font-weight:950}.sticker-grid{display:grid;grid-template-columns:repeat(4,5.5cm);gap:.8rem;justify-content:center;padding:1rem;overflow-x:auto;background:linear-gradient(#fffdf8 0 0) padding-box,repeating-linear-gradient(0deg,rgba(23,33,29,.05) 0 1px,transparent 1px 2.4rem)}.sticker-grid.is-team-grid{align-items:stretch}.album-footer-actions{display:flex;justify-content:flex-end;gap:.45rem;padding:.9rem 1rem 1rem;border-top:1px solid var(--line);background:#fffdf8}.album-sticker{display:grid;gap:.55rem;min-width:0}.sticker-face{position:relative;display:grid;grid-template-rows:auto auto auto auto;justify-items:center;gap:.45rem;width:5.5cm;min-height:8.6cm;padding:.55rem;color:var(--ink);text-align:left;background:#f7f4ea;border:1px dashed #bbc7bd;border-radius:.45rem}.is-team-photo .sticker-face{width:7.1cm;min-height:6.8cm;grid-template-rows:auto auto auto auto}.is-team-photo .sticker-code,.is-team-photo .sticker-name,.is-team-photo .sticker-footer,.is-team-photo .sticker-image-frame,.is-team-photo .blank-sticker,.is-team-photo .owned-placeholder{grid-column:auto}.album-sticker.is-owned .sticker-face{background:#fff;border-style:solid;box-shadow:0 10px 24px #17211d1a}.sticker-code{display:block;width:100%;padding:.18rem 0 .35rem;color:var(--green-dark);font-size:1.2rem;font-weight:950;line-height:1;text-align:center;border-bottom:1px solid rgba(23,33,29,.12)}.sticker-face img,.sticker-img,.sticker-image-frame,.blank-sticker,.owned-placeholder{width:4.8cm;height:6.4cm;min-height:0;border-radius:.32rem;object-fit:cover}.is-team-photo .sticker-face img,.is-team-photo .sticker-img,.is-team-photo .sticker-image-frame,.is-team-photo .blank-sticker,.is-team-photo .owned-placeholder{width:6.4cm;height:4.8cm}.sticker-image-frame{display:block;position:relative;overflow:hidden}.sticker-image-frame .sticker-img,.sticker-image-frame .owned-placeholder{height:100%}.local-image-fallback{display:none}.sticker-image-frame.has-missing-image .local-image-fallback{display:grid}.sticker-image-frame.has-missing-image img{display:none}.sticker-img.is-team{object-fit:contain;background:#eee}.is-badge-placeholder{background:linear-gradient(135deg,#fff5e0,#ffe0b2)}.is-team-placeholder{background:linear-gradient(135deg,#e0f2ff,#bbdefb)}.sticker-face img{background:#e8eee8}.blank-sticker,.owned-placeholder{display:grid;place-items:center;align-content:center;gap:.45rem;color:var(--muted);background:linear-gradient(135deg,#ffffffb8,#eef1ebb8),repeating-linear-gradient(45deg,transparent 0 9px,rgba(23,33,29,.06) 9px 10px);border:1px dashed #c8d0c8}.blank-sticker em{font-size:.78rem;font-style:normal;font-weight:800}.add-sticker-mark{display:grid;place-items:center;width:3.6rem;height:3.6rem;color:#fff;background:var(--green);border:2px solid rgba(255,255,255,.86);border-radius:50%;box-shadow:0 10px 24px #0f7c5547;font-size:2.2rem;font-weight:850;line-height:1}.sticker-name{margin:0;font-size:.88rem;font-weight:900;line-height:1.2}.sticker-footer{display:flex;align-items:center;justify-content:space-between;gap:.45rem;min-height:1.2rem}.sticker-team{min-width:0;color:var(--muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.special-label{flex:0 0 auto;padding:.14rem .35rem;color:#fff;background:var(--amber);border-radius:.2rem;font-size:.56rem;font-weight:950;line-height:1}.is-team-photo .special-label{background:var(--blue)}.is-badge .sticker-face{background:linear-gradient(135deg,#fffdf8,#fff5e0);border-color:var(--amber);border-style:solid}.is-badge.is-owned .sticker-face{box-shadow:0 10px 24px #bd7a1633}.is-badge .sticker-code{color:var(--amber)}.is-team-photo .sticker-face{background:linear-gradient(135deg,#fffdf8,#e0f2ff);border-color:var(--blue);border-style:solid}.is-team-photo.is-owned .sticker-face{box-shadow:0 10px 24px #1d6f9f33}.is-team-photo .sticker-code{color:var(--blue)}.album-sticker{position:relative}.sticker-actions{display:grid;grid-template-columns:minmax(0,1fr) 2.3rem auto 2.3rem;gap:.35rem;align-items:center}.album-sticker:not(.is-owned) .sticker-actions{grid-template-columns:2.3rem auto 2.3rem;justify-content:center}.sticker-actions button{min-height:2.15rem;background:#fff;border-radius:.42rem;font-size:.82rem;font-weight:850}.sticker-actions span{color:var(--amber);font-size:.78rem;font-weight:900;white-space:nowrap}.empty-state{grid-column:1 / -1;padding:2rem;color:var(--muted);text-align:center}.primary-button{min-height:2.5rem;padding:0 1rem;color:#fff;background:var(--green);border-color:var(--green);border-radius:.5rem;font-weight:850}.danger-button{min-height:2.5rem;padding:0 1rem;color:#fff;background:#b73a35;border-color:#b73a35;border-radius:.5rem;font-weight:850}dialog{width:min(28rem,calc(100% - 2rem));padding:0;border:0;border-radius:.6rem;box-shadow:var(--shadow)}dialog::backdrop{background:#17211d6b}dialog form{display:grid;position:relative;gap:.9rem;padding:1rem}.dialog-close-button{position:absolute;top:.65rem;right:.65rem;display:grid;place-items:center;width:2rem;height:2rem;padding:0;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:50%;font-size:1rem;font-weight:900;line-height:1}.dialog-close-button:hover{color:#fff;background:#b73a35;border-color:#b73a35}label{display:grid;gap:.35rem;color:var(--muted);font-size:.86rem;font-weight:750}menu{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center;margin:0;padding:0}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.auth-tabs button{min-height:2.35rem;background:#fff;border-radius:.42rem;font-weight:850}.auth-tabs button.is-active{color:#fff;background:var(--green);border-color:var(--green)}#authForm:not(.is-registering) .register-only{display:none}.form-message{min-height:1.2rem;margin:0;color:#b73a35;font-size:.86rem;font-weight:800}.duplicate-sticker-name{color:var(--green-dark)}.profile-number{margin:-.25rem 0 0;color:var(--muted);font-size:.86rem;font-weight:800}.friends-section{display:grid;gap:.55rem}.friends-section h3{margin:0;font-size:.92rem}.friend-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem}.friend-search button,.friend-actions button{min-height:2.35rem;padding:0 .75rem;background:#fff;border-radius:.42rem;font-weight:850}.friend-list{display:grid;gap:.45rem}.friend-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;align-items:center;padding:.55rem;background:var(--field);border:1px solid var(--line);border-radius:.45rem}.friend-row small{display:block;color:var(--muted);font-size:.76rem}.friend-row b{color:var(--muted);font-size:.78rem}.presence-dot{width:.72rem;height:.72rem;background:#a6aaa6;border-radius:50%}.presence-dot.is-online{background:var(--green);box-shadow:0 0 0 .18rem #0f7c5529}.friend-actions{display:flex;gap:.35rem}.empty-list{margin:0;color:var(--muted);font-size:.86rem}.trade-panel{display:grid;gap:.7rem}.trade-heading{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.55rem;background:var(--field);border:1px solid var(--line);border-radius:.45rem}.trade-heading span{color:var(--muted);font-size:.78rem;font-weight:850}.trade-columns{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.trade-columns section{display:grid;gap:.45rem;min-width:0}.trade-columns h4{margin:0;font-size:.86rem}.trade-sticker-list{display:grid;gap:.35rem;max-height:16rem;overflow:auto;padding-right:.2rem}.trade-sticker-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.45rem;padding:.45rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:.42rem;font-size:.8rem}.trade-sticker-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-actions{display:flex;justify-content:flex-end}.trade-actions button,.friend-row>button{min-height:2.35rem;padding:0 .75rem;background:#fff;border-radius:.42rem;font-weight:850}.confetti-layer{position:fixed;inset:0;z-index:9999;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;top:-1rem;width:.62rem;height:.9rem;border-radius:.12rem;opacity:.92;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes confetti-fall{0%{translate:0 -8vh;rotate:0deg}to{translate:8vw 112vh;rotate:720deg}}@media(max-width:980px){.summary-band,.extra-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.album-layout{grid-template-columns:1fr}.sidebar{position:static;max-height:none}}@media(max-width:620px){.topbar{align-items:flex-start}.summary-band,.extra-stats,.tools{grid-template-columns:1fr}.sticker-grid{grid-template-columns:repeat(4,5.5cm);gap:.6rem;padding:.7rem;overflow-x:auto}.sticker-actions{grid-template-columns:1fr 2rem 3.2rem 2rem}.album-sticker:not(.is-owned) .sticker-actions{grid-template-columns:2rem 3.2rem 2rem}}
