:root{
  --canvas:#eceef1;--surface:#f8f9fb;--card:#fff;--ink:#111827;--muted:#697386;
  --soft:#f0f2f5;--line:#dfe3e9;--accent:#2457d6;--accent-soft:#e9efff;
  --danger:#b42335;--danger-soft:#fff1f2;--success:#2f6b48;--success-soft:#eaf4ed;
  --nav:rgba(248,249,251,.95);--radius:16px;color-scheme:light
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--canvas);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
body{font-size:16px}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}svg{display:block;fill:none;stroke:currentColor}.hidden{display:none!important}
#app{position:relative;width:min(100%,480px);min-height:100dvh;margin:0 auto;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(17,24,39,.03)}
.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#111827!important;color:#fff}.app-loading strong{font-size:23px;letter-spacing:-.04em}.app-loading>span{color:#9ca6b7;font-size:12px}
.splash-mark,.brand-mark{display:grid;place-items:center;color:#fff;background:var(--accent)}.splash-mark{width:58px;height:58px;margin-bottom:12px;border-radius:18px;font-size:28px}.brand-mark{width:36px;height:36px;border-radius:11px;font-size:19px}
.topbar{height:calc(72px + env(safe-area-inset-top));padding:max(15px,env(safe-area-inset-top)) 20px 12px;display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--surface)}
.brand{display:flex;align-items:center;gap:11px}.brand strong{font-size:18px;letter-spacing:-.035em}.avatar{width:40px;height:40px;border:0;border-radius:13px;color:#fff;background:#344054;font-size:12px;font-weight:850}
.screen{min-height:calc(100dvh - 72px);padding:28px 20px calc(96px + env(safe-area-inset-bottom))}.eyebrow{display:block;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.title{margin:8px 0 0;font-size:38px;line-height:1.02;letter-spacing:-.055em;font-weight:780}.subtitle{margin:9px 0 0;color:var(--muted);font-size:14px;line-height:1.5}
.bottom-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,480px);height:calc(78px + env(safe-area-inset-bottom));padding:7px 10px max(9px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:var(--nav);backdrop-filter:blur(18px)}.bottom-nav.admin{grid-template-columns:repeat(3,1fr)}
.nav-button{height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;border-radius:13px;color:#8b95a5;background:transparent;font-size:10px;font-weight:760}.nav-button svg{width:21px;height:21px}.nav-button.active{color:var(--accent);background:var(--accent-soft)}
.primary,.secondary,.danger-button{min-height:54px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:14px;font-size:14px;font-weight:800}.primary{border:0;color:#fff;background:var(--ink);box-shadow:0 8px 20px rgba(17,24,39,.12)}.primary:active{transform:translateY(1px)}.primary:disabled{opacity:.48}.secondary{border:1px solid var(--line);color:var(--ink);background:#fff}.danger-button{border:1px solid #f1cbd0;color:var(--danger);background:var(--danger-soft)}.primary svg,.secondary svg,.danger-button svg{width:19px;height:19px}.full{width:100%}
.icon-button{width:44px;height:44px;padding:0;display:grid;place-items:center;border:0;border-radius:13px;color:inherit;background:transparent}.icon-button svg{width:22px;height:22px}.round-add{width:50px;height:50px;border:0;border-radius:14px;color:#fff;background:var(--accent);box-shadow:0 8px 18px rgba(36,87,214,.22)}.round-add svg{width:21px}
.show-card{width:100%;min-height:102px;margin-top:25px;padding:15px;display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:18px;color:inherit;background:var(--card);text-align:left}.show-card:active{background:#fafbfc}.show-date{width:62px;height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto;border-radius:14px;color:#fff;background:var(--accent)}.show-date strong{font-size:17px;letter-spacing:-.02em}.show-date small{margin-top:3px;font-size:10px;font-weight:760;opacity:.82}
.show-copy,.row-copy{min-width:0;flex:1;display:flex;flex-direction:column}.show-copy small{color:#8a94a4;font-size:9px;font-weight:850;letter-spacing:.11em}.show-copy strong{margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px}.show-copy span{margin-top:5px;color:var(--muted);font-size:12px}.chevron{width:18px;color:#a8b0bc}
.start-show{width:100%;min-height:80px;margin-top:12px;padding:0 18px;display:flex;align-items:center;gap:14px;border:0;border-radius:18px;color:#fff;background:var(--ink);text-align:left;box-shadow:0 10px 24px rgba(17,24,39,.14)}.play-disc{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:var(--ink);background:#fff}.play-disc svg{width:19px;fill:currentColor}.start-show .show-copy small{color:#93a0b2}.start-show .show-copy span{margin-top:3px;color:#fff;font-size:16px;font-weight:800}
.section-block{margin-top:30px}.section-head{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.section-head h2{margin:0;font-size:19px;letter-spacing:-.035em}.section-head span{color:var(--muted);font-size:11px}.section-head button,.text-button{padding:5px;border:0;color:var(--accent);background:transparent;font-size:12px;font-weight:800}
.list{overflow:hidden;border:1px solid var(--line);border-radius:17px;background:#fff}.song-row,.list-row{width:100%;min-height:78px;padding:0 15px;display:flex;align-items:center;gap:13px;border:0;border-bottom:1px solid #eceff3;color:inherit;background:transparent;text-align:left}.song-row:last-child,.list-row:last-child{border-bottom:0}.song-row:active,.list-row:active{background:#f6f7f9}
.key-badge{min-width:41px;height:41px;padding:0 9px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;color:var(--accent);background:var(--accent-soft);font-size:13px;font-weight:850;font-variant-numeric:tabular-nums}.row-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;letter-spacing:-.015em}.row-copy small{margin-top:5px;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.heart{width:18px;color:var(--accent)}
.offline-note,.success-note{min-height:68px;margin-top:17px;padding:14px 15px;display:flex;align-items:center;gap:12px;border:1px solid #d9eadf;border-radius:16px;color:var(--success);background:var(--success-soft)}.offline-note svg,.success-note svg{width:21px}.offline-note span,.success-note span{display:flex;flex-direction:column}.offline-note strong,.success-note strong{font-size:13px}.offline-note small,.success-note small{margin-top:3px;color:#6e8577;font-size:10px}
.search-box{height:58px;margin-top:23px;padding:0 15px;display:flex;align-items:center;gap:11px;border:1px solid #ccd2db;border-radius:15px;background:#fff;box-shadow:0 0 0 3px rgba(36,87,214,0)}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(36,87,214,.1)}.search-box svg{width:20px;color:#7d8796}.search-box input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:15px}.result-meta{height:46px;padding:0 3px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}
.empty{padding:46px 24px;display:flex;flex-direction:column;align-items:center;text-align:center}.empty svg{width:29px;color:#9aa3b1}.empty strong{margin-top:13px;font-size:16px}.empty span{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.5}.empty .primary{margin-top:18px}
.setlist-stack{display:grid;gap:11px;margin-top:23px}.setlist-card{width:100%;min-height:96px;padding:15px;display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:18px;color:inherit;background:#fff;text-align:left}.setlist-card.active{color:#fff;border-color:var(--ink);background:var(--ink)}.setlist-icon{width:50px;height:50px;display:grid;place-items:center;flex:0 0 auto;border-radius:13px;color:#647084;background:var(--soft)}.setlist-card.active .setlist-icon{color:#fff;background:rgba(255,255,255,.1)}.setlist-icon svg{width:22px}.setlist-card .row-copy small:first-child{color:var(--accent);font-weight:850;letter-spacing:.07em}.setlist-card.active .row-copy small:first-child{color:#9eb6ff}.setlist-card.active .row-copy small:last-child{color:#aab2c0}
.sub-header{height:calc(68px + env(safe-area-inset-top));padding:max(13px,env(safe-area-inset-top)) 12px 9px;display:grid;grid-template-columns:46px 1fr 46px;align-items:end;border-bottom:1px solid var(--line);background:rgba(248,249,251,.96);backdrop-filter:blur(16px)}.sub-header span{align-self:center;text-align:center;font-size:14px;font-weight:820}.detail-scroll{height:calc(100dvh - 68px - env(safe-area-inset-top));overflow-y:auto;padding:30px 20px calc(32px + env(safe-area-inset-bottom))}.detail-title{margin:8px 0 0;font-size:40px;line-height:1.02;letter-spacing:-.055em}.badges{margin-top:18px;display:flex;flex-wrap:wrap;gap:7px}.badge{min-height:34px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;border-radius:10px;color:#566175;background:#eaedf2;font-size:11px;font-weight:780}.badge svg{width:14px}.detail-actions{margin-top:20px;display:grid;grid-template-columns:1fr 54px;gap:9px}.detail-actions .primary{margin:0}.detail-actions .secondary{padding:0}
.key-card{margin-top:22px;padding:18px;display:grid;grid-template-columns:1fr 28px 1fr;align-items:center;border:1px solid var(--line);border-radius:16px;background:#fff;text-align:center}.key-card div{display:flex;flex-direction:column}.key-card small{color:#8993a2;font-size:9px;font-weight:850;letter-spacing:.08em}.key-card strong{margin-top:5px;font-size:26px}.key-card svg{width:17px;color:#a4adba}.note-card{margin:0;padding:16px;border-left:3px solid var(--accent);border-radius:0 13px 13px 0;color:#475267;background:#eef2fb;font-size:13px;line-height:1.6}.lyrics-preview{padding:20px 18px;border:1px solid var(--line);border-radius:16px;background:#fff}.lyric-line{margin:0 0 7px;font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.45;white-space:pre-wrap}.lyric-section{margin:22px 0 9px;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.14em}.lyric-section:first-child{margin-top:0}
.youtube-link{min-height:58px;margin-top:17px;padding:0 15px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:15px;color:inherit;background:#fff;text-decoration:none;font-size:13px;font-weight:780}.youtube-link svg{width:20px}.youtube-link .chevron{margin-left:auto}
.profile-head{display:flex;flex-direction:column;align-items:center;padding:8px 0 25px}.profile-avatar{width:76px;height:76px;display:grid;place-items:center;border-radius:20px;color:#fff;background:#344054;font-size:21px;font-weight:850}.profile-head h1{margin:17px 0 0;font-size:26px;letter-spacing:-.04em}.profile-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.profile-menu{overflow:hidden;border:1px solid var(--line);border-radius:17px;background:#fff}.profile-menu button{width:100%;min-height:76px;padding:0 15px;display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid #eceff3;color:inherit;background:transparent;text-align:left}.profile-menu button:last-child{border-bottom:0}.profile-menu button>svg:first-child{width:21px;color:#637083}.profile-menu .row-copy strong{font-size:14px}.profile-menu .admin-entry{background:#f0f4ff}.profile-menu .admin-entry>svg:first-child{color:var(--accent)}
.login-shell{min-height:100dvh;padding:max(30px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column;background:#111827;color:#fff}.login-brand{margin-top:7vh}.login-brand h1{margin:22px 0 7px;font-size:40px;letter-spacing:-.06em}.login-brand p{margin:0;color:#9ca6b7;font-size:14px;line-height:1.55}.login-form{margin-top:auto;padding:20px;border-radius:20px;color:var(--ink);background:#f8f9fb}.login-form h2{margin:0;font-size:22px;letter-spacing:-.035em}.login-form p{margin:6px 0 18px;color:var(--muted);font-size:12px}.login-install{margin:14px auto 0;padding:8px;display:flex;align-items:center;gap:8px;border:0;color:#aeb7c7;background:transparent;font-size:12px}.login-install svg{width:17px}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field>span{color:#687386;font-size:10px;font-weight:850;letter-spacing:.08em}.input,.textarea,.select{width:100%;border:1px solid #cfd5de;border-radius:13px;outline:0;color:var(--ink);background:#fff;font-size:15px}.input,.select{height:52px;padding:0 14px}.textarea{min-height:176px;padding:13px 14px;resize:vertical;line-height:1.55}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(36,87,214,.1)}.field-grid{display:grid;grid-template-columns:1fr 102px;gap:10px}.form-note{margin:-2px 0 15px;color:var(--muted);font-size:11px;line-height:1.5}.form-error{margin-bottom:14px;padding:12px 13px;border-radius:12px;color:#8e2e3e;background:#ffe8eb;font-size:12px}
.admin-shell{min-height:100dvh;background:#f2f4f7}.admin-topbar{height:calc(74px + env(safe-area-inset-top));padding:max(15px,env(safe-area-inset-top)) 12px 10px;display:grid;grid-template-columns:46px 1fr 46px;align-items:end;color:#fff;background:#111827}.admin-topbar>div{align-self:center;text-align:center}.admin-topbar small{display:block;color:#8eabff;font-size:8px;font-weight:900;letter-spacing:.15em}.admin-topbar strong{display:block;margin-top:3px;font-size:14px}.admin-topbar .icon-button{color:#fff}.admin-mark{width:40px;height:40px;align-self:center;display:grid;place-items:center;border-radius:12px;color:#acc0ff;background:#263247}.admin-mark svg{width:19px}.admin-screen{min-height:calc(100dvh - 74px);padding:28px 20px calc(96px + env(safe-area-inset-bottom))}.admin-head{display:flex;align-items:flex-end;justify-content:space-between}.admin-head h1{margin:6px 0 0;font-size:36px;letter-spacing:-.05em}.stats{margin-top:23px;display:grid;grid-template-columns:1fr 1fr;gap:11px}.stat{min-height:137px;padding:16px;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:17px;color:inherit;background:#fff;text-align:left}.stat span{width:41px;height:41px;display:grid;place-items:center;border-radius:12px;color:var(--accent);background:var(--accent-soft)}.stat svg{width:19px}.stat strong{margin-top:14px;font-size:29px}.stat small{margin-top:3px;color:var(--muted);font-size:12px}.admin-search{margin-top:21px}.user-card{width:100%;min-height:84px;padding:0 14px;display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid #eceff3;color:inherit;background:#fff;text-align:left}.user-card:last-child{border-bottom:0}.user-avatar{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:13px;color:#fff;background:#475467;font-size:11px;font-weight:850}.status{min-height:24px;padding:0 9px;display:inline-flex;align-items:center;border-radius:99px;font-size:9px;font-weight:820}.status.active{color:#2f6b48;background:#e4f1e8}.status.blocked{color:#922f40;background:#ffe8ec}.owner-label{margin-top:4px;color:#667085;font-size:10px}
.modal-backdrop{position:fixed;z-index:100;inset:0;display:flex;align-items:flex-end;justify-content:center;background:rgba(11,18,32,.62);backdrop-filter:blur(4px)}.sheet{width:min(100%,480px);max-height:94dvh;overflow-y:auto;padding:22px 20px max(21px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#f8f9fb;box-shadow:0 -18px 50px rgba(0,0,0,.2)}.sheet-head{margin-bottom:19px;display:grid;grid-template-columns:1fr 44px;gap:10px}.sheet-head h2{margin:0;font-size:26px;letter-spacing:-.045em}.sheet-head p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.sheet-close{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:13px;color:#566175;background:#e9edf2}.sheet-close svg{width:20px}.form-section{margin:21px 0 10px;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.12em}.switch-row{min-height:68px;padding:12px 14px;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.switch-copy{min-width:0;flex:1;display:flex;flex-direction:column}.switch-copy strong{font-size:13px}.switch-copy small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.4}.switch-row input{width:20px;height:20px;accent-color:var(--accent)}.form-actions{margin-top:21px;display:grid;gap:9px}
.selected-songs{display:grid;gap:7px;margin-bottom:11px}.selected-song{min-height:52px;padding:7px 9px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:13px;background:#fff}.selected-song .row-copy strong{font-size:13px}.mini-button{width:35px;height:35px;display:grid;place-items:center;border:0;border-radius:10px;color:#566175;background:#e9edf2}.mini-button svg{width:16px}.song-picker{max-height:282px;overflow-y:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.picker-row{min-height:54px;padding:0 11px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #eceff3}.picker-row:last-child{border:0}.picker-row input{width:18px;height:18px;accent-color:var(--accent)}.picker-row span{min-width:0;display:flex;flex-direction:column}.picker-row strong{font-size:13px}.picker-row small{margin-top:3px;color:var(--muted);font-size:10px}
.live-screen{--brightness:1;position:relative;width:min(100%,480px);height:100dvh;margin:0 auto;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;color:#f8fafc;background:#080b11;filter:brightness(var(--brightness))}.live-header{height:calc(70px + env(safe-area-inset-top));padding:max(13px,env(safe-area-inset-top)) 12px 9px;display:grid;grid-template-columns:46px 1fr 46px;align-items:end;border-bottom:1px solid rgba(255,255,255,.08)}.live-header .icon-button{align-self:center;color:#fff}.live-header>div{align-self:center;min-width:0;text-align:center}.live-header small{display:block;color:#89a8ff;font-size:9px;font-weight:900;letter-spacing:.12em}.live-header strong{display:block;overflow:hidden;margin-top:4px;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.live-lyrics{overflow-y:auto;padding:0 24px;scrollbar-width:none}.live-lyrics::-webkit-scrollbar{display:none}.lyrics-space{height:34vh}.live-line{margin:0 auto 20px;color:#515761;font-family:Georgia,"Times New Roman",serif;font-weight:700;line-height:1.34;letter-spacing:-.02em;white-space:pre-wrap;transition:color .18s}.live-line.section{margin-top:32px;color:#7595ec;font-family:Inter,system-ui,sans-serif;font-size:11px!important;font-weight:900;letter-spacing:.14em}.live-line.blank{height:21px;margin:0;color:transparent;font-size:1px!important}.live-line.current{color:#fff}.live-controls{padding:13px 19px max(14px,env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.08);background:#080b11}.live-status{display:flex;align-items:center;justify-content:space-between;color:#737b88;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.range-row{margin-top:11px;display:grid;grid-template-columns:43px 1fr 43px;align-items:center;gap:9px;color:#737b88;font-size:9px;text-align:center}.range{width:100%;accent-color:#6e92ff}.transport{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:34px}.transport .icon-button{color:#fff}.live-play{width:60px;height:60px;display:grid;place-items:center;border:0;border-radius:50%;color:#080b11;background:#fff}.live-play svg{width:24px;fill:currentColor}.live-tools{margin-top:9px;display:grid;grid-template-columns:66px 1fr 66px;align-items:center;gap:8px}.live-tools button{height:36px;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#fff;background:#171b23;font-weight:820}.live-tools span{text-align:center;color:#717987;font-size:9px;font-weight:760;text-transform:uppercase}
#toast-root{position:fixed;z-index:200;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 32px),440px);pointer-events:none}.toast{padding:14px 15px;border-radius:13px;color:#fff;background:#18202d;box-shadow:0 12px 30px rgba(0,0,0,.24);font-size:12px;font-weight:720;animation:toast-in .2s ease}.toast.error{background:#8e2f3f}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.portrait-gate{display:none}@media(orientation:landscape){#app{visibility:hidden}.portrait-gate{visibility:visible;position:fixed;z-index:9999;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;color:#f5f7fa;background:#111827;text-align:center}.portrait-gate strong{margin-top:24px;font-size:22px}.portrait-gate p{max-width:290px;margin:8px 0 0;color:#98a2b3;font-size:13px}.rotate-phone{width:44px;height:75px;padding:5px;border:2px solid #8c96a6;border-radius:9px;transform:rotate(-90deg)}.rotate-phone span{width:100%;height:100%;display:block;border-radius:5px;background:#273244}}
@media(max-width:360px){.screen,.admin-screen{padding-left:16px;padding-right:16px}.title{font-size:35px}.show-date{width:57px}.field-grid{grid-template-columns:1fr 90px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* LyricStage 1.2 — dark mobile stage interface */
:root{
  --canvas:#05070b;--surface:#0a0e14;--card:#111720;--ink:#f5f7fb;--muted:#a2acba;
  --soft:#171e28;--line:#252e3b;--accent:#7896ff;--accent-soft:#182342;
  --danger:#ff7f92;--danger-soft:#27151b;--success:#79d39a;--success-soft:#102219;
  --nav:rgba(8,11,16,.96);color-scheme:dark
}
html,body{background:var(--canvas);color:var(--ink)}
body{font-size:17px}
#app,.topbar,.screen{background:var(--surface)}
#app{box-shadow:0 0 0 1px #141a23}
.topbar{border-color:var(--line)}
.brand strong{font-size:19px}.brand-mark{background:var(--accent);color:#08101e}.avatar{background:#202a38;font-size:13px}
.screen{padding-left:21px;padding-right:21px}
.eyebrow{font-size:12px;letter-spacing:.12em}.title{font-size:41px}.subtitle{font-size:15px}
.bottom-nav{border-color:var(--line);background:var(--nav)}
.nav-button{color:#7f8998;font-size:12px}.nav-button svg{width:23px;height:23px}.nav-button.active{color:#fff;background:#18223a}
.primary{color:#0a0e14;background:#f4f7fb;box-shadow:none;font-size:16px}.primary svg{stroke:#0a0e14}.secondary{border-color:var(--line);color:var(--ink);background:var(--card);font-size:16px}.danger-button{border-color:#52232e;color:var(--danger);background:var(--danger-soft);font-size:15px}
.icon-button{color:var(--ink)}.round-add{background:var(--accent);color:#08101e;box-shadow:none}
.show-card,.list,.setlist-card,.key-card,.lyrics-preview,.youtube-link,.profile-menu,.stat,.user-card,.selected-song,.song-picker,.switch-row{border-color:var(--line);background:var(--card)}
.show-card:active,.song-row:active,.list-row:active{background:#171e28}.show-date{color:#08101e;background:var(--accent)}.show-date strong{font-size:18px}.show-date small{font-size:12px}
.show-copy small{color:#909aaa;font-size:11px}.show-copy strong{font-size:18px}.show-copy span{color:var(--muted);font-size:14px}.chevron{color:#657082}
.start-show{background:#f4f7fb;color:#090d13;box-shadow:none}.start-show .play-disc{background:#101620;color:#fff}.start-show .show-copy small{color:#5d6878;font-size:11px}.start-show .show-copy span{color:#090d13;font-size:18px}.start-show .chevron{color:#56606e}
.section-head h2{font-size:21px}.section-head span,.section-head button,.text-button{font-size:13px}
.song-row,.list-row{min-height:82px;border-color:#202936}.key-badge{min-width:43px;height:43px;color:#a7bbff;background:#192544;font-size:15px}.row-copy strong{font-size:17px}.row-copy small{font-size:13px;color:var(--muted)}.heart{color:#89a5ff}
.offline-note,.success-note{border-color:#1e4930;color:var(--success);background:var(--success-soft)}.offline-note strong,.success-note strong{font-size:15px}.offline-note small,.success-note small{font-size:12px;color:#8cb59a}
.search-screen{padding-bottom:calc(190px + env(safe-area-inset-bottom))}
.search-results-panel{margin-top:18px}
.search-results-panel .result-meta{height:44px}
.search-dock{position:fixed;z-index:19;left:50%;bottom:calc(78px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(100%,480px);padding:10px 12px;display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);background:rgba(8,11,16,.97);backdrop-filter:blur(18px)}
.search-box{border-color:#303a49;background:#131a24;box-shadow:none}.search-box:focus-within{border-color:#7896ff;box-shadow:0 0 0 3px rgba(120,150,255,.13)}.search-box svg{color:#a0aabb}.search-box input{color:#fff;font-size:17px}.search-box input::placeholder{color:#788393}
.search-bottom{min-width:0;flex:1;margin:0}.search-add{width:58px;height:58px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:15px;color:#09101d;background:var(--accent)}.search-add svg{width:23px}
.result-meta{color:var(--muted);font-size:13px}.empty strong{font-size:18px}.empty span{font-size:14px}.empty svg{color:#737e8d}
.setlist-card{min-height:102px}.setlist-card.active{border-color:#7896ff;background:#17223b}.setlist-icon{color:#a8b2c0;background:#1c2430}.setlist-card.active .setlist-icon{color:#fff;background:#253554}.setlist-card .row-copy small:first-child{color:#9fb4ff}.setlist-card.active .row-copy small:last-child{color:#aeb8c7}
.sub-header{border-color:var(--line);background:rgba(10,14,20,.97)}.sub-header span{font-size:16px}.detail-scroll{background:var(--surface)}.detail-title{font-size:43px}.badge{color:#c6ced9;background:#19212c;font-size:13px}.key-card small{color:#929dad;font-size:11px}.key-card strong{font-size:29px}.note-card{color:#d6deea;background:#151f34}.lyrics-preview{color:#fff}.lyric-line{font-size:20px;line-height:1.5}.lyric-section{color:#93adff;font-size:12px}.youtube-link{color:#f3f5f8;font-size:15px}
.profile-avatar{background:#202a38;font-size:23px}.profile-head h1{font-size:29px}.profile-head p{color:var(--muted);font-size:14px}.profile-menu button{min-height:82px;border-color:#202936}.profile-menu .row-copy strong{font-size:16px}.profile-menu .admin-entry{background:#131d35}.profile-menu .admin-entry>svg:first-child{color:#93adff}
.login-shell{background:#070a0f}.login-brand p{color:#a4aebd;font-size:16px}.login-form{color:var(--ink);background:var(--card)}.login-form h2{font-size:25px}.login-form p{color:var(--muted);font-size:14px}.login-install{color:#b2bdcc;font-size:14px}
.field>span{color:#a2acba;font-size:12px}.input,.textarea,.select{border-color:#303a49;color:#fff;background:#0d131b;font-size:17px}.input,.select{height:56px}.input:focus,.textarea:focus,.select:focus{border-color:#7896ff;box-shadow:0 0 0 3px rgba(120,150,255,.13)}.form-note{color:var(--muted);font-size:13px}.form-error{color:#ffc5ce;background:#32171d;font-size:14px}
.admin-shell,.admin-screen{background:#080c12}.admin-topbar{background:#06090e}.admin-topbar small{color:#98afff;font-size:10px}.admin-topbar strong{font-size:16px}.admin-mark{color:#b5c5ff;background:#18233b}.admin-head h1{font-size:40px}.stat span{color:#a7b9ff;background:#192544}.stat strong{font-size:32px}.stat small{color:var(--muted);font-size:14px}.user-card{border-color:#202936}.user-avatar{background:#263143;font-size:13px}.status{font-size:11px}.status.active{color:#96e2b0;background:#163021}.status.blocked{color:#ff9cab;background:#371922}.owner-label{color:#9aa5b5;font-size:12px}
.modal-backdrop{background:rgba(0,0,0,.72)}.sheet{max-height:90dvh;color:var(--ink);background:#0c1118}.sheet-head h2{font-size:29px}.sheet-head p{color:var(--muted);font-size:14px}.sheet-close{color:#d8dee8;background:#1b2330}.form-section{color:#9db2ff;font-size:12px}.switch-row{background:#111821}.switch-copy strong{font-size:15px}.switch-copy small{color:var(--muted);font-size:12px}.mini-button{color:#d7dee8;background:#202936}.picker-row{min-height:59px;border-color:#202936}.picker-row strong{font-size:15px}.picker-row small{color:var(--muted);font-size:12px}
.live-screen{background:#000}.live-header{border-color:#161b22;background:#000}.live-header small{color:#91aaff;font-size:11px}.live-header strong{font-size:18px}.live-line{color:#3e444d;line-height:1.38}.live-line.section{color:#718ee5;font-size:13px!important}.live-controls{border-color:#171c24;background:#000}.live-status{color:#8b94a2;font-size:11px}.range-row{color:#8b94a2;font-size:11px}.live-tools span{color:#8993a1;font-size:10px}.live-tools button{height:40px;font-size:15px}
.toast{font-size:14px}
@media(max-width:360px){
  .screen,.admin-screen{padding-left:17px;padding-right:17px}.title{font-size:38px}
  .row-copy strong{font-size:16px}.row-copy small{font-size:12px}
}

/* LyricStage 1.3 — discreet Stage Cue performance mode */
.live-screen.cue-mode,.live-screen.full-mode{grid-template-rows:auto auto minmax(0,1fr) auto}
.live-mode-switch{height:46px;padding:6px 18px;display:grid;grid-template-columns:1fr 1fr;gap:4px;border-bottom:1px solid #151a22;background:#000}
.live-mode-switch button{border:0;border-radius:9px;color:#7e8794;background:transparent;font-size:11px;font-weight:900;letter-spacing:.08em}
.live-mode-switch button.active{color:#fff;background:#171d27;box-shadow:inset 0 0 0 1px #252c38}
.cue-stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:18px 32px;background:radial-gradient(circle at 50% 42%,#0a0f19 0,#000 68%)}
.cue-card{width:100%;position:relative;z-index:1;text-align:center;pointer-events:none}
.cue-card>small{display:block;margin-bottom:18px;color:#7896ff;font-size:12px;font-weight:900;letter-spacing:.16em}
.cue-current{max-width:390px;margin:0 auto;color:#f8faff;font-family:Georgia,"Times New Roman",serif;font-size:clamp(38px,12.5vw,56px);font-weight:750;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}
.cue-ellipsis{color:#7896ff}
.cue-divider{width:38px;height:2px;margin:28px auto 20px;border-radius:2px;background:#2a3342}
.cue-next-label{display:block;margin-bottom:9px;color:#596270;font-size:10px;font-weight:900;letter-spacing:.13em}
.cue-next{max-width:330px;margin:0 auto;color:#848e9d;font-family:Georgia,"Times New Roman",serif;font-size:clamp(21px,6.8vw,30px);font-weight:700;line-height:1.2;letter-spacing:-.02em;text-wrap:balance}
.cue-tap-zone{position:absolute;z-index:2;top:0;bottom:0;width:50%;border:0;background:transparent;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.cue-tap-prev{left:0}.cue-tap-next{right:0}
.cue-side-hint{position:absolute;top:50%;z-index:1;transform:translateY(-50%);color:#303846;font-size:34px;font-weight:300;pointer-events:none}.cue-side-hint.left{left:11px}.cue-side-hint.right{right:11px}
.cue-emergency{position:absolute;z-index:20;inset:calc(116px + env(safe-area-inset-top)) 0 calc(184px + env(safe-area-inset-bottom));display:none;overflow-y:auto;padding:28px 25px;background:#000;color:#fff}
.cue-emergency.visible{display:block}
.cue-emergency small{display:block;margin-bottom:20px;color:#7896ff;font-size:12px;font-weight:900;letter-spacing:.16em}
.cue-emergency div{font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,8.5vw,40px);font-weight:700;line-height:1.36;white-space:pre-wrap}
.cue-controls{padding-top:10px}
.cue-transport{margin-top:8px;display:grid;grid-template-columns:1fr 62px 1fr;align-items:center;gap:18px}
.cue-step{height:50px;display:grid;place-items:center;border:1px solid #232a35;border-radius:13px;color:#dce2ed;background:#121720}
.cue-step svg{width:25px;height:25px}
.cue-controls .live-play{width:58px;height:58px;margin:auto}
.cue-hold{width:100%;height:43px;margin-top:9px;border:1px solid #2a3341;border-radius:11px;color:#b9c6e9;background:#111721;font-size:11px;font-weight:900;letter-spacing:.09em;touch-action:none;-webkit-user-select:none;user-select:none}
.cue-hold:active{color:#fff;border-color:#7896ff;background:#18233c}
.song-switcher{height:31px;margin-top:7px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#697280;font-size:10px;font-weight:850}
.song-switcher button{height:31px;display:flex;align-items:center;gap:5px;border:0;color:#8994a4;background:transparent;font-size:10px;font-weight:800}
.song-switcher button:last-child{justify-self:end}.song-switcher svg{width:14px;height:14px}
@media (max-height:700px){.cue-card>small{margin-bottom:10px}.cue-divider{margin:17px auto 13px}.cue-current{font-size:clamp(33px,10.8vw,45px)}.cue-next{font-size:clamp(19px,6vw,25px)}.cue-hold{height:39px}.cue-controls .live-play{width:52px;height:52px}.cue-step{height:44px}.cue-emergency{bottom:calc(170px + env(safe-area-inset-bottom))}}

/* LyricStage 1.4 — remembered sign-in and pro library controls */
button,.nav-button,.song-row,.setlist-card{-webkit-user-select:none;user-select:none;touch-action:manipulation}
.screen,.admin-screen,.detail-scroll{animation:app-view-in .16s ease-out}
@keyframes app-view-in{from{opacity:.7;transform:translateY(3px)}to{opacity:1;transform:none}}
.standalone-app #app{min-height:100dvh}
.remember-row{min-height:66px;margin:-2px 0 17px;padding:11px 12px;display:flex;align-items:center;gap:11px;border:1px solid #293342;border-radius:13px;background:#0d131b}
.remember-row input{width:21px;height:21px;flex:0 0 auto;accent-color:#7896ff}
.remember-row span{min-width:0;display:flex;flex-direction:column}.remember-row strong{color:#f1f4f8;font-size:14px}.remember-row small{margin-top:3px;color:#909baa;font-size:11px;line-height:1.35}
.active-sort{min-height:35px;margin-top:14px;padding:0 3px;display:flex;align-items:center;gap:8px;color:#919cab;font-size:12px;font-weight:720}
.active-sort svg{width:17px;height:17px;color:#91aaff}
.search-filter{position:relative;width:58px;height:58px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #303a49;border-radius:15px;color:#b0bac8;background:#131a24}
.search-filter.active{color:#fff;border-color:#7896ff;background:#182342}
.search-filter svg{width:22px;height:22px}.search-filter>span{position:absolute;top:-5px;right:-4px;min-width:21px;height:21px;padding:0 5px;display:grid;place-items:center;border:2px solid #080b10;border-radius:99px;color:#08101e;background:#91aaff;font-size:10px;font-weight:900}
.filter-sheet .filters-grid{grid-template-columns:1fr 1fr}.filter-sheet .switch-row{margin-top:2px}
.filter-sheet .form-actions{grid-template-columns:1fr}.filter-sheet .secondary{background:#151c26}
@media(max-width:360px){.search-dock{gap:7px}.search-filter,.search-add{width:52px;height:56px}.search-box{padding:0 12px}.search-box input{font-size:16px}.filter-sheet .filters-grid{grid-template-columns:1fr 92px}}
@media(prefers-reduced-motion:reduce){.screen,.admin-screen,.detail-scroll{animation:none}}

/* LyricStage 1.4.1 — iPhone keyboard and sign-in compatibility */
.login-shell{height:100dvh;min-height:100svh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.login-form,.login-form input,.login-form label{pointer-events:auto}
.login-form input{-webkit-user-select:text;user-select:text;touch-action:manipulation}
@media(orientation:landscape){
  body:not(.device-landscape) #app{visibility:visible}
  body:not(.device-landscape) .portrait-gate{display:none!important;visibility:hidden}
}
body.keyboard-open .login-shell{height:100dvh;min-height:0;padding-top:10px;padding-bottom:10px}
body.keyboard-open .login-brand{display:none}
body.keyboard-open .login-form{width:100%;margin:auto 0;padding:18px}
body.keyboard-open .login-install{display:none}
