/* Navigation and library polish. Performance sheets deliberately retain their existing styles. */
.shell {--soft-line:color-mix(in srgb,var(--line) 40%,transparent)}
.shell .sidebar{border-color:var(--soft-line)}
.shell .nav button{border-radius:12px;min-height:48px}
.shell .nav button.active{box-shadow:inset 3px 0 var(--orange)}
.shell .topline{gap:16px;margin-bottom:12px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.shell #app-update-area{text-align:center;min-width:0}
.shell .refresh-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.shell #cloud-status{text-align:right;margin:0}
.shell .device-status{margin:0 0 26px}
.shell .topline:has(.update-notice){grid-template-columns:1fr 1fr}
.shell .topline:has(.update-notice) #app-update-area{grid-column:1/-1;grid-row:2;text-align:left}
.shell button:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.main:has(#song-grid:not([data-picker])) .hero{margin-bottom:28px}
.main:has(#song-grid:not([data-picker])) .hero h1{letter-spacing:-1.4px}
.main:has(#song-grid:not([data-picker])) .toolbar{flex-wrap:wrap;gap:12px;margin-bottom:22px}
.main:has(#song-grid:not([data-picker])) .toolbar input{min-height:50px;border-color:var(--soft-line);border-radius:12px;flex:1 1 230px}
.main:has(#song-grid:not([data-picker])) .toolbar button{min-height:48px;border-color:var(--accent-line);color:var(--accent-text);border-radius:12px}
.main:has(#song-grid:not([data-picker])) .count{order:3;flex-basis:100%;font-size:12px}
.main:has(#song-grid:not([data-picker])) .library-view{gap:12px;margin-bottom:20px}
.main:has(#song-grid:not([data-picker])) .library-column-choices{gap:4px;padding:4px;border:1px solid var(--soft-line);border-radius:12px;background:var(--input)}
.main:has(#song-grid:not([data-picker])) .library-column-choices button{border-color:transparent;border-radius:8px}
.main:has(#song-grid:not([data-picker])) .library-filters button{border-radius:10px;border-color:var(--soft-line)}
.main:has(#song-grid:not([data-picker])) .library-filters button.active{border-color:var(--accent-line)}
.main:has(#song-grid:not([data-picker])) .more-categories summary{color:var(--muted);font-weight:550}
#song-grid:not([data-picker]){gap:16px}
#song-grid:not([data-picker]) .song-card{height:190px;padding:20px;gap:12px;border-radius:16px;border-color:var(--soft-line);box-shadow:0 3px 10px #0000000a}
#song-grid:not([data-picker]) .song-card:hover{border-color:var(--accent-line)}
#song-grid:not([data-picker]) .tags,#song-grid:not([data-picker]) .num,#song-grid:not([data-picker]) .card-foot>span{display:none}
#song-grid:not([data-picker]) .card-top{min-height:0;flex:1}
#song-grid:not([data-picker]) .card-top>div{min-width:0;width:100%}
#song-grid:not([data-picker]) h3{font-size:19px;line-height:1.35;margin-bottom:6px}
#song-grid:not([data-picker]) .song-title{min-height:0;padding:0;line-height:1.35}
#song-grid:not([data-picker]) .song-title span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
#song-grid:not([data-picker]) .card-top p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
#song-grid:not([data-picker]) .card-foot{border:0;padding:0;flex:none}
#song-grid:not([data-picker]) .card-foot>div{width:100%;justify-content:space-between;align-items:center}
#song-grid:not([data-picker]) .card-foot [data-detail]{padding:10px 0;min-height:44px;border:0;color:var(--muted);background:none}
#song-grid:not([data-picker]) .card-foot [data-play]{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%;background:transparent;color:var(--orange);font-size:0;display:grid;place-items:center;border:1px solid var(--accent-line)}
#song-grid:not([data-picker]) .card-foot [data-play]::before{content:'';border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid currentColor;margin-left:3px}
#song-grid:not([data-picker]) .play-arrow{display:none}
#song-grid:not([data-picker])[data-compact="true"]{gap:10px}
#song-grid:not([data-picker])[data-compact="true"] .song-card{height:160px;padding:12px;gap:8px}
#song-grid:not([data-picker])[data-compact="true"] h3{font-size:16px;height:auto}
#song-grid:not([data-picker])[data-compact="true"] .song-title{height:auto;min-height:44px}
#song-grid:not([data-picker])[data-compact="true"] .song-title span{-webkit-line-clamp:3;max-height:4.05em}
#song-grid:not([data-picker])[data-compact="true"] .card-foot>div{justify-content:flex-end}
#song-grid:not([data-picker])[data-compact="true"] .card-foot [data-play]{width:44px;font-size:0}
@media(max-width:1000px){.shell .topline{grid-template-columns:1fr 1fr}.shell .topline>.eyebrow{display:none}.shell #app-update-area{text-align:left}}
@media(max-width:700px){.shell .topline{gap:10px}.shell .device-status{margin-bottom:20px}.shell .refresh-hint,.shell #cloud-status{font-size:11px}.main:has(#song-grid:not([data-picker])) .toolbar button{width:100%}#song-grid:not([data-picker]) .song-card{height:180px}.shell .nav button.active{box-shadow:none}}
@media(min-width:701px) and (max-width:1000px){.shell .topline{grid-template-columns:1fr auto 1fr}.shell #app-update-area{grid-column:2;text-align:center}.shell #cloud-status{grid-column:3;font-size:11px}}
@media(max-width:700px){.shell #app-update-area{grid-column:1/-1;text-align:center}.shell #cloud-status{grid-column:1/-1;text-align:right}}
/* Keep library controls together so the songs remain the focus. */
.main:has(#song-grid:not([data-picker])) .device-status{margin-bottom:16px}
.main:has(#song-grid:not([data-picker])) .hero{margin-bottom:18px}
.main:has(#song-grid:not([data-picker])) .toolbar{margin-bottom:14px;row-gap:8px}
.library-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-bottom:18px}
.main:has(#song-grid:not([data-picker])) .library-controls .library-view{order:2;margin:0 0 0 auto;gap:10px}
.main:has(#song-grid:not([data-picker])) .library-controls .library-filters{order:1;margin:0;gap:8px}
.main:has(#song-grid:not([data-picker])) .library-controls .more-categories{order:3;flex-basis:100%;margin:0}
.library-controls #library-view-note{display:none}
.library-controls .more-categories summary{min-height:44px;display:list-item;padding:12px 0}
#song-grid:not([data-picker])[data-compact="true"] .song-card{height:132px;padding:10px;gap:6px}
@media(max-width:1050px){.main:has(#song-grid:not([data-picker])) .library-controls .library-view{margin-left:0}.library-controls{gap:8px 16px}}
@media(max-width:700px){.main:has(#song-grid:not([data-picker])) .library-controls .library-view{display:none}.library-controls{margin-bottom:12px}}
.main:has(#song-grid:not([data-picker])) .hero h1{font-size:clamp(32px,4vw,48px);line-height:1.1;margin-bottom:10px;letter-spacing:-1.8px}
.library-dot{color:var(--orange)}
.main:has(#song-grid:not([data-picker])) .subtitle{font-size:16px}
.main:has(#song-grid:not([data-picker])) .library-controls .more-categories{order:2;flex-basis:auto}
.main:has(#song-grid:not([data-picker])) .library-controls .library-view{order:3}
.library-controls .more-categories summary{border:1px solid var(--soft-line);border-radius:10px;padding:12px;min-height:44px;list-style:none;white-space:nowrap}
.library-controls .more-categories summary::after{content:'⌄';margin-left:10px}
.main:has(#song-grid:not([data-picker])) .library-controls .more-categories[open]{order:4;flex-basis:100%}
.library-controls .more-categories[open] summary{width:fit-content;margin-bottom:12px}
.main:has(#song-grid:not([data-picker])) .library-column-choices{padding:0;gap:0;overflow:hidden;border-radius:9px}
.main:has(#song-grid:not([data-picker])) .library-column-choices button{border-radius:0;min-width:40px}
.main:has(#song-grid:not([data-picker])) .library-filters button{font-size:12px;padding:10px 12px}
#song-grid:not([data-picker]) .card-foot [data-detail]{border-top:1px solid var(--soft-line);text-align:left;flex:1;margin-right:14px;padding-top:12px}
#song-grid:not([data-picker]) .card-foot [data-detail]::after{content:' ›';padding-left:7px}
#song-grid:not([data-picker]) .card-foot [data-play]{border-color:var(--orange);border-width:2px}
#song-grid:not([data-picker]) .song-card{border-radius:11px}
@media(min-width:1051px){.library-controls{gap:10px 12px}}
#song-grid:not([data-picker]) .card-foot [data-detail]{border-radius:0}
/* Larger, centred performance targets and a richer selected-state orange. */
.shell{--selected-orange:#ef862b;--selected-ink:#20160d}
:root[data-theme="light"] .shell{--selected-orange:#b9490b;--selected-ink:#fff}
.shell .library-filters button[aria-pressed="true"],.shell .library-column-choices button[aria-pressed="true"]{background:var(--selected-orange);border-color:var(--selected-orange);color:var(--selected-ink)}
#song-grid:not([data-picker]) .card-foot [data-play],#song-grid:not([data-picker])[data-compact="true"] .card-foot [data-play]{width:56px;height:56px;min-width:56px;min-height:56px;display:flex;align-items:center;justify-content:center;flex:none;padding:0;line-height:0}
#song-grid:not([data-picker]) .card-foot [data-play]::before{border-top-width:9px;border-bottom-width:9px;border-left-width:14px;margin-left:4px;flex:none}
#song-grid:not([data-picker])[data-compact="true"] .song-card{height:148px}
/* Harmonise navigation accents while keeping the selected state stronger. */
:root:not([data-theme="light"]) .shell{--orange:#f59a49;--gold:#f3a461;--accent-text:#f5a35c;--accent-line:#b87940}
.main:has(#song-grid:not([data-picker])) .library-column-choices{padding:5px;gap:3px;overflow:visible;align-items:center}
.main:has(#song-grid:not([data-picker])) .library-column-choices button{border-radius:7px;position:relative;min-width:40px;min-height:44px;transition:transform .12s ease,background-color .12s ease}
.main:has(#song-grid:not([data-picker])) .library-column-choices button[aria-pressed="true"]{transform:scale(1.08);z-index:1;box-shadow:0 2px 6px var(--shadow)}
@media(prefers-reduced-motion:reduce){.main:has(#song-grid:not([data-picker])) .library-column-choices button{transition:none}}
/* Account entry screens use the same visual language as the library. */
.account-screen{--soft-line:color-mix(in srgb,var(--line) 40%,transparent);--selected-orange:#ef862b;--selected-ink:#20160d;max-width:560px;padding:clamp(28px,7vh,72px) 20px 40px}
:root:not([data-theme="light"]) .account-screen{--orange:#f59a49;--gold:#f3a461;--accent-text:#f5a35c;--accent-line:#b87940}
:root[data-theme="light"] .account-screen{--selected-orange:#b9490b;--selected-ink:#fff}
.account-screen .brand{font-size:30px;letter-spacing:-1.3px;margin-bottom:26px}
.account-screen .panel{padding:clamp(24px,4vw,36px);border:1px solid var(--soft-line);border-radius:16px;box-shadow:0 3px 10px #0000000a}
.account-screen h1{font-size:clamp(30px,5vw,40px);line-height:1.12;letter-spacing:-1.3px;margin:0 0 14px}
.account-screen .help{color:var(--muted);font-size:14px;line-height:1.6}
.account-screen form{margin-top:26px;gap:18px}
.account-screen .field{font-size:14px;font-weight:550;gap:9px}
.account-screen input{min-height:52px;border-radius:11px;background:var(--input);border-color:var(--soft-line);font-size:16px;padding:13px 14px}
.account-screen button{border-radius:10px;min-height:48px;font-size:14px}
.account-screen button.primary{background:var(--selected-orange);color:var(--selected-ink);border-color:var(--selected-orange);font-weight:700;min-height:52px}
.account-screen button.ghost{color:var(--accent-text);border-color:var(--soft-line)}
.account-screen :is(input,button):focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.account-screen [role="status"]{font-size:14px;line-height:1.5;margin:16px 0}
.account-screen [role="status"]:empty{min-height:0;margin:0}
.account-screen .row{margin-top:18px;gap:10px}
@media(max-width:420px){.account-screen{padding:28px 16px}.account-screen .panel{padding:24px 20px}.account-screen .row button{flex:1 1 auto}}
.song-detail-fold{border:1px solid var(--soft-line);border-radius:11px;margin-top:14px;overflow:hidden;background:var(--input)}
.song-detail-fold>summary{padding:16px;min-height:52px;font-size:16px;font-weight:650;cursor:pointer;color:var(--ink)}
.song-detail-fold[open]>summary{border-bottom:1px solid var(--soft-line);color:var(--accent-text)}
.song-detail-fold>summary:focus-visible{outline:2px solid var(--orange);outline-offset:-3px}
.song-detail-fold-body{padding:0 16px 16px;background:var(--paper)}
.song-detail-fold-body .category-choices{margin-bottom:0}
.shell .nav button .nav-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:28px;flex:0 0 30px;vertical-align:middle}
.shell .nav-icon svg{display:block;width:25px;height:25px;overflow:visible}
.shell.sidebar-collapsed .nav button .nav-icon{width:30px;height:30px}
.shell.sidebar-collapsed .nav-icon svg{width:27px;height:27px}
@media(max-width:700px){.shell .nav button .nav-icon{height:26px;width:28px;flex-basis:28px}.shell .nav-icon svg{width:24px;height:24px}}
@media(min-width:701px){.shell .nav button[data-nav]{display:flex;align-items:center;gap:8px}.shell.sidebar-collapsed .nav button[data-nav]{justify-content:center;gap:0}}
.checklist-tools{margin-bottom:12px}.checklist-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:16px}.checklist-category{margin:0}.checklist-category h2{font-size:21px}.checklist-item{display:flex;align-items:center;gap:14px;min-height:54px;padding:10px 0;cursor:pointer;border-bottom:1px solid var(--soft-line)}.checklist-item input{width:24px;height:24px;flex:none;accent-color:var(--selected-orange)}.checklist-item.packed span{color:var(--muted);text-decoration:line-through}.checklist-add{margin-top:18px;align-items:end}.checklist-items>.row{margin-top:12px}#add-category{margin-top:20px;align-items:end}
:root:not([data-theme="light"]) .shell{--selected-orange:#d78b49}
.library-controls{position:relative}
.main:has(#song-grid:not([data-picker])) .library-controls .more-categories[open]{order:2;flex-basis:auto;padding:0;border:0;background:none}
.library-controls .more-categories[open] summary{margin:0;background:var(--accent-surface);border-color:var(--accent-line)}
.library-controls .category-filter-panel{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;padding:18px;background:var(--paper);border:1px solid var(--accent-line);border-radius:12px;box-shadow:0 10px 28px var(--shadow);max-height:55vh;overflow:auto}
.library-controls .category-filter-panel .library-filters{display:flex;flex-wrap:wrap}
.library-controls>.filter-hint:empty{display:none}
.library-controls>.filter-hint:not(:empty){order:4;flex-basis:100%;margin:0}
@media(max-width:700px){.shell .nav{overflow-x:auto}.shell .nav button[data-nav]{min-width:56px;flex:1 0 56px}.shell .nav button[data-nav="checklist"] .nav-label{font-size:9px}}
/* Category management stays within the scrollable filter panel. */
.category-heading{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin-bottom:10px}
.category-heading h3{margin:0}
.category-heading .row{gap:5px;flex-wrap:nowrap}
.category-heading button{display:grid;place-items:center;width:30px;height:30px;min-width:30px;min-height:30px;padding:0;border-radius:7px;font-size:18px;line-height:1}
.category-filter-panel{max-height:55vh;overflow:auto;overscroll-behavior:contain}
.category-dialog{max-height:85vh;overflow:auto}
.category-dialog .field input,.category-dialog .field select{width:100%}
.checklist-moves{display:inline-flex;gap:6px;flex:none}
.checklist-moves button{width:40px;min-height:40px;padding:5px;font-size:20px}
.checklist-items>.row{align-items:end;flex-wrap:wrap}
.random-set-dialog{width:min(640px,calc(100vw - 32px));max-height:90vh;overflow:auto}
.random-set-categories{margin:20px 0;border:1px solid var(--accent-line,#b87940);border-radius:12px;overflow:hidden;background:var(--panel,#1c1c1b)}
.random-set-categories>summary{display:flex;align-items:center;gap:12px;min-height:60px;padding:14px 18px;cursor:pointer;background:rgba(215,139,73,.15);font-size:18px;font-weight:700;list-style:none}
.random-set-categories>summary::-webkit-details-marker{display:none}
.random-set-categories>summary::after{content:'⌄';margin-left:auto;font-size:24px}
.random-set-categories:not([open])>summary::after{content:'›'}
.category-count{font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap}
.random-category-body{max-height:35vh;overflow:auto;padding:8px 16px 16px;overscroll-behavior:contain}
.random-category-body fieldset{border:0;padding:12px 0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.random-category-body legend{font-weight:700;padding-top:8px;color:var(--accent-text,#f5a35c)}
.random-category-body label.check{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid var(--soft-line,#45443f);border-radius:8px;cursor:pointer}
.random-category-body label.check:has(input:checked){background:rgba(215,139,73,.2);border-color:var(--accent-line,#b87940)}
.random-category-body input{width:18px;height:18px;accent-color:#d78b49}
