:root{--ink:#201b18;--muted:#887d73;--cream:#f6f0e7;--paper:#fffdf9;--line:#e5ddd2;--red:#a52d37;--red-dark:#79232b;--olive:#667044;--gold:#c38b3d;--shadow:0 16px 40px rgba(49,33,22,.1)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{min-height:100vh;max-width:720px;margin:auto;background:var(--cream);padding-bottom:86px}.topbar{height:84px;padding:16px 20px;display:flex;align-items:center;gap:14px;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:3}.wordmark{display:flex;align-items:center;gap:8px;background:none;border:0;padding:0;text-align:left;cursor:pointer}.wordmark img{width:42px;height:42px;object-fit:cover;border-radius:12px}.wordmark span{display:grid;line-height:1}.wordmark small{font-size:9px;letter-spacing:2px;color:var(--gold);font-weight:800}.wordmark strong{font-family:Georgia,serif;font-size:18px;color:var(--red);letter-spacing:1px}.event-switcher{display:flex;align-items:center;gap:9px;margin-left:auto;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:8px 10px;text-align:left;min-width:165px;cursor:pointer}.event-switcher span:nth-child(2){display:grid;min-width:0}.event-switcher small{font-size:8px;color:var(--muted);font-weight:800;letter-spacing:1px}.event-switcher strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-switcher b{font-size:19px;color:var(--red);font-weight:400}.live-dot{width:8px;height:8px;border-radius:50%;background:#36a26b;display:inline-block;flex:none;box-shadow:0 0 0 4px rgba(54,162,107,.12)}.profile-chip,.profile-avatar{border:0;border-radius:50%;background:var(--ink);color:white;font-weight:800;display:grid;place-items:center}.profile-chip{width:38px;height:38px;font-size:11px;cursor:pointer}main{padding:30px 24px}.view{display:none}.view.active{display:block}.kicker{font-size:10px;letter-spacing:2px;font-weight:850;color:var(--red);margin:0 0 8px}.greeting h1,.page-heading h1,.profile-header h1{font:normal 44px/1.02 Georgia,serif;margin:0 0 8px;letter-spacing:0}.subtle{color:var(--muted);font-size:14px;margin:0;line-height:1.5}.now-card{background:var(--ink);color:white;border-radius:14px;padding:22px;margin:28px 0 34px;box-shadow:var(--shadow)}.now-meta,.now-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#bcb0a6;font-size:11px}.status-pill{background:var(--gold);color:var(--ink);padding:5px 8px;border-radius:5px;font-size:9px;font-weight:900;letter-spacing:1px}.now-card h2{font:normal 32px Georgia,serif;margin:24px 0 4px}.now-card p{color:#c7bdb4;font-size:13px;margin:0 0 30px}.progress{height:4px;background:#4b423c;border-radius:4px;margin-bottom:15px}.progress span{display:block;width:42%;height:100%;background:var(--gold);border-radius:4px}.quiet{border:0;background:none;color:#e2bb78;font-size:11px;font-weight:800;padding:0;cursor:pointer}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:0 0 12px}.section-heading h2{font:normal 27px Georgia,serif;margin:0}.count{color:var(--muted);font-size:12px}.song-list{display:grid;gap:8px}.song-row{display:grid;grid-template-columns:30px minmax(0,1fr) 42px 60px;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px}.song-row.featured{border-color:#d8b77d}.rank{color:var(--red);font-size:11px;font-weight:900}.song-copy{min-width:0;display:grid;gap:4px}.song-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-copy span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-copy i{font-style:normal;color:var(--olive);margin-left:4px}.vote-count{text-align:center;border-left:1px solid var(--line);padding-left:7px}.vote-count strong{display:block;font-size:18px;line-height:1}.vote-count span{display:block;color:var(--muted);font-size:8px;margin-top:3px}.vote-button,.search-result button{border:0;background:var(--red);color:#fff;border-radius:7px;padding:9px 8px;font-size:11px;font-weight:800;cursor:pointer}.vote-button.voted{background:var(--olive)}.wide-button{width:100%;border:0;border-radius:8px;background:var(--red);color:#fff;padding:13px;font-weight:850;cursor:pointer;margin-top:14px}.wide-button.secondary{background:transparent;color:var(--red);border:1px solid var(--red)}.page-heading{margin-bottom:28px}.page-heading h1{font-size:38px}.request-hero{width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:var(--red);color:white;border:0;border-radius:12px;padding:17px;cursor:pointer;margin-bottom:34px}.request-hero .plus{font-size:27px;font-weight:200}.request-hero span:nth-child(2){display:grid;gap:4px;flex:1}.request-hero small{color:#f3d9d4;font-size:11px}.request-hero>b{font-size:20px;font-weight:300}.favourites{display:grid;gap:8px}.favourites button{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:10px;text-align:left;cursor:pointer}.favourites button>span:nth-child(2){display:grid;gap:3px;flex:1}.favourites small,.activity span{font-size:11px;color:var(--muted)}.favourites b{font-size:11px;color:var(--red)}.mini-disc{width:32px;height:32px;background:var(--ink);border-radius:50%;display:grid;place-items:center;color:#e9bf79;font-weight:800;font-size:12px;flex:none}.tip{margin-top:22px;border-left:3px solid var(--gold);padding:3px 0 3px 14px}.tip strong{font-size:13px}.tip p{color:var(--muted);font-size:12px;margin:5px 0}.attendance{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:24px}.attendance div{background:var(--paper);border:1px solid var(--line);padding:13px;border-radius:9px}.attendance strong{font:normal 27px Georgia,serif;display:block}.attendance span{color:var(--muted);font-size:10px}.feed{display:grid;gap:10px}.feed article{display:flex;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:14px}.feed-mark{width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:900;flex:none}.feed-mark.cherry{background:var(--red)}.feed-mark.olive{background:var(--olive)}.feed article strong{font-size:13px}.feed article p{font-size:12px;color:var(--muted);margin:5px 0}.feed article small{font-size:10px;color:#b6aaa0}.profile-header{display:flex;align-items:center;gap:15px;margin-bottom:28px}.profile-avatar{width:58px;height:58px;font-size:16px;background:var(--red)}.profile-header h1{font-size:38px}.credit-card{background:var(--ink);color:#fff;padding:20px;border-radius:13px;display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.credit-card span{display:block;font-size:9px;color:#bcb0a6;letter-spacing:1px;font-weight:800}.credit-card strong{font:normal 38px Georgia,serif}.credit-card button{background:#e7bb75;color:var(--ink);border:0;border-radius:7px;padding:10px;font-weight:850;cursor:pointer}.activity{display:grid;gap:8px}.activity div{display:grid;grid-template-columns:1fr auto;gap:5px;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:13px}.activity span{grid-column:1}.activity b{grid-column:2;grid-row:1/3;align-self:center;color:var(--olive);font-size:10px}.activity .muted-badge{color:var(--muted)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(720px,100%);height:76px;background:rgba(255,253,249,.97);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);z-index:4;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:none;color:var(--muted);display:grid;place-content:center;gap:3px;cursor:pointer}.bottom-nav button span{font-size:13px;font-weight:800}.bottom-nav button small{font-size:10px}.bottom-nav button.active{color:var(--red)}.modal-backdrop{position:fixed;inset:0;background:rgba(32,27,24,.55);z-index:8;display:grid;place-items:end center;padding:16px}.modal{width:min(100%,520px);background:var(--paper);border-radius:16px;padding:25px;position:relative;box-shadow:var(--shadow)}.modal h2{font:normal 30px Georgia,serif;margin:0 0 22px}.close{position:absolute;right:18px;top:18px;border:0;background:none;font-size:19px;color:var(--muted);cursor:pointer}.event-choice{width:100%;border:1px solid var(--line);background:var(--cream);border-radius:9px;padding:14px;text-align:left;display:flex;align-items:center;gap:11px;margin:8px 0;cursor:pointer}.event-choice.selected{border-color:var(--red)}.event-choice span:nth-child(2){display:grid;gap:4px;flex:1}.event-choice small{font-size:11px;color:var(--muted)}.event-choice b{font-size:11px;color:var(--red)}.calendar{width:8px;height:8px;border:1px solid var(--muted);color:var(--muted);font-size:0}.big-input{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--cream);padding:14px;font:inherit;margin-bottom:12px}.search-result{display:flex;align-items:center;gap:10px;padding:11px;background:var(--cream);border-radius:8px}.search-result>span:nth-child(2){display:grid;gap:3px;flex:1}.search-result small{font-size:11px;color:var(--muted)}.modal-note{font-size:11px;line-height:1.4;color:var(--muted);margin:18px 0 0}.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,15px);background:var(--ink);color:#fff;padding:12px 16px;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:10;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:721px){body{padding:28px}.shell{box-shadow:0 0 0 1px var(--line),var(--shadow);border-radius:18px;overflow:hidden}.topbar{position:relative}.bottom-nav{position:relative;transform:none;left:auto;width:100%;margin-top:24px;border-radius:0}.shell{padding-bottom:0}}@media(max-width:430px){main{padding:25px 16px}.topbar{padding:14px 15px;gap:8px}.wordmark strong{font-size:16px}.event-switcher{min-width:0;padding:7px}.event-switcher strong{max-width:92px}.greeting h1{font-size:38px}.song-row{grid-template-columns:24px minmax(0,1fr) 38px 56px;padding:10px 8px}.song-copy strong{font-size:13px}.vote-button{padding:9px 5px}}
