:root{--panel:#fff;--ink:#1f1a2b;--amber:#e2a72e;--gain:#2c8a4c;--loss:#b2392c;--danger:#a33a2c;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:.8rem}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:8px 12px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.link{color:var(--brand);text-align:left;background:0 0;border:0;padding:0;font-size:.85rem}.muted{color:var(--muted);font-size:.85rem}.gain{color:var(--gain)}.loss{color:var(--loss)}.app{max-width:480px;min-height:100vh;margin:0 auto;padding-bottom:80px}main{gap:16px;padding:12px 16px;display:grid}main>section{gap:8px;display:grid}.section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.role-select{background:var(--stage);align-content:start;gap:12px;max-width:480px;min-height:100vh;margin:0 auto;padding:32px 16px;display:grid}.role-select header{color:#fff;margin-bottom:8px}.role-select h1{margin:0 0 4px;font-size:1.8rem}.role-select header p{opacity:.8;margin:0}.role-card{text-align:left;border:3px solid var(--career);border-radius:14px;gap:4px;padding:16px;display:grid;position:relative}.role-card.soon{border-color:#0000}.role-card:disabled{opacity:.6}.role-name{color:var(--career);font-size:1.15rem;font-weight:700}.role-pitch{font-size:.9rem}.role-ladder{color:var(--muted);font-size:.8rem}.soon-tag{text-transform:uppercase;letter-spacing:.05em;background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:2px 8px;font-size:.7rem;position:absolute;top:14px;right:14px}.topbar{z-index:5;background:var(--stage);color:#fff;gap:8px;padding:10px 16px 12px;display:grid;position:sticky;top:0}.venue-name{opacity:.8;letter-spacing:.04em;text-transform:uppercase;font-size:.8rem}.stats{grid-template-columns:1.6fr 1fr 1fr;gap:8px;display:grid}.stat{background:#ffffff14;border-radius:10px;flex-direction:column;padding:6px 10px;display:flex}.stat .label{opacity:.75;font-size:.7rem}.stat .value{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.stat .sub{opacity:.85;font-size:.75rem}.stat.cash .value{font-size:1.35rem}.boost{color:#fff;background:#ffffff1f;border:1px dashed #fff6;font-size:.85rem}.bar{background:#0000001a;border-radius:3px;height:6px;overflow:hidden}.bar .fill{background:var(--brand);height:100%;transition:width .1s linear}.tonight{background:var(--stage);color:#fff;border-radius:14px;padding:12px 14px}.tonight .muted{color:#ffffffb3}.tonight button.link{color:var(--amber)}.tonight-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.bar.live{background:#ffffff26}.bar.live .fill{background:var(--amber)}.live-row{font-variant-numeric:tabular-nums;gap:14px;font-size:.9rem;display:flex}.offer{background:#fff8e8;border:1px solid #efd9a6;border-radius:12px;padding:10px 12px}.offer-who{text-transform:uppercase;letter-spacing:.05em;color:#8a6a1e;font-size:.7rem}.offer h3{margin:2px 0 4px;font-size:1rem}.offer p{margin:0 0 8px;font-size:.85rem}.offer-actions{align-items:center;gap:8px;display:flex}.days{gap:6px;margin:0;padding:0;list-style:none;display:grid}.day{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:10px;grid-template-columns:84px 1fr;align-items:center;gap:8px;width:100%;padding:10px 12px;font-size:.9rem;display:grid}.day.open{border-style:dashed}.day.open .day-act{color:var(--brand);font-weight:600}.day.held.self{border-color:var(--brand);background:var(--brand-soft)}.day-label{white-space:nowrap;font-weight:700}.day:has(.day-who) .day-label{grid-row:1/span 2}.day-act{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.day-who{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:.75rem;overflow:hidden}.gate{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.gate.ready{border-color:var(--amber);box-shadow:0 0 0 2px #e2a72e59}.gate ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.gate li{gap:4px;font-size:.9rem;display:grid}.gate li.done{color:var(--gain)}.gate li.done .fill{background:var(--gain)}.buy-toggle{gap:4px;display:flex}.buy-toggle button{padding:4px 12px}.buy-toggle button.on{background:var(--stage);color:#fff;border-color:var(--stage)}.area{background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:6px;padding:10px 12px;display:grid}.area.locked{opacity:.6;background:0 0;border-style:dashed}.area-head{justify-content:space-between;align-items:baseline;display:flex}.area h3{margin:0;font-size:1rem}.area .level{color:var(--brand);font-weight:700}.area-row{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.area-actions{gap:8px;display:flex}.area-actions .buy{flex:1}.blurb{color:var(--muted);margin:0;font-size:.85rem}.effect{color:var(--brand);font-weight:600}.bubble{background:linear-gradient(90deg, var(--brand-soft) var(--fill), #fff var(--fill));font-variant-numeric:tabular-nums;flex:1}.bubble.full{border-color:var(--amber);box-shadow:0 0 0 2px #e2a72e59}.managed{color:var(--muted);flex:1;align-self:center;font-size:.85rem}.hire{font-size:.85rem}.toasts{z-index:50;gap:6px;width:min(448px,100% - 32px);display:grid;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:#fff;text-align:left;border:0;font-size:.9rem;box-shadow:0 4px 14px #0003}.toast.big{background:var(--amber);color:#2a1a00;font-weight:700}.toast.milestone,.toast.money{background:var(--brand)}.modal-backdrop{z-index:45;background:#140a2399;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:16px;gap:8px;width:min(448px,100%);max-height:calc(100vh - 32px);padding:16px;display:grid;overflow-y:auto}.modal h2{text-transform:none;letter-spacing:0;color:var(--ink);margin:0;font-size:1.3rem}.modal h3{margin:8px 0 0;font-size:.95rem}.modal p{margin:0}.roster{gap:6px;margin:0;padding:0;list-style:none;display:grid}.act{text-align:left;grid-template-columns:1fr auto;gap:2px 8px;width:100%;padding:8px 10px;display:grid}.act.on{border-color:var(--brand);background:var(--brand-soft)}.act-name{font-weight:600}.act-meta,.act-fee{color:var(--muted);font-size:.78rem}.act-draw{text-align:right;font-variant-numeric:tabular-nums;font-size:.85rem}.act-fee{text-align:right}.loyal{color:#c2417a;font-size:.8rem}.seg{flex-wrap:wrap;gap:4px;display:flex}.seg button{flex:1;padding:6px 8px;font-size:.85rem}.seg button.on{background:var(--stage);border-color:var(--stage);color:#fff}input[type=range]{width:100%;accent-color:var(--brand)}.quote{background:var(--bg);border-radius:12px;gap:4px;padding:10px 12px;font-size:.9rem;display:grid}.quote>div{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.quote .net{border-top:1px solid var(--line);padding-top:4px;font-size:1rem}.settle-head{gap:2px;display:grid}.soldout{background:var(--amber);color:#2a1a00;border-radius:999px;justify-self:start;padding:2px 10px;font-size:.8rem;font-weight:800}.ledger,.split,.away-shows{font-variant-numeric:tabular-nums;gap:4px;margin:0;padding:0;list-style:none;display:grid}.ledger li,.away-shows li{justify-content:space-between;display:flex}.ledger .minus{color:var(--muted)}.split li{background:var(--bg);border-radius:8px;grid-template-columns:1fr auto;padding:6px 10px;display:grid}.split li.mine{background:var(--brand-soft);outline:1px solid var(--brand)}.split .hint{color:var(--muted);grid-column:1/-1;font-size:.75rem}.settle-net{justify-items:center;gap:2px;padding:8px 0;display:grid}.settle-net strong{font-size:2rem}.welcome{text-align:center}.welcome .earned{color:var(--gain);font-size:2rem;font-weight:800}.welcome .earned.loss{color:var(--loss)}.away-shows{text-align:left;font-size:.9rem}.dev-toggle{z-index:40;color:#fff;background:#ffffff26;border:1px solid #ffffff4d;border-radius:999px;padding:3px 8px;font-size:.7rem;line-height:1;position:fixed;top:8px;right:max(16px,50vw - 224px)}.dev-panel{z-index:40;color:#eee;width:min(480px,100%);padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#222;border-radius:14px 14px 0 0;font-size:.8rem;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 16px #00000040}.dev-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.dev-head button{padding:2px 10px;font-size:.8rem}.dev-buttons{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.dev-buttons button{padding:6px 4px;font-size:.8rem}.venue-map{background:var(--scene);border-radius:14px;gap:0;overflow:hidden}.venue-map svg,.inside-scene svg{width:100%;height:auto;display:block}.map-room{fill:#0000;cursor:pointer}.map-room:hover{fill:#ffffff14}.map-label{fill:#fff;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:#140a23d9;stroke-width:3px;pointer-events:none;font-family:system-ui,sans-serif;font-weight:700}.map-hint{color:#ffffffb3;padding:6px 12px 8px;font-size:.75rem}.inside-scene{background:var(--scene);border-radius:12px;overflow:hidden}.inside-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.modal .hint{font-size:.75rem}.inside-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.inside-list li{border-radius:10px;align-items:center;gap:6px;display:flex}.inside-list li.on{background:#fff4d9}.inside-row{text-align:left;background:0 0;border:0;flex:1;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;padding:6px;display:grid}.inside-row .check{color:var(--brand);font-weight:700}.inside-name .muted{font-size:.75rem;display:block}button.small{white-space:nowrap;padding:4px 10px;font-size:.8rem}.head-right{align-items:center;gap:8px;display:flex}button.look{color:var(--brand);border-color:var(--brand-soft);border-radius:999px;padding:2px 8px;font-size:.75rem}.p-dance{animation:.45s ease-in-out infinite alternate dance}.p-sway{animation:1.8s ease-in-out infinite alternate sway}@keyframes dance{to{transform:translateY(calc(var(--amp) * -1))}}@keyframes sway{0%{transform:translateX(calc(var(--amp) * -.4))}to{transform:translateX(calc(var(--amp) * .4))}}.beam{animation:1.6s ease-in-out infinite alternate beam}@keyframes beam{0%{opacity:.35}to{opacity:1}}.pulse{animation:2.4s ease-in-out infinite alternate pulse}@keyframes pulse{0%{opacity:.55}}.twinkle{animation:1.1s steps(2,end) infinite twinkle}@keyframes twinkle{50%{opacity:.35}}.ghost{animation:1.2s ease-in-out infinite alternate ghost}@keyframes ghost{0%{opacity:.25}to{opacity:.6}}@media (prefers-reduced-motion:reduce){.p-dance,.p-sway,.beam,.pulse,.twinkle,.ghost{animation:none}}.neon{animation:3.2s step-end infinite neon}@keyframes neon{0%,to{opacity:1}92%{opacity:1}93%{opacity:.55}95%{opacity:1}}.flicker{animation:.9s ease-in-out infinite alternate flicker}@keyframes flicker{to{opacity:.8}}.drift{animation:2.4s ease-in-out infinite alternate drift}@keyframes drift{to{transform:translate(-6px)}}@media (prefers-reduced-motion:reduce){.neon,.flicker,.drift{animation:none}}.preview{color:#eee;background:#222;border-radius:10px;align-items:center;gap:12px;padding:8px 10px;font-size:.8rem;display:flex}.preview label:first-child{flex:1;gap:2px;display:grid}.preview .toggle{white-space:nowrap;align-items:center;gap:4px;display:flex}.haze{animation:7s ease-in-out infinite alternate haze}@keyframes haze{0%{opacity:.1;transform:translate(-8px)}to{opacity:.22;transform:translate(8px)}}.led{animation:2.2s ease-in-out infinite alternate led}@keyframes led{0%{opacity:.15}to{opacity:.6}}@media (prefers-reduced-motion:reduce){.haze,.led{animation:none}}.coach{background:var(--brand);color:#fff;border-radius:14px;gap:4px;padding:14px 16px;display:grid}.coach h2{color:#fff;letter-spacing:normal;text-transform:none;margin:0;font-size:1.05rem}.coach p{opacity:.92;margin:0}.coach-head{letter-spacing:.08em;opacity:.85;justify-content:space-between;font-size:.7rem;font-weight:700;display:flex}.coach .link{color:#fff;text-decoration:underline}.coach>button:not(.link){justify-self:start;margin-top:6px}.lab{color:#ddd;background:#15101f;min-height:100vh;padding:12px}.lab-bar{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.lab-bar .on{background:var(--brand);color:#fff}.lab-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.lab-cell{background:#1d1430;border-radius:10px;margin:0;padding:6px}.lab-cell figcaption{text-align:center;font-size:.8rem}.lab-cell.wide{grid-column:1/-1;max-width:900px}.act-strike{color:var(--loss);grid-column:1/-1;font-size:.75rem}.gate.legacy{border:2px solid var(--amber)}.setting{cursor:pointer;align-items:baseline;gap:8px;display:flex}.band-backdrop{z-index:46}.band-link{cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px}.band-link:hover{text-decoration-color:currentColor}.lineup{gap:2px;margin:0;padding:0;list-style:none;display:grid}.lineup li{justify-content:space-between;gap:8px;display:flex}.quirk,.with-you{border-radius:10px;gap:2px;padding:10px;display:grid}.quirk{background:var(--brand-soft)}.with-you{border:1px solid var(--line)}.with-you .regular{color:var(--brand);font-weight:600}.away-summary{border:1px solid var(--line);border-radius:10px;gap:2px;padding:10px;display:grid}.away-summary>div{justify-content:space-between;gap:8px;display:flex}.incident{background:var(--stage);color:#fff;z-index:40;border-radius:16px;gap:6px;width:min(448px,100% - 32px);padding:14px;animation:.35s ease-out incident-in;display:grid;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000059}.incident p{color:var(--on-stage);margin:0}.incident-kicker{color:var(--amber);font-size:.85rem;font-weight:700}.incident-title{font-size:1.15rem}.incident-options{gap:8px;display:flex}.incident-options button{flex:1;gap:2px;display:grid}.incident-options small{opacity:.8;font-weight:400}.incident-foot{color:var(--on-stage-dim);font-size:.8rem}.ledger .hint{color:var(--muted);font-size:.8rem;display:block}@keyframes incident-in{0%{opacity:0;transform:translate(-50%,40px)}}.today-head,.today-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.today-head h2{margin:0}.today ul{margin:8px 0}.today li.done .fill{background:var(--gain)}.today li.claimed>.today-row>span:first-child{color:var(--muted);text-decoration:line-through}.today .today-row button{white-space:nowrap;padding:4px 10px}.today p{margin:0;font-size:.85rem}.achievements ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.achievements li{border:1px solid var(--line);border-radius:10px;align-items:flex-start;gap:12px;padding:10px;display:flex}.achievements li.unlocked{background:var(--brand-soft);border-color:#0000}.achievements li>div{flex:1;gap:3px;display:grid}.achievement-icon{font-size:1.4rem}.achievements .small{font-size:.8rem}.scouting p{margin:6px 0;font-size:.85rem}.scouting ul{margin:8px 0}.scouting .stars{color:var(--amber)}.scouting .fill{background:var(--amber)}.scouting .small{font-size:.8rem}.scouting button{width:100%}.custom h3{margin:10px 0 6px;font-size:.9rem}.custom p{margin:4px 0;font-size:.85rem}.name-row{gap:8px;display:flex}.name-row input,.member-name input{border:1px solid var(--line);font:inherit;border-radius:8px;flex:1;padding:8px 10px}.swatches{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.swatch{justify-items:center;gap:3px;padding:8px 4px;font-size:.8rem;display:grid}.swatch.on{border:2px solid var(--brand);background:var(--brand-soft)}.swatch.on:disabled{opacity:1}.swatch .chip{border:4px solid;border-radius:50%;width:30px;height:30px}.custom ul{margin:0}.custom li{padding:4px 0;font-size:.9rem}.custom li button{white-space:nowrap;padding:4px 10px}.collapse-head{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.road{gap:10px;display:grid}.road .tonight{gap:8px;display:grid}.tour-map{background:#1f2f45;border-radius:12px;width:100%;display:block}.tour-map .leg{stroke:#e2a72e73;stroke-width:.7px;stroke-linecap:round}.tour-map .leg.on{stroke:var(--amber)}.tour-map .city circle{fill:#8fa3bf;stroke:#1f2f45;stroke-width:.5px}.tour-map .city circle.on{fill:var(--amber);stroke:#fff}.tour-map .city circle.tonight{fill:#ff5fa2;stroke:#fff}.tour-map .city.far{opacity:.35}.tour-map .city.pick{cursor:pointer}.tour-map .city.pick:hover circle{stroke:#fff}.tour-map text{text-anchor:middle;font-weight:600}.tour-map .name{fill:#c6d2e4;font-size:2.6px}.tour-map .num{fill:var(--ink);font-size:2.4px;font-weight:800}.route,.past-tours{gap:8px;margin:0;padding:0;list-style:none;display:grid}.route li,.past-tours li{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:8px;display:flex}.route-net{justify-items:end;gap:2px;display:grid}.act-fee.loss{color:var(--loss)}.band-form{color:#fff;gap:12px;display:grid}.band-form label{text-transform:uppercase;letter-spacing:.05em;color:#cbbfe6;gap:6px;font-size:.8rem;display:grid}.band-form input{font:inherit;text-transform:none;letter-spacing:0;border:0;border-radius:10px;padding:10px 12px;font-size:1.1rem}.genre-pick{grid-template-columns:1fr 1fr;gap:8px;display:grid}.genre-pick button{color:#fff;background:#ffffff14;border:2px solid #0000;padding:12px;font-weight:600}.genre-pick button.on{background:var(--amber);color:var(--stage);border-color:#fff}.route li button{white-space:nowrap}.tour-map .bus{text-anchor:middle;font-size:6.5px}.road-incident{color:var(--ink);border:1px solid var(--amber);background:#fff4d6;border-radius:12px;gap:6px;padding:10px 12px;display:grid}.road-incident p{margin:0;font-size:.9rem}.quote>div.road-incident{justify-content:stretch;display:grid}.sub-head{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:4px 0 0;font-size:.75rem}.route.gigs li{background:var(--brand-soft);border-radius:10px;padding:8px 10px}.lineup{justify-content:space-between;gap:6px;display:flex}.lineup .member{text-align:center;flex:1;justify-items:center;gap:2px;font-size:.85rem;display:grid}.avatar{border-radius:50%;display:block}.press-photo{background:var(--stage);color:#fff;border-radius:14px;gap:6px;padding:14px;display:grid}.press-photo strong{font-size:1.5rem}.press-photo span{color:#cbbfe6;font-size:.9rem}.press-kit blockquote{margin:0;font-style:italic}.lineup .member{min-width:0}.lineup .member strong{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;max-width:100%;display:-webkit-box;overflow:hidden}.member-name{gap:8px;display:grid}.member-name label{gap:2px;font-size:.85rem;display:grid}button.member{background:0 0;border:0;padding:4px 0}.stars{color:var(--amber);letter-spacing:1px;font-size:.75rem}.stars.big{font-size:1.1rem}.open-slot{border:2px dashed var(--muted);width:64px;height:64px;color:var(--muted);border-radius:50%;place-items:center;font-size:1.6rem;font-weight:800;display:grid}.profile{align-items:center;gap:12px;display:flex}.night .clock{color:var(--brand);font-variant-numeric:tabular-nums}.night .song{color:var(--amber);font-size:.85rem;font-weight:700}.night .feed{border-top:1px solid var(--line);gap:6px;margin:4px 0 0;padding:8px 0 0;list-style:none;display:grid}.night .feed li{gap:8px;animation:.35s ease-out feed-in;display:flex}.night .feed li+li{opacity:.6}.night .feed .at{width:64px;color:var(--muted);flex:none;padding-top:2px;font-size:.78rem}@keyframes feed-in{0%{opacity:0;transform:translateY(-6px)}}
