:root{color-scheme:dark;--bg:#11100e;--surface:#191816;--surface-elevated:#22201d;--border:#35322d;--text-primary:#f4f0e8;--text-secondary:#aaa59b;--accent:#d8a84e;--accent-hover:#e6ba67;--danger:#df6a62;--success:#78b88a;--radius:12px;--sidebar-width:238px;--focus:0 0 0 .22rem rgba(216,168,78,.32)}
*{box-sizing:border-box}html{overflow-x:hidden;background:var(--bg)}body{min-height:100vh;margin:0;color:var(--text-primary);background:var(--bg);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--accent)}a:hover{color:var(--accent-hover)}h1,h2,h3{letter-spacing:-.025em}h1{font-size:clamp(1.75rem,4vw,2.4rem);font-weight:700}.text-body-secondary{color:var(--text-secondary)!important}
.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:1100;transform:translateY(-160%);padding:.65rem 1rem;border-radius:8px;background:var(--accent);color:#18130a}.skip-link:focus{transform:none}.app-sidebar{display:none}.mobile-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--border);background:rgba(17,16,14,.94);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px)}.app-brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--text-primary);text-decoration:none;font-weight:700}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#18130a;background:var(--accent);font-size:.72rem}.icon-button{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--text-primary);text-decoration:none}
.app-version{color:var(--text-secondary);font-size:.7rem;font-weight:500;letter-spacing:.02em}
.app-main{min-width:0;padding:1.25rem 1rem calc(92px + env(safe-area-inset-bottom))}.content-shell{max-width:1180px;margin:0 auto}.mobile-bottom-nav{position:fixed;z-index:100;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);padding:.35rem .35rem calc(.35rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:rgba(25,24,22,.97);backdrop-filter:blur(14px)}.bottom-nav-link{min-height:56px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;border-radius:10px;color:var(--text-secondary);text-decoration:none;font-size:.72rem;font-weight:600}.bottom-nav-link.active{color:var(--accent);background:rgba(216,168,78,.09)}.bottom-nav-icon{font-size:1.25rem;line-height:1}
.card,.list-group-item,.modal-content,.dropdown-menu{color:var(--text-primary);background:var(--surface);border-color:var(--border);border-radius:var(--radius)}.card{box-shadow:none}.list-group{gap:.65rem}.list-group-item{border:1px solid var(--border)}.list-group-item.active{color:var(--text-primary);background:rgba(216,168,78,.11);border-color:var(--accent)}
.btn{min-height:44px;border-radius:10px;font-weight:650}.btn-sm{min-height:38px}.btn-primary{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-color:#18130a;--bs-btn-hover-bg:var(--accent-hover);--bs-btn-hover-border-color:var(--accent-hover);--bs-btn-hover-color:#18130a;--bs-btn-disabled-bg:#665536;--bs-btn-disabled-border-color:#665536}.btn-outline-primary{--bs-btn-color:var(--accent);--bs-btn-border-color:#725d35;--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--accent);--bs-btn-hover-color:#18130a}.btn-outline-secondary{--bs-btn-color:var(--text-primary);--bs-btn-border-color:var(--border);--bs-btn-hover-bg:var(--surface-elevated);--bs-btn-hover-border-color:#555047}.btn-outline-danger{--bs-btn-color:#ef918a;--bs-btn-border-color:#70433f}.btn:disabled{opacity:.45;cursor:not-allowed}
.form-control,.form-select{min-height:46px;color:var(--text-primary);background-color:var(--surface);border-color:var(--border);border-radius:10px}.form-control::placeholder{color:#777168}.form-control:focus,.form-select:focus{color:var(--text-primary);background:var(--surface-elevated);border-color:var(--accent);box-shadow:var(--focus)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.alert{border-radius:var(--radius);border-color:var(--border)}.alert-success{color:#b9ddc3;background:#17251b}.alert-warning{color:#ead49e;background:#292314}.alert-danger{color:#f2b2ad;background:#2b1817}.alert-info{color:#b9d2db;background:#172329}
.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem}.page-eyebrow{margin:0 0 .3rem;color:var(--accent);font-size:.75rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.media-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.9rem;align-items:center;padding:.85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.media-row+.media-row{margin-top:.65rem}.media-row.is-current{border-color:var(--accent);background:rgba(216,168,78,.09)}.media-position{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:var(--text-secondary);background:var(--surface-elevated);font-weight:700}.media-title{margin:0;font-size:1rem;font-weight:700}.media-meta{margin:.2rem 0 0;color:var(--text-secondary);font-size:.84rem}.media-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.45rem}.empty-state{text-align:center;padding:clamp(2.5rem,8vw,5rem) 1rem;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface)}.empty-state h2{font-size:1.25rem}.empty-state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1.2rem}
.controller-state{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.state-playing{background:var(--success);color:#0c1b10}.state-paused{background:var(--accent);color:#211a0d}.state-error{background:var(--danger)}.state-loading{background:#6b91b5}.state-stopped{background:#656159}.controller-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.controller-controls form{display:flex}.controller-controls form:nth-child(2){grid-column:1/-1}.controller-control{width:100%;min-height:54px}.controller-controls form:nth-child(2) .controller-control{min-height:68px;font-size:1.15rem}.now-playing-surface{overflow:hidden;background:linear-gradient(145deg,#242019,var(--surface) 55%)}.search-type-tabs{display:flex;gap:.35rem;overflow-x:auto;padding:.35rem 0}.search-type-tabs a{flex:0 0 auto;padding:.55rem .85rem;border-radius:999px;color:var(--text-secondary);text-decoration:none}.search-type-tabs a.active{color:#18130a;background:var(--accent)}
.tv-remote-panel{overflow:hidden}.tv-remote-panel summary{display:flex;align-items:center;justify-content:space-between;min-height:54px;cursor:pointer;list-style:none}.tv-remote-panel summary::-webkit-details-marker{display:none}.tv-remote-panel summary span:first-child{display:grid}.tv-remote-panel summary small,.tv-remote-label{color:var(--text-secondary);font-size:.75rem}.tv-remote-chevron{transition:transform .15s}.tv-remote-panel[open] .tv-remote-chevron{transform:rotate(180deg)}.tv-remote-layout{display:grid;gap:1.25rem}.tv-remote-group{display:grid;gap:.5rem}.tv-remote-label{font-weight:700;letter-spacing:.08em;text-transform:uppercase}.tv-dpad{display:grid;grid-template:repeat(3,56px)/repeat(3,56px);gap:.35rem}.tv-dpad-up{grid-area:1/2}.tv-dpad-left{grid-area:2/1}.tv-dpad-center{grid-area:2/2}.tv-dpad-right{grid-area:2/3}.tv-dpad-down{grid-area:3/2}.tv-dpad form,.tv-dpad button{width:100%;height:100%}.tv-remote-secondary{display:grid;gap:1rem}.tv-remote-row{display:flex;flex-wrap:wrap;gap:.45rem}.tv-remote-row form{flex:1 1 110px}.tv-remote-button{width:100%}.search-action-feedback{position:sticky;top:72px;z-index:90;margin:.75rem 0 0;padding:.65rem .85rem}
@media(min-width:640px){.app-main{padding:2rem 1.5rem calc(96px + env(safe-area-inset-bottom))}.media-row{grid-template-columns:auto minmax(0,1fr) auto}.media-actions{grid-column:auto;justify-content:end}.controller-controls{grid-template-columns:repeat(5,minmax(0,1fr))}.controller-controls form:nth-child(2){grid-column:auto}.tv-remote-layout{grid-template-columns:auto minmax(0,1fr);align-items:start}}
@media(min-width:992px){body{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.mobile-header,.mobile-bottom-nav{display:none}.app-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:1.4rem 1rem;border-right:1px solid var(--border);background:var(--surface)}.app-sidebar .app-brand{padding:0 .7rem .35rem}.app-sidebar>.app-version{padding:0 .7rem 1.25rem}.sidebar-nav{display:grid;gap:.35rem}.sidebar-secondary{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}.app-nav-link{min-height:46px;display:flex;align-items:center;gap:.8rem;padding:.7rem .85rem;border-radius:10px;color:var(--text-secondary);text-decoration:none;font-weight:650}.app-nav-link:hover{color:var(--text-primary);background:var(--surface-elevated)}.app-nav-link.active{color:var(--accent);background:rgba(216,168,78,.1)}.app-main{padding:2.5rem clamp(2rem,5vw,4.5rem)}}.media-details{grid-column:1/-1;color:var(--text-secondary)}.media-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.playlist-card{transition:border-color .16s ease,transform .16s ease}.playlist-card:hover{border-color:var(--accent);transform:translateY(-2px)}.card-footer{border-color:var(--border)!important}.guide-list{display:grid;gap:1.2rem;padding-left:1.3rem}.guide-list li{padding-left:.35rem}.guide-list strong,.guide-list span{display:block}.guide-list span{margin-top:.2rem;color:var(--text-secondary)}
.mobile-bottom-nav.has-tv-remote{grid-template-columns:repeat(5,1fr)}
.tv-remote-page{max-width:850px;margin:0 auto}
.action-cluster{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.action-control{display:inline-flex;min-width:54px;min-height:48px;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;padding:.35rem .55rem;border-color:transparent;background:var(--surface-elevated);font-size:.7rem;line-height:1.1}.action-control:hover{border-color:var(--border)}.action-control .control-icon{font-size:1.15rem;line-height:1;color:var(--text-primary)}.action-control-horizontal{min-width:auto;flex-direction:row;gap:.4rem;padding:.45rem .75rem;font-size:.78rem}.action-control.btn-primary{background:var(--accent);border-color:var(--accent)}.action-control.btn-primary .control-icon{color:#18130a}.action-control.btn-outline-danger{color:#ef918a;background:rgba(223,106,98,.07);border-color:rgba(223,106,98,.3)}.action-control:disabled{background:#292723;border-color:transparent}.pairing-section{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.75rem 0;padding:.7rem;border-radius:10px;background:var(--surface-elevated)}.pairing-section p{margin:0}.controller-control.action-control{min-height:54px}.controller-primary-control{min-height:68px!important;font-size:.78rem}.controller-primary-control .control-icon{font-size:1.55rem}
.media-actions .btn{display:inline-flex;align-items:center;gap:.3rem;min-height:40px;padding:.35rem .55rem;border-color:transparent;background:var(--surface-elevated);font-size:.72rem}.media-actions .btn:hover{border-color:var(--border)}.media-actions form[action*='add-to-queue'] .btn::before,.media-actions form[action*='enqueue'] .btn::before{content:'＋';font-size:1rem}.media-actions form[action*='queue-next'] .btn::before,.media-actions form[action*='enqueue-next'] .btn::before{content:'▶|';font-size:.8rem}.media-actions form[action*='add-to-playlist'] .btn::before{content:'♫';font-size:1rem}.media-actions form[action$='/play'] .btn::before{content:'▶';font-size:.9rem}.media-actions form[action*='move-up'] .btn::before{content:'↑'}.media-actions form[action*='move-down'] .btn::before{content:'↓'}.media-actions form[action*='delete'] .btn::before{content:'×';font-size:1rem}.media-actions .btn-outline-danger{color:#ef918a;background:rgba(223,106,98,.07)}.empty-state-actions .btn,.card form>.btn{min-height:44px}
.controller-controls form:nth-child(2){grid-column:auto}.controller-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.controller-primary-control{background:var(--accent)!important;color:#18130a!important;border-color:var(--accent)!important}.controller-primary-control .control-icon{color:#18130a!important}
.controller-controls form:nth-child(2) .controller-control{min-height:54px;font-size:.7rem}
.media-actions .queue-action-light,.media-actions .queue-action-light::before{color:#8fd3ff}
