:root{color-scheme:dark;--bg:#111216;--surface:#1b1d22;--text:#f5f5f7;--muted:#a5a8b1;--gold:#d6b987;--line:#ffffff13;--read-size:21px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 84% 0,#d6b98708,transparent 45%),var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}button,a{-webkit-tap-highlight-color:transparent}
.topbar{border-bottom:1px solid var(--line);background:#17191df5}.top-inner{width:min(1180px,calc(100% - 48px));min-height:70px;margin:auto;display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:12px;font-weight:700;letter-spacing:.14em}.brand-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#e1c89f,#94744c);color:#1e1911;font-size:11px;letter-spacing:0;box-shadow:0 4px 12px #0003}.preview-chip{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:4px 8px;letter-spacing:0;font-weight:400}.tabs{display:flex;gap:4px;margin-left:auto;padding:4px;background:#ffffff04;border:1px solid var(--line);border-radius:12px}.tab{border:0;background:transparent;color:var(--muted);padding:8px 14px;border-radius:8px;font-size:12px}.tab[aria-selected=true]{background:#ffffff0c;color:var(--text);box-shadow:0 1px 3px #0002}.language{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#ffffff04;font-size:11px;color:var(--gold)}
.page{width:min(1180px,calc(100% - 48px));margin:auto;padding:32px 0 26px}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:650;margin:0 0 8px}h1{font-size:clamp(30px,4vw,43px);line-height:1.1;letter-spacing:-.045em;font-weight:650;margin:0 0 9px}.subtitle{color:var(--muted);font-size:13px;line-height:1.65;margin:0;max-width:570px}.rule-pill{border:1px solid #d6b98726;background:#d6b98707;border-radius:12px;padding:10px 13px;display:flex;align-items:center;gap:10px;flex-shrink:0}.rule-pill strong{font-size:24px;font-weight:600;color:var(--gold);line-height:1}.rule-pill span{font-size:10px;line-height:1.5;color:var(--muted);max-width:116px}
.workspace{display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;align-items:start}.library{background:#1b1d2280;border:1px solid var(--line);border-radius:18px;padding:17px 11px}.library-head{display:flex;align-items:center;justify-content:space-between;margin:0 6px 14px}.library-head h2{font-size:13px;font-weight:600;margin:0}.count{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.search{display:flex;align-items:center;gap:9px;margin:0 6px 12px;border:1px solid var(--line);border-radius:10px;background:#0002;padding:10px}.search svg{width:14px;flex:0 0 14px;color:var(--muted)}.search input{border:0;outline:none;min-width:0;width:100%;background:none;color:var(--text);font-size:11px}.search:focus-within{border-color:#d6b98766}.search input::placeholder{color:#9296a1}.track{display:flex;width:100%;align-items:center;gap:11px;text-align:left;padding:11px 10px;border:1px solid transparent;border-radius:11px;background:transparent;min-width:0}.track:hover{background:#ffffff04}.track[aria-pressed=true]{border-color:#d6b98733;background:#d6b9870a}.track-copy{min-width:0;flex:1}.track-title{font-size:12px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-artist{font-size:10px;color:var(--muted);display:block;margin-top:4px}.track-chevron{font-size:17px;color:var(--gold);opacity:0}.track[aria-pressed=true] .track-chevron{opacity:1}.empty{color:var(--muted);font-size:12px;text-align:center;padding:25px 12px;line-height:1.6}.library-note{font-size:10px;line-height:1.6;color:#8c909b;margin:15px 9px 2px}
.art{position:relative;overflow:hidden;flex:0 0 auto;border-radius:8px;width:42px;aspect-ratio:1;background:var(--art,linear-gradient(145deg,#9b6e43,#24293d));display:grid;place-items:center;isolation:isolate}.art:before{content:"";position:absolute;width:65%;aspect-ratio:1;left:-15%;top:17%;border:1px solid #ffffff35;border-radius:50%;box-shadow:0 0 0 8px #ffffff07,0 0 0 16px #ffffff05;transform:rotate(-20deg)}.art:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent,#08090d44)}.art span{position:relative;z-index:1;font-size:9px;letter-spacing:.14em;font-weight:700}.reader{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(150deg,#22242a,#17191e);border:1px solid var(--line);border-radius:20px;box-shadow:inset 0 1px #ffffff05,0 14px 36px #0002}.reader:before{content:"";position:absolute;z-index:-1;width:400px;height:330px;top:-160px;right:-60px;background:radial-gradient(ellipse,var(--glow,#ad845926),transparent 70%);pointer-events:none}.reader-head{display:flex;align-items:center;gap:17px;padding:25px 28px 22px;border-bottom:1px solid var(--line)}.reader-head .art{width:76px;border-radius:13px}.reader-head .art span{font-size:14px}.song-meta{min-width:0}.song-meta h2{font-size:clamp(19px,2.6vw,26px);letter-spacing:-.03em;font-weight:600;margin:0 0 6px;line-height:1.18;overflow-wrap:anywhere}.song-meta p{font-size:12px;color:var(--muted);margin:0 0 8px}.song-extra{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#9196a0;font-size:10px}.badge{padding:4px 8px;background:#d6b9870b;border:1px solid #d6b98728;color:var(--gold);border-radius:20px;font-size:9px;white-space:nowrap}.badge.complete{color:#a7c5b0;background:#a7c5b00a;border-color:#a7c5b022}.read-tools{margin-left:auto;display:flex;align-items:center;gap:3px;align-self:flex-start;flex:0 0 auto;border-radius:9px;background:#ffffff04;padding:3px}.read-tools button{border:0;background:none;border-radius:6px;font-size:11px;width:28px;height:27px;color:var(--muted)}.read-tools button:hover{background:#ffffff09;color:var(--text)}.lyrics-body{padding:26px 29px 34px;min-height:290px}.lyrics-body .section-label{font-size:10px;color:#8b909c;text-transform:uppercase;letter-spacing:.12em;margin:0 0 12px}.verse{font-size:var(--read-size);line-height:1.9;letter-spacing:-.018em;margin:0 0 20px;white-space:pre-wrap;overflow-wrap:anywhere;font-weight:450}.verse.chorus{color:#e6cfab}.reader-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 28px;border-top:1px solid var(--line);color:#8c929d;font-size:10px}.reader-bottom button{border:0;background:none;font-size:10px;color:var(--gold);padding:0}.reader-note{font-size:11px;line-height:1.7;color:var(--muted);background:#ffffff03;border-radius:10px;padding:12px 14px;margin-top:6px}
.editor-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:20px;align-items:start}.editor-card,.editor-preview{border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#22242a,#191b20);padding:25px}.editor-card h2,.editor-preview h2{margin:0 0 8px;font-size:20px;letter-spacing:-.025em;font-weight:600}.editor-info{font-size:12px;color:var(--muted);line-height:1.7;margin:0 0 20px}.demo-meta{display:flex;align-items:center;gap:11px;margin-bottom:20px;padding-bottom:17px;border-bottom:1px solid var(--line)}.demo-meta strong{display:block;font-size:12px}.demo-meta p{margin:4px 0 0;color:var(--muted);font-size:10px}.field-label{display:flex;justify-content:space-between;gap:10px;font-weight:600;font-size:12px;margin-bottom:9px}.field-label span{font-size:10px;color:var(--gold);font-weight:400}.editor-card textarea{width:100%;min-height:200px;padding:15px;border-radius:12px;border:1px solid var(--line);background:#0002;color:var(--text);line-height:1.8;font-size:15px;resize:vertical}.validation{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:10px;font-size:10px;line-height:1.6;color:var(--muted)}.validation .valid{color:#a7c5b0}.validation .invalid{color:#d4b294}.kind-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:23px 0}.kind-row>span{font-size:11px;color:var(--muted)}.kind-switch{display:flex;gap:3px;background:#0002;border:1px solid var(--line);padding:3px;border-radius:10px}.kind-switch button{font-size:11px;border:0;border-radius:7px;background:none;color:var(--muted);padding:8px 11px}.kind-switch button[aria-pressed=true]{background:#ffffff0d;color:var(--text)}.submit{width:100%;border:1px solid #dfc39b88;background:linear-gradient(180deg,#e2cda9,#d6b987);color:#211b13;padding:11px 17px;border-radius:11px;font-size:12px;font-weight:600;box-shadow:inset 0 1px #ffffff44,0 4px 8px #0002}.simulation-note{font-size:10px;line-height:1.6;text-align:center;color:#979ca7;margin:12px 0 0}.preview-eyebrow{font-size:9px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:0 0 19px}.editor-preview .badge{display:inline-block;margin:0 0 24px}.editor-preview .verse{font-size:19px;min-height:80px;line-height:1.8}.example-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.example-actions button{font-size:10px;padding:8px 10px;border:1px solid var(--line);background:#ffffff03;border-radius:8px;color:var(--muted)}.example-actions button:hover{color:var(--gold);border-color:#d6b98744}.editor-preview .help{color:var(--muted);font-size:11px;line-height:1.7;margin:20px 0 0}.toast{padding:12px 16px;border-radius:12px;background:#23352ce8;border:1px solid #a7c5b033;color:#cce0d2;font-size:12px;line-height:1.5;margin-bottom:18px}.footer{width:min(1180px,calc(100% - 48px));margin:auto;border-top:1px solid var(--line);padding:18px 0 25px;display:flex;justify-content:space-between;gap:15px;color:#777e8b;font-size:10px;line-height:1.6}.footer span:last-child{color:#a99577}
@media(max-width:800px){.top-inner,.page,.footer{width:calc(100% - 32px)}.top-inner{gap:12px;flex-wrap:wrap;padding:14px 0}.preview-chip{display:none}.brand{margin-right:auto}.tabs{order:3;width:100%;justify-content:center;margin:0}.tab{flex:1}.page{padding-top:26px}.intro{align-items:center}.rule-pill{padding:9px;gap:7px}.rule-pill strong{font-size:21px}.rule-pill span{max-width:85px;font-size:9px}.workspace{grid-template-columns:230px minmax(0,1fr);gap:12px}.reader-head{padding:20px;flex-wrap:wrap;gap:12px}.reader-head .art{width:56px}.read-tools{margin-left:auto}.lyrics-body{padding:24px 20px;min-height:250px}.verse{font-size:calc(var(--read-size) - 2px)}.reader-bottom{padding:14px 20px}.editor-grid{grid-template-columns:1fr}.editor-card,.editor-preview{padding:21px}.footer{flex-wrap:wrap}}
@media(max-width:580px){.workspace{grid-template-columns:1fr}.library{padding:13px 9px}.library-head{margin-bottom:10px}.library-note{display:none}.search{margin-bottom:9px}.tracks{display:flex;gap:5px;overflow:auto;padding-bottom:3px;scrollbar-width:thin}.track{flex:0 0 175px;width:175px;padding:9px;gap:8px}.track .art{width:34px}.track-title{font-size:11px}.track-artist{font-size:9px}.track-chevron{display:none}.intro{align-items:flex-start;gap:12px}.subtitle{font-size:12px;max-width:270px}.rule-pill{margin-top:5px}.reader-head{gap:12px}.song-meta{flex:1;min-width:100px}.read-tools{order:3;margin:0 0 0 auto;align-self:center}.reader-head .art{width:52px;border-radius:10px}.song-meta h2{font-size:20px}.lyrics-body{min-height:240px}.editor-info{font-size:11px}.kind-row{flex-direction:column;align-items:flex-start;gap:8px}.kind-switch{width:100%}.kind-switch button{flex:1}.validation{align-items:flex-start}.footer{font-size:9px}}
@media(prefers-reduced-motion:no-preference){.track,.tab,.kind-switch button{transition:background .15s,border-color .15s}}
/* Integration: actual artwork, page navigation and manager editing. */
.brand img{width:32px;height:32px;object-fit:cover;border-radius:50%;background:#fff}.brand{text-decoration:none;color:var(--text)}
.back-link{margin-left:auto;padding:8px 11px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--muted);font-size:11px;white-space:nowrap}.back-link:hover{color:var(--gold);border-color:#d6b98766}.top-inner .language{margin-left:0;flex-shrink:0}
.art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:3}.song-meta a{color:inherit;text-decoration:none}.song-meta a:hover{color:var(--gold)}.song-extra [hidden]{display:none}.page-tabs{display:flex;margin:0 0 20px;width:max-content;max-width:100%}.page-tabs .tab{padding:8px 18px}
.editor-grid{margin-top:22px}.editor-card .field-label span{font-size:12px;color:var(--text);font-weight:600}.editor-card .field-label .field-minimum{font-size:10px;color:var(--gold);font-weight:400}.editor-card textarea{font-size:15px}.editor-track-title{overflow-wrap:anywhere}.lyrics-body .verse{margin-bottom:0}.reader-empty{display:grid;place-items:center;min-height:270px;padding:26px;text-align:center;gap:12px;color:var(--muted);font-size:12px;line-height:1.8}.reader-empty p{margin:0;max-width:430px}.reader-empty button{color:var(--gold);background:#d6b98708;border:1px solid #d6b98733;border-radius:10px;padding:9px 13px;font-size:11px}.editor-preview .verse{min-height:120px}.error-banner{border-color:#d8867633;background:#41251d77;color:#e2b7aa}.track-artist .words-dot{display:inline-block;width:4px;height:4px;margin-right:5px;background:#c7b080;border-radius:50%;vertical-align:middle}.reader-bottom span{line-height:1.6}.tabs[hidden],.page-tabs[hidden]{display:none!important}
@media(max-width:800px){.top-inner{flex-wrap:nowrap;gap:10px;min-height:64px}.brand{margin:0}.top-inner .back-link{margin-left:auto}.top-inner .language{width:36px;height:34px;padding:0;font-size:10px}.page-tabs{order:initial;width:max-content;justify-content:initial}.page-tabs .tab{flex:initial}.reader-head .art{height:56px}}
@media(max-width:580px){.brand{font-size:10px;gap:8px}.brand img{width:28px;height:28px}.back-link{font-size:10px;padding:7px 9px}.top-inner{gap:8px}.reader-head .art{height:52px}.read-tools{margin-left:auto;order:initial}.footer{justify-content:center;text-align:center}.page-tabs{width:100%}.page-tabs .tab{flex:1}}

/* The page stays in the viewport. Each panel scrolls its own content. */
html{height:100%;overflow:hidden}
body[data-page="lyrics"]{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
body[data-page="lyrics"]>.topbar,body[data-page="lyrics"]>.footer{flex:0 0 auto}
body[data-page="lyrics"]>.page{display:flex;flex-direction:column;flex:1;min-height:0;margin:0 auto;padding-top:22px;padding-bottom:18px;overflow:hidden}
.page>.intro,.page>.page-tabs,.page>#pageStatus{flex-shrink:0}
.page>#readerView:not([hidden]),.page>#editorView:not([hidden]){display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.workspace{flex:1;min-height:0;height:100%;grid-template-rows:minmax(0,1fr);align-items:stretch}
.workspace>.library,.workspace>.reader{display:block;height:100%;min-height:0;overflow:auto;overscroll-behavior:contain}
.workspace .tracks{min-height:0;overflow:visible}
.workspace .lyrics-body{min-height:0;overflow:visible}
.workspace .reader-empty{min-height:0}
#editorView>.toast{flex-shrink:0}
#editorView>.editor-grid{flex:1;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch;margin-top:0}
.editor-grid>.editor-card,.editor-grid>.editor-preview{min-height:0;height:100%;overflow:auto;overscroll-behavior:contain}
body[data-page="lyrics"]>.footer{margin:0 auto;padding:10px 0}
@media(max-width:800px){#editorView>.editor-grid{grid-template-rows:repeat(2,minmax(0,1fr));gap:12px}}
@media(max-width:580px){
 body[data-page="lyrics"]>.page{padding-top:16px;padding-bottom:12px}
 .workspace{grid-template-rows:repeat(2,minmax(0,1fr))}
 .workspace .tracks{overflow-x:auto;overflow-y:hidden;align-items:flex-start}
 .intro{margin-bottom:16px}
 .page-tabs{margin-bottom:14px}
}
@media(max-height:520px){
 body[data-page="lyrics"]>.page{padding-top:10px;padding-bottom:10px}
 .intro{margin-bottom:10px;align-items:center}
 .intro .eyebrow,.intro .subtitle{display:none}
 .intro h1{margin:0;font-size:28px}
 .page-tabs{margin-bottom:10px}
 body[data-page="lyrics"]>.footer{padding:5px 0}
}
