@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Fallback;src:local(Arial);ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.0%;size-adjust:99.82%}.ZHXJlW_className{font-family:Outfit,Outfit Fallback;font-style:normal}.ZHXJlW_variable{--font-sans:"Outfit", "Outfit Fallback"}
:root{--bg:#0f1020;--bg-2:#171832;--surface:#ffffff0d;--surface-2:#ffffff17;--border:#ffffff1a;--text:#f1f1fb;--muted:#9a9bb8;--primary:#8b7bff;--primary-2:#c06bff;--accent:#ffc86b;--danger:#ff6b86;--ok:#5eead4;--radius:16px;--nav-h:68px}*{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-sans), system-ui, sans-serif;color:var(--text);background:radial-gradient(900px 500px at 10% -10%, #8b7bff40, transparent 60%), radial-gradient(700px 500px at 100% 10%, #c06bff2e, transparent 60%), var(--bg);-webkit-tap-highlight-color:transparent;background-attachment:fixed;min-height:100dvh}a{color:inherit;text-decoration:none}h1{letter-spacing:-.02em;font-size:1.7rem;font-weight:700}h2{font-size:1.15rem;font-weight:600}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:1.25rem}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.grow{flex:1}.field{flex-direction:column;gap:.4rem;display:flex}.field label{color:var(--muted);font-size:.85rem}.input{width:100%;min-height:48px;font:inherit;color:var(--text);border:1px solid var(--border);background:#00000040;border-radius:12px;outline:none;padding:0 1rem;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #8b7bff40}.btn{min-height:48px;font:inherit;color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary-2));cursor:pointer;border:0;border-radius:12px;padding:0 1.4rem;font-weight:600;transition:transform .15s,filter .2s,box-shadow .2s;box-shadow:0 8px 24px -8px #8b7bffb3}.btn:hover{filter:brightness(1.1)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:wait}.btn.ghost{background:var(--surface-2);box-shadow:none}.btn.small{min-height:38px;padding:0 .9rem;font-size:.85rem}.btn.danger{color:var(--danger);box-shadow:none;background:#ff6b862e}.alert{border-radius:12px;padding:.75rem 1rem;font-size:.9rem}.alert.error{color:var(--danger);background:#ff6b8626}.alert.ok{color:var(--ok);background:#5eead424}.badge{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.2rem .6rem;font-size:.72rem;font-weight:600}.badge.admin{color:var(--accent);background:#ffc86b2e}.badge.off{color:var(--danger);background:#ff6b8626}.brand{letter-spacing:-.03em;background:linear-gradient(135deg, var(--primary), var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.3rem;font-weight:800}.auth-wrap{isolation:isolate;background:#0b0c1c url(/login-bg.jpg) 50%/cover no-repeat;place-items:center;min-height:100dvh;padding:1.5rem;display:grid;position:relative;overflow:hidden}.auth-wrap:before{content:"";z-index:-1;background:radial-gradient(55% 60%,#0b0c1cc7,#0b0c1c33 100%);position:absolute;inset:0}.auth-card{-webkit-backdrop-filter:blur(22px)saturate(140%);backdrop-filter:blur(22px)saturate(140%);background:#1213269e;border:1px solid #a08cff47;border-radius:24px;width:min(440px,100%);padding:2.25rem;box-shadow:0 0 0 1px #ffffff08,0 30px 80px -20px #000000b3,0 0 60px -15px #8b7bff73}.auth-card .brand{filter:drop-shadow(0 0 14px #8b7bff8c);font-size:1.5rem;display:inline-block}.auth-card h1{text-shadow:0 0 24px #8b7bff59;margin:.25rem 0 .35rem;font-size:2.1rem}.auth-card .input{background:#05061099}.auth-card .btn{letter-spacing:.02em;min-height:52px;font-size:1.05rem;box-shadow:0 10px 34px -8px #c06bffcc}.auth-wrap>div{width:min(440px,100vw - 3rem)}.auth-wrap>div .auth-card{width:100%}@media (min-width:900px){.auth-wrap{background-size:108%;animation:24s ease-in-out infinite alternate drift}}@keyframes drift{0%{background-position:45%}to{background-position:55% 52%}}.shell{min-height:100dvh}.main{padding:1.25rem 1rem calc(var(--nav-h) + 1.5rem);max-width:1100px;margin:0 auto}.nav{z-index:10;height:var(--nav-h);padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--border);background:#0f1020d9;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav .brand,.nav .spacer{display:none}.nav-link{min-width:64px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:.4rem .6rem;font-family:inherit;font-size:.72rem;transition:color .2s,background .2s;display:flex}.nav-link .ico{font-size:1.35rem;line-height:1}.nav-link:hover,.nav-link.active{color:var(--text);background:var(--surface-2)}@media (min-width:768px){.nav{border-top:0;border-right:1px solid var(--border);flex-direction:column;justify-content:flex-start;align-items:stretch;gap:.35rem;width:220px;height:auto;padding:1.5rem 1rem;top:0;bottom:0;right:auto}.nav .brand{margin-bottom:1.5rem;padding-left:.5rem;display:block}.nav .spacer{flex:1;display:block}.nav-link{flex-direction:row;gap:.75rem;padding:.75rem .9rem;font-size:.95rem}.main{max-width:none;margin-left:220px;padding:2rem 2.5rem}.main>*{max-width:1000px}}.grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (min-width:640px){.grid.two{grid-template-columns:1fr 1fr}}.user-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 0;display:flex}.user-row:last-child{border-bottom:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.song-card{flex-direction:column;gap:.35rem;transition:transform .2s,border-color .2s,background .2s;display:flex}.song-card:hover{border-color:var(--primary);background:var(--surface-2);transform:translateY(-3px)}.toolbar{z-index:5;flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.5rem;padding:.75rem 1rem;display:flex;position:sticky;top:.5rem}.key-badge{text-align:center;min-width:3ch;color:var(--accent);font-size:1.2rem;display:inline-block}.song{font-family:var(--font-sans), sans-serif;line-height:1.2}.song.two-cols{column-count:2;column-gap:2.5rem}.song.two-cols .song-line,.song.two-cols .song-comment,.song.two-cols .song-gap{break-inside:avoid}@media (max-width:640px){.song.two-cols{column-count:1}}.song-line{flex-wrap:wrap;align-items:flex-end;margin-bottom:.22em;display:flex}.song-line.chorus{border-left:3px solid var(--primary);background:#8b7bff12;border-radius:0 8px 8px 0;padding-left:.75em}.song-line.chord-only{margin-bottom:.05em}.song-line.chord-only .chord{min-height:auto}.seg{flex-direction:column;display:inline-flex}.chord{color:var(--accent);min-height:1.15em;padding-right:.35em;font-size:.85em;font-weight:700;line-height:1.1}.chord.raw{color:var(--muted);font-weight:400}.lyr{white-space:pre-wrap}.chord-spacer{white-space:pre;height:0;line-height:0;display:inline-block}.song-comment{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin:.55em 0 .2em;font-size:.8em;font-weight:700}.song-gap{height:.45em}.editor{min-height:320px;font-family:var(--font-geist-mono), ui-monospace, Consolas, monospace;resize:vertical;padding:.9rem 1rem;font-size:.95rem;line-height:1.5}.editor-split{grid-template-columns:1fr;gap:1rem;display:grid}.editor-split .preview{border:1px dashed var(--border);border-radius:12px;max-height:70vh;padding:1rem;overflow:auto}.editor-split.show-edit .preview,.editor-split.show-preview .editor{display:none}@media (min-width:900px){.editor-split{grid-template-columns:1fr 1fr}.editor-split.show-edit .preview,.editor-split.show-preview .editor{display:block}.seg-toggle{display:none}}.seg-toggle{background:var(--surface-2);border-radius:999px;padding:3px;display:inline-flex}.seg-toggle button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.4rem .9rem;font-size:.85rem}.seg-toggle button.on{background:var(--primary);color:#fff}.chip-bar{scrollbar-width:none;gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.chip{border:1px solid var(--border);min-height:40px;color:var(--accent);font:inherit;cursor:pointer;background:#ffc86b1f;border-radius:999px;flex:none;padding:0 1rem;font-weight:700;transition:transform .12s,background .2s}.chip.alt{background:var(--surface-2);color:var(--text);font-weight:500}.chip:active{transform:scale(.93)}.sl-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.sl-row{background:var(--surface-2);border:1px solid var(--border);-webkit-user-select:none;user-select:none;border-radius:12px;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.sl-row.dragging{opacity:.5;border-color:var(--primary)}.drag-handle{color:var(--muted);cursor:grab;background:0 0;border:0;border-radius:6px;padding:.2rem .4rem;font-size:1.25rem}.drag-handle:active{cursor:grabbing;color:var(--text)}.key-select{width:90px;min-height:38px;padding:0 .5rem;font-size:.85rem}.stage-wrap{z-index:100;color:#fff;background:#090a14;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.stage-bar{border-bottom:1px solid var(--border);background:#0f1020f2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.stage-title{font-size:1.1rem;font-weight:700}.stage-controls{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.stage-group{border:1px solid var(--border);background:#ffffff0f;border-radius:8px;align-items:center;display:inline-flex;overflow:hidden}.stage-key{text-align:center;min-width:2.5ch;color:var(--accent);padding:0 .4rem;font-size:.95rem;font-weight:700}.stage-btn{border:1px solid var(--border);color:#fff;cursor:pointer;background:#ffffff14;border-radius:8px;align-items:center;padding:.4rem .8rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.stage-btn.small{border-radius:6px;padding:.35rem .65rem}.stage-btn:hover{background:#ffffff26}.stage-btn.active{background:var(--primary);border-color:var(--primary)}.stage-content{scroll-behavior:smooth;flex:1;padding:1.5rem;overflow-y:auto}.stage-content.two-cols .song{column-count:2;column-gap:2.5rem}.stage-notes{border-left:3px solid var(--accent);background:#ffc86b1a;border-radius:0 8px 8px 0;margin-bottom:1.5rem;padding:.6rem 1rem;font-size:.95rem}.stage-footer{border-top:1px solid var(--border);background:#0f1020f2;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.stage-nav-btn{background:var(--surface-2);border:1px solid var(--border);color:#fff;cursor:pointer;border-radius:10px;min-width:100px;padding:.6rem 1.2rem;font-size:.95rem;font-weight:700}.stage-nav-btn:disabled{opacity:.3;cursor:not-allowed}.stage-selector{flex:1;max-width:320px}.stage-select{color:#fff;border:1px solid var(--border);background:#0006;border-radius:10px;width:100%;min-height:42px;padding:0 .8rem;font-size:.9rem}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media print{body{color:#000!important;background:#fff!important}.nav,.stage-bar,.stage-footer,.btn,.toolbar,.chip-bar,form{display:none!important}.main{max-width:100%!important;margin-left:0!important;padding:0!important}.card{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.chord{color:#000!important;font-weight:800!important}.song-comment{color:#444!important}.print-page-break{page-break-after:always;break-after:page}}.cifra-layout{flex-direction:column;align-items:stretch;gap:1.25rem;display:flex}@media (min-width:860px){.cifra-layout{flex-direction:row;align-items:flex-start}}.cifra-sidebar{border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#121326bf;border-radius:18px;flex-direction:column;gap:.3rem;width:100%;padding:.5rem;display:flex;box-shadow:0 10px 30px #0000004d}@media (min-width:860px){.cifra-sidebar{flex-shrink:0;width:260px;position:sticky;top:1rem}}.cifra-main{flex:1;min-width:0}.cifra-menu-item{color:var(--text);border-radius:12px;justify-content:space-between;align-items:center;padding:.65rem .85rem;display:flex}.cifra-menu-label{align-items:center;gap:.6rem;font-size:.9rem;font-weight:500;display:flex}.cifra-menu-btn{width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:.6rem;padding:.65rem .85rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .15s,color .15s;display:flex}.cifra-menu-btn:hover{background:var(--surface-2)}.cifra-menu-btn.active{color:#fff;background:#8b7bff2e}.cifra-icon{font-size:1.15rem;line-height:1}.cifra-status{color:var(--muted);background:#ffffff0f;border-radius:6px;padding:.2rem .5rem;font-size:.78rem;font-weight:600}.cifra-key-control{border:1px solid var(--border);background:#0000004d;border-radius:8px;align-items:center;gap:.35rem;padding:.2rem .4rem;display:flex}.cifra-mini-btn{background:var(--surface-2);color:#fff;cursor:pointer;border:0;border-radius:6px;width:26px;height:26px;font-weight:700;transition:background .15s}.cifra-mini-btn:hover{background:var(--primary)}.cifra-divider{background:var(--border);border:0;height:1px;margin:.3rem 0}.cifra-chords-bar{border:1px solid var(--border);background:#12132699;border-radius:14px;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.cifra-chord-chip{color:var(--accent);background:#ffc86b1f;border:1px solid #ffc86b40;border-radius:8px;align-items:center;padding:.25rem .6rem;font-size:.88rem;font-weight:700;display:inline-flex}.text-left{text-align:left}
