:root{color-scheme:dark;--bg:#0d1117;--panel:#151b23;--panel2:#11161d;--line:#28323d;--text:#eef2f6;--muted:#9ba7b4;--accent:#f2a93b;--accent2:#ffd27b;--danger:#ffb4b4;--success:#bce9ce}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}button,input,select{font:inherit}.shell{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:26px 0 64px}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:22px}.brand span,.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:800}.brand strong{display:block;font-size:1.25rem;margin-top:4px}.userbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);font-weight:750;text-decoration:none;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1b1306}.btn.small{padding:8px 12px;font-size:.9rem}.hidden{display:none!important}.hero,.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px}.hero{padding:28px;margin-bottom:20px}.hero h1{font-size:clamp(2rem,5vw,3.5rem);margin:.2em 0}.hero p{max-width:860px;line-height:1.65}.status{margin-top:18px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.layout{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(0,1.7fr);gap:20px}.panel{padding:22px}.panel h2{margin:0 0 8px}.panel p{line-height:1.55}.form-row{display:grid;grid-template-columns:1fr auto;gap:10px}.stack{display:grid;gap:12px}.items{display:grid;gap:10px;margin-top:16px}.item{border:1px solid var(--line);border-radius:12px;background:var(--panel2);padding:14px}.item.active{border-color:var(--accent)}.item-button{width:100%;text-align:left;color:inherit;cursor:pointer}.item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.meta{font-size:.86rem;color:var(--muted);margin-top:5px}.empty{padding:18px;border:1px dashed var(--line);border-radius:12px;text-align:center;color:var(--muted)}input,select{width:100%;padding:11px 12px;border-radius:9px;border:1px solid var(--line);background:#0c1117;color:var(--text)}.workspace-head,.mode-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.collection-toolbar{display:flex;gap:14px;align-items:end;margin-bottom:10px}.grow{flex:1}.collection-count{min-width:94px;border:1px solid var(--line);background:var(--panel2);border-radius:12px;padding:10px 14px;text-align:center}.collection-count strong{display:block;font-size:1.25rem}.collection-count span{font-size:.78rem;color:var(--muted)}.field{display:grid;gap:6px}.field label{font-size:.84rem;color:var(--muted)}.collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}.grid-empty{grid-column:1/-1}.owned-card{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel2);color:var(--text);text-align:left;cursor:pointer}.owned-card-image{position:relative;aspect-ratio:5/7;background:#0b0f14;display:grid;place-items:center}.owned-card-image img{width:100%;height:100%;object-fit:cover;display:block}.image-placeholder{padding:16px;text-align:center;color:var(--muted);font-size:.82rem;line-height:1.4}.qty-badge{position:absolute;right:8px;top:8px;background:rgba(13,17,23,.9);border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-weight:800}.owned-card-body{display:grid;gap:5px;padding:12px}.owned-card-body strong{font-size:.98rem}.owned-card-body span{font-size:.8rem;color:var(--muted)}.searchbar{display:grid;grid-template-columns:1fr auto;gap:10px;margin:14px 0}.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.result{display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.result.already-owned{border-color:#617a5f}.result img{width:86px;border-radius:7px;display:block}.result h3{font-size:1rem;margin:0}.result-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.owned-badge{font-size:.72rem;font-weight:800;background:#1d3224;color:#bce9ce;border:1px solid #31563c;border-radius:999px;padding:4px 7px;white-space:nowrap}.result .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.selected-print{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);margin:16px 0}.selected-print img{width:120px;border-radius:8px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.notice{border-left:3px solid var(--accent);padding:10px 14px;background:rgba(242,169,59,.07);color:var(--muted);line-height:1.55}.divider{height:1px;background:var(--line);margin:20px 0}.message{min-height:1.3em;margin-top:8px}.error{color:var(--danger)}.success{color:var(--success)}.footer{margin-top:22px}.footer a{color:var(--accent2)}.card-dialog{width:min(980px,calc(100% - 28px));max-height:calc(100% - 28px);padding:0;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text)}.card-dialog::backdrop{background:rgba(0,0,0,.72)}.dialog-close{position:absolute;right:12px;top:10px;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-size:1.6rem;cursor:pointer;z-index:2}.detail-layout{display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);gap:26px;padding:26px}.detail-image{width:100%;border-radius:14px;display:block}.detail-copy h2{font-size:2rem;margin:.25em 0}.detail-tags{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.detail-tags span{border:1px solid var(--line);border-radius:999px;padding:6px 9px;color:var(--muted);font-size:.82rem}.rule-text{white-space:normal;line-height:1.6;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:16px;margin:18px 0}@media(hover:hover){.owned-card:hover,.item-button:hover,.result:hover{border-color:#495767}.btn:hover{filter:brightness(1.05)}}@media(max-width:1050px){.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.layout{grid-template-columns:1fr}.results{grid-template-columns:1fr}.collection-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:720px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-head,.mode-head,.collection-toolbar{align-items:stretch;flex-direction:column}.detail-layout{grid-template-columns:1fr}.detail-image{max-width:360px;margin:0 auto}}@media(max-width:620px){.shell{width:min(100% - 20px,1240px);padding-top:16px}.topbar{align-items:flex-start;flex-direction:column}.hero,.panel{padding:18px}.form-row,.searchbar,.fields,.selected-print{grid-template-columns:1fr}.selected-print img{width:100%;max-width:220px}.result{grid-template-columns:72px minmax(0,1fr)}.result img{width:72px}.result-title-row{display:block}.owned-badge{display:inline-block;margin-top:6px}.detail-layout{padding:18px}}


/* Native authentication */
.auth-panel{max-width:720px;margin:20px auto}.auth-panel h2{font-size:1.7rem;margin:.3em 0}.auth-form{display:grid;gap:14px;margin-top:18px}.auth-form .btn{justify-self:start}.field-help{font-size:.78rem;color:var(--muted);line-height:1.45}.auth-fallback{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.auth-fallback p{margin:.45rem 0 12px}.auth-setup{border-color:rgba(242,169,59,.55);box-shadow:0 0 0 1px rgba(242,169,59,.08)}.auth-setup .message.success{padding:12px 14px;border:1px solid rgba(188,233,206,.35);border-radius:10px;background:rgba(188,233,206,.07)}
@media(max-width:620px){.auth-panel{margin:14px 0}.auth-form .btn{width:100%}}

.auth-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.auth-actions .btn{justify-self:auto}@media(max-width:620px){.auth-actions{display:grid;grid-template-columns:1fr}.auth-actions .btn{width:100%}}

/* Auth screens are mutually exclusive even if another legacy module toggles .hidden. */
body[data-auth-view="register"] #loginRequired{display:none!important}
body[data-auth-view="register"] #registrationPanel{display:block!important}
body[data-auth-view="login"] #registrationPanel{display:none!important}
body[data-auth-view="app"] #loginRequired,
body[data-auth-view="app"] #registrationPanel{display:none!important}

.registration-success{display:grid;gap:14px;padding:6px 0}.registration-success h2{margin:.15em 0}.registration-success p{margin:0 0 4px;max-width:620px}.registration-success .btn{justify-self:start}@media(max-width:620px){.registration-success .btn{width:100%}}

.availability-hint{min-height:1.2em;font-size:.78rem;line-height:1.4}.availability-hint.checking{color:var(--muted)}.availability-hint.available{color:var(--success)}.availability-hint.taken{color:var(--danger)}input.availability-ok{border-color:rgba(188,233,206,.55)}input.availability-taken{border-color:rgba(255,180,180,.7);box-shadow:0 0 0 1px rgba(255,180,180,.08)}


.auth-segmented{display:grid;grid-template-columns:1fr 1fr;padding:4px;margin:14px 0 20px;border:1px solid var(--line);border-radius:14px;background:#0c1117;max-width:420px}
.auth-segment{appearance:none;border:0;border-radius:10px;background:transparent;color:var(--muted);padding:11px 18px;font-weight:800;cursor:pointer}
.auth-segment.active{background:linear-gradient(135deg,#45bbef,#3478ef);color:#07111f;box-shadow:0 8px 24px rgba(52,120,239,.18)}
.auth-segment:not(.active):hover{color:var(--text);background:rgba(255,255,255,.035)}
.auth-submit{justify-self:start;margin-top:4px;min-width:140px}
@media(max-width:620px){.auth-segmented{max-width:none;width:100%}.auth-segment{padding:11px 8px}.auth-submit{width:100%}}
