:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:"Plus Jakarta Sans", "Manrope", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", ui-monospace, Menlo, Monaco, Consolas, monospace;--text:#f4f8ff;--muted:#9eb1ca;--muted-strong:#d3e0f5;--surface:#070b14;--surface-elevated:#0d1320;--card:#121a2b;--border:#7a98c433;--accent:#38bdf8;--accent-strong:#22d3ee;--accent-soft:#38bdf824;--chord:#a5b4fc;--section:#67e8f9;--danger:#fb7185;--btn-bg:#162033;--input-bg:#0d1727;--shadow:0 12px 34px #02061738;--shadow-lg:0 24px 56px #02061747;--radius-xl:1.4rem;--radius-2xl:1.8rem}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#10203d;--muted:#627492;--muted-strong:#294063;--surface:#eef4fb;--surface-elevated:#f7faff;--card:#fff;--border:#6e8ab233;--accent:#2563eb;--accent-strong:#0ea5e9;--accent-soft:#2563eb1c;--chord:#4338ca;--section:#0284c7;--danger:#e11d48;--btn-bg:#eef3fb;--input-bg:#fdfefe;--shadow:0 12px 34px #0f172a14;--shadow-lg:0 24px 56px #0f172a1f}*,:before,:after{box-sizing:border-box}html{background:radial-gradient(circle at top left, #38bdf81f, transparent 24%), radial-gradient(circle at 85% 0%, #818cf814, transparent 28%), var(--surface);min-height:100%}html[data-theme=light]{background:radial-gradient(circle at top left, #3b82f61f, transparent 24%), radial-gradient(circle at 85% 0%, #0ea5e912, transparent 28%), var(--surface)}body{min-height:100dvh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);background:0 0;margin:0;line-height:1.55}button,input,select,textarea{font:inherit}a{color:inherit}code{font-family:var(--font-mono)}::selection{background:color-mix(in srgb, var(--accent) 30%, transparent)}#root{min-height:100dvh}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{min-height:100dvh;padding-top:env(safe-area-inset-top,0px);flex-direction:column;display:flex}.app-topbar{z-index:40;border-bottom:1px solid var(--border);background:linear-gradient(180deg, #070a12f2, #070a12c7), var(--surface-elevated);-webkit-backdrop-filter:blur(20px);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1rem .9rem;display:flex;position:sticky;top:0}html[data-theme=light] .app-topbar{background:linear-gradient(180deg, #f7f9fff5, #f7f9ffd6), var(--surface-elevated)}.app-topbar-left,.app-topbar-actions{align-items:center;gap:.75rem;display:flex}.app-topbar-left{min-width:0}.brand{min-width:0;color:inherit;align-items:center;gap:.85rem;text-decoration:none;display:inline-flex}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#04111f;border-radius:.95rem;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;font-size:1.2rem;display:inline-flex;box-shadow:0 18px 34px #3182f640}.brand-copy{flex-direction:column;min-width:0;display:flex}.brand-name{letter-spacing:-.04em;font-size:1rem;font-weight:700}.brand-subtitle{color:var(--muted);font-size:.8rem}.topbar-context{border-left:1px solid color-mix(in srgb, var(--border) 88%, transparent);flex-direction:column;gap:.15rem;min-width:0;padding-left:.75rem;display:none}.topbar-context-label,.section-kicker,.sidebar-kicker,.pane-label{color:var(--muted-strong);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:700}.topbar-context strong{font-size:.92rem;font-weight:600}.app-body{flex:1;min-height:0;display:flex}.app-sidebar{display:none}.main{width:100%;max-width:100%;padding:1rem 1rem calc(6.25rem + env(safe-area-inset-bottom,0px));flex:1}.page-stack{flex-direction:column;gap:1rem;display:flex}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:1rem}.panel-hero{background:radial-gradient(circle at top right, #38bdf824, transparent 34%), radial-gradient(circle at bottom left, #22d3ee17, transparent 30%), var(--card)}html[data-theme=light] .panel-hero{background:radial-gradient(circle at top right, #3b82f61f, transparent 34%), radial-gradient(circle at bottom left, #0ea5e914, transparent 30%), var(--card)}.panel-header,.section-heading{flex-direction:column;gap:.75rem;display:flex}.panel-header h1,.section-heading h2,.panel h1,.panel h2{letter-spacing:-.04em;margin:.15rem 0 0;line-height:1.05}.panel h1{font-size:clamp(1.8rem,5vw,2.55rem)}.panel h2{font-size:clamp(1.15rem,3vw,1.55rem)}.muted{color:var(--muted)}.state-message,.empty-state{margin:0}.empty-state{border-radius:var(--radius-lg);background:var(--surface-elevated);border:1px dashed color-mix(in srgb, var(--border) 90%, transparent);color:var(--muted);padding:1rem 1.1rem}.row{align-items:center;display:flex}.row.gap{gap:.65rem}.row.wrap{flex-wrap:wrap}.row.end{justify-content:flex-end}.row.center{justify-content:center}.row.grow{flex:1}.btn,.mobile-nav-link,.sidebar-link,.song-card,.song-card-main,.song-fav-toggle,.section-chip,.line-sticky-drag,.line-sticky-remove,.link-button{transition:transform .16s,background-color .16s,border-color .16s,color .16s,box-shadow .16s}.btn{background:var(--btn-bg);min-height:2.85rem;color:var(--text);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:.95rem;justify-content:center;align-items:center;gap:.45rem;padding:.72rem 1rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:inset 0 1px #ffffff05}.btn:hover:not(:disabled),.song-card:hover,.song-fav-toggle:hover,.section-chip:hover,.mobile-nav-link:hover,.sidebar-link:hover{transform:translateY(-1px)}.btn:active:not(:disabled),.song-card-main:active,.song-fav-toggle:active,.mobile-nav-link:active,.sidebar-link:active,.section-chip:active{transform:translateY(0)scale(.98)}.btn:disabled,.song-fav-toggle:disabled{opacity:.55;cursor:not-allowed}.btn.primary{color:#04111f;background:linear-gradient(135deg, var(--accent), var(--accent-strong));box-shadow:0 14px 28px #38bdf83d}.btn.secondary{background:var(--btn-bg);border-color:color-mix(in srgb, var(--border) 92%, transparent)}.btn.danger{background:color-mix(in srgb, var(--danger) 12%, var(--card));border-color:color-mix(in srgb, var(--danger) 40%, var(--border));color:var(--danger)}.btn.small{min-height:2.5rem;padding:.58rem .9rem;font-size:.84rem}.btn.icon-tiny{width:2.3rem;min-height:2.3rem;padding:0;font-size:1.2rem}.btn.ghost{min-height:auto;color:var(--accent);box-shadow:none;background:0 0;border:none;padding:.35rem .5rem}.btn.primary.danger-solid{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626)}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:.88rem;font-weight:600;display:inline-flex}.link-button:hover,.link-button:focus-visible{color:var(--accent-strong)}.theme-toggle{min-width:2.85rem}.theme-icon{font-size:1.1rem}.theme-label{font-size:.84rem}.field,.filter-field,.mini-field{flex-direction:column;gap:.42rem;display:flex}.field{font-size:.92rem}.field input,.field textarea,.filter-field input,.filter-field select,.select-input{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:var(--input-bg);width:100%;color:var(--text);font:inherit;border-radius:.95rem;padding:.82rem .92rem;line-height:1.45;box-shadow:inset 0 1px #ffffff05}.field input:focus,.field textarea:focus,.filter-field input:focus,.filter-field select:focus,.select-input:focus{border-color:color-mix(in srgb, var(--accent) 48%, var(--border));box-shadow:0 0 0 4px var(--accent-soft), inset 0 1px 0 #ffffff08;outline:none}.field textarea,.song-form-textarea,.chart-textarea{resize:vertical;min-height:10rem}.field-label-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.field-checkbox,.filter-checkbox{justify-content:center}.field-checkbox{border:1px solid var(--border);background:var(--surface-elevated);border-radius:1rem;flex-direction:row;align-items:center;gap:.65rem;padding:.9rem 1rem}.field-checkbox input,.filter-checkbox input{width:1.1rem;height:1.1rem;accent-color:var(--accent-strong)}.filter-label{color:var(--muted);font-size:.8rem}.library-hero,.form-hero{gap:1rem;display:grid}.library-hero-copy,.library-hero-actions{flex-direction:column;gap:.9rem;display:flex}.library-hero-actions{align-items:flex-start}.library-stat{border:1px solid color-mix(in srgb, var(--border) 88%, transparent);background:#ffffff0a;border-radius:1rem;flex-direction:column;gap:.18rem;min-width:9rem;padding:.9rem 1rem;display:inline-flex}.library-stat strong{letter-spacing:-.04em;font-size:1.35rem}.library-stat span{color:var(--muted);font-size:.82rem}.filter-panel,.library-results,.form-panel{overflow:hidden}.filters-shell{flex-direction:column;gap:.95rem;display:flex}.filters-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.filters-header h2{margin-top:.12rem}.filters-header-compact{align-items:center}.filters-header-compact .section-kicker{margin:0}.filters-shell-advanced .filters-header-compact{margin-bottom:.35rem}.library-search-bar{border-top:1px solid color-mix(in srgb, var(--border) 85%, transparent);margin-top:.65rem;padding-top:.85rem}.library-search-field{width:100%}.library-search-field input{min-height:3rem;font-size:1rem}.filter-count-pill{background:color-mix(in srgb, var(--accent) 18%, transparent);min-width:1.35rem;height:1.35rem;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;padding:0 .4rem;font-size:.75rem;font-weight:800;display:inline-flex}.filters-bar{gap:.85rem;display:grid}.filter-field.grow{min-width:0}.filter-checkbox{border:1px solid var(--border);background:var(--surface-elevated);border-radius:1rem;flex-direction:row;align-items:center;gap:.65rem;padding:.95rem 1rem}.song-list{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.song-list-item{display:block}.song-card{border:1px solid color-mix(in srgb, var(--border) 94%, transparent);background:linear-gradient(180deg, #ffffff08, transparent 40%), var(--surface-elevated);width:100%;min-width:0;color:inherit;border-radius:1.15rem;padding:0;display:flex;position:relative;overflow:hidden}.song-card:hover{border-color:color-mix(in srgb, var(--accent) 38%, var(--border));box-shadow:0 16px 34px #0f172a2e}.song-card-main{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:.85rem;padding:1rem 3.75rem 1rem 1rem;display:flex}.song-card-top,.song-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.65rem;display:flex}.song-card-heading{flex-direction:column;gap:.3rem;min-width:0;display:flex}.song-card-kicker{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:600}.song-title-row{align-items:center;gap:.45rem;display:flex}.song-title{letter-spacing:-.03em;font-size:1.12rem;font-weight:700}.song-card-date{white-space:nowrap;font-size:.78rem}.song-fav-inline{color:#fbbf24}.song-card-preview{color:var(--muted);margin:0;font-size:.9rem;line-height:1.5}.song-card-chips{flex-wrap:wrap;gap:.45rem;display:flex}.song-chip,.viewer-stat-pill{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);color:var(--muted-strong);background:#ffffff0a;border-radius:999px;align-items:center;gap:.3rem;padding:.38rem .62rem;font-size:.76rem;font-weight:600;display:inline-flex}.song-card-stats{color:var(--muted);font-size:.82rem;font-weight:600}.song-fav-toggle{z-index:2;border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:color-mix(in srgb, var(--card) 88%, transparent);width:2.45rem;height:2.45rem;min-height:0;color:var(--muted);cursor:pointer;border-radius:.8rem;padding:0;font-size:1.1rem;position:absolute;top:.85rem;right:.85rem}.song-fav-toggle.on{color:#fbbf24;background:color-mix(in srgb, #f59e0b 14%, var(--surface-elevated));border-color:color-mix(in srgb, #f59e0b 42%, var(--border))}.form{flex-direction:column;gap:1rem;display:flex}.form-section{background:var(--surface-elevated);border:1px solid color-mix(in srgb, var(--border) 92%, transparent);border-radius:1.15rem;flex-direction:column;gap:.95rem;padding:1rem;display:flex}.form-grid-meta{gap:.85rem;display:grid}.chart-actions{flex-wrap:wrap;gap:.85rem;display:inline-flex}.song-form-textarea{min-height:21rem;font-family:var(--font-mono)}.form-actions{margin-top:.25rem}.ocr-block{border:1px dashed color-mix(in srgb, var(--accent) 34%, var(--border));background:color-mix(in srgb, var(--accent-soft) 34%, var(--surface-elevated));border-radius:1rem;padding:1rem}.ocr-hint{margin:0 0 .85rem}.ocr-actions{flex-wrap:wrap;gap:.6rem;display:flex}.song-viewer{overflow:hidden}:-webkit-any(.song-viewer-fs-target:fullscreen,.song-viewer-fs-target:-webkit-full-screen,.song-viewer-fs-target.song-viewer-fs-visual){width:100%;min-height:100dvh;padding:max(1rem, env(safe-area-inset-top,0px)) max(1rem, env(safe-area-inset-right,0px)) max(2.5rem, env(safe-area-inset-bottom,0px)) max(1rem, env(safe-area-inset-left,0px));background:radial-gradient(circle at top right, #38bdf81f, transparent 32%), var(--surface);overflow:auto}:is(.song-viewer-fs-target:fullscreen,.song-viewer-fs-target:fullscreen,.song-viewer-fs-target.song-viewer-fs-visual){width:100%;min-height:100dvh;padding:max(1rem, env(safe-area-inset-top,0px)) max(1rem, env(safe-area-inset-right,0px)) max(2.5rem, env(safe-area-inset-bottom,0px)) max(1rem, env(safe-area-inset-left,0px));background:radial-gradient(circle at top right, #38bdf81f, transparent 32%), var(--surface);overflow:auto}.song-viewer-fs-target.song-viewer-fs-visual{z-index:2000;position:fixed;inset:0}.song-viewer-header{gap:1rem}.song-viewer-heading{flex-direction:column;gap:.55rem;display:flex}.viewer-back-link{align-self:flex-start}.title-row{align-items:center}.title-row h1,.song-sub,.song-meta-line{margin:0}.viewer-stats{flex-wrap:wrap;gap:.5rem;margin-top:.2rem;display:flex}.favorite-btn{min-width:2.8rem;padding-inline:.85rem}.favorite-btn.is-fav{color:#fbbf24;border-color:color-mix(in srgb, #f59e0b 40%, var(--border));background:color-mix(in srgb, #f59e0b 14%, var(--btn-bg))}.header-actions{align-items:flex-start}.viewer-toolbar{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:var(--surface-elevated);border-radius:1.15rem;flex-direction:column;gap:.95rem;margin:1rem 0;padding:1rem;display:flex}.viewer-section-nav{scrollbar-width:none;gap:.55rem;padding-bottom:.2rem;display:flex;overflow-x:auto}.viewer-section-nav::-webkit-scrollbar{display:none}.section-chip{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);min-height:2.35rem;color:var(--muted);font:inherit;cursor:pointer;background:#ffffff08;border-radius:999px;flex:none;padding:.55rem .85rem;font-size:.82rem;font-weight:600}.section-chip.active{color:#04111f;background:linear-gradient(135deg, var(--accent), var(--accent-strong));border-color:#0000}.viewer-toolbar-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.key-pill{background:color-mix(in srgb, var(--accent-soft) 70%, var(--surface-elevated));color:var(--muted-strong);border-radius:999px;align-items:center;padding:.45rem .7rem;font-size:.88rem;font-weight:700;display:inline-flex}.viewer-step-btns,.scroll-inline{align-items:center;gap:.5rem;display:flex}.viewer-toolbar-grid{gap:.85rem;display:grid}.mini-field{color:var(--muted);font-size:.8rem}.capo-hint-compact{color:var(--muted);margin:0;font-size:.82rem}.speed-adjust{min-width:2.5rem;padding-inline:.75rem}.speed-readout{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);min-width:3rem;min-height:2.5rem;color:var(--muted-strong);background:#ffffff0a;border-radius:.9rem;justify-content:center;align-items:center;padding:.4rem .65rem;font-size:.84rem;font-weight:700;display:inline-flex}.viewer-body{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:linear-gradient(180deg, #ffffff05, transparent 36%), var(--surface-elevated);border-radius:1.15rem;padding:1rem;overflow:hidden}.viewer-body-stickies{overflow:visible}.chart-warn-below{color:var(--muted);margin:.75rem 0 0;font-size:.82rem}.chord-lyrics{white-space:pre-wrap;font-family:var(--font-mono);font-size:.96rem;line-height:1.8}.chord-line-wrap{margin:0 0 .55rem;scroll-margin-top:9rem;position:relative}.chord-line-wrap:has(.line-sticky){margin-bottom:3rem}.chord-line-wrap .chord-line,.chord-line{margin:0}.chord-line-wrap-section{border-radius:.9rem;padding:.15rem .1rem}.chord-line-wrap-active{background:linear-gradient(90deg, color-mix(in srgb, var(--accent-soft) 72%, transparent), transparent 82%)}.chord-line-wrap-sticky-mode{outline:1px dashed color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:4px;cursor:crosshair}.chord-line-stacked{flex-wrap:wrap;display:inline-flex}.chord-stack-chunk{flex-direction:column;align-items:flex-start;display:inline-flex}.chord-stack-chord-row{min-height:1.15em;font-size:.88em;line-height:1.15}.chord-stack-chord-empty{visibility:hidden}.chord-stack-lyric-row{line-height:1.45}.chord-stack-section{width:100%;margin:.5rem 0 .22rem}.chord-stack-section:first-child{margin-top:0}.chord-token{color:var(--chord);font-weight:700}.section-token{color:var(--section);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.meta-token{color:var(--muted);font-weight:600}.line-sticky{z-index:3;color:#0f172a;border:1px solid #0f172a24;border-radius:.95rem;width:min(15rem,100% - 1rem);min-width:min(8rem,100% - 1rem);padding:.45rem .5rem .55rem;position:absolute;box-shadow:0 16px 34px #0f172a2e}.line-sticky-toolbar{justify-content:space-between;align-items:center;gap:.35rem;margin-bottom:.15rem;display:flex}.line-sticky-drag,.line-sticky-remove{color:inherit;cursor:pointer;background:#0f172a14;border:none}.line-sticky-drag{border-radius:.55rem;padding:.2rem .42rem;font-size:.72rem}.line-sticky-remove{border-radius:999px;width:1.8rem;height:1.8rem;font-size:1rem}.line-sticky-text{width:100%;min-height:3.75rem;color:inherit;font-family:var(--font-sans);resize:vertical;background:0 0;border:none;font-size:.82rem;line-height:1.4}.line-sticky-text:focus{outline:none}.scroll-stop-fab{left:50%;bottom:calc(5.25rem + env(safe-area-inset-bottom,0px));z-index:70;background:color-mix(in srgb, var(--surface) 90%, transparent);border:1px solid color-mix(in srgb, var(--border) 92%, transparent);box-shadow:var(--shadow-lg);border-radius:1rem;flex-direction:column;align-items:center;gap:.35rem;padding:.55rem .7rem;display:flex;position:fixed;transform:translate(-50%)}.scroll-stop-btn{min-width:9.5rem}.scroll-stop-hint{color:var(--muted);font-size:.72rem}.inline-editor{--chart-editor-font-size:.94rem;--chart-editor-line-height:1.55;--chart-editor-padding:.95rem;--chart-editor-height:clamp(32rem, calc(100dvh - 14rem), 52rem);flex-direction:column;gap:.95rem;min-height:0;display:flex}.inline-editor-hint{margin:0;font-size:.82rem;line-height:1.45}.inline-editor-toolbar,.inline-editor-fields{margin:0}.inline-editor-primary-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.inline-editor-primary-actions .btn.primary{order:-2}.inline-editor-primary-actions .btn.secondary:not(.small){order:-1}.editor-secondary-tools{padding-top:.35rem}.editor-secondary-body{flex-direction:column;gap:.85rem;display:flex}.editor-tool-row{flex-wrap:wrap;gap:.55rem;display:flex}.inline-editor-fields .field.grow{flex:1;min-width:min(100%,15rem)}.inline-editor-split{height:var(--chart-editor-height);gap:1rem;min-height:0;display:flex}.inline-editor-pane{flex-direction:column;flex:1 1 0;gap:.5rem;min-width:0;min-height:0;display:flex}.chart-textarea,.inline-editor-preview{box-sizing:border-box;width:100%;height:100%;min-height:0;max-height:100%;padding:var(--chart-editor-padding);border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:var(--surface);font-family:var(--font-mono);font-size:var(--chart-editor-font-size);line-height:var(--chart-editor-line-height);border-radius:1rem;flex:auto}.chart-textarea{color:var(--text);white-space:pre;resize:none;tab-size:2;overflow:auto}.inline-editor-preview{overscroll-behavior:contain;overflow:auto}.inline-editor-preview .chord-lyrics{font:inherit;line-height:inherit;white-space:pre}.inline-editor-preview .chord-line-wrap{margin-bottom:0}.inline-editor-preview .chord-line-stacked{flex-wrap:nowrap}.inline-editor-split-diff{align-items:stretch}.editor-view-toggle{align-items:center;margin:0}.chart-diff-view{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:var(--surface);border-radius:1rem;flex-direction:column;gap:.45rem;display:flex;overflow:hidden}.chart-diff-view-embedded .chart-diff-rows{max-height:18rem}.chart-diff-view-ai .chart-diff-rows{max-height:min(22rem,55vh)}.chart-diff-head{background:color-mix(in srgb, var(--surface-elevated) 75%, var(--card));border-bottom:1px solid color-mix(in srgb, var(--border) 90%, transparent);grid-template-columns:1fr 1fr;gap:.5rem;padding:.55rem .85rem;display:grid}.chart-diff-rows{font-family:var(--font-mono);font-size:.88rem;line-height:1.5;overflow:auto}.chart-diff-row{border-bottom:1px solid color-mix(in srgb, var(--border) 55%, transparent);grid-template-columns:1fr 1fr;gap:0;display:grid}.chart-diff-row:last-child{border-bottom:none}.chart-diff-cell{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;min-height:1.5em;margin:0;padding:.28rem .75rem}.chart-diff-row-equal .chart-diff-cell{background:0 0}.chart-diff-row-add .chart-diff-cell:first-child{background:color-mix(in srgb, var(--surface) 96%, transparent)}.chart-diff-row-add .chart-diff-cell:last-child{background:color-mix(in srgb, #22c55e 14%, var(--surface))}.chart-diff-row-remove .chart-diff-cell:first-child{background:color-mix(in srgb, #ef4444 16%, var(--surface))}.chart-diff-row-remove .chart-diff-cell:last-child{background:color-mix(in srgb, var(--surface) 96%, transparent)}.chart-diff-row-change .chart-diff-cell:first-child{background:color-mix(in srgb, #ef4444 12%, var(--surface))}.chart-diff-row-change .chart-diff-cell:last-child{background:color-mix(in srgb, #eab308 14%, var(--surface))}@media (width<=56rem){.inline-editor-split-diff{grid-template-columns:1fr}.chart-diff-head,.chart-diff-row{grid-template-columns:1fr 1fr}.chart-diff-rows{-webkit-overflow-scrolling:touch}}@media (width<=36rem){.chart-diff-head,.chart-diff-row{grid-template-columns:minmax(8rem,1fr) minmax(8rem,1fr)}}.preview-pane .chord-lyrics{font-size:.92rem;line-height:1.55}.ai-compare-panel{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:color-mix(in srgb, var(--surface-elevated) 88%, var(--card));border-radius:1rem;margin-top:1rem;padding:.95rem}.ai-compare-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.8rem;display:flex}.ai-compare-head h3{margin:.15rem 0 0;font-size:1rem}.ai-compare-lead{max-width:42rem;margin:.35rem 0 0;font-size:.84rem}.tiny-tools-hint{margin:.5rem 0 0;font-size:.8rem}.ai-compare-grid{gap:.8rem;display:grid}.ai-compare-card{flex-direction:column;gap:.45rem;display:flex}.ai-compare-preview{border:1px solid color-mix(in srgb, var(--border) 88%, transparent);background:color-mix(in srgb, var(--surface) 94%, var(--card));border-radius:.9rem;max-height:16rem;padding:.85rem;overflow:auto}.login-page{min-height:100dvh;padding:max(1.25rem, env(safe-area-inset-top,0px)) 1rem max(2rem, env(safe-area-inset-bottom,0px));flex-direction:column;justify-content:center;display:flex}.login-shell{gap:1rem;width:min(100%,68rem);margin:0 auto;display:grid}.login-hero,.login-card{border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg)}.login-hero{background:radial-gradient(circle at 100% 0,#38bdf833,#0000 36%),linear-gradient(#080e1bf0,#080e1bd1);padding:1.35rem}html[data-theme=light] .login-hero{background:radial-gradient(circle at 100% 0,#3b82f624,#0000 36%),linear-gradient(#fffffff0,#f6f9ffeb)}.login-brand,.login-card-title{letter-spacing:-.05em;margin:.15rem 0 0}.login-brand{font-size:clamp(2rem,7vw,3.7rem)}.login-sub,.login-card-copy{color:var(--muted);margin:0}.login-feature-list{flex-wrap:wrap;gap:.55rem;margin-top:1.2rem;display:flex}.login-feature-pill{color:var(--text);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:999px;align-items:center;padding:.6rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex}.login-card{background:var(--card);padding:1.35rem}.login-avatar{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#04111f;letter-spacing:.08em;border-radius:1rem;justify-content:center;align-items:center;width:3.6rem;height:3.6rem;margin-bottom:1rem;font-weight:800;display:inline-flex}.login-form{flex-direction:column;gap:.9rem;margin-top:1rem;display:flex}.login-submit{width:100%}.login-footer{text-align:center;margin-top:1.2rem}.login-footer p{color:var(--muted);margin:0;font-size:.8rem}.auth-loading-screen{justify-content:center;align-items:center;min-height:50vh;display:flex}.toast-stack{left:50%;bottom:calc(5.2rem + env(safe-area-inset-bottom,0px));z-index:10020;pointer-events:none;flex-direction:column;gap:.55rem;width:min(100vw - 1.5rem,24rem);display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;border:1px solid color-mix(in srgb, var(--border) 80%, transparent);background:color-mix(in srgb, var(--card) 94%, var(--surface));box-shadow:var(--shadow-lg);border-radius:1rem;grid-template-columns:auto 1fr auto;align-items:start;gap:.7rem;padding:.9rem;animation:.22s both toast-in;display:grid}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-error{border-color:color-mix(in srgb, var(--danger) 42%, var(--border))}.toast-success{border-color:color-mix(in srgb, #22c55e 42%, var(--border))}.toast-info{border-color:color-mix(in srgb, var(--accent) 36%, var(--border))}.toast-icon{color:var(--accent);display:inline-flex}.toast-icon-error{color:var(--danger)}.toast-icon-success{color:#22c55e}.toast-message{margin:0;font-size:.9rem;line-height:1.45}.toast-close{width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;font-size:1.2rem}.toast-close:hover{color:var(--text);background:#ffffff0d}.confirm-dialog-backdrop{z-index:10015;-webkit-backdrop-filter:blur(7px);background:#0206178a;justify-content:center;align-items:flex-end;padding:1rem;display:flex;position:fixed;inset:0}.confirm-dialog{border-radius:var(--radius-xl);background:var(--card);border:1px solid var(--border);width:min(100%,24rem);box-shadow:var(--shadow-lg);padding:1.25rem}.confirm-dialog-title{margin:0 0 .4rem;font-size:1.2rem}.confirm-dialog-message{color:var(--muted);margin:0 0 1rem;line-height:1.5}.confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.confirm-dialog-btn{min-width:8.5rem}.panel-compact-error{flex-direction:column;align-items:flex-start;gap:.9rem;display:flex}.mobile-nav{z-index:50;padding:.75rem .85rem calc(.75rem + env(safe-area-inset-bottom,0px));border-top:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:linear-gradient(180deg, #090d16d1, #090d16f5), var(--surface-elevated);-webkit-backdrop-filter:blur(16px);grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid;position:fixed;bottom:0;left:0;right:0}html[data-theme=light] .mobile-nav{background:linear-gradient(180deg, #f7f9ffd1, #f7f9fff5), var(--surface-elevated)}.mobile-nav-link{min-height:3.35rem;color:var(--muted);border:1px solid #0000;border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.mobile-nav-link.active{color:var(--text);background:color-mix(in srgb, var(--accent-soft) 70%, transparent);border-color:color-mix(in srgb, var(--accent) 28%, transparent)}.nav-icon{justify-content:center;align-items:center;width:1.2rem;height:1.2rem;display:inline-flex}.nav-icon svg{width:100%;height:100%}@media (width>=700px){.main{padding-inline:1.4rem}.filters-bar,.form-grid-meta,.viewer-toolbar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-hero{grid-template-columns:1.8fr 1fr;align-items:end}.inline-editor-split{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.login-shell{grid-template-columns:minmax(0,1.2fr) minmax(22rem,.88fr);align-items:stretch}.confirm-dialog-backdrop{align-items:center}}@media (width>=960px){.topbar-context{display:flex}.app-topbar{padding-inline:1.5rem}.app-sidebar{flex-direction:column;gap:1rem;width:18rem;padding:1.25rem 0 1.5rem 1.25rem;display:flex}.sidebar-card{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:var(--surface-elevated);box-shadow:var(--shadow);border-radius:1.25rem;padding:1rem}.sidebar-card-hero h2{margin:.15rem 0 .45rem;font-size:1.4rem}.sidebar-card-hero p,.sidebar-card-user p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.5}.sidebar-nav{flex-direction:column;gap:.65rem;display:flex}.sidebar-link{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:var(--surface-elevated);color:var(--muted);border-radius:1rem;align-items:center;gap:.85rem;padding:.9rem 1rem;text-decoration:none;display:flex}.sidebar-link.active{color:var(--text);border-color:color-mix(in srgb, var(--accent) 34%, var(--border));background:color-mix(in srgb, var(--accent-soft) 62%, var(--surface-elevated))}.sidebar-link-copy{flex-direction:column;gap:.15rem;display:flex}.sidebar-link-copy span{font-weight:700}.sidebar-link-copy small{color:var(--muted);font-size:.8rem}.sidebar-card-user{align-items:center;gap:.8rem;margin-top:auto;display:flex}.sidebar-avatar{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#04111f;border-radius:.95rem;justify-content:center;align-items:center;width:2.8rem;height:2.8rem;font-weight:800;display:inline-flex}.main{padding:1.25rem 1.5rem 1.75rem}.page-stack{max-width:96rem}.song-list{grid-template-columns:repeat(2,minmax(0,1fr))}.viewer-toolbar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.song-viewer-header{flex-direction:row;justify-content:space-between;align-items:flex-start}.header-actions{justify-content:flex-end}.chord-lyrics{font-size:1rem;line-height:1.72}.mobile-nav{display:none}.toast-stack{bottom:1.25rem}.scroll-stop-fab{bottom:1.5rem}}@media (width>=1200px){.song-list{grid-template-columns:repeat(3,minmax(0,1fr))}.main{padding-right:2rem}}@media (width<=959px){.theme-label,.logout-button,.topbar-context{display:none}.app-topbar-actions{gap:.5rem}.topbar-add{display:none}}@media (hover:hover){.btn:hover:not(:disabled){box-shadow:0 14px 28px #0f172a29}}.app-topbar{gap:.75rem;padding:.7rem .9rem}.top-nav{align-items:center;gap:.45rem;display:none}.top-nav-link{min-height:2.4rem;color:var(--muted);border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .7rem;font-size:.84rem;font-weight:600;text-decoration:none;display:inline-flex}.top-nav-link.active{color:var(--text);background:color-mix(in srgb, var(--accent-soft) 70%, transparent)}.main{width:100%;max-width:76rem;margin:0 auto;padding-top:.75rem}.compact-page-header{padding:.85rem .95rem}.compact-page-heading,.compact-results-header{flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.library-results .compact-results-header{justify-content:flex-start}.compact-page-header-actions{align-items:center;gap:.75rem;display:flex}.compact-page-heading h1,.compact-results-header h2{margin-top:0}.compact-page-meta{color:var(--muted);white-space:nowrap;align-items:center;gap:.5rem;font-size:.8rem;display:inline-flex}.compact-page-meta span{align-items:center;gap:.35rem;display:inline-flex}.compact-page-meta span+span:before{content:"•";color:var(--muted)}.compact-details{border-top:1px solid color-mix(in srgb, var(--border) 85%, transparent);padding-top:.8rem}.compact-details[open]{padding-bottom:.1rem}.compact-details summary{cursor:pointer;color:var(--muted-strong);justify-content:space-between;align-items:center;font-size:.88rem;font-weight:600;list-style:none;display:flex}.compact-details summary::-webkit-details-marker{display:none}.compact-details summary:after{content:"+";color:var(--muted);font-size:1rem}.compact-details[open] summary:after{content:"−"}.compact-details-body{padding-top:.8rem}.filter-details .compact-details-body,.library-results{padding-top:.9rem}.song-list{grid-template-columns:1fr;gap:.7rem}.song-card{box-shadow:none;border-radius:1rem}.song-card-main{gap:.65rem;padding:.9rem 3.7rem .9rem 1rem}.song-card-preview{font-size:.85rem}.song-viewer{padding:.7rem}.compact-song-header{gap:.7rem;margin-bottom:.55rem}.compact-song-header .title-row{gap:.35rem}.compact-song-header h1{font-size:clamp(1.25rem,4vw,1.7rem)}.compact-header-actions .btn{min-height:2.35rem;padding:.55rem .75rem;font-size:.82rem}.viewer-section-strip{top:calc(env(safe-area-inset-top,0px) + 3.9rem);z-index:12;background:linear-gradient(180deg, var(--card), color-mix(in srgb, var(--card) 88%, transparent));margin:0 -.05rem .45rem;padding:.15rem 0;position:sticky}.viewer-section-nav{gap:.4rem;padding-bottom:0}.section-chip{min-height:2rem;padding:.42rem .7rem;font-size:.78rem}.chord-stage{border-radius:.95rem;padding:.75rem .85rem}.song-reading-layout{gap:.8rem;display:grid}.song-reading-main{min-width:0}.viewer-side-actions{align-content:start;gap:.65rem;display:grid}.side-action-panel{border:1px solid color-mix(in srgb, var(--border) 90%, transparent);background:var(--surface-elevated);border-radius:.95rem;flex-direction:column;gap:.55rem;padding:.85rem;display:flex}.side-action-button{width:100%}.side-scroll-inline{justify-content:space-between}.is-active-side-action{color:#04111f;background:linear-gradient(135deg, var(--accent), var(--accent-strong));border-color:#0000}.chord-lyrics{font-size:1.02rem;line-height:1.72}.chord-token{font-weight:800}.section-token,.chord-stack-section{margin-top:.95rem;margin-bottom:.35rem;display:block}.chord-line-wrap{margin-bottom:.35rem}.chord-line-wrap-section{padding-top:.35rem}.fold-stack{flex-direction:column;gap:.1rem;margin-top:.55rem;display:flex}.fold-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.viewer-toolbar-grid-compact{grid-template-columns:1fr;gap:.75rem}.viewer-stats-compact{margin-top:0}.login-page{padding:max(1rem, env(safe-area-inset-top,0px)) 1rem max(1.5rem, env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 50% 20%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 28%), var(--surface);align-items:center}.login-minimal{border:1px solid color-mix(in srgb, var(--border) 92%, transparent);background:color-mix(in srgb, var(--card) 96%, var(--surface));width:min(100%,23rem);box-shadow:var(--shadow);border-radius:1.2rem;flex-direction:column;align-items:stretch;gap:1rem;padding:1.35rem;display:flex}.login-minimal .login-avatar{border-radius:.9rem;width:3.1rem;height:3.1rem;margin:0 auto}.login-minimal .login-brand{text-align:center;margin:0;font-size:clamp(1.8rem,7vw,2.4rem)}.login-form-minimal{gap:.85rem}.login-form-minimal .field span{color:var(--muted);font-size:.82rem}.login-form-minimal .field input{min-height:3.1rem;font-size:1rem}.login-submit{min-height:3.1rem;margin-top:.2rem}.login-footer,.login-shell,.login-hero,.login-card-copy,.login-card-title{display:none}@media (width>=960px){.top-nav{display:inline-flex}.main{max-width:92rem;padding-top:1rem;padding-bottom:1.5rem}.song-list{grid-template-columns:repeat(2,minmax(0,1fr))}.song-reading-layout{grid-template-columns:minmax(0,1fr) 15rem;align-items:start}.viewer-side-actions{top:calc(env(safe-area-inset-top,0px) + 7.2rem);position:sticky}.inline-editor-split{flex-direction:row}.ai-compare-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav{display:none}}@media (width<=959px){.top-nav{display:none}.main{padding-bottom:calc(5.8rem + env(safe-area-inset-bottom,0px))}.compact-page-header-actions{justify-content:space-between;width:100%}.song-reading-layout{grid-template-columns:1fr}.viewer-side-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.viewer-side-actions .side-action-panel:last-child:nth-child(odd){grid-column:1/-1}.inline-editor{--chart-editor-height:clamp(38rem, calc(100dvh - 12rem), 58rem)}.inline-editor-split{flex-direction:column}}
