:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#090b10;color:#f5f7fb;--panel:#131721;--line:#272d3b;--muted:#8f98aa;--accent:#ff6b35;--green:#35d07f}*{box-sizing:border-box}[hidden]{display:none!important}.auth-gate{display:none;position:fixed;inset:0;z-index:100;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#3a1c28 0,transparent 40%),#090b10}.auth-loading .auth-gate,.auth-locked .auth-gate{display:grid}.auth-loading>.topbar,.auth-loading>main,.auth-loading>.footer-nav,.auth-locked>.topbar,.auth-locked>main,.auth-locked>.footer-nav{display:none}.auth-card{width:min(420px,100%);padding:32px;border:1px solid var(--line);border-radius:26px;background:#131721;box-shadow:0 30px 90px #0008}.auth-logo{display:grid;place-items:center;width:64px;height:64px;margin-bottom:24px;border-radius:20px;background:linear-gradient(135deg,#ff874e,#d83b43);font-size:22px;font-weight:900}.auth-card h1{margin:0 0 8px;font-size:32px}.auth-card>p:not(.eyebrow){margin:0 0 24px;color:var(--muted)}.auth-card form{display:grid;gap:18px}.field{display:grid;gap:8px}.field span{font-size:12px;font-weight:800;color:#c4cad5}.field input{width:100%;padding:15px 16px;border:1px solid #343b4a;border-radius:13px;outline:0;background:#0b0e14;color:white;font-size:18px}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ff6b3525}.form-error{min-height:18px;margin:-4px 0;color:#ff8a8f;font-size:13px}.auth-card .primary-button{width:100%}.import-dialog{position:fixed;z-index:90;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 28px);max-width:560px;max-height:90vh;overflow:auto;padding:0;border:1px solid var(--line);border-radius:24px;background:#131721;color:white;box-shadow:0 0 0 100vmax rgba(5,7,11,.82),0 30px 100px rgba(0,0,0,.75)}.import-dialog form{display:grid;gap:18px;padding:26px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between}.dialog-heading h2{margin:0}.dialog-help{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.icon-button{width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:#202632;color:white;font-size:26px}.file-picker{display:flex;align-items:center;gap:14px;padding:18px;border:1px dashed #465064;border-radius:16px;background:#0c1017;cursor:pointer}.file-picker.compact{padding:14px}.file-picker input{position:absolute;width:1px;height:1px;opacity:0}.file-picker-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:13px;background:#282f3c;color:var(--accent);font-weight:900}.file-picker strong,.file-picker small{display:block}.file-picker small{max-width:360px;margin-top:4px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-notice{padding:12px 14px;border-radius:12px;background:#19281f;color:#88e6ad;font-size:13px}.import-dialog .primary-button:disabled{opacity:.45}.import-dialog .primary-button{width:100%}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 80% -10%,#2b1a25 0,transparent 34%),#090b10;padding-bottom:84px}button,input{font:inherit}.topbar{height:72px;padding:calc(12px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#0b0e14dd;backdrop-filter:blur(18px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#ff874e,#d83b43);font-weight:900}.brand strong,.brand small{display:block}.brand small{font-size:11px;color:var(--muted);margin-top:2px}.status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.status-dot{width:8px;height:8px;border-radius:50%;background:#f0b429;box-shadow:0 0 12px currentColor}.status-dot.online{background:var(--green)}.status-dot.offline{background:#ff5f62}main{width:min(1180px,100%);margin:auto;padding:28px max(18px,env(safe-area-inset-left))}.page-view{display:none}.page-view.active{display:block}.lyrics-stage{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:18px;padding:24px;text-align:center;border:1px solid var(--line);border-radius:20px;background:#0d1118;overflow:hidden}.lyric-line{margin:8px 0;max-width:900px}.lyric-line.previous,.lyric-line.next{color:#737d8f;font-size:22px}.lyric-line.current{color:white;font-size:42px;font-weight:800;line-height:1.15}.lyrics-editor{width:100%;min-height:55vh;padding:20px;border:1px solid var(--line);border-radius:16px;background:#0b0e14;color:white;font:18px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}.settings-list{display:grid;gap:10px}.settings-list label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#131721}.settings-list input[type=range]{width:220px;max-width:45vw}.compatibility-note{color:var(--muted);font-size:13px}.now-playing{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#171b26,#10131a);box-shadow:0 20px 60px #0005}.eyebrow{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.18em;margin:0 0 8px}.now-playing h1{font-size:clamp(24px,4vw,42px);line-height:1;margin:0 0 8px}.now-playing p:last-child{color:var(--muted);margin:0}.tempo{width:86px;height:86px;display:grid;place-content:center;text-align:center;border-radius:20px;background:#0a0d12;border:1px solid var(--line)}.tempo strong{font-size:26px}.tempo span{font-size:10px;color:var(--muted);letter-spacing:.16em}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;margin:22px 0;border-radius:16px;background:#11151e;border:1px solid var(--line)}.mode-button{border:0;border-radius:11px;padding:13px;background:transparent;color:var(--muted);font-weight:800}.mode-button.active{background:#262c39;color:white;box-shadow:0 4px 14px #0005}.view{display:none}.view.active{display:block}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 0 16px}.section-heading h2{margin:0;font-size:22px}.primary-button,.secondary-button,.danger-button{border-radius:12px;padding:12px 16px;font-weight:800}.primary-button{border:0;background:var(--accent);color:#111}.secondary-button{border:1px solid var(--line);background:#181d27;color:white}.danger-button{border:1px solid #5c2932;background:#29161b;color:#ff8a8f}.song-list{display:grid;gap:10px}.song-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px;border:1px solid var(--line);border-radius:15px;background:#131721;cursor:pointer}.song-row.selected{border-color:var(--accent);background:#241a1c;box-shadow:0 0 0 2px #ff6b3520}.song-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-row span{flex:0 0 auto;color:var(--muted);font-size:12px}.empty-card{text-align:center;padding:48px 24px;border:1px dashed #343b4a;border-radius:22px;background:#11151dcc}.empty-icon{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:18px;background:#252b37;color:var(--accent);font-size:30px}.empty-card h3{margin:18px 0 8px}.empty-card p{color:var(--muted);max-width:430px;margin:0 auto 22px}.player-progress{display:grid;grid-template-columns:44px 1fr 52px;align-items:center;gap:10px;margin:18px 8px 0;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.player-progress input{width:100%;accent-color:var(--accent)}.transport{position:sticky;bottom:92px;display:flex;justify-content:center;align-items:center;gap:12px;margin:24px auto 0;width:max-content;padding:10px 14px;border-radius:20px;background:#171b24ee;border:1px solid var(--line);backdrop-filter:blur(16px)}.transport button{width:48px;height:48px;border:0;border-radius:14px;background:#252b37;color:white;font-weight:900}.transport .play{width:58px;height:58px;background:var(--accent);color:#111;font-size:20px}.pad-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}.pad-column{min-width:120px;display:grid;gap:10px}.column-header{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.12em}.pad{position:relative;min-height:104px;border:1px solid #465064;border:1px solid color-mix(in srgb,var(--pad-color) 45%,#303746);border-radius:18px;background:#1b2230;background:linear-gradient(145deg,color-mix(in srgb,var(--pad-color) 22%,#171b24),#11151d);color:white;text-align:left;padding:14px;transition:transform .08s,filter .15s}.pad:active{transform:scale(.97)}.pad.active{filter:brightness(1.5);box-shadow:0 0 28px rgba(255,107,53,.38);box-shadow:0 0 28px color-mix(in srgb,var(--pad-color) 42%,transparent)}.pad-column:nth-child(1) .pad{border-color:#8f4b38;background:#34221d}.pad-column:nth-child(2) .pad{border-color:#8f7130;background:#342d1a}.pad-column:nth-child(3) .pad{border-color:#328b5d;background:#183127}.pad-column:nth-child(4) .pad{border-color:#595092;background:#24213a}.pad small{display:block;margin-top:8px;color:#bec5d2;font-size:10px;letter-spacing:.08em}.column-volume{width:100%;accent-color:var(--pad-color)}.master-strip{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel);font-size:12px;font-weight:900}.master-strip input{width:100%;accent-color:var(--accent)}.footer-nav{position:fixed;bottom:0;left:0;right:0;height:72px;padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:#0d1017ee;border-top:1px solid var(--line);backdrop-filter:blur(18px);z-index:20}.footer-nav button{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:700}.footer-nav button.active{color:var(--accent)}@media(max-width:640px){main{padding-top:18px}.now-playing{padding:18px;border-radius:18px}.tempo{width:66px;height:66px}.tempo strong{font-size:21px}.pad-grid{grid-template-columns:repeat(4,132px)}.pad{min-height:92px}.section-heading{margin-top:20px}}@media(min-width:900px){.pad-grid{grid-template-columns:repeat(4,1fr)}.pad{min-height:122px}}
