:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#edf2fa;background:#0c111b;font-synthesis:none;--bg: #0c111b;--surface: #141d2b;--line: #293749;--muted: #92a4bb;--mint: #8ce8c0;--text: #edf2fa;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid #35465c;border-radius:6px;background:#1b283a;color:var(--text);padding:11px 15px;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s;min-height:42px}button:hover,.button:hover{background:#26364c;border-color:#52677e}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--mint);outline-offset:3px}a{color:inherit}svg{flex-shrink:0}h1,h2,p{margin:0}h1{font-size:34px;letter-spacing:-1px;line-height:1.2}h2{font-size:20px;letter-spacing:-.3px;font-weight:650}input,textarea{border:1px solid var(--line);background:#0e1724;border-radius:6px;padding:12px;color:var(--text);width:100%;font-size:16px}input::placeholder,textarea::placeholder{color:#798da5}label{display:grid;gap:9px;font-size:14px;font-weight:600}textarea{resize:vertical;line-height:1.65}.muted,small{color:var(--muted);font-size:14px}.primary{color:#071b15;background:var(--mint);border-color:var(--mint);font-weight:700}.primary:hover{background:#a6f3d2;border-color:#a6f3d2}.full{width:100%}.icon-button{padding:8px;min-width:36px;min-height:36px;border-color:transparent;background:transparent}.subtle{background:transparent;border-color:transparent}.danger{background:#321e26;color:#ff8c91;border-color:#703d47}.danger:hover{background:#482630;border-color:#ee7780}.topbar{height:76px;padding:0 32px;display:flex;align-items:center;gap:48px;border-bottom:1px solid #243040;background:#111b28}.brand{font-size:35px;font-weight:750;text-decoration:none;letter-spacing:-1.5px}.brand span{color:var(--mint)}.topbar nav{display:flex;height:100%;gap:26px}.topbar nav button{height:100%;border-radius:0;border:0;border-bottom:3px solid transparent;background:transparent;color:#99abc2;padding:0 8px;font-size:16px}.topbar nav button.active{color:var(--text);border-bottom-color:var(--mint)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:20px}.header-actions>.icon-button{border-left:1px solid var(--line);border-radius:0;padding-left:24px}main{padding:26px 24px 18px;max-width:1800px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin:0 8px 18px;gap:16px}.page-heading p{margin-top:8px;color:var(--muted);font-size:17px}.workspace{display:grid;grid-template-columns:minmax(240px,.62fr) minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px}.song-sidebar{grid-row:span 2;display:flex;flex-direction:column;min-width:0}.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px}.search-box{display:flex;align-items:center;gap:8px;background:#101925;border:1px solid var(--line);border-radius:6px;padding:0 10px;color:var(--muted)}.song-sidebar>.search-box{margin:0 16px 16px}.search-box input{padding:11px 0;border:0;background:transparent;min-width:0;font-size:14px;outline:none}.search-box:focus-within{border-color:var(--mint)}.search-box .icon-button{padding:0;min-width:22px;min-height:28px}.song-list{max-height:620px;overflow:auto}.song-row{width:100%;justify-content:flex-start;text-align:left;border:0;border-left:4px solid transparent;border-radius:0;background:transparent;padding:15px 12px;line-height:1.5;align-items:flex-start;font-size:14px}.song-row.selected{background:#24433f;border-left-color:var(--mint);color:#fff}.song-number{color:#a5b7cd;font-variant-numeric:tabular-nums;font-size:14px}.song-row .song-number{min-width:42px;max-width:80px;overflow-wrap:anywhere}.song-row span:last-child{overflow-wrap:anywhere}.sidebar-footer{margin-top:auto;display:flex;align-items:center;gap:10px;padding:20px 16px;color:var(--muted);border-top:1px solid var(--line)}.text-button{border:0;background:none;padding:0;min-height:24px;color:var(--muted)}.text-button:hover{background:none;color:var(--mint)}.preparation,.live-panel{padding:18px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:30px}.panel-heading>.muted{font-size:13px}.song-title{font-size:17px;color:#c8d5e6;margin:8px 0 12px;min-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-screen{display:flex;align-items:center;justify-content:center;overflow:hidden}.preview{aspect-ratio:16/10;border:1px solid #34455d;border-radius:6px;background:#0c131f;width:100%}.projected-text{white-space:pre;text-align:center;color:#fff;line-height:1.35;font-weight:500;overflow-wrap:normal;flex:none}.live{background:#000}.start{width:100%;margin-top:18px;min-height:54px;font-size:19px;letter-spacing:.5px}.panel-note{font-size:12px;color:var(--muted);text-align:center;margin-top:10px;line-height:1.5}.connection{font-size:12px;color:#eab565;display:flex;align-items:center;gap:7px;white-space:nowrap}.connection i{height:8px;width:8px;border-radius:50%;background:currentColor}.connection.online{color:var(--mint)}.live-preview-wrap{position:relative}.blank-caption{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:flex;justify-content:center;align-items:center;gap:8px;color:#526176;font-size:14px}.live-caption{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:14px;margin:12px 0 10px}.live-caption>span:last-child{display:flex;align-items:center;gap:7px}.transport,.live-actions{display:flex;gap:10px}.transport>button{flex:1}.live-actions{margin-top:10px}.live-actions>button:first-child{flex:1}.unblank{color:var(--mint);border-color:var(--mint)}.slide-section{grid-column:2/4;padding:18px;min-width:0}.slide-strip{display:flex;gap:12px;margin-top:15px;overflow-x:auto;padding:2px 2px 8px;max-height:265px}.slide-thumb{flex:0 0 235px;min-height:162px;background:#0d1521;border:1px solid #34465c;text-align:left;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:14px;padding:18px 16px}.slide-thumb.selected{border-color:var(--mint);box-shadow:0 0 0 1px var(--mint)}.slide-thumb p{white-space:pre-wrap;font-size:13px;line-height:1.5;font-weight:400;max-height:135px;overflow:hidden}.slide-thumb>span{font-size:12px;color:#aebed1}.workspace-footer{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;padding:12px 6px;gap:16px;flex-wrap:wrap}.workspace-footer b{font-weight:400;margin:0 10px}.display-link{display:flex;align-items:center;gap:8px;font-size:13px}.display-link a{text-decoration:none}.display-link a:hover{color:var(--mint)}kbd{font-family:inherit;padding:3px;color:#cfdae8;font-size:13px}.live-jump{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:18px 0 0;font-size:13px;color:var(--muted)}.live-jump button{min-height:32px;min-width:34px;padding:5px 9px}.live-jump button.active{border-color:var(--mint);color:var(--mint)}.empty-small{padding:24px 16px;color:var(--muted);font-size:14px;line-height:1.6}.library-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}.library-toolbar .search-box{width:450px;max-width:75%}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:12px;color:var(--muted);font-weight:500;letter-spacing:.5px;padding:16px 24px}td{padding:22px 24px;border-top:1px solid #243244;font-size:14px}td strong{font-size:16px;font-weight:550}td p{font-size:13px;color:var(--muted);margin-top:6px}.row-actions{display:flex;justify-content:flex-end;gap:6px;align-items:center}.delete:hover{color:#ff9393}.library-empty{text-align:center;display:flex;align-items:center;flex-direction:column;gap:16px;padding:70px 20px}.library-empty>svg{color:var(--mint)}.library-empty p{color:var(--muted);line-height:1.6}.editor{width:760px;max-width:calc(100vw - 28px);max-height:90dvh;border:1px solid #35465c;background:#141d2b;color:var(--text);border-radius:12px;padding:26px;box-shadow:0 30px 100px #0009}.editor::backdrop{background:#020711bd;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-heading h2{font-size:24px}.editor-fields{display:grid;grid-template-columns:130px 1fr;gap:16px;margin-bottom:18px}.editor-hint{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px;line-height:1.6;margin:10px 0 18px}.editor-hint strong{white-space:nowrap;font-weight:500;color:var(--mint)}.mini-previews{display:flex;gap:10px;overflow:auto;max-height:200px;margin-top:14px}.mini-previews>div{position:relative;flex:0 0 170px;border:1px solid var(--line);border-radius:5px;padding:15px;background:#0b121c;overflow:auto}.mini-previews p{font-size:11px;white-space:pre-wrap;line-height:1.6}.mini-previews span{display:block;color:var(--mint);font-size:12px;margin-bottom:8px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.notice{font-size:14px;line-height:1.6;padding:14px;background:#243034;border:1px solid #40594e;border-radius:6px;margin-top:14px;color:#c1e2d4}.error{font-size:14px;line-height:1.6;color:#ffb1b4;margin:15px 0}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#38222c;color:#ffb1b4;border:1px solid #663744;padding:8px 14px;border-radius:6px;font-size:14px;margin-bottom:16px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:20;display:flex;gap:10px;align-items:center;background:#c9f8e4;color:#10251c;padding:14px 22px;border-radius:8px;box-shadow:0 8px 35px #0006;font-size:14px}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:40px 20px;background:radial-gradient(ellipse at 50% 0%,#1b3540,#0c111b 65%)}.auth-brand{font-size:45px;font-weight:750;letter-spacing:-2px;margin-bottom:34px}.auth-brand span{color:var(--mint)}.auth-card{width:440px;max-width:100%;background:#141d2b;border:1px solid var(--line);border-radius:12px;padding:34px}.auth-icon{color:var(--mint);margin-bottom:22px}.auth-card h1{font-size:26px;letter-spacing:-.7px}.auth-card>p{font-size:15px;color:var(--muted);line-height:1.6;margin:12px 0 26px}.auth-card form{display:grid;gap:18px}.auth-card small{margin-top:-12px;font-size:12px}.auth-display{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:26px;font-size:13px;color:var(--muted);text-decoration:none}.auth-footer{color:#7f91a9;font-size:12px;margin-top:30px}.loading{min-height:100dvh;display:grid;place-content:center;text-align:center;gap:18px;color:var(--muted)}.display-page{position:fixed;top:0;right:0;bottom:0;left:0;background:#000}.projector{width:100%;height:100%;background:#000}.projector .projected-text{font-weight:600}.cursor-hidden{cursor:none}.display-tools{position:absolute;bottom:20px;right:20px;display:flex;align-items:center;gap:16px;opacity:0;pointer-events:none;transition:opacity .2s;color:#a5b2c2;font-size:12px;background:#101720dd;border-radius:8px;padding:9px 12px}.display-tools.visible,.display-tools:focus-within{opacity:1;pointer-events:auto}.display-tools button{font-size:12px;min-height:34px;padding:7px 10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1450px){main{padding-top:28px}.workspace{grid-template-columns:minmax(270px,.62fr) minmax(0,1fr) minmax(0,1fr)}.preview{aspect-ratio:16/9;max-height:280px}.slide-thumb{flex-basis:255px;min-height:140px}.song-row{font-size:15px;padding-top:18px;padding-bottom:18px}.preparation,.live-panel,.slide-section{padding:20px}}@media(max-width:1100px){.topbar{gap:25px;padding:0 20px}.workspace{grid-template-columns:220px minmax(0,1fr) minmax(0,1fr)}main{padding:22px 16px}.preparation,.live-panel,.slide-section{padding:14px}.transport button{padding:10px 8px}.transport button span{font-size:12px}.live-actions{gap:6px}.live-actions button{padding:10px 8px;font-size:12px}.panel-heading h2{font-size:17px}.connection{font-size:11px}.song-title{font-size:14px}.preview{aspect-ratio:4/3}.panel-note{font-size:11px}.song-sidebar>.search-box{margin-left:10px;margin-right:10px}.song-row{font-size:13px}.song-row .song-number{min-width:29px}.sidebar-footer{padding:16px 10px}.sidebar-footer button{font-size:12px}}@media(max-width:820px){.workspace{grid-template-columns:1fr 1fr}.song-sidebar{grid-column:1/3;grid-row:auto}.sidebar-head{padding:10px 14px}.song-sidebar>.search-box{margin-bottom:10px}.song-list{max-height:180px}.sidebar-footer{display:none}.slide-section{grid-column:1/3}.topbar{gap:20px;height:auto;min-height:70px;flex-wrap:wrap;padding-top:10px}.brand{font-size:29px}.topbar nav{order:3;width:100%;height:48px;gap:20px}.topbar nav button{font-size:14px}.header-actions{gap:10px}.header-actions>.icon-button{padding-left:10px}.header-actions a{font-size:13px}.page-heading h1{font-size:28px}.page-heading p{font-size:14px}.preview{aspect-ratio:16/11}.library-toolbar,th,td{padding:16px}.prepare-library{font-size:12px;padding:8px}.row-actions{gap:0}}@media(max-width:550px){main{padding:20px 12px}.page-heading{margin:0 2px 20px;align-items:flex-start}.page-heading .primary{font-size:12px;padding:10px;gap:5px;white-space:nowrap}.page-heading h1{font-size:26px}.page-heading p{line-height:1.6;font-size:13px}.workspace{grid-template-columns:1fr}.song-sidebar,.slide-section{grid-column:1}.preparation,.live-panel{padding:16px}.preview{aspect-ratio:16/9}.panel-heading h2{font-size:19px}.song-title{font-size:16px}.connection{font-size:12px}.live-actions button,.transport button span{font-size:14px}.song-row{font-size:14px;padding:12px}.song-list{max-height:154px}.slide-thumb{flex-basis:210px}.workspace-footer{padding:16px 4px;gap:8px}.workspace-footer>span{font-size:10px}.workspace-footer b{margin:0 3px}.display-link{font-size:12px}.library-toolbar .search-box{max-width:100%;width:100%}.library-toolbar>span{display:none}.library table th:nth-child(3),.library table td:nth-child(3){display:none}.library th,.library td{padding:14px 10px}.library td strong{font-size:14px}.library td p{font-size:12px;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-actions{display:grid;grid-template-columns:1fr 1fr}.prepare-library{grid-column:1/3;padding:5px;font-size:11px}.editor{padding:20px}.editor-fields{grid-template-columns:85px 1fr;gap:12px}.editor-hint{font-size:11px}.auth-card{padding:26px}.display-tools{bottom:10px;right:10px;left:10px;justify-content:space-between}.toast{max-width:90%;width:max-content}.panel-note{font-size:12px}}.phone-nav,.phone-dock{display:none}@media(max-width:820px){.presentation-page{padding-bottom:160px}.phone-nav{display:flex;position:sticky;top:0;z-index:5;background:#0c111bf5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:8px 0 12px;gap:8px;margin-bottom:12px}.phone-nav button{flex:1;min-height:46px;background:#141d2b;border-color:#293749;font-size:14px}.phone-nav button.active{border-color:var(--mint);color:var(--mint);background:#18312f}.workspace{grid-template-columns:1fr}.song-sidebar,.slide-section{grid-column:1}[data-phone-view=live] .song-sidebar,[data-phone-view=live] .preparation,[data-phone-view=live] .slide-section,[data-phone-view=pick] .live-panel,.preparation .start,.preparation .panel-note,.live-panel .transport,.live-panel .live-actions{display:none}.preparation .preview{max-height:170px}.live-panel .preview{aspect-ratio:4/3;max-height:360px}.phone-dock{display:block;position:fixed;bottom:0;left:0;right:0;padding:12px 16px max(14px,env(safe-area-inset-bottom));background:#111c2bf5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid #35465c;z-index:10;box-shadow:0 -12px 40px #0004}.phone-dock-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:10px;min-width:0}.phone-dock-heading>div{min-width:0;display:grid;gap:4px}.phone-dock-heading strong{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.phone-dock-heading span{font-size:12px;color:var(--muted);white-space:nowrap}.phone-dock-heading>button{font-size:12px;padding:8px;min-height:40px}.phone-dock>.primary{min-height:54px;font-size:18px}.phone-transport{display:grid;grid-template-columns:56px minmax(0,1fr) 80px;gap:10px}.phone-transport button{min-height:58px;font-size:18px}.phone-transport button:last-child{flex-direction:column;gap:3px;padding:6px;font-size:11px}.toast{bottom:150px;pointer-events:none}.icon-button{min-height:44px;min-width:44px}.search-box input{font-size:16px}.song-list{max-height:180px}.song-row{min-height:48px}.library .row-actions .icon-button{min-width:40px}}.live-slide-picker{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 8px;max-height:125px;overflow:auto;padding:2px}.live-slide-picker button{min-width:38px;min-height:36px;padding:6px 12px;font-variant-numeric:tabular-nums}.live-slide-picker button.active{background:#25493e;border-color:var(--mint);color:var(--mint)}.screen-confirmation{font-size:12px;color:#e7b774;line-height:1.5;margin:0 0 12px}.screen-confirmation.confirmed{color:var(--mint)}@media(max-width:820px){.presentation-page .page-heading{margin-bottom:8px}.presentation-page .page-heading p{display:none}.live-slide-picker button{min-height:48px;min-width:48px;font-size:18px}.live-panel .preview{aspect-ratio:16/10;max-height:260px}.screen-confirmation{margin-bottom:0}.live-slide-picker{max-height:130px}}.passkey-login{margin-top:16px}.access-dialog{width:480px}.access-copy{color:var(--muted);font-size:15px;line-height:1.6;margin-bottom:20px}.access-dialog form{display:grid;gap:16px}.passkey-list{margin:22px 0}.passkey-list>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0;font-size:14px}.install-prompt{position:fixed;top:12px;left:50%;transform:translate(-50%);width:360px;max-width:calc(100vw - 24px);z-index:40;background:#172436;border:1px solid #527266;border-radius:12px;padding:16px;box-shadow:0 15px 50px #0008}.install-prompt>div{display:flex;justify-content:space-between;align-items:center}.install-prompt p{font-size:14px;line-height:1.5;color:#b9cadd;margin:8px 0 14px}.install-prompt .install-help{color:var(--mint)}.install-prompt .icon-button{min-height:32px;min-width:32px}.header-actions{gap:8px}@media(max-width:550px){.topbar{gap:12px;padding-left:16px;padding-right:16px}.header-actions>.icon-button{padding:7px;border-left:0}.header-actions{gap:2px}.header-actions .button{padding:8px}.header-actions .button span{display:none}}.lock-controls{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.lock-toggle{flex:1;font-size:13px;min-height:42px;border-color:#6685b4;color:#bdd6ff}.is-locked .lock-toggle{background:#efbd62;color:#191508;border-color:#ffd78e;font-weight:700}.lock-controls small{flex-basis:100%;color:#efbd62;font-size:12px;line-height:1.4}.lock-cancel{font-size:12px;padding:8px}.transport button:first-child,.phone-transport button:first-child{color:#bdd6ff;border-color:#6685b4;background:#21324c}.phone-transport button:first-child{flex-direction:column;gap:3px;font-size:12px;font-weight:700}.phone-transport button:last-child span{white-space:normal;line-height:1.2;font-weight:700}@media(max-width:820px){.desktop-lock{display:none}.phone-transport{grid-template-columns:80px minmax(0,1fr) 100px;gap:8px}.presentation-page{padding-bottom:260px}.phone-dock .lock-controls{margin:8px 0}.phone-dock .lock-toggle{min-height:38px}.phone-transport button:last-child{font-size:12px}.toast{bottom:260px}}.uppercase-option{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid #405b73;border-radius:8px;margin:16px 0;cursor:pointer;font-size:13px;line-height:1.5}.uppercase-option input{width:22px;height:22px;flex:0 0 22px;margin:0;accent-color:var(--mint)}.uppercase-option small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}.song-navigation{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:0 0 14px}.song-navigation button{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;min-width:0;gap:5px;padding:10px;color:#dce9f8;border-color:#49617c;background:#19283b}.song-direction{display:flex;align-items:center;gap:5px;font-size:11px;color:#a9c8f5;font-weight:500}.song-direction svg{flex-shrink:0}.song-navigation strong{font-size:13px;line-height:1.35;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.song-navigation>small{grid-column:1/-1;font-size:10px;color:var(--muted);line-height:1.4}@media(max-width:820px){.desktop-song-navigation{display:none}.mobile-song-navigation .song-navigation{margin-bottom:10px;gap:6px}.mobile-song-navigation .song-navigation button{padding:8px;min-height:64px}.mobile-song-navigation .song-direction{font-size:10px}.mobile-song-navigation .song-navigation strong{font-size:12px}.presentation-page{padding-bottom:260px}.toast{bottom:260px}}.mobile-song-navigation{display:none}@media(max-width:820px){.mobile-song-navigation{display:block;margin:0 0 16px}}.session-admin{display:flex;flex-direction:column;gap:20px}.session-admin>p{color:var(--muted);line-height:1.5}.session-totals{display:flex;flex-wrap:wrap;gap:20px;padding:20px;border:1px solid var(--line);border-radius:10px}.session-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px}.session-card{display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.session-card>p{color:var(--muted)}.session-card dl{display:grid;gap:12px;margin:0}.session-card dl div{display:flex;justify-content:space-between;gap:12px}.session-card dt{color:var(--muted)}.session-card dd{margin:0;text-align:right}.playlists{padding:24px}.playlist-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.playlist-toolbar p{flex:1;min-width:200px;color:var(--muted)}.playlist-name{display:grid;gap:8px;max-width:560px}.playlist-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:24px 0}.playlist-columns section{min-width:0}.playlist-columns h2{font-size:18px;margin-bottom:16px}.playlist-columns input:not([type=checkbox]){width:100%}.playlist-catalog{max-height:540px;overflow:auto;margin-top:12px}.playlist-catalog label{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line);cursor:pointer}.playlist-catalog input[type=checkbox]{width:22px;height:22px;flex-shrink:0;accent-color:#a8e8cf}.playlist-catalog span,.playlist-order span{overflow-wrap:anywhere}.playlist-order{list-style:none;margin:0;padding:0}.playlist-order li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.playlist-order li>div{display:flex;flex-shrink:0;gap:4px}.playlist-order button{padding:8px;min-width:40px;min-height:44px}.playlist-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:24px}.playlist-cards button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:20px;overflow-wrap:anywhere}.playlist-cards span{font-size:13px;color:var(--muted)}.playlist-source{display:grid;gap:8px;margin:12px 0 20px}.playlist-source select{width:100%;min-width:0;padding:12px;font:inherit;color:#e5eeeb;background:#142029;border:1px solid #35444b;border-radius:10px}.playlist-source a{font-size:14px;color:#a8e8cf}.playlist-active{color:#a8e8cf;font-size:13px;margin:8px 0;overflow-wrap:anywhere}@media(max-width:700px){.playlists{padding:16px}.playlist-columns{grid-template-columns:1fr}.playlist-order li{flex-wrap:wrap}.playlist-cards{grid-template-columns:1fr}}@media(max-width:1000px){.topbar nav{gap:4px}.topbar nav button{flex:1;min-width:0;padding-left:4px;padding-right:4px}}.playlist-name+.muted{margin-top:12px;line-height:1.5}.pilot-shell{height:100dvh;max-width:760px;margin:auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 20px env(safe-area-inset-bottom);gap:12px;overflow:hidden;background:#0c111b}.pilot-shell button{min-height:48px;font-size:17px}.pilot-head{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:62px;gap:8px}.pilot-head button{background:transparent;border-color:transparent;padding:8px}.pilot-status{display:flex;align-items:center;gap:8px;font-size:14px;color:#ffc46d}.pilot-status i{width:8px;height:8px;background:currentColor;border-radius:50%;flex-shrink:0}.pilot-status.ok{color:#9ee3c6}.pilot-content{display:flex;flex-direction:column;flex:1;min-height:0;gap:14px}.pilot-content h1,.pilot-scroll h1{font-size:26px;line-height:1.2;margin:0}.pilot-song{display:flex;flex-direction:column;gap:14px}.pilot-song button{align-self:flex-start;background:#192434;border-color:#35465b}.pilot-slide-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;color:#a9b8cb}.pilot-slide-meta button{font-size:15px;border:0;background:transparent;padding:6px 0 6px 10px}.pilot-lyrics{flex:1;min-height:80px;overflow:auto;padding:24px;border:1px solid #35465b;border-radius:16px;background:#131d2a;display:flex;flex-direction:column;justify-content:safe center}.pilot-lyrics p{white-space:pre-wrap;font-size:clamp(20px,3vw,27px);line-height:1.5;margin:0;color:#f4f7fa;font-weight:550}.pilot-lyrics.is-draft{border-color:#e6b469}.pilot-controls{display:flex;flex-direction:column;gap:10px;flex-shrink:0;padding:4px 0 16px}.pilot-arrows{display:grid;grid-template-columns:1fr 1.65fr;gap:12px}.pilot-arrows button{min-height:76px;font-size:24px;font-weight:750;gap:12px}.pilot-arrows button:first-child{color:#bbd5ff;background:#192638}.pilot-blank{width:100%;min-height:60px!important;font-size:18px!important}.pilot-start{min-height:66px!important}.pilot-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;color:#a9b8cb;font-size:20px}.pilot-scroll{overflow:auto;flex:1;padding-bottom:24px;min-height:0}.pilot-scroll .muted,.pilot-content .muted{color:#a9b8cb;line-height:1.5;margin:0}.pilot-scroll>h1{margin-bottom:16px}.pilot-search{display:flex;align-items:center;gap:10px;margin:20px 0 12px}.pilot-search input{width:100%;font-size:18px;min-height:54px}.pilot-song-list{display:flex;flex-direction:column;gap:8px}.pilot-song-list button{display:flex;width:100%;text-align:left;min-height:72px;padding:14px;gap:14px}.pilot-song-list button>span{color:#a9b8cb;min-width:30px}.pilot-song-list strong{flex:1;font-size:18px;overflow-wrap:anywhere}.pilot-song-list button.selected{border-color:#a8ebd0;background:#213d37}.pilot-slide-list button{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y pinch-zoom;align-items:flex-start}.pilot-slide-list strong{min-width:0;white-space:pre-wrap;line-height:1.5}.pilot-slide-list button>svg{flex-shrink:0}.prepare-nav{display:flex;justify-content:space-between;align-items:center;gap:12px}.pilot-options{display:flex;flex-direction:column;gap:16px}.pilot-options button{justify-content:flex-start;white-space:normal;text-align:left;padding:16px}.pilot-error{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;background:#542b2b;color:#fff;border-radius:10px;flex-shrink:0;font-size:15px}.pilot-error button{padding:4px;background:transparent;border:0}.draft-notice{display:flex;align-items:center;gap:8px;font-size:14px;color:#ffd492}.draft-notice span{flex:1}.draft-notice button{padding:6px;font-size:14px}.pilot-invite{padding:20px;border:1px solid #40516b;border-radius:12px}.pilot-invite strong{font-size:38px;letter-spacing:4px;color:#abebce}.pilot-join{max-width:480px;margin:0 auto;padding:40px 22px;min-height:100dvh;display:flex;flex-direction:column;gap:28px}.pilot-join .brand{align-self:flex-start}.pilot-join p{color:#a9b8cb;font-size:17px;line-height:1.5;margin:0}.join-card{display:flex;flex-direction:column;gap:18px}.join-card h1{margin:0;font-size:30px}.join-card svg{color:#a8ebd0}.join-card form{display:flex;flex-direction:column;gap:12px}.join-card input{width:100%;font-size:36px;letter-spacing:6px;text-align:center;height:76px}.join-card button{min-height:64px;font-size:20px}.join-card button svg{color:inherit}.admin-link{color:#a9b8cb;font-size:15px;margin-top:auto;padding-top:20px}.pair-screen{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4vh 5vw;gap:2vh;background:#080e17;color:#fff}.pair-brand{font-weight:800;font-size:5vh}.pair-brand span{color:#a8ebd0}.pair-screen h1{font-size:5vh;margin:0}.pair-screen p{font-size:3vh;margin:0;color:#bac9da}.pair-code{font-size:clamp(50px,15vh,180px);letter-spacing:1vw;line-height:1.3;color:#a8ebd0}.pair-screen small{font-size:2.3vh;color:#8194ab}@media(min-width:900px){.pilot-shell{border-left:1px solid #253344;border-right:1px solid #253344;padding-left:36px;padding-right:36px}.pilot-content h1{font-size:30px}}@media(max-height:680px){.pilot-shell{gap:6px;padding-left:12px;padding-right:12px}.pilot-head{min-height:50px}.pilot-content{gap:8px}.pilot-song{gap:6px}.pilot-content h1{font-size:21px}.pilot-lyrics{padding:16px}.pilot-controls{padding-bottom:8px;gap:8px}.pilot-arrows button{min-height:60px;font-size:21px}.pilot-blank{min-height:50px!important}.pilot-lyrics p{font-size:20px;line-height:1.35}}@media(prefers-reduced-motion:reduce){.pilot-shell *{scroll-behavior:auto}}.pilot-slide-actions{display:flex;align-items:center;gap:4px}.pilot-edit{display:inline-flex;align-items:center;justify-content:center;width:44px;min-height:44px;color:#92a4bb;border-radius:6px;flex-shrink:0}.pilot-edit:hover{color:#a8ebd0;background:#192434}.swipe-lyrics{touch-action:pan-y pinch-zoom}.pilot-title{text-align:center;min-width:0}.pilot-song-nav{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);gap:8px;align-items:stretch}.pilot-song-nav button{align-self:stretch;min-width:0;font-size:13px;padding:10px 6px;gap:5px;line-height:1.3}.pilot-song-nav .song-picker{font-size:16px}@media(max-width:360px){.pilot-song-nav{gap:5px}.pilot-song-nav button{font-size:12px;padding:8px 4px;gap:3px}.pilot-song-nav .song-picker{font-size:14px}}.pilot-slide-count{font-size:15px;font-weight:500;color:#f4f7fa}.pilot-lyrics[role=button]{cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.pilot-lyrics[role=button]:focus-visible{outline:2px solid #a8ebd0;outline-offset:3px}.slide-list-title{font-size:20px;margin:12px 0}.pilot-stack,.pilot-stack>.pilot-main{display:contents}.pilot-shell.is-wide{max-width:1500px;padding-left:24px;padding-right:24px;border:0}.pilot-split{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.pilot-split>.pilot-main{display:flex;flex-direction:column;gap:12px;min-height:0;min-width:0}.is-wide .pilot-arrows button{min-height:92px;font-size:28px}.is-wide .pilot-blank{min-height:64px!important;font-size:20px!important}.is-wide .pilot-song-nav button{font-size:15px;min-height:56px}.is-wide .pilot-song-nav .song-picker{font-size:18px}.is-wide .pilot-lyrics p{font-size:clamp(22px,2.2vw,30px)}.pilot-side{display:flex;flex-direction:column;min-height:0;min-width:0;gap:12px;padding:14px;margin-bottom:16px;border:1px solid #293749;border-radius:16px;background:#101826}.side-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex-shrink:0}.side-tabs button{min-height:56px;font-size:17px;font-weight:650;color:#bbd5ff;background:#162131}.side-tabs button.active{color:#0c111b;background:#8ce8c0;border-color:#8ce8c0}.side-head{flex-shrink:0}.side-head h2{margin:0 0 4px;font-size:22px;line-height:1.25}.side-head p{margin:0;color:#a9b8cb;font-size:15px;line-height:1.4}.side-scroll{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:2px 4px 2px 2px;overscroll-behavior:contain}.side-scroll>button{position:relative;flex-shrink:0;display:flex;align-items:flex-start;justify-content:flex-start;gap:14px;width:100%;min-height:64px;padding:14px 16px;text-align:left;border:2px solid #2c3b4f;border-radius:12px;background:#172234;touch-action:pan-y pinch-zoom}.side-scroll>button:disabled{opacity:.6}.side-number{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#23324a;color:#cdd9e8;font-size:17px;font-weight:700}.side-text{flex:1;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:18px;line-height:1.45;color:#e6edf6}.side-songs .side-text{align-self:center;font-weight:600}.side-badge{flex-shrink:0;align-self:flex-start;padding:5px 10px;border-radius:999px;background:#8ce8c0;color:#0c111b;font-size:14px;font-weight:750}.side-badge.soft{background:transparent;color:#bbd5ff;border:1px solid #4a5f7c;font-weight:600}.side-scroll>button.current{border-color:#8ce8c0;background:#1d3a35}.side-scroll>button.current .side-number{background:#8ce8c0;color:#0c111b}.side-scroll>button.current.blanked{border-color:#e6b469;background:#2c2a22}.side-scroll>button.current.blanked .side-badge,.side-scroll>button.current.blanked .side-number{background:#e6b469}.side-scroll>button.next{border-color:#4a5f7c}.side-scroll>button.prepared{border-color:#e6b469}.side-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;color:#a9b8cb;font-size:18px}.side-empty p{margin:0;max-width:320px;line-height:1.5}.side-empty button{min-height:60px;font-size:19px;padding:12px 28px}@media(max-height:680px){.is-wide .pilot-arrows button{min-height:72px;font-size:24px}.side-text{font-size:17px}}.side-scroll>button.side-next-song{align-items:center;margin-top:6px;border-style:dashed;border-color:#4a5f7c;background:transparent;color:#bbd5ff}.side-next-song .side-text{display:flex;flex-direction:column;gap:2px;font-weight:650;color:#dbe7f5}.side-next-song small{font-size:14px;font-weight:500;color:#a9b8cb}.is-wide .pilot-slide-meta{font-size:16px}.is-wide .pilot-slide-meta>span{font-weight:700;color:#9ee3c6}@media(hover:none){.side-scroll>button:not(.current):not(.prepared):not(.next):hover{background:#172234;border-color:#2c3b4f}.side-scroll>button.next:hover{background:#172234;border-color:#4a5f7c}.side-scroll>button.side-next-song:hover{background:transparent;border-color:#4a5f7c}}.landing{max-width:1000px;min-height:100dvh;padding:42px 24px 28px;margin:auto;text-align:center}.landing-brand{font-size:36px;font-weight:800;letter-spacing:-2px;margin-bottom:32px}.landing-brand span{color:#9de9cd}.landing h1{font-size:clamp(26px,4vw,38px);margin:0 0 10px}.landing-intro{color:#a9b8cc;margin:0 0 30px;line-height:1.5}.landing-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.landing-card{display:block;overflow:hidden;border:1px solid #334352;border-radius:16px;background:#0c111b;color:#f3f6fa;text-decoration:none;text-align:center;transition:border-color .15s,background .15s}.landing-card:hover{border-color:#9de9cd;background:#111b27}.landing-card:focus-visible{outline:3px solid #9de9cd;outline-offset:5px}.landing-card img{display:block;width:100%;height:auto;aspect-ratio:3 / 2;object-fit:contain;background:#0c111b}.landing-card-copy{padding:22px 26px 26px}.landing-card h2{display:flex;justify-content:center;align-items:center;gap:16px;font-size:28px;letter-spacing:1px;margin:0 0 10px}.landing-card h2 svg{color:#9de9cd}.landing-card p{margin:0;color:#b7c6d8;font-size:17px;line-height:1.5}.landing-library{display:inline-flex;align-items:center;gap:8px;color:#a9b8cc;margin-top:30px;min-height:44px;font-size:14px;text-decoration:none}.landing-library:hover{color:#9de9cd;text-decoration:underline}@media(max-width:600px){.landing{padding:20px 18px}.landing-brand{font-size:30px;margin-bottom:18px}.landing-intro{font-size:15px;margin-bottom:20px}.landing-choices{grid-template-columns:1fr;gap:16px}.landing-card img{height:150px}.landing-card-copy{padding:14px 20px 18px}.landing-card h2{font-size:24px;margin-bottom:6px}.landing-card p{font-size:15px}.landing-library{margin-top:18px;font-size:13px}}
