:root{--bg:#09090b;--surface:#18181b;--surface-raised:#27272a;--surface-sunken:#0e0e11;--border:#3f3f46;--border-subtle:#27272a;--text:#fff;--text-secondary:#d4d4d8;--text-muted:#a1a1aa;--text-faint:#71717a;--surface-band:#121215;--surface-hover:#1f1f23;--accent:#f59e0b;--accent-hover:#fbbf24;--accent-ink:#14130f;--positive:#79c39a;--positive-bg:#1f2b20;--positive-border:#3d5238;--cool:#9fb4cc;--cool-border:#47566a;--destructive:#e8734c;--destructive-border:#6e3a2c;--live:#e8593c;--attention:#d8a24a;--qr-card:#f5f0e6;--theme-violet:#8b7ec8;--theme-teal:#5fa8a0;--theme-rose:#c77b96;--font-display:"Hanken Grotesk", system-ui, sans-serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--display:700 24px/1.15 var(--font-display);--body:400 15px/1.45 var(--font-body);--body-s:400 13px/1.45 var(--font-body);--label:700 12px/1.2 var(--font-body);--sp-4:4px;--sp-6:6px;--sp-8:8px;--sp-10:10px;--sp-12:12px;--sp-14:14px;--sp-16:16px;--sp-20:20px;--sp-24:24px;--r-pill:999px;--r-card:15px;--r-control:12px;--r-sm:10px;--scrim:#0000008c;--paper:#fff;--paper-ink:#14130f;--paper-muted:#52525b;--paper-rule:#a1a1aa;--motion:.16s ease;--motion-slow:.18s ease}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:var(--body);-webkit-font-smoothing:antialiased;justify-content:center;margin:0;padding:48px 20px;display:flex}main{width:100%;max-width:460px}main.wide{max-width:900px}main.studio-main{margin-top:-48px}h1{font:700 24px/1.15 var(--font-display);letter-spacing:-.02em;margin:0 0 4px}h2{font:700 20px/1.15 var(--font-display);letter-spacing:-.01em;margin:28px 0 8px}h3{font:600 16px/1.3 var(--font-display);letter-spacing:-.01em;margin:22px 0 6px}p{margin:0 0 12px}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.t-display-l{font:700 27px/1.1 var(--font-display);letter-spacing:-.02em}.t-display-m{font:700 24px/1.15 var(--font-display);letter-spacing:-.02em}.t-display-s{font:700 20px/1.15 var(--font-display);letter-spacing:-.01em}.t-title{font:600 16px/1.3 var(--font-display);letter-spacing:-.01em}.t-body{font:400 15px/1.45 var(--font-body)}.t-body-s,.body-s{font:var(--body-s)}.t-label{font:700 12px/1.2 var(--font-body);letter-spacing:.05em;text-transform:uppercase}.t-caption{font:400 11px/1.3 var(--font-body)}.t-micro{font:700 10px/1 var(--font-body)}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.handle{color:var(--accent);font-weight:600}.label,.section-header{font:var(--label);letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);margin:24px 0 10px}.section-header{align-items:baseline;gap:8px;margin:16px 0 4px;display:flex}.section-header:first-of-type{margin-top:0}.section-header .count{color:var(--accent);margin-left:auto;padding-left:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin:10px 0;padding:14px 16px}.list-sticky-head{z-index:5;background:var(--surface);border-radius:14px 14px 0 0;margin:-14px -16px 0;padding:14px 16px 10px;position:sticky;top:0}.card.attention{border-color:var(--attention);background:color-mix(in srgb, var(--attention) 8%, var(--surface))}.card.positive{border-color:var(--positive-border);background:var(--positive-bg)}.card.live{background:#2a1a16;border-color:#6b3a30}.btn{white-space:nowrap;background:var(--accent);color:var(--accent-ink);font:700 15px/1 var(--font-body);border-radius:var(--r-control);cursor:pointer;height:48px;transition:background var(--motion), box-shadow var(--motion);border:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-hover);color:var(--accent-ink);text-decoration:none}.btn:not(.secondary):not(.ghost):not(.affirm):not(.decline):not(.destructive):hover,.btn:not(.secondary):not(.ghost):not(.affirm):not(.decline):not(.destructive):focus-visible{box-shadow:0 0 20px -3px #f59e0b59}.btn.secondary{border:1px solid var(--border);color:var(--text);background:0 0}.btn.secondary:hover{background:var(--surface)}.btn.ghost{color:var(--text-secondary);background:0 0}.btn.ghost:hover{background:var(--surface)}.btn.affirm{border:1px solid var(--positive-border);color:var(--positive);background:0 0}.btn.affirm:hover{background:var(--positive-bg)}.btn.decline{border:1px solid var(--cool-border);color:var(--cool);background:0 0}.btn.decline:hover{background:color-mix(in srgb, var(--cool) 10%, var(--surface))}.btn.destructive{border:1px solid var(--destructive-border);color:var(--destructive);background:0 0}.btn.destructive:hover{background:color-mix(in srgb, var(--destructive) 12%, var(--surface))}.btn:disabled,.btn[aria-disabled=true]{background:var(--surface-raised);color:var(--text-muted);cursor:not-allowed;pointer-events:none}.btn.secondary:disabled,.btn.ghost:disabled{background:var(--surface-raised);border-color:#0000}.btn-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.6s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn-spinner{animation:none}}.btn.block{width:100%;display:flex}.btn.lg{height:52px}.btn.sm{border-radius:9px;height:32px;padding:0 10px;font-size:13px}.pill{border-radius:var(--r-pill);border:1px solid var(--border);height:40px;color:var(--text-secondary);font:700 13px/1 var(--font-body);cursor:pointer;transition:background var(--motion), color var(--motion), border-color var(--motion);background:0 0;align-items:center;gap:6px;padding:0 15px;display:inline-flex}.pill.sm{height:32px;padding:0 12px;font-size:12px}.pill:hover{color:var(--text)}.pill.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.switch{cursor:pointer;align-items:center;gap:10px;display:inline-flex}.pill.push-optin{margin:4px 0 12px}.subscribe-fab{z-index:40;border:1px solid var(--border);background:var(--surface-raised);width:52px;height:52px;color:var(--text-secondary);cursor:pointer;transition:background var(--motion), color var(--motion), border-color var(--motion);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:fixed;top:16px;right:max(16px,50vw - 214px);box-shadow:0 4px 20px -4px #00000080}.subscribe-fab:hover{color:var(--text)}.subscribe-fab .icon{width:24px;height:24px}.subscribe-fab.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.studio-bell .subscribe-fab{width:40px;height:40px;position:absolute;top:0;right:0}.studio-bell .subscribe-fab .icon{width:18px;height:18px}.switch input{appearance:none;border-radius:var(--r-pill);border:1px solid var(--border);cursor:pointer;width:52px;height:31px;transition:background var(--motion), border-color var(--motion);background:0 0;flex:none;margin:0;position:relative}.switch input:after{content:"";background:var(--text);width:25px;height:25px;transition:transform var(--motion);border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked{background:var(--positive);border-color:var(--positive)}.switch input:checked:after{background:var(--bg);transform:translate(21px)}.switch input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.segmented{background:var(--surface);border-radius:var(--r-control);gap:4px;padding:4px;display:inline-flex}.segmented>a,.segmented>button{appearance:none;color:var(--text-secondary);font:600 14px/1 var(--font-body);border-radius:var(--r-sm);cursor:pointer;height:36px;transition:background var(--motion), color var(--motion);background:0 0;border:0;align-items:center;padding:0 16px;text-decoration:none;display:inline-flex}.segmented>.is-on{background:var(--accent);color:var(--accent-ink)}.list-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:12px;display:flex}.list-row .row-main{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.list-row .row-title{font:600 16px/1.3 var(--font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-row .row-sub{font:var(--body-s);color:var(--text-secondary)}.list-row .row-when{color:var(--text);font-variant-numeric:tabular-nums}.row-venue{align-items:center;gap:4px;display:inline-flex}.row-venue .icon{width:12px;height:12px}.date-badge{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-raised);width:44px;height:44px;color:var(--text-secondary);flex-direction:column;flex:none;justify-content:center;align-items:center;line-height:1.15;display:flex}.date-badge .d{font:700 16px/1 var(--font-display);font-variant-numeric:tabular-nums}.date-badge .m{font:700 9px/1 var(--font-body);letter-spacing:.06em;margin-top:2px}.list-row .row-main .readiness{margin-top:2px}.list-row .row-title{display:block}a.row-title{color:var(--text);text-decoration:none}a.row-title:hover{color:var(--accent)}.list-row:has(.row-main .readiness){align-items:flex-start}.list-row:has(.row-main .readiness) .row-actions{margin-top:1px}.list-row .row-meta{font:400 11px/1.3 var(--font-body);color:var(--text-muted);flex:none}.list-row.is-dimmed,.list-row.is-dimmed .row-title{color:var(--text-muted)}a.list-row{color:inherit;border-radius:var(--r-sm);text-decoration:none}a.list-row:hover{background:var(--surface-raised)}a.list-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.list-row .row-chevron{color:var(--text-muted);flex:none}.list-row.is-openable{position:relative}.list-row.is-openable .row-title{white-space:normal}.list-row.is-openable a.row-title:after{content:"";position:absolute;inset:0}.list-row.is-openable .row-actions{z-index:1;position:relative}.list-row.is-openable .row-chevron,.list-row.is-openable .home-row-chevron{align-self:center}.list-row.is-openable:hover,.list-row.is-openable:active{background:var(--surface-raised)}.list-row.is-openable:has(a.row-title:focus-visible){outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--r-sm)}.card.has-rows>.list-row:last-child{border-bottom:0}.section-header .header-control{margin-left:auto}.section-header:has(.header-control){align-items:center;margin-bottom:8px}body:has(main.fan-main){padding:0}main.fan-main{min-height:100vh}@keyframes fan-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes fan-fade{0%{opacity:0}to{opacity:1}}@keyframes fan-toast{0%{opacity:0;transform:translateY(12px)}6%,92%{opacity:1;transform:none}to{opacity:0}}.fan-root{padding-bottom:32px;position:relative}.fan-marker{pointer-events:none;width:1px;height:1px;position:absolute;top:190px;left:0}.fan-bar-slot{z-index:10;position:sticky;top:0}.fan-header{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:44px 20px 24px;display:flex;position:relative}.fan-header.theme-amber{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 20%, var(--bg)), var(--bg) 78%)}.fan-header.theme-violet{background:linear-gradient(160deg, color-mix(in srgb, var(--theme-violet) 20%, var(--bg)), var(--bg) 78%)}.fan-header.theme-teal{background:linear-gradient(160deg, color-mix(in srgb, var(--theme-teal) 20%, var(--bg)), var(--bg) 78%)}.fan-header.theme-rose{background:linear-gradient(160deg, color-mix(in srgb, var(--theme-rose) 20%, var(--bg)), var(--bg) 78%)}.fan-header h1{font:700 27px/1.1 var(--font-display);letter-spacing:-.02em;align-items:center;gap:8px;margin:0;display:flex}.fan-header p{margin:0}.fan-handle{color:var(--text-muted);font:var(--body-s)}.fan-profile,.fan-gig{color:var(--text-secondary);font:var(--body)}.fan-venue{align-items:center;gap:3px;display:inline-flex}.fan-venue .icon{width:13px;height:13px}.fan-avatar{border:2px solid var(--border);background:linear-gradient(135deg, var(--border), var(--surface));width:84px;height:84px;font:700 30px/1 var(--font-display);color:var(--text-secondary);border-radius:50%;place-items:center;margin-bottom:8px;display:grid;overflow:hidden}.fan-avatar img{object-fit:cover;width:100%;height:100%;display:block}.fan-avatar.is-small{border-width:1px;flex:none;width:32px;height:32px;margin:0;font-size:13px}.fan-live-dot{background:var(--live);width:10px;height:10px;box-shadow:0 0 12px var(--live);border-radius:50%;flex:none;animation:1.6s ease-in-out infinite fan-pulse}.fan-live-dot.is-small{width:7px;height:7px;box-shadow:none}@media (prefers-reduced-motion:reduce){.fan-live-dot,.fan-sent{animation:none}}.fan-playing-now{white-space:nowrap;border-radius:var(--r-pill);background:color-mix(in srgb, var(--live) 12%, transparent);border:1px solid color-mix(in srgb, var(--live) 35%, transparent);height:32px;color:var(--text);font:700 13px/1 var(--font-body);align-items:center;gap:8px;margin-top:10px;padding:0 14px;display:inline-flex}.fan-playing-now .fan-live-dot{width:8px;height:8px}.fan-bell{border:1px solid var(--border);background:var(--surface-raised);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;transition:background var(--motion), color var(--motion), border-color var(--motion);border-radius:50%;place-items:center;padding:0;display:inline-grid;position:absolute;top:16px;right:16px;box-shadow:0 4px 20px -4px #00000080}.fan-bell .icon{width:20px;height:20px}.fan-bell.is-small{width:36px;height:36px;box-shadow:none;flex:none;position:static}.fan-bell.is-small .icon{width:16px;height:16px}.fan-bell:hover{color:var(--text)}.fan-bell.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.fan-bar{background:color-mix(in srgb, var(--accent) 12%, var(--bg));align-items:center;gap:10px;padding:12px 16px 4px;animation:.16s fan-fade;display:flex}.fan-bar.theme-violet{background:color-mix(in srgb, var(--theme-violet) 12%, var(--bg))}.fan-bar.theme-teal{background:color-mix(in srgb, var(--theme-teal) 12%, var(--bg))}.fan-bar.theme-rose{background:color-mix(in srgb, var(--theme-rose) 12%, var(--bg))}.fan-bar-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.fan-bar-title{font:700 15px/1.2 var(--font-body);align-items:center;gap:6px;display:flex}.fan-bar-line{color:var(--text-muted);font:400 12px/1.2 var(--font-body);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fan-body{flex-direction:column;gap:12px;padding:8px 0 32px;display:flex}.fan-what-for{text-align:center;margin:0;padding:0 20px}.fan-ended{border-radius:var(--r-card);background:var(--surface);border:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:8px;margin:8px 16px 0;padding:32px 20px;display:flex}.fan-ended .icon{width:28px;height:28px;color:var(--text-muted)}.fan-ended p{font:700 20px/1.2 var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0}.carousel-head{justify-content:space-between;align-items:flex-end;padding:0 20px;display:flex}.carousel-head .label{margin:0 0 4px}.carousel-nav{gap:6px;display:flex}.carousel-nav[hidden]{display:none}@media (pointer:coarse){.carousel-nav{display:none}}.show-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:stretch;gap:10px;padding:0 20px;scroll-padding:0 20px;display:flex;overflow-x:auto}.show-carousel::-webkit-scrollbar{display:none}.show-carousel:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.fan-show{scroll-snap-align:start;border-radius:var(--r-card);background:var(--surface);border:1px solid var(--border);flex-direction:column;flex:0 0 82%;gap:12px;padding:16px;display:flex}.show-carousel.is-single .fan-show{flex-basis:100%}.fan-show.is-today{background:color-mix(in srgb, var(--accent) 5%, var(--surface));border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.fan-show-main{align-items:flex-start;gap:12px;display:flex}.fan-badge{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-raised);width:48px;height:52px;color:var(--text);flex-direction:column;flex:none;justify-content:center;align-items:center;gap:3px;display:flex}.fan-badge .d{font:800 20px/1 var(--font-display);font-variant-numeric:tabular-nums}.fan-badge .m{font:700 10px/1 var(--font-body);letter-spacing:.05em}.fan-show.is-today .fan-badge{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-color:color-mix(in srgb, var(--accent) 50%, transparent);color:var(--accent)}.fan-show-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.fan-today{border-radius:var(--r-pill);background:color-mix(in srgb, var(--accent) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent);font:700 12px/1 var(--font-body);align-self:flex-start;align-items:center;gap:6px;margin-bottom:3px;padding:3px 10px;display:inline-flex}.fan-today .dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.fan-show-name{font:600 16px/1.3 var(--font-body);letter-spacing:-.01em}.fan-show-when{color:var(--text-secondary);font:400 13px/1.4 var(--font-body)}.fan-show-venue{color:var(--text-muted);font:400 13px/1.4 var(--font-body);align-items:center;gap:4px;display:flex}.fan-show-venue .icon{width:13px;height:13px}.fan-today-note{border-top:1px solid var(--border);color:var(--text-secondary);font:var(--body-s);margin:0;padding-top:10px}.install-cta{border-radius:var(--r-card);background:var(--surface);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin:4px 16px 0;padding:14px 12px 14px 16px;display:flex}.install-cta[hidden]{display:none}.install-cta-body{align-items:center;gap:10px;display:flex}.install-cta-body p{color:var(--text-secondary);margin:0}.install-cta-actions{flex:none;align-items:center;gap:8px;display:flex}.fan-live{flex-direction:column;gap:20px;padding:0 0 32px;display:flex}.fan-reqs{flex-direction:column;gap:10px;display:flex}.fan-reqs-head{justify-content:space-between;align-items:baseline;padding:0 20px;display:flex}.fan-label{font:700 12px/1.2 var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary)}.fan-reqs-count{font:700 12px/1 var(--font-body);color:var(--text-muted)}.fan-req-row{scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;padding:0 20px;scroll-padding:0 20px;display:flex;overflow-x:auto}.fan-req-row::-webkit-scrollbar{display:none}.fan-req-card{scroll-snap-align:start;background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;flex:0 0 78%;gap:10px;padding:14px;display:flex}.fan-req-card.is-full{flex-basis:100%}.fan-req-card.is-coming{border-color:var(--positive-border)}.fan-req-top{align-items:flex-start;gap:10px;display:flex}.fan-req-song{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fan-req-title{font:600 16px/1.3 var(--font-body);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fan-req-artist{color:var(--text-muted);font:400 13px/1.3 var(--font-body)}.fan-pill{border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text-muted);font:700 11px/1 var(--font-body);white-space:nowrap;background:0 0;flex:none;padding:4px 9px}.fan-pill.is-small{padding:3px 8px;font-size:10px}.fan-pill.s-requested{color:var(--cool);border-color:var(--cool-border)}.fan-pill.s-queued{color:var(--positive);border-color:var(--positive-border);background:var(--positive-bg)}.fan-pill.s-rejected{color:var(--text-secondary);background:var(--surface-raised)}.fan-steps{flex-direction:column;gap:6px;display:flex}.fan-bars{gap:4px;display:flex}.fan-bars span{background:var(--surface-raised);border-radius:2px;flex:1;height:4px}.fan-bars span.s1{background:var(--cool)}.fan-bars span.s2{background:var(--positive)}.fan-bars span.s3{background:var(--text-faint)}.fan-bar-labels{font:600 10px/1 var(--font-body);color:var(--text-faint);display:flex}.fan-bar-labels span{flex:1}.fan-bar-labels span.s1{color:var(--cool)}.fan-bar-labels span.s2{color:var(--positive)}.fan-bar-labels span.s3{color:var(--text-muted)}.fan-req-note{color:var(--text-muted);font:italic 400 12px/1.3 var(--font-body)}.fan-dots{justify-content:center;align-items:center;gap:2px;display:flex}.fan-dots button{cursor:pointer;background:0 0;border:0;place-items:center;width:24px;height:24px;padding:0;display:grid}.fan-dots button span{background:var(--border);border-radius:3px;width:6px;height:6px;transition:width .16s,background .16s}.fan-dots button span.is-on{background:var(--text);width:18px}.fan-req-done{flex-direction:column;gap:6px;padding:0 20px;display:flex}.fan-req-done-row{align-items:center;gap:8px;min-width:0;display:flex}.fan-req-done-line{min-width:0;color:var(--text-muted);font:400 13px/1.3 var(--font-body);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fan-prompt{text-align:center;flex-direction:column;align-items:center;gap:2px;padding:0 20px;display:flex}.fan-prompt p{margin:0}.fan-prompt-title{font:600 16px/1.3 var(--font-body)}.fan-prompt-limit{color:var(--text-muted);font:var(--body-s)}.fan-search{z-index:9;background:var(--bg);padding:8px 16px 10px;position:sticky;top:0}.fan-search.under-bar{top:56px}.fan-search-box{align-items:center;display:flex;position:relative}.fan-search-box>.icon{width:18px;height:18px;color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.fan-search-box input[type=text]{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);width:100%;max-width:none;height:48px;color:var(--text);font:400 16px var(--font-body);outline:none;padding:0 76px 0 42px}.fan-search-box input[type=text]:focus{border-color:var(--accent)}.fan-search-clear{height:36px;color:var(--text-secondary);font:700 13px/1 var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:0 12px;position:absolute;right:6px}.fan-search-clear:hover{background:var(--surface-raised)}.fan-list{flex-direction:column;gap:16px;padding:0 16px;display:flex}.fan-songs{background:var(--border-subtle);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.fan-row{background:var(--surface);align-items:stretch;display:flex}.fan-row.is-off{background:var(--surface-band)}.fan-row-main{min-width:0;min-height:60px;color:var(--text);flex:1;align-items:center;gap:10px;padding:10px 8px 10px 16px;text-decoration:none;display:flex}a.fan-row-main:hover{background:var(--surface-hover)}a.fan-row-main:active{background:var(--surface-raised)}a.fan-row-main:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.fan-row.is-off .fan-row-main{color:var(--text-secondary)}.fan-row.is-coming .fan-row-main{background:color-mix(in srgb, var(--positive) 6%, var(--surface))}.fan-row-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fan-row-title{font:600 16px/1.3 var(--font-body);letter-spacing:-.01em}.fan-row-artist{color:var(--text-muted);font:400 13px/1.3 var(--font-body)}.fan-chevron{width:18px;height:18px;color:var(--text-faint);flex:none}.fan-lyrics{width:52px;color:var(--text-faint);border-left:1px solid var(--border-subtle);flex:none;place-items:center;text-decoration:none;display:grid}.fan-lyrics:hover{color:var(--accent);background:var(--surface-hover)}.fan-lyrics:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.fan-lyrics .icon{width:18px;height:18px}.fan-off-band{background:var(--surface-band);padding:14px 16px 8px}.fan-off-band span{font:700 11px/1 var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.fan-nomatch{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:14px;padding:28px 16px;display:flex}.fan-nomatch p{color:var(--text-secondary);margin:0}.fan-nomatch .btn{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.fan-empty{text-align:center}.fan-anything{border:1px dashed var(--border);border-radius:14px;flex-direction:column;gap:8px;padding:16px;display:flex}.fan-anything label{font:700 12px/1.2 var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.fan-anything div{gap:8px;display:flex}.fan-anything input{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);min-width:0;max-width:none;height:44px;color:var(--text);font:400 16px var(--font-body);outline:none;flex:1;padding:0 12px}.fan-anything input:focus{border-color:var(--accent)}.fan-anything .btn{height:44px}.fan-notice{z-index:40;pointer-events:none;max-width:calc(100vw - 32px);position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.fan-sent{white-space:nowrap;border-radius:var(--r-pill);background:var(--positive-bg);border:1px solid var(--positive-border);font:400 14px/1 var(--font-body);align-items:center;gap:10px;padding:12px 16px;animation:6s forwards fan-toast;display:flex;box-shadow:0 4px 20px -4px #00000080}.fan-sent .icon{width:16px;height:16px;color:var(--positive)}.fan-sent strong{color:var(--text)}.fan-sent span{color:var(--text-secondary)}.detail-cta{margin:14px 0}.detail-foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;display:flex}.detail-foot .foot-end{margin-left:auto}.count-badge{border-radius:var(--r-pill);background:var(--accent);height:20px;color:var(--accent-ink);font:700 12px/1 var(--font-body);align-items:center;padding:0 8px;display:inline-flex}.tag,.status-tag{font:700 11px/1 var(--font-body);border-radius:var(--r-pill);padding:3px 8px;display:inline-block}.tag.active,.status-tag.queued,.status-tag.played{background:var(--positive-bg);border:1px solid var(--positive-border);color:var(--positive)}.status-tag.played{background:var(--positive);border-color:var(--positive);color:var(--accent-ink)}.tag.revoked{background:var(--surface-raised);border:1px solid var(--border);color:var(--live)}.status-tag.requested{background:var(--surface-raised);color:var(--text-secondary)}.status-tag.rejected{background:var(--surface-raised);color:var(--text-muted)}.status-tag.expired{border:1px solid var(--border);color:var(--text-muted);background:0 0}.status-tag.live{background:var(--accent);border:1px solid var(--accent);color:var(--accent-ink);text-transform:uppercase;letter-spacing:.03em}.readiness{font:var(--body-s);align-items:center;gap:6px;display:inline-flex}.readiness.ready{color:var(--positive)}.readiness.attention{color:var(--attention)}.readiness.neutral{color:var(--text-muted)}.date-block{text-align:center;flex-direction:column;flex:none;align-items:center;width:46px;display:inline-flex}.date-block .dow{font:700 12px/1.2 var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary)}.date-block.next .dow{color:var(--attention)}.date-block .dom{font:700 22px/1.1 var(--font-display)}.date-block .mon{font:400 11px/1.3 var(--font-body);color:var(--text-muted)}.back{font:var(--body-s);color:var(--text-muted);margin-bottom:20px;display:inline-block}.back:hover{color:var(--text-secondary);text-decoration:none}.empty{text-align:center;color:var(--text-muted);font:var(--body);padding:40px 0}.empty .empty-actions{flex-direction:column;gap:10px;max-width:280px;margin:16px auto 0;display:flex}.flash{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-sm);font:var(--body-s);color:var(--text);margin-bottom:16px;padding:8px 12px}.flash.attention{border-color:var(--attention)}.flash.undo{justify-content:space-between;align-items:center;gap:12px;display:flex}.flash.positive{border-color:var(--positive)}.toast{z-index:40;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-pill);max-width:calc(100vw - 32px);font:var(--body-s);color:var(--text);align-items:center;gap:10px;padding:10px 14px;animation:4s forwards toast-life;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px -4px #00000080}.toast-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.toast-dismiss .icon{width:14px;height:14px}.toast.is-dismissed{opacity:0;visibility:hidden;animation:none}@keyframes toast-life{0%{opacity:0}8%,88%{opacity:1}to{opacity:0;visibility:hidden}}.live-banner-ctas{margin-top:4px;display:block}.live-banner-ctas a{white-space:nowrap}@media (width>=480px){.live-banner-ctas{margin-top:0;display:inline}.live-banner-ctas:before{content:" · "}}.inline-ask{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin:14px 0;padding:16px}.inline-ask .ask-q{margin-bottom:4px;font-weight:700;display:block}.inline-ask .ask-context{font:var(--body-s);color:var(--text-secondary);margin-bottom:10px}details.confirm{display:inline-block}details.confirm>summary{list-style:none}details.confirm>summary::-webkit-details-marker{display:none}details.confirm[open]>summary{background:var(--surface-raised);color:var(--text)}details.confirm[open]>summary.ghost{border:1px solid var(--border)}.confirm-block{background:var(--surface);border:1px solid var(--border);border-radius:14px;max-width:340px;margin:10px 0;padding:16px}.confirm-block .confirm-q{margin-bottom:12px}.decline-note{margin:4px 0 14px}.decline-choices{flex-direction:column;gap:8px;display:flex}.decline-choices form{margin:0}.confirm-block .confirm-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sheet-scrim{z-index:60;background:var(--scrim);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;transition:opacity var(--motion);position:fixed;inset:0}.sheet-scrim.is-open{opacity:1}.sheet-scrim[hidden]{display:none}.sheet{z-index:61;background:var(--surface);border:1px solid var(--border);width:100%;max-width:460px;padding:8px 20px calc(24px + env(safe-area-inset-bottom));max-height:88vh;transition:transform var(--motion-slow);border-bottom:0;border-radius:16px 16px 0 0;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.sheet.is-open{transform:translateY(0)}.sheet[hidden]{display:none}@media (prefers-reduced-motion:reduce){.sheet,.sheet-scrim{transition:none}}.sheet .sheet-grab{border-radius:var(--r-pill);background:var(--border);width:36px;height:4px;margin:6px auto 12px}.sheet .sheet-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.sheet .sheet-head h2{margin:0}.sheet .sheet-close{color:var(--text-secondary);font:400 22px/1 var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;padding:2px 6px;text-decoration:none;display:inline-flex}.sheet .sheet-close:hover{color:var(--text)}body.sheet-open{overflow:hidden}.sheet-scrim.full{z-index:50}.sheet.sheet-full{z-index:51;max-width:none;max-height:none;padding:8px 20px calc(24px + env(safe-area-inset-bottom));border:0;border-radius:0;margin:0;inset:0}.sheet.sheet-full .sheet-head{flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:16px}.sheet.sheet-full .sheet-head.has-head-extra{flex-flow:wrap;justify-content:space-between;align-items:center;gap:4px 12px}.sheet.sheet-full .sheet-head.has-head-extra .sheet-back{flex:0 0 100%}.sheet.sheet-full .sheet-head.has-head-extra h2{flex:auto;min-width:0;margin:0}.sheet-head-extra{flex-wrap:wrap;flex:none;align-items:center;gap:10px;display:flex}.sheet-back{font:var(--body-s);color:var(--text-secondary);align-items:center;gap:6px;padding:4px 0;text-decoration:none;display:inline-flex}.sheet-back:hover{color:var(--text);text-decoration:none}.sheet.sheet-full.is-stage{flex-direction:column;display:flex;overflow:hidden}.sheet.sheet-full.is-stage .sheet-head{flex:none}.sheet.sheet-full.is-stage .sheet-body{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.sheet.sheet-full.is-stage .rq-shell{flex-direction:column;flex:auto;min-height:0;display:flex}.sheet.sheet-full.is-stage .rq-head{flex:none}.rq-head{z-index:5;background:var(--surface);position:sticky;top:0}.rq-subhead{margin-top:12px}.rq-subhead[hidden]{display:none}.sheet.sheet-full.is-stage .rq-scroll{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.check{font:var(--body-s);color:var(--text-secondary);cursor:pointer;align-items:flex-start;gap:10px;margin:16px 0;display:flex}.check input{appearance:none;border:1.5px solid var(--text-muted);background:var(--surface-raised);cursor:pointer;border-radius:6px;flex:none;width:20px;height:20px;margin:0;position:relative}.check input:checked{border-color:var(--accent);background:var(--accent)}.check input:checked:after{content:"";border:solid var(--accent-ink);border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:2px;left:6px;transform:rotate(45deg)}.check input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.live-dot{background:var(--live);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status{font:var(--body-s);color:var(--text-muted);min-height:1.2em;margin-top:12px}.name-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);align-items:center;gap:4px;padding:2px 12px 2px 2px;display:flex}.name-box:focus-within{border-color:var(--accent)}.name-box.has-error{border-color:var(--attention)}.name-box input[type=text]{background:0 0;border:0;flex:1;width:auto;min-width:0;max-width:none;padding:10px 8px}.name-box input[type=text]:focus{outline:none}.name-suffix{color:var(--accent);white-space:nowrap;font-weight:600;font:var(--body-s)}.name-result{font:var(--body-s);color:var(--text-secondary);min-height:1.4em;margin:8px 0 0}.name-result.ok{color:var(--positive)}.name-result.warn{color:var(--attention)}.name-result a{margin-left:8px}.claim-address{font:700 22px/1.2 var(--font-display);overflow-wrap:anywhere;margin:4px 0 2px}.claim-address .handle{color:var(--accent)}.claim-note{color:var(--text-secondary);font:var(--body-s);margin:0 0 12px}.claim-msg{font:var(--body-s);color:var(--attention);min-height:1.2em;margin:10px 0 0}.claim-msg.ok{color:var(--text-secondary)}.claim-auth{margin-top:12px;position:relative}.claim-auth.is-locked>:not(.claim-guard){opacity:.5}.claim-guard{z-index:2;cursor:pointer;position:absolute;inset:0}[data-google-slot]{justify-content:center;display:flex}.claim-or{color:var(--text-muted);font:var(--body-s);align-items:center;gap:10px;margin:14px 0;display:flex}.claim-or:before,.claim-or:after{content:"";border-top:1px solid var(--border-subtle);flex:1}.claim-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.claim-done{text-align:center;padding:16px 0 8px}.claim-logout{text-align:center;margin:8px 0 0}.sheet.sheet-centred .sheet-head h2{text-align:center;flex:auto;align-self:stretch}.sheet.sheet-centred .sheet-back{align-self:flex-start}.sheet.sheet-centred .claim-note,.sheet.sheet-centred .claim-address,.sheet.sheet-centred .claim-msg,.sheet.sheet-centred .claim [data-claim-step=review]>p.body-s{text-align:center}.sheet.sheet-centred .claim-actions{justify-content:center}.check.is-nudged{animation:.5s claim-nudge}.check.is-nudged input{outline:2px solid var(--attention);outline-offset:2px}@keyframes claim-nudge{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.terms-tabs{gap:8px;margin:0 0 12px;display:flex}.terms-tabs button[aria-selected=true]{border-color:var(--accent);color:var(--text)}.terms-doc h3{margin-top:0}.terms-doc h4{margin:16px 0 4px}.terms-inline{font:var(--body-s);margin:0 0 12px}.terms-inline summary{cursor:pointer;color:var(--accent)}.terms-inline .terms-doc{margin-top:12px}@media (prefers-reduced-motion:reduce){.check.is-nudged{animation:none}}input[type=text],input[type=date],input[type=datetime-local],input[type=email],input[type=search],input.text,textarea,select{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font:var(--body-s);box-sizing:border-box;width:100%;max-width:420px;padding:8px 10px}select{max-width:200px}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}textarea{min-height:140px;font-family:ui-monospace,monospace}label.field{margin:12px 0;display:block}label.field>span:first-child{font:var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:4px;display:block}.field-hint,.field-error{font:var(--body-s);margin-top:4px;display:block}.field-hint{color:var(--text-muted)}.field-error{color:var(--attention)}.row-actions{flex-wrap:wrap;flex-shrink:0;gap:6px;display:flex}.btn.icon-only{padding:0 10px}.btn.icon-only .icon:first-child{margin-right:0}.btn.icon-only.is-on{background:var(--accent);color:var(--accent-ink)}.btn.icon-only.is-on:hover{background:var(--accent-hover);color:var(--accent-ink)}form.inline{display:inline}.card.is-head{border-color:var(--accent);box-shadow:0 0 24px -4px #f59e0b26}.card.is-pending{opacity:.45;pointer-events:none;transition:opacity .15s}.card-action-row{align-items:center;gap:8px;width:100%;display:flex}.card-action-row form.grow{flex:1}.drag-handle{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-sm);cursor:grab;width:40px;height:40px;color:var(--text-muted);touch-action:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.drag-handle:active{cursor:grabbing}.card.is-dragging{opacity:.6;border-color:var(--accent)}.stage-clock{font:800 18px/1 var(--font-display);color:var(--accent);letter-spacing:-.01em}.stage-status-badge{border-radius:var(--r-pill);background:var(--surface-raised);border:1px solid var(--border);font:700 11px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em;color:var(--text);align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.toggle-switch{cursor:pointer;font:700 12px/1.2 var(--font-body);color:var(--text-secondary);background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.toggle-switch.is-on{color:var(--text)}.toggle-track{border-radius:var(--r-pill);background:var(--surface-raised);border:1px solid var(--border);width:40px;height:24px;transition:background var(--motion), border-color var(--motion);flex-shrink:0;display:inline-block;position:relative}.toggle-knob{background:var(--text-muted);width:18px;height:18px;transition:transform var(--motion), background var(--motion);border-radius:50%;position:absolute;top:2px;left:2px}.toggle-switch.is-on .toggle-track{background:var(--positive-bg);border-color:var(--positive-border)}.toggle-switch.is-on .toggle-knob{background:var(--positive);transform:translate(16px)}.stage-tabs{background:var(--surface-raised);border-radius:var(--r-control);grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px;padding:6px;display:grid}.tab-btn{border-radius:var(--r-control);min-height:48px;color:var(--text-muted);font:700 12px/1.2 var(--font-body);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex;position:relative}.tab-btn .icon{width:18px;height:18px}.tab-btn .count{font:800 18px/1 var(--font-display);color:inherit}.tab-btn[aria-selected=true]{background:var(--surface);border-color:var(--accent);color:var(--accent);box-shadow:0 0 16px -2px #f59e0b4d}@keyframes tab-alert-pulse{0%,to{border-color:#f59e0b59;box-shadow:0 0 #f59e0b00}50%{border-color:var(--accent);box-shadow:0 0 16px 2px #f59e0b8c}}@keyframes count-pop{0%{transform:scale(1)}40%{transform:scale(1.55)}to{transform:scale(1)}}@keyframes card-new-fade{0%{border-color:var(--accent);box-shadow:0 0 20px -2px #f59e0b99}to{box-shadow:0 0 #f59e0b00}}.tab-btn[data-alert]{color:var(--accent);animation:1.6s ease-in-out infinite tab-alert-pulse}.tab-btn[data-alert]:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:8px}.tab-btn .count.is-bumped{animation:.5s ease-out count-pop;display:inline-block}.card.is-new{border-color:var(--accent);animation:5s ease-out card-new-fade}@media (prefers-reduced-motion:reduce){.tab-btn[data-alert]{border-color:var(--accent);animation:none;box-shadow:0 0 0 2px #f59e0b80}.tab-btn .count.is-bumped{animation:none}.card.is-new{animation:none;box-shadow:0 0 0 2px #f59e0b80}}.tab-btn[aria-selected=true]:after{content:"";border-radius:var(--r-pill);background:var(--accent);height:2px;box-shadow:0 0 8px 0 var(--accent);position:absolute;bottom:-1px;left:12px;right:12px}.card.is-playing-now{border-color:var(--accent);padding-left:24px;position:relative}.card.is-playing-now:before{content:"";background:var(--accent);border-radius:14px 0 0 14px;width:8px;position:absolute;top:0;bottom:0;left:0}.card-badge-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.card-title-row{align-items:center;gap:10px;display:flex}.song-search{border-radius:var(--r-control);width:40px;height:40px;color:var(--text-muted);transition:color var(--motion), background var(--motion);flex:none;justify-content:center;align-items:center;margin:-8px 0;text-decoration:none;display:inline-flex}.song-search:hover{color:var(--accent);background:var(--surface-raised)}.song-search:focus-visible{outline:2px solid var(--accent);outline-offset:0}.card-title-row .song-search{margin-left:auto}.setlist-row-title{align-items:center;gap:4px;display:flex}.setlist-row-title>span,.card-title-text{min-width:0}.request-count-badge{border-radius:var(--r-pill);background:color-mix(in srgb, var(--live) 18%, transparent);border:1px solid color-mix(in srgb, var(--live) 35%, transparent);height:20px;color:var(--live);font:700 11px/1 var(--font-body);align-items:center;gap:4px;padding:0 8px;display:inline-flex}.request-count-badge .icon{width:12px;height:12px}.rank-badge{background:var(--surface-raised);border:1px solid var(--border);width:32px;height:32px;color:var(--text-secondary);font:700 13px/1 var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.count-badge .icon{vertical-align:-1px;width:12px;height:12px;margin-right:2px}.card.is-head strong{font-size:22px}.secondary.is-head-artist{color:var(--accent);font-weight:600}.card-action-row .btn.is-head-played{text-transform:uppercase;letter-spacing:.03em}.ask-notes-header{font:700 10px/1.2 var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;margin-top:10px;display:flex}.ask-notes{flex-direction:column;gap:4px;margin-top:6px;display:flex}.ask-note{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);padding:8px 10px}.ask-note-name{font:700 12px/1.2 var(--font-body);color:var(--accent)}.ask-note-time{float:right;font:400 10px/1.4 var(--font-body);color:var(--text-muted)}.ask-note-quote{font:var(--body-s);color:var(--text-secondary);margin:2px 0 0;font-style:italic}.ask-note-overflow{border-radius:var(--r-pill);background:var(--surface-raised);width:fit-content;font:var(--body-s);color:var(--text-muted);margin:4px auto 0;padding:4px 12px;display:block}.flash.undo{max-height:80px;transition:opacity .3s,max-height .3s,margin .3s,padding .3s,border-width .3s;overflow:hidden}.flash.undo.is-dismissed{opacity:0;pointer-events:none;border-width:0;max-height:0;margin:0;padding:0}.rq-cta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.rq-cta-row p{margin:0}.add-song-inline{margin-bottom:16px}.add-song-inline[open] summary{margin-bottom:10px}.setlist-search,.songs-search{max-width:none;margin-bottom:8px}.setlist-filters{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.chip{border-radius:var(--r-pill);background:var(--surface-raised);color:var(--text-secondary);font:700 12px/1.2 var(--font-body);cursor:pointer;border:1px solid #0000;padding:5px 12px}.chip.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.setlist-rows{flex-direction:column;gap:8px;display:flex}.setlist-row{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.setlist-row[hidden]{display:none}.setlist-row-info{min-width:0}.setlist-demand{border-radius:var(--r-pill);background:color-mix(in srgb, var(--accent) 15%, transparent);font:700 11px/1.2 var(--font-body);color:var(--accent);align-items:center;gap:4px;margin-top:6px;padding:3px 8px;display:inline-flex}.setlist-demand .icon{width:12px;height:12px}.setlist-status-tag{border-radius:var(--r-sm);background:var(--surface-raised);border:1px solid var(--border);color:var(--text-secondary);font:700 11px/1.2 var(--font-body);white-space:nowrap;flex-shrink:0;padding:6px 10px}.setlist-status-tag.now-playing{background:var(--positive-bg);border-color:var(--positive-border);color:var(--positive)}.setlist-row .btn.sm{text-transform:uppercase;letter-spacing:.02em}.open-set-row[hidden]{display:none}.adminnav{border-bottom:1px solid var(--border);font:var(--body-s);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:20px;padding-bottom:12px;display:flex}.adminnav a{color:var(--text-secondary);border-radius:var(--r-control);transition:background var(--motion), border-color var(--motion), color var(--motion);border:1px solid #0000;align-items:center;gap:6px;padding:7px 12px;display:inline-flex}.adminnav a:hover{color:var(--text);background:var(--surface);border-color:var(--border)}.adminnav a.on{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-color:color-mix(in srgb, var(--accent) 28%, transparent)}.adminnav .icon{width:1.15em;height:1.15em}.nav-avatar{object-fit:cover;border-radius:50%;width:1.15em;height:1.15em;display:block}.adminnav.studio-nav{flex-wrap:nowrap}.adminnav .nav-end{margin-left:auto}.studio-bar{justify-content:space-between;align-items:center;gap:8px;margin:0 0 8px;display:flex}.studio-bar .studio-name{font:var(--label);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.studio-switch{min-width:0;position:relative}.studio-switch>summary{cursor:pointer;max-width:100%;list-style:none}.studio-switch>summary::-webkit-details-marker{display:none}.studio-switch[open]>summary{background:var(--surface-raised);color:var(--text)}.studio-menu{z-index:30;min-width:240px;margin-top:6px;position:absolute;top:100%;left:0;box-shadow:0 8px 28px #00000080}.studio-menu form{display:block}.studio-menu button.list-row{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;border:0;border-bottom:1px solid var(--border-subtle);border-radius:var(--r-sm);background:0 0}.studio-menu form:last-child button.list-row{border-bottom:0}.list-row:has(details.confirm[open]){flex-wrap:wrap}.members-actions{margin-top:10px}.studio-menu button.list-row:hover{background:var(--surface-raised)}.studio-menu button.list-row.is-current .row-title{color:var(--accent)}@media (width<=400px){.adminnav.studio-nav{gap:2px}.adminnav.studio-nav a{padding:7px 8px}}@media (width<=340px){.adminnav.studio-nav .nav-label{display:none}}table.grid{border-collapse:collapse;width:100%;font:var(--body-s)}table.grid th,table.grid td{text-align:left;border-bottom:1px solid var(--border-subtle);vertical-align:top;padding:8px 10px}table.grid th{font:var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);z-index:5;background:var(--bg);position:sticky;top:0}table.grid tr:hover td{background:var(--surface)}.stat{margin:0 24px 16px 0;display:inline-block}.stat b{font:700 24px/1.1 var(--font-display);display:block}.stat span{font:var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.qr-card{background:var(--qr-card);border-radius:16px;padding:20px;line-height:0;display:inline-block}.qr-card img{width:180px;height:180px;display:block}.pub-url{width:100%;font:var(--body);color:var(--text);text-align:center;overflow-wrap:anywhere;cursor:pointer;appearance:none;background:0 0;border:0;margin:6px 0 10px;padding:0;display:block}.pub-url:hover,.pub-url:focus-visible{color:var(--accent)}.page-actions{justify-content:center;align-items:center;gap:8px;display:flex}img{max-width:100%}.theme-picker{flex-wrap:wrap;gap:16px;margin:8px 0 16px;display:flex}.theme-option{cursor:pointer;flex-direction:column;align-items:center;gap:6px;display:flex}.theme-option input{opacity:0;width:1px;height:1px;position:absolute}.theme-swatch{width:40px;height:40px;box-shadow:0 0 0 1px var(--border);border:2px solid #0000;border-radius:50%}.theme-option input:checked+.theme-swatch{border-color:var(--text)}.theme-option input:focus-visible+.theme-swatch{outline:2px solid var(--accent);outline-offset:2px}.theme-swatch.theme-amber{background:var(--accent)}.theme-swatch.theme-violet{background:var(--theme-violet)}.theme-swatch.theme-teal{background:var(--theme-teal)}.theme-swatch.theme-rose{background:var(--theme-rose)}.theme-option-label{font:var(--body-s);color:var(--text-secondary)}.profile-photo-preview{object-fit:cover;border:2px solid var(--border);background:var(--surface-raised);border-radius:50%;flex:none;width:72px;height:72px;display:block}.profile-photo-row{align-items:center;gap:16px;margin:8px 0 16px;display:flex}.profile-photo-row>div{flex:auto;min-width:0}.profile-photo-row input[type=file]{max-width:100%}.profile-photo-empty{background:var(--surface-raised);width:72px;height:72px;color:var(--text-muted);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.profile-photo-empty .icon{width:28px;height:28px}.photo-crop-frame{aspect-ratio:1;touch-action:none;cursor:grab;background:#000;border-radius:12px;width:min(78vw,340px);margin:12px auto;position:relative;overflow:hidden}.photo-crop-frame:active{cursor:grabbing}.photo-crop-frame img{transform-origin:0 0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:none;position:absolute;top:0;left:0}.photo-crop-controls{align-items:center;gap:10px;margin:4px 0 18px;display:flex}.photo-crop-controls input[type=range]{flex:auto}.photo-crop-actions{justify-content:flex-end;gap:10px;display:flex}.studio-header{flex-direction:column;gap:12px;margin:4px 0 14px;display:flex;position:relative}.studio-header-top{align-items:center;gap:12px;display:flex}.studio-header-photo{flex:none;width:76px;height:76px;position:relative}.studio-header-avatar{width:76px;height:76px}.studio-header-avatar.profile-photo-empty .icon{width:32px;height:32px}.studio-header-edit{background:var(--surface-raised);border:1px solid var(--border);width:30px;height:30px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:-4px;right:-4px}.studio-header-edit:hover{color:var(--text)}.studio-header-edit .icon{width:16px;height:16px}.studio-header-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.studio-header-identity{flex:auto;min-width:0}.studio-header-name{font:700 18px/1.2 var(--font-display);color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.studio-header-identity .muted{margin:2px 0 0}.today-card{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border));border-radius:var(--r-card);background:color-mix(in srgb, var(--accent) 5%, var(--surface));margin-bottom:16px;padding:16px}.today-card-top{align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.today-card .date-badge{border-color:color-mix(in srgb, var(--accent) 50%, transparent);background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent)}.today-card-meta{flex-direction:column;flex:auto;gap:3px;min-width:0;padding-top:2px;display:flex}.today-card-meta .when{font:600 14px/1.3 var(--font-body);color:var(--text)}.today-card-meta .venue{color:var(--text-secondary);font:var(--body-s);align-items:center;gap:4px;display:inline-flex}.today-card-meta .venue .icon{width:13px;height:13px}.today-card .live-badge{flex:none}.today-card-title{font:800 26px/1.2 var(--font-display);margin:0 0 14px}.today-card-actions{gap:8px;display:flex}.today-card-actions .btn.block{flex:auto}.today-card-icon-btn{border-radius:var(--r-control);background:var(--surface-raised);border:1px solid var(--border);width:48px;height:48px;color:var(--text-secondary);flex:none;justify-content:center;align-items:center;display:inline-flex}.today-card-icon-btn:hover{color:var(--text)}.live-badge{white-space:nowrap;border-radius:var(--r-pill);background:color-mix(in srgb, var(--accent) 14%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent);font:700 12px/1 var(--font-body);align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.live-badge:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.card.is-selected,.list-row.is-selected{border-left:3px solid var(--accent);background:var(--surface-raised)}.card.is-selected{box-shadow:0 0 24px -4px #f59e0b26}@media (width>=1024px){.sheet.sheet-full:not(.is-stage){border:1px solid var(--border);border-radius:var(--r-card);opacity:0;width:min(560px,100vw - 48px);max-height:min(84vh,760px);transition:opacity var(--motion), transform var(--motion);inset:50% auto auto 50%;overflow-y:auto;transform:translate(-50%,-46%)}.sheet.sheet-full.is-open:not(.is-stage){opacity:1;transform:translate(-50%,-50%)}.sheet.sheet-full:not(.is-stage) .sheet-head{flex-direction:row;align-items:baseline;gap:12px}.sheet.sheet-full:not(.is-stage) .sheet-back{color:var(--text-secondary);padding:4px 6px;font-size:0;position:absolute;top:10px;right:14px}.sheet.sheet-full:not(.is-stage) .sheet-back:after{content:"×";font:400 22px/1 var(--font-body)}.sheet.sheet-full:not(.is-stage) .sheet-back:hover{color:var(--text)}}@media (width>=1024px) and (prefers-reduced-motion:reduce){.sheet.sheet-full:not(.is-stage){transition:none}}.icon{stroke:currentColor;fill:none;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.125em;flex:none;width:1em;height:1em}.icon.icon-lg{width:1.25em;height:1.25em}.btn .icon:first-child{margin-right:6px}.plan-intro{max-width:640px;margin:-8px 0 16px}.plan-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);margin-top:var(--sp-16);overflow:hidden}.plan-card.plan-add{gap:var(--sp-16) var(--sp-24);padding:var(--sp-20);background:0 0;border-style:dashed;flex-wrap:wrap;margin-bottom:64px;display:flex}.plan-card.plan-row-card{gap:var(--sp-12) var(--sp-24);padding:var(--sp-20);flex-wrap:wrap;display:flex}.plan-head{align-items:center;gap:var(--sp-10);padding:var(--sp-16) var(--sp-20);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.plan-title{align-items:center;gap:var(--sp-10);flex:1;min-width:0;display:flex}.plan-title h2{font:700 20px/1.15 var(--font-display);letter-spacing:-.01em;margin:0}.plan-num-badge{font:var(--label);color:var(--text-muted);width:20px}.plan-key{color:var(--text-muted);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:4px 6px;font:500 11px/1 ui-monospace,monospace}.plan-pill{font:700 10px/1 var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--positive);background:var(--positive-bg);border:1px solid var(--positive-border);border-radius:var(--r-pill);padding:4px 8px}.plan-head-actions{align-items:center;gap:var(--sp-6);display:flex}.plan-move{border:1px solid var(--border-subtle);border-radius:var(--r-sm);gap:2px;padding:2px;display:flex}.plan-note{padding:var(--sp-12) var(--sp-20);color:var(--text-muted);font:var(--body-s);background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle);margin:0}.plan-note.attention{color:var(--destructive);font-weight:600}.plan-row{gap:var(--sp-12) var(--sp-24);padding:var(--sp-20);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.plan-row:last-child{border-bottom:0}.plan-row-label{font:var(--label);letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);padding-top:var(--sp-12);gap:var(--sp-6);flex-direction:column;flex:0 0 180px;display:flex}.plan-row-label .muted{letter-spacing:0;text-transform:none;font-weight:400}.plan-row-body{gap:var(--sp-10);flex-direction:column;flex:360px;min-width:0;display:flex}.plan-inline{gap:var(--sp-8);flex-wrap:wrap;align-items:flex-end;display:flex}.plan-inline>input.text{flex:1;min-width:0}.plan-limit{align-items:center;gap:var(--sp-8) var(--sp-14);flex-wrap:wrap;display:flex}.plan-limit>span:first-child{font:600 14px/1.3 var(--font-body);color:var(--text-secondary);flex:140px}input.text.plan-num{text-align:right;width:120px}.plan-free{align-items:baseline;gap:var(--sp-8);margin:0;display:flex}.plan-free b{font:700 20px/1 var(--font-display)}.plan-free span{color:var(--text-muted);font:var(--body-s)}.plan-terms{border:1px solid var(--border-subtle);border-radius:var(--r-control);overflow:hidden}.plan-term{align-items:center;gap:var(--sp-8) var(--sp-14);padding:10px var(--sp-12);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.plan-term-label{font:700 14px/1.2 var(--font-body);flex:0 0 76px}.plan-term.is-withdrawn .plan-term-label,.plan-term.is-withdrawn input{color:var(--text-muted);text-decoration:line-through}.plan-money{flex:200px;max-width:180px;position:relative}.plan-money>span:first-child{left:var(--sp-12);color:var(--text-muted);font:600 14px var(--font-body);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.plan-money>input.text{padding-left:26px}.plan-money.plan-pct{flex:0 0 120px}.plan-money.plan-pct>input.text{padding-left:var(--sp-12);padding-right:30px}.plan-money.plan-pct>span:first-of-type{left:auto;right:var(--sp-12)}.plan-money .field-error{white-space:nowrap;position:absolute;top:100%;left:0}.plan-addterm{align-items:flex-end;gap:var(--sp-10);padding:var(--sp-12);flex-wrap:wrap;display:flex}.plan-mini{gap:var(--sp-6);flex-direction:column;flex:0 150px;display:flex}.plan-mini.grow{flex:180px}.plan-mini>span{font:700 10px/1 var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.plans-savebar{bottom:var(--sp-16);z-index:5;margin-top:var(--sp-16);align-items:center;gap:var(--sp-12) var(--sp-20);padding:var(--sp-14) var(--sp-16) var(--sp-14) var(--sp-20);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-card);flex-wrap:wrap;display:flex;position:sticky}.plans-savebar-text{gap:var(--sp-4);flex-direction:column;flex:320px;min-width:0;display:flex}.plans-state{align-items:center;gap:var(--sp-8);font:700 13px/1.2 var(--font-body);display:flex}.plans-state.attention{color:var(--attention)}.plans-state.positive{color:var(--positive)}.plans-state .dot{background:var(--attention);border-radius:50%;width:7px;height:7px}[data-sheet-scrim=ask]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.fan-sheet .sheet-body{flex-direction:column;gap:14px;display:flex}.fan-sheet .sheet-head{align-items:center;margin:0}.fan-sheet .sheet-head h2{font:700 12px/1.2 var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);flex:1}.fan-sheet .sheet-close{justify-content:center;width:40px;height:40px;margin-right:-8px}.sheet-step-back{height:32px;color:var(--text-secondary);font:400 13px/1 var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.sheet-step-back .icon{width:16px;height:16px}.fan-ask-form{flex-direction:column;gap:14px;display:flex}.fan-sheet-head{flex-direction:column;gap:4px;display:flex}.fan-sheet-song{font:700 24px/1.15 var(--font-display);letter-spacing:-.02em;margin:0}.fan-sheet-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fan-sheet-meta a{font:700 13px/1 var(--font-body);align-items:center;gap:5px;display:inline-flex}.fan-sheet-meta a .icon{width:14px;height:14px}.fan-field{flex-direction:column;gap:6px;margin:0;display:flex}.fan-field>span{font:700 12px/1.2 var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.fan-field input{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;max-width:none;height:48px;color:var(--text);font:400 16px var(--font-body);outline:none;padding:0 12px}.fan-field input:focus{border-color:var(--accent)}.fan-error{border-radius:var(--r-sm);background:color-mix(in srgb, var(--attention) 10%, var(--surface));border:1px solid var(--attention);color:var(--text);font:400 14px/1.4 var(--font-body);padding:10px 12px}.fan-terms{flex-direction:column;gap:8px;display:flex}.fan-tick{color:var(--text-secondary);font:var(--body-s);cursor:pointer;align-items:flex-start;gap:12px;display:flex}.fan-tick input{appearance:none;cursor:pointer;border:1.5px solid var(--text-muted);background:var(--surface-raised);border-radius:6px;flex:none;width:22px;height:22px;margin:0;position:relative}.fan-tick input:checked{background:var(--accent);border-color:var(--accent)}.fan-tick input:checked:after{content:"";border:solid var(--accent-ink);border-width:0 2.5px 2.5px 0;width:5px;height:10px;position:absolute;top:2px;left:6px;transform:rotate(45deg)}.fan-tick input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fan-tick.is-nudged input{border-color:var(--attention)}.fan-tick .hl{color:var(--accent)}.fan-terms-toggle{color:var(--accent);font:var(--body-s);cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-left:34px;padding:0}.fan-terms-box{border-radius:var(--r-sm);background:var(--surface-sunken);border:1px solid var(--border-subtle);flex-direction:column;gap:6px;max-height:140px;margin-left:34px;padding:12px;display:flex;overflow-y:auto}.btn.fan-send{background:var(--positive-bg);height:52px;font-size:16px}.btn.fan-send:hover:not(:disabled){background:color-mix(in srgb, var(--positive) 8%, var(--positive-bg))}.btn.fan-send:disabled{background:var(--surface-raised);color:var(--text-muted);cursor:not-allowed;border-color:#0000}.fan-signin{flex-direction:column;gap:14px;display:flex}.fan-recap{border-radius:var(--r-control);background:var(--surface-sunken);border:1px solid var(--border-subtle);align-items:center;gap:12px;padding:12px 14px;display:flex}.fan-recap .icon{width:18px;height:18px;color:var(--positive);flex:none}.fan-recap div{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.fan-recap b{font:600 15px/1.3 var(--font-body)}.fan-recap span{color:var(--text-muted);font:400 12px/1.3 var(--font-body)}.fan-signin-title{font:700 20px/1.2 var(--font-display);letter-spacing:-.01em;text-align:center;margin:0}.fan-signin-title.is-left{text-align:left}.fan-google{border-radius:var(--r-control);background:var(--text);height:48px;color:var(--accent-ink);font:700 15px/1 var(--font-body);cursor:pointer;border:0;justify-content:center;align-items:center;gap:10px;display:flex}.fan-google:before{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E") 50%/contain no-repeat;flex:none;width:20px;height:20px}.fan-google:hover{background:color-mix(in srgb, var(--text) 90%, var(--bg))}.fan-or{color:var(--text-muted);font:400 13px/1 var(--font-body);align-items:center;gap:10px;display:flex}.fan-or span{background:var(--border-subtle);flex:1;height:1px}.btn.fan-signin-button{height:48px}.fan-code-sent{color:var(--text-muted);font:400 14px/1.45 var(--font-body);margin:0}.fan-code-sent b{color:var(--text);font-weight:400}input.fan-code{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-control);height:56px;color:var(--text);letter-spacing:.4em;text-align:center;outline:none;width:100%;max-width:none;padding:0 16px;font:700 26px/1 ui-monospace,monospace}input.fan-code:focus{border-color:var(--accent)}.fan-resend{color:var(--text-muted);font:400 13px/1 var(--font-body);background:0 0;border:0;align-self:center;padding:6px}.fan-resend.is-link{color:var(--accent);cursor:pointer;font-weight:700}.fan-sending{color:var(--text-secondary);flex-direction:column;align-items:center;gap:14px;padding:28px 0 16px;display:flex}.fan-spin{border:3px solid var(--positive);border-top-color:#0000;border-radius:50%;width:28px;height:28px;animation:.6s linear infinite fan-spin}@keyframes fan-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.fan-spin{animation-duration:2s}}[hidden]{display:none!important}
