:root{color-scheme:dark;--bg:#0d171d;--card:#1b2b32;--line:#354951;--ink:#f0e8d8;--muted:#b9c3c4;--gold:#e6ba70}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,sans-serif;margin:0}main{max-width:1050px;padding:28px 20px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:30px}header small{letter-spacing:.15em;color:var(--gold)}h1{font:2.5rem Georgia,serif;margin:.2em 0}h2{font:1.7rem Georgia,serif}nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}a{color:var(--gold)}nav a{padding:5px 7px}nav form{margin:0}.panel,aside{background:var(--card);border:1px solid var(--line);padding:24px;margin:20px 0}aside{border-color:var(--gold)}label{display:block;font-size:.9rem;margin:12px 0;font-weight:600}input,select,textarea{display:block;width:100%;padding:10px;color:var(--ink);background:#0d171d;border:1px solid #60727a;border-radius:3px;font:inherit;margin-top:5px}input:focus,select:focus,textarea:focus{outline:2px solid var(--gold)}label.inline{display:flex;gap:10px;align-items:center}input[type=checkbox]{width:18px;height:18px;margin:0}button{background:var(--gold);border:0;color:#1c2429;padding:11px 20px;font-weight:700;cursor:pointer}form{max-width:700px}.tiles{display:flex;gap:12px;flex-wrap:wrap}.tile{background:#0d171d;padding:20px;min-width:130px;text-decoration:none}.tile strong{display:block;font-size:2rem}.entry{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}.entry small{display:block;color:var(--muted)}p{max-width:740px}code{overflow-wrap:anywhere}footer{color:var(--muted);border-top:1px solid var(--line);padding:18px 0;font-size:.8rem;margin-top:35px}

.entry-actions{display:flex;align-items:center;gap:18px;flex-shrink:0}.delete-link{color:#ffad9f}.danger-button{background:#c45145;color:#fff}.danger-button:hover{background:#a73a31}.danger-button:focus-visible,.delete-link:focus-visible{outline:2px solid #ffad9f;outline-offset:3px}
.site-home,.import-link{display:inline-block;padding:10px 15px;border:1px solid var(--gold);border-radius:4px;text-decoration:none;font-weight:700}.site-home:hover,.import-link:hover{background:var(--gold);color:var(--bg)}[hidden]{display:none!important}.muted{color:var(--muted);font-size:.9rem}.import-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.import-item{border:1px solid var(--line);padding:18px;margin:14px 0;overflow-wrap:anywhere}.import-item label{margin-bottom:0}.import-status{margin:8px 0;color:var(--muted)}.import-error{border-color:#ffad9f}.import-error .import-status{color:#ffad9f}.import-done{border-color:#87c7a2}.import-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}button:disabled{opacity:.55;cursor:wait}button.secondary{background:transparent;color:var(--gold);border:1px solid var(--gold)}progress{width:100%;height:16px;accent-color:var(--gold)}
.spot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.spot-compute{padding:12px;border-left:3px solid #c99a61;background:#101b22}.spot-actions{display:flex;gap:22px;flex-wrap:wrap}.spot-actions form{flex:1;min-width:240px}.panel audio{max-width:100%;width:600px}#spot-message{overflow-wrap:anywhere}@media(max-width:700px){.spot-grid{grid-template-columns:1fr}}

/* Lyric Studio: native controls, visible focus, and a readable timing preview. */
.lyric-preview{margin:1.5rem 0;padding:1rem;border:1px solid #b89050;border-radius:.4rem}
.lyric-preview p{font-size:1.4rem;line-height:1.7;min-height:3.5rem;overflow-wrap:anywhere}
.lyric-preview span.is-current{background:#f2d28c;color:#17120b;border-radius:.15rem;text-decoration:underline;text-underline-offset:.2em}
.lyric-preview span.is-sung{font-weight:700}
.lyric-preview button{min-height:44px;margin-bottom:.5rem}
.lyric-preview label,.lyrics-extract label{display:block;margin-top:1rem}
.lyrics-extract select,.lyrics-extract textarea{width:100%;max-width:100%;box-sizing:border-box}
.lyric-warning{padding:.75rem;border-left:4px solid #b89050}
[data-lyric-desk] summary{cursor:pointer;padding:.75rem 0;min-height:24px}
[data-lyric-desk] :is(button,input,select,textarea,a,summary):focus-visible{outline:3px solid #c08830;outline-offset:3px}
[data-lyric-desk] button:disabled{opacity:.65;cursor:wait}
[data-lyric-desk] audio{width:100%;max-width:48rem}

/* The lyric desk keeps the recording, draft, and publishing actions together. */
.lyric-studio{--studio-soft:#14232b;--studio-edge:#3f5056;--studio-gold:#edc887}
.lyric-studio :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #f2d28c;outline-offset:4px}
.lyric-studio :is(button,input:not([type=checkbox]),select){min-height:44px}
.lyric-studio form{max-width:none}.lyric-studio p{max-width:none}
.lyric-lead{color:var(--muted);max-width:48rem!important;font-size:1.05rem;margin:0 0 1.6rem}
.lyric-eyebrow{color:var(--studio-gold);font-size:.72rem;font-weight:750;letter-spacing:.15em;margin:0 0 .5rem}
.lyric-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1rem 0;margin:1.25rem 0 1.8rem;border-block:1px solid var(--line)}
.lyric-steps li{display:flex;gap:.65rem;align-items:center;min-width:0}.lyric-steps li>span{color:var(--studio-gold);font:1.25rem Georgia,serif}
.lyric-steps strong{display:block;font-size:.85rem}.lyric-steps small{display:block;color:var(--muted);font-size:.75rem;margin-top:.15rem}
.lyric-back{display:inline-flex;min-height:44px;align-items:center;text-underline-offset:.25em;font-size:.9rem;margin-bottom:1rem}
.lyric-record-heading{display:grid;grid-template-columns:80px minmax(0,1fr) auto;align-items:center;gap:1.25rem}
.lyric-record-heading img,.lyric-library-intro img{border-radius:50%;box-shadow:0 0 0 1px #987344,0 10px 30px #0005;max-width:100%;height:auto}
.lyric-record-heading h2{margin:0;font-size:clamp(1.7rem,4vw,2.25rem);line-height:1.15;overflow-wrap:anywhere}
.lyric-record-heading p:not(.lyric-eyebrow){color:var(--muted);margin:.5rem 0 0;font-size:.9rem}
.lyric-badge{display:inline-flex;align-items:center;align-self:flex-start;width:fit-content;border:1px solid #66747a;border-radius:30px;padding:.4rem .65rem;font-size:.72rem;font-weight:650;line-height:1.3;color:#d5dfe0;background:#18272e;white-space:normal}
.lyric-badge.is-published{color:#c7e7d0;border-color:#52715c;background:#172c23}.lyric-badge.is-draft{color:#f0d4a0;border-color:#8e7146;background:#30291d}.lyric-badge.is-working{color:#c1e4f0;border-color:#4e7989;background:#172f3a}.lyric-badge.is-failed{color:#ffd0c5;border-color:#a36756;background:#39241f}
.lyric-job-card{border:1px solid var(--studio-edge);border-left:3px solid var(--studio-gold);background:var(--studio-soft);border-radius:6px;padding:1rem 1.25rem;margin-bottom:1.25rem;font-size:.9rem}.lyric-job-card p{margin:0}.lyric-job-card progress{margin:.8rem 0 0}.lyric-reload{display:inline-block;margin-top:.65rem;padding:.3rem 0;font-weight:700;text-underline-offset:.2em}
.lyric-workspace{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.2fr);gap:1.25rem;align-items:start}.lyric-sidebar{display:grid;gap:1.25rem;min-width:0}
.lyric-panel{border:1px solid var(--studio-edge);border-radius:10px;padding:1.5rem;min-width:0;background:linear-gradient(145deg,#1b2b32,#13212a)}
.lyric-panel h3{font:1.5rem/1.2 Georgia,serif;margin:0 0 .9rem}.lyric-panel h4{font-size:1.1rem;margin:0 0 .75rem}.lyric-panel>p:not(.lyric-eyebrow){color:var(--muted);font-size:.9rem}
.lyric-panel button{border-radius:4px;line-height:1.35;padding:12px 14px}.lyric-panel button:not(:disabled):hover{filter:brightness(1.12)}
.lyric-primary{background:linear-gradient(135deg,#f1ce92,#ddb062);box-shadow:0 2px 0 #0005;border:1px solid #edc887}
.lyric-extract-panel .lyric-primary{width:100%;font-size:.95rem;margin-top:.35rem}
.lyric-panel .lyric-help{font-size:.8rem;line-height:1.6;color:var(--muted);margin:.75rem 0}
.lyric-details{border-top:1px solid var(--line);margin-top:1rem}.lyric-details summary{font-size:.85rem;font-weight:600;min-height:44px;padding:.8rem 0;cursor:pointer;color:var(--studio-gold)}.lyric-details[open] summary{margin-bottom:.4rem}
.lyric-panel select,.lyric-panel textarea{border-color:#69808a;border-radius:5px;min-width:0;max-width:100%}.lyric-panel label.inline{display:flex;gap:.65rem;align-items:flex-start;font-size:.85rem;line-height:1.5}.lyric-panel label.inline input{flex:0 0 18px;margin-top:.15rem}
.lyric-listen-panel audio{width:100%;margin:.35rem 0 .75rem}.lyric-preview{margin:.5rem 0 0;padding:1.25rem 1rem;border-color:#806746;background:radial-gradient(ellipse at top,#2a332f,#111e25);text-align:center}
.lyric-preview p{font:1.5rem/1.8 Georgia,serif;min-height:7rem;margin:.1rem 0 1rem;display:block}.lyric-preview-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.lyric-preview button{margin:0;font-size:.75rem;padding:10px 7px}.lyric-preview label.inline{margin:1rem 0 0;text-align:left;font-weight:400;color:var(--muted);font-size:.8rem}
.lyric-editor-heading{display:flex;gap:1rem;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:.5rem}.lyric-editor-heading h3{margin-bottom:.3rem}.lyric-editor-heading .lyric-badge{align-self:auto}
.lyrics-review label[for=lyric-lrc]{margin-bottom:.25rem}.lyrics-review #lyric-lrc{font: .85rem/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;padding:1rem;height:clamp(20rem,44vh,30rem);resize:vertical;tab-size:2;margin-top:1rem;background:#0b171f}
.lyric-edit-help{margin-top:.5rem}.lyric-editor-actions,.lyric-publish-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.75rem}.lyric-editor-actions button{font-size:.8rem}
.lyric-publish{border-top:1px solid #7c6645;margin-top:1.5rem;padding-top:1.5rem}.lyric-publish .inline{font-weight:400}.lyric-publish-actions{margin-top:1.25rem}.lyric-unpublish{border-color:#bca194!important;color:#e8c1b1!important;font-size:.8rem}
.lyric-notes{border:1px solid #8f7249;border-radius:5px;padding:0 .8rem;margin:.8rem 0}.lyric-notes summary{min-height:44px;padding:.7rem 0;color:#f0d4a0;font-size:.85rem;cursor:pointer}.lyric-notes .lyric-warning{padding:.3rem 0 .6rem;border:0;font-size:.8rem;color:var(--muted)}
.lyric-versions{margin-top:1.5rem}.lyric-versions button{margin-top:1rem}.lyric-empty{padding:2rem 1rem;text-align:center;color:var(--muted)}.lyric-empty img{border-radius:50%;margin:1.5rem auto}.lyric-empty h4{color:var(--ink);font:1.5rem/1.35 Georgia,serif}.lyric-empty p{font-size:.9rem;max-width:25rem!important;margin-inline:auto}
.lyric-library-intro{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.75rem 0 .5rem}.lyric-library-intro h2{font-size:clamp(1.8rem,4vw,2.4rem);line-height:1.15;margin:.25rem 0 .8rem}.lyric-library-intro p:not(.lyric-eyebrow){color:var(--muted);font-size:.9rem}.lyric-library-intro img{flex:0 0 96px}
.lyric-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0 1.75rem}.lyric-stats>div{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;border:1px solid var(--studio-edge);border-radius:7px;background:var(--studio-soft)}.lyric-stats dd{order:-1;font:2rem/1.2 Georgia,serif;color:var(--studio-gold);margin:0}.lyric-stats dt{font-size:.8rem;color:var(--muted)}
.lyric-search{display:flex;align-items:end;gap:1rem;flex-wrap:wrap;border:1px solid var(--studio-edge);padding:1rem 1.25rem;border-radius:8px;background:var(--studio-soft)}.lyric-search>div:first-child{flex:1 1 250px}.lyric-search>div:nth-child(2){flex:0 1 200px}.lyric-search label{margin:0;font-size:.8rem}.lyric-search input,.lyric-search select{margin-top:.4rem}.lyric-search button{border-radius:4px}.lyric-clear{display:flex;align-items:center;min-height:44px;font-size:.85rem}
.lyric-results-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.5rem 0 .75rem}.lyric-results-heading h3{font:1.3rem Georgia,serif;margin:0}.lyric-results-heading p{color:var(--muted);font-size:.8rem;margin:0}
.lyric-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.lyric-record-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--studio-edge);border-radius:9px;padding:1.25rem 1.25rem .5rem;background:linear-gradient(145deg,#1c2c33,#13202a);transition:border-color .15s}.lyric-record-card:hover,.lyric-record-card:focus-within{border-color:#b89356}.lyric-record-card h4{font:1.25rem/1.3 Georgia,serif;margin:1rem 0 .5rem;overflow-wrap:anywhere}.lyric-record-card>p{font-size:.8rem;color:var(--muted);margin:0 0 1rem;overflow-wrap:anywhere}.lyric-card-open{display:flex;justify-content:space-between;align-items:center;gap:.5rem;min-height:48px;margin-top:auto;border-top:1px solid var(--line);font-size:.8rem;text-decoration:none;font-weight:700}.lyric-card-open span{font-size:1.2rem}
.lyric-pagination{justify-content:center;margin:1.5rem 0;gap:1.5rem}.lyric-pagination a{border:1px solid var(--line);border-radius:4px;padding:.65rem 1rem;min-height:44px}.lyric-pagination span{font-size:.85rem;color:var(--muted)}
@media(max-width:800px){.lyric-workspace{grid-template-columns:1fr}.lyric-sidebar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.lyric-record-heading{grid-template-columns:70px minmax(0,1fr)}.lyric-record-heading .lyric-badge{grid-column:2}.lyric-library{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.lyric-sidebar,.lyric-library{grid-template-columns:1fr}.lyric-panel{padding:1.25rem}.lyric-steps{gap:.65rem}.lyric-steps li{display:block}.lyric-steps li>span{display:block;margin-bottom:.35rem}.lyric-steps strong{font-size:.75rem;line-height:1.5}.lyric-steps small{display:none}.lyric-record-heading{gap:.8rem;grid-template-columns:60px minmax(0,1fr)}.lyric-record-heading img{width:60px}.lyric-stats{gap:.5rem}.lyric-stats>div{padding:.9rem .75rem}.lyric-stats dt{font-size:.72rem}.lyric-stats dd{font-size:1.65rem}.lyric-library-intro{gap:1rem;align-items:start}.lyric-library-intro img{width:60px;flex-basis:60px}.lyric-library-intro h2{font-size:1.65rem}.lyric-search{padding:1rem}.lyric-search>div:nth-child(2){flex:1 1 100%}.lyric-search button{flex:1}.lyric-publish-actions>button{flex:1}.lyric-editor-actions>button{flex:1}.lyric-record-card h4{font-size:1.35rem}}
@media(prefers-reduced-motion:reduce){.lyric-record-card{transition:none}}

.skip-link{position:absolute;left:-10000px;top:8px;z-index:1000;padding:12px 16px;background:#e3b873;color:#17140f;font-weight:700}.skip-link:focus{left:12px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #a5d5c5;outline-offset:4px}
:where(a,button,input,select,textarea,summary,[tabindex]){scroll-margin-block:20px}nav a{min-height:44px;display:inline-flex;align-items:center}button{min-height:44px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
/* Plague administration uses the shared backend with a local station theme. */
:root{--bg:#0b130b;--card:#172514;--line:#49613a;--ink:#eff5e9;--muted:#c4d4b8;--gold:#bafc3a}h1,h2{font-family:'Arial Narrow','Segoe UI',Arial,sans-serif;font-weight:800}
