:root{--bg:#0c111b;--panel:#141c2a;--panel2:#192334;--line:#283346;--ink:#eef3fc;--muted:#9aaac0;--accent:#a69aff;--green:#67d5a2;--red:#ffa7ad;--amber:#edcb8b;font-family:Inter,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:var(--ink);background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:10px 14px;min-height:40px;transition:background .15s}button:hover{background:#26334a}button:disabled{opacity:.55;cursor:wait}button.primary{background:var(--accent);color:#18132d;border-color:var(--accent);font-weight:600}button.quiet{background:transparent}button.danger{color:var(--red)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input,select{background:#101724;border:1px solid #374258;border-radius:9px;padding:11px 12px;color:var(--ink);width:100%;min-width:0}label{display:block;font-size:13px;color:var(--muted);margin:18px 0 0}label input,label select{display:block;margin-top:8px}input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--accent)}.check{display:flex;align-items:center;gap:10px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:8px}h2{font-size:21px;letter-spacing:-.5px;margin-bottom:8px}h3{font-size:16px;margin-bottom:8px}p{line-height:1.6}.muted{color:var(--muted)}.accent{color:var(--accent)}.brand{display:flex;align-items:center;font-size:23px;font-weight:650;letter-spacing:-.7px;white-space:nowrap;gap:4px}.brand-icon{background:var(--accent);color:#19132f;border-radius:10px;display:grid;place-items:center;width:34px;height:34px;margin-right:6px}.eyebrow,.nav-label{font-size:11px;letter-spacing:1.5px;color:var(--muted);font-weight:600}.login-stage{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:70px;max-width:1100px;margin:auto;padding:60px 36px}.login-intro .brand{margin-bottom:65px}.login-intro h1{font-size:44px;line-height:1.16;margin-top:18px}.login-intro p{max-width:380px;color:var(--muted);font-size:16px}.chips{display:flex;flex-wrap:wrap;gap:9px;max-width:430px;margin-top:32px}.chips span{border:1px solid var(--line);border-radius:20px;padding:7px 13px;color:var(--muted);font-size:12px}.login-panel{background:var(--panel);border:1px solid var(--line);padding:36px;border-radius:22px;box-shadow:0 24px 100px #0004}.login-panel h2{font-size:29px;margin-top:14px}.full{width:100%;margin-top:26px;display:flex;justify-content:space-between}.login-foot{border-top:1px solid var(--line);padding-top:20px;margin-top:18px;color:var(--muted);font-size:12px}.error{color:var(--red);margin:16px 0 0}.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}aside{background:#101724;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column}aside .brand{padding:0 7px}.nav-label{margin:28px 12px 12px}nav{display:flex;flex-direction:column;gap:4px}nav>button{text-align:left;display:flex;gap:14px;align-items:center;background:transparent;border-color:transparent;color:var(--muted);padding:11px 14px}nav>button.selected{background:#a69aff18;color:#c2b9ff;border-color:#a69aff21}.sidebar-foot{margin-top:auto;padding:28px 12px 0;color:var(--muted);font-size:12px}.sidebar-foot small{display:inline-block;margin-top:8px}.dot{display:inline-block;background:var(--green);width:7px;height:7px;border-radius:50%;margin-right:7px}.workspace{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:17px 32px;min-height:76px}.topbar>div:first-child{display:flex;gap:15px;align-items:center}.topbar .muted{font-size:12px}.top-actions{display:flex;gap:18px;align-items:center}main{padding:32px;max-width:1560px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.page-head p{margin:0;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:26px}.metric,.panel,.service-card{background:var(--panel);border:1px solid var(--line);border-radius:16px}.metric{padding:20px}.metric .value{font-size:27px;letter-spacing:-1px;margin:8px 0 4px;font-weight:550;font-variant-numeric:tabular-nums}.metric .muted{font-size:12px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:28px 0 16px}.section-head h2{margin:0}.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.service-card{padding:22px;display:flex;flex-direction:column;min-height:225px}.card-top{display:flex;justify-content:space-between;align-items:center}.app-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#a69aff16;color:var(--accent);font-size:23px;font-weight:600}.service-card h3{margin:20px 0 5px;font-size:19px}.service-card p{color:var(--muted);font-size:13px;margin-bottom:20px}.service-card button{margin-top:auto;display:flex;align-items:center;justify-content:space-between}.badge{font-size:11px;border-radius:20px;padding:5px 10px;background:#293347;color:#b6c5d9;white-space:nowrap}.badge.online{background:#67d5a214;color:var(--green)}.badge.offline{background:#ffa7ad15;color:var(--red)}.panel{padding:24px;margin-bottom:20px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.drive-row{padding:15px 0;border-bottom:1px solid var(--line)}.drive-row:last-child{border-bottom:0}.split{display:flex;justify-content:space-between;align-items:center;gap:12px}.bar{height:7px;background:#283247;border-radius:8px;overflow:hidden;margin:12px 0 7px}.bar span{display:block;background:var(--accent);height:100%}.low-space span{background:var(--amber)}.small{font-size:12px}.empty{padding:28px 10px;color:var(--muted);text-align:center}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions input{width:auto;flex:1;min-width:130px}.actions label{margin:0}.list-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:15px 0}.list-row:last-child{border:0}.list-row>div:first-child{min-width:0}.list-row strong{font-weight:500;overflow-wrap:anywhere}.list-row .muted{display:block;font-size:12px;margin-top:4px}.list-row .actions{flex-shrink:0}.connection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.connection-grid .panel{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{margin:0}.helper{font-size:12px;color:var(--muted);margin:8px 0}.notice{padding:14px 18px;border-radius:10px;background:#a69aff13;color:#c5bbff;border:1px solid #a69aff28;margin-bottom:20px;line-height:1.6}.chart{width:100%;height:150px;display:block;margin-top:20px}.chart text{font-size:11px;fill:var(--muted)}.chart line{stroke:var(--line);stroke-width:1}.chart path{fill:none;stroke:var(--accent);stroke-width:2}.chart path.secondary{stroke:var(--green)}.legend{display:flex;gap:15px;font-size:12px;color:var(--muted);margin-top:10px}.legend span::before{content:'';display:inline-block;width:8px;height:8px;background:var(--accent);border-radius:50%;margin-right:6px}.legend span:last-child::before{background:var(--green)}#toast{position:fixed;bottom:24px;right:24px;max-width:min(440px,calc(100vw - 32px));background:#28364e;border:1px solid #536180;color:var(--ink);padding:15px 20px;border-radius:12px;z-index:20;box-shadow:0 10px 50px #0006}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:28px;width:min(650px,calc(100% - 28px));max-height:85vh;overflow:auto}dialog::backdrop{background:#020813b8}.log-lines{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.9 Consolas,monospace}.search{max-width:400px;margin-bottom:18px}.inline-form{display:flex;gap:10px}.inline-form input{flex:1}.lookup-row{border-bottom:1px solid var(--line);padding:16px 0}.lookup-row p{font-size:12px;color:var(--muted);margin:8px 0}.loading{color:var(--muted);padding:30px}.stat-row{font-variant-numeric:tabular-nums}[hidden]{display:none!important}
@media(min-width:1500px){main{padding:40px}.services{gap:24px}}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.app-shell{grid-template-columns:190px 1fr}aside{padding:22px 12px}.brand{font-size:20px}.topbar{padding:16px 24px}.top-actions #freshness{display:none}main{padding:24px}.services{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app-shell{display:block}aside{border-right:0;border-bottom:1px solid var(--line);padding:16px}.sidebar-foot,.nav-label{display:none}nav{display:flex;flex-direction:row;overflow:auto;margin-top:16px;padding-bottom:5px;gap:6px}nav button{white-space:nowrap;padding:10px;flex-shrink:0}nav button span{display:inline}.topbar{flex-wrap:wrap;padding:12px 18px;gap:10px;min-height:0}.top-actions{gap:12px}.topbar>div:first-child{font-size:12px}main{padding:20px 16px}.page-head{align-items:flex-start;flex-wrap:wrap}.page-head h1{font-size:26px}.services,.columns,.connection-grid,.form-grid{grid-template-columns:1fr}.metrics{gap:10px}.metric{padding:16px}.metric .value{font-size:23px}.service-card{min-height:205px}.login-stage{grid-template-columns:1fr;padding:28px 20px;gap:28px}.login-intro .brand{margin-bottom:28px}.login-intro h1{font-size:32px}.login-panel{padding:26px}.chips{margin-top:20px}.list-row{align-items:flex-start;flex-wrap:wrap}.list-row .actions{flex-shrink:1}input,select{font-size:16px}.panel{padding:20px}.section-head{flex-wrap:wrap}}

textarea{width:100%;background:var(--surface,#111c2c);color:inherit;border:1px solid #304056;border-radius:8px;padding:12px;font:inherit;resize:vertical}fieldset{border:1px solid #304056;border-radius:8px;margin:16px 0}details{margin:20px 0}summary{cursor:pointer}.abs-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.lookup-row p{overflow-wrap:anywhere;white-space:pre-wrap}dialog{max-height:90vh;overflow:auto}@media(max-width:600px){.abs-metrics{grid-template-columns:1fr}}
/* Listening dashboard */
.listening-dashboard{--listen-accent:#69d3bd;max-width:1280px;margin:0 auto}.listen-heading{align-items:flex-start;margin:8px 0 20px}.listen-heading h2{font-size:28px;margin:8px 0}.listen-heading .eyebrow{color:var(--listen-accent)}.listen-hero{text-align:center;border:1px solid #31514d;border-radius:22px;background:radial-gradient(ellipse at top,#203c3c 0%,#15252d 48%,var(--panel) 100%);padding:35px 20px;margin-bottom:16px}.listen-hero .eyebrow{letter-spacing:3px;color:#a7bfbc}.listen-total{font-size:76px;line-height:1.3;font-weight:700;letter-spacing:-3px;font-variant-numeric:tabular-nums;margin:12px 0 5px}.listen-total span{font-size:27px;font-weight:400;color:#96b5b0;letter-spacing:0;margin:0 8px}.listen-hero p{margin:0;color:#a8bdbb}.listen-periods{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.listen-period{border:1px solid var(--line);background:var(--panel);border-radius:17px;padding:21px;text-align:center}.listen-period strong{display:block;font-size:24px;font-variant-numeric:tabular-nums;margin-bottom:7px}.listen-period span{color:var(--muted);font-size:13px}.listen-chart-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.listen-panel{border-radius:19px}.listen-panel .split{gap:16px}.listen-line{display:block;width:100%;max-height:290px;margin-top:18px;overflow:visible}.listen-line line{stroke:var(--line);stroke-dasharray:4 5}.listen-line text,.listen-heat text{fill:var(--muted);font:11px "Segoe UI",sans-serif}.listen-line polyline{fill:none;stroke:var(--listen-accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.listen-line .listen-area{fill:url(#listen-fill)}.listen-line circle{fill:var(--listen-accent);opacity:.12;stroke:transparent;stroke-width:10;cursor:help}.listen-line circle:hover,.listen-line circle:focus{opacity:1;outline:none;stroke:#69d3bd55}.listen-year-label{display:flex;gap:8px;align-items:center;margin:0}.listen-year-label select{width:100px;margin:0;padding:8px}.listen-heat-scroll{overflow-x:auto;margin-top:20px;padding-bottom:5px}.listen-heat{width:100%;max-height:200px;display:block}.listen-heat rect{cursor:help;stroke:transparent;stroke-width:1.5}.listen-heat rect:hover,.listen-heat rect:focus{stroke:#eef3fc;outline:none}.heat-0{fill:#223339;background:#223339}.heat-1{fill:#2c5752;background:#2c5752}.heat-2{fill:#387f72;background:#387f72}.heat-3{fill:#52a992;background:#52a992}.heat-4{fill:#8cdbc5;background:#8cdbc5}.heat-legend{display:flex;justify-content:flex-end;align-items:center;gap:5px;font-size:11px;color:var(--muted);margin-top:4px}.heat-legend i{width:12px;height:12px;border-radius:3px;display:block}.listen-section-title{margin:8px 0 16px;font-size:18px}.listen-activity{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:25px}.listen-activity-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:18px;display:flex;align-items:center;gap:14px}.listen-icon{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:11px;background:#24443f;color:var(--listen-accent);font-size:22px}.listen-activity-card strong{display:block;font-size:23px;font-variant-numeric:tabular-nums;margin-bottom:5px}.listen-activity-card div>span{display:block;color:var(--muted);font-size:12px}.listen-search-label{margin:0;font-size:12px;max-width:280px;width:100%}.listen-search-label input{margin-top:5px}.listen-table-wrap{width:100%;overflow-x:auto;margin-top:18px}.listen-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}.listen-table th{font-size:12px;color:var(--muted);font-weight:500;padding:12px 14px;border-bottom:1px solid var(--line)}.listen-table td{padding:17px 14px;border-bottom:1px solid #28334699;vertical-align:middle}.listen-table tbody tr:last-child td{border-bottom:0}.listen-table tbody tr:hover{background:#69d3bd08}.listen-table th button{background:transparent;border:0;padding:0;text-align:left;min-height:28px;color:var(--muted);font-size:12px;white-space:nowrap}.listen-table th button span{color:var(--listen-accent);margin-left:5px}.listen-time{white-space:nowrap;color:var(--listen-accent);font-variant-numeric:tabular-nums}.listen-share{display:flex;align-items:center;gap:12px;min-width:150px;font-variant-numeric:tabular-nums}.listen-share>div{height:5px;background:#293c40;border-radius:5px;flex:1;overflow:hidden}.listen-share>div>span{display:block;background:var(--listen-accent);height:100%;border-radius:5px}.listen-share>span{font-size:12px;color:var(--muted);width:45px;text-align:right}.listen-book-cell{display:flex;align-items:center;gap:14px;min-width:180px}.listen-book-cell strong{font-weight:500}.listen-book-link{border:0;background:transparent;padding:0;text-align:left;color:var(--ink);font-weight:500;min-height:28px}.listen-book-link:hover{color:var(--listen-accent);background:transparent}.listen-footnote{max-width:850px}.listen-heading .actions{flex-wrap:wrap}
@media(min-width:1500px){.listen-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.listen-chart-grid .panel{min-width:0}}
@media(max-width:1100px){.listen-activity{grid-template-columns:repeat(3,minmax(0,1fr))}.listen-activity-card{padding:16px}}
@media(max-width:650px){.listen-heading{flex-direction:column}.listen-total{font-size:57px}.listen-total span{font-size:21px;margin:0 4px}.listen-hero{padding:27px 12px}.listen-hero .eyebrow{font-size:10px;letter-spacing:2px}.listen-periods{gap:9px}.listen-period{padding:18px 8px}.listen-period strong{font-size:21px}.listen-activity{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.listen-activity-card{padding:15px 12px;gap:9px}.listen-activity-card:last-child{grid-column:1/-1}.listen-icon{width:34px;height:34px;font-size:18px}.listen-panel .split{align-items:flex-start;flex-wrap:wrap}.listen-table th,.listen-table td{padding:12px 9px}.listen-search-label{max-width:none}.listen-line text{font-size:12px}.listen-line{min-height:145px}.listen-table{font-size:13px}.listen-heading h2{font-size:25px}}

/* Keep chart intrinsic widths inside their own scroll areas. */
main,#service-content,.listening-dashboard,.listen-chart-grid{min-width:0;max-width:100%}
.listen-chart-grid{width:100%}.listen-chart-grid>.panel{width:100%;min-width:0;overflow:hidden}
.listen-line-scroll,.listen-heat-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#4e8a7e #17252d}
.listen-line-scroll{margin-top:18px;padding-bottom:6px}.listen-line-scroll .listen-line{width:100%;min-width:560px;height:auto;min-height:0;max-height:none;margin-top:0;overflow:hidden}
.listen-heat-scroll .listen-heat{height:auto;max-height:none}.listen-chart-grid .helper{overflow-wrap:anywhere}
.listen-line-scroll:focus-visible,.listen-heat-scroll:focus-visible{outline:2px solid var(--listen-accent);outline-offset:2px;border-radius:5px}

.application-logo{display:block;width:23px;height:23px;object-fit:contain;flex-shrink:0}.app-icon .application-logo{width:32px;height:32px}.application-title,.page-head h1{display:flex;align-items:center;gap:10px}.page-head h1 .application-logo{width:30px;height:30px}

.abs-library-book{display:flex;gap:14px;align-items:center;min-width:0;flex:1}.abs-library-book>div:last-child{min-width:0}.abs-cover{width:58px;height:78px;border-radius:8px;flex-shrink:0;background:#203039;border:1px solid #344851;position:relative;overflow:hidden;display:grid;place-items:center}.abs-cover-placeholder{color:#729589;font-size:27px}.abs-cover-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.abs-cover-large{width:120px;height:170px;border-radius:12px}.abs-book-detail-head{display:flex;align-items:flex-start;gap:22px;margin-bottom:24px}.abs-book-detail-head>div:last-child{flex:1;min-width:0}.abs-book-detail-head .split{flex-wrap:wrap}.abs-library-row>button{flex-shrink:0}@media(max-width:600px){.abs-cover-large{width:90px;height:130px}.abs-book-detail-head{gap:14px}.abs-library-row{gap:10px}.abs-library-row>button{padding:9px;font-size:12px}}

.workspace main{width:100%;max-width:1560px}.application-title,.page-head h1{min-width:0;overflow-wrap:anywhere}

.episode-filters{display:grid;grid-template-columns:1fr 1fr 2fr;gap:16px;margin:16px 0}.episode-filters label{margin:0}.episode-sub{display:block;font-size:12px;margin-top:6px}.episode-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:150px}.episode-table td:first-child{min-width:200px}.episode-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.episode-detail-grid strong{display:block;margin-top:6px;font-weight:500}.show-overview{white-space:pre-wrap;overflow-wrap:anywhere}dialog.release-dialog{width:min(1100px,calc(100% - 28px))}.release-table{min-width:800px}.release-table td:first-child{min-width:280px;max-width:440px;overflow-wrap:anywhere}.release-warning{font-size:12px;color:var(--amber);margin-top:8px;line-height:1.5}@media(max-width:650px){.episode-filters{grid-template-columns:1fr 1fr}.episode-filters label:last-child{grid-column:1/-1}.episode-table{min-width:660px}}

@media(max-width:650px){.arr-library-row{flex-wrap:wrap}.arr-library-row>.abs-library-book{flex-basis:100%}.arr-library-row>.actions{width:100%;justify-content:flex-end}}

.plex-signin-link{display:inline-block;background:#e5a00d;color:#17120b;border-radius:9px;padding:12px 18px;font-weight:600;text-decoration:none;margin:8px 0}#plex-addresses{margin:14px 0}#plex-addresses button{font-size:12px;overflow-wrap:anywhere;text-align:left}

.stats-user-select{margin:0;min-width:150px;max-width:260px}.stats-user-select select{margin-top:5px;width:100%}.listen-heading .actions .stats-user-select{margin:0}#listen-user{min-width:170px}

.library-format-bar{width:65%;max-width:550px;display:flex;align-items:center;gap:16px}.library-format-bar .bar{flex:1;margin:0}.library-format-bar>span{min-width:80px;font-size:12px;color:var(--muted)}
/* Stats controls align at field level, below their labels. */
.listen-heading{align-items:flex-end;gap:24px}.listen-heading>.actions{align-items:flex-end;justify-content:flex-end;gap:12px}.listen-heading .actions .stats-user-select{display:flex;flex-direction:column;gap:6px}.listen-heading .stats-user-select select{margin:0;min-height:44px}.listen-heading .actions>button{min-height:44px}.listen-periods{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:stretch}.listen-period{display:flex;flex-direction:column;justify-content:center;min-width:0}.listen-activity-card{min-width:0}.search-result{display:flex;align-items:flex-start;gap:18px}.search-result>.abs-cover{width:80px;height:115px}.search-result>div:last-child{flex:1;min-width:0}.listen-panel>.split{align-items:flex-end}.library-format-bar{min-width:0}
@media(max-width:650px){.listen-heading{align-items:stretch}.listen-heading>.actions{justify-content:flex-start;width:100%}.listen-heading .stats-user-select{flex:1;min-width:140px;max-width:none}.listen-heading .actions>button{flex:1}.listen-periods{grid-template-columns:repeat(2,minmax(0,1fr))}.search-result{gap:12px}.search-result>.abs-cover{width:62px;height:90px}}

#abs-user-form>.helper{margin:16px 0 20px}#abs-user-form>.check{margin:16px 0}#abs-user-form fieldset,#plex-sharing-form fieldset{padding:16px;margin:20px 0}#abs-user-form fieldset .check,#plex-sharing-form fieldset .check{margin:8px 0}.dialog-actions{display:flex;align-items:center;gap:12px;margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}#close-modal{margin-top:18px}#plex-sharing-form details{margin:22px 0}#plex-sharing-form summary{padding:8px 0}

/* Bounded queues keep each application within its own panel. */
.download-panel{min-width:0}.download-panel>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;font-weight:600}.download-panel>summary:before,.abs-library-group>summary:before{content:'▸';color:var(--muted)}.download-panel[open]>summary:before,.abs-library-group[open]>summary:before{content:'▾'}.download-panel>summary .muted{margin-left:auto}.download-panel-toolbar{margin:16px 0}.download-scroll{max-height:calc(var(--download-limit,5) * 110px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.download-scroll>.list-row{box-sizing:border-box;min-height:110px}.torrent-info{flex:1;min-width:0}.torrent-info strong{overflow-wrap:anywhere}.abs-library-group{border-top:1px solid var(--line);padding:16px 0}.abs-library-group>summary{display:flex;align-items:center;gap:12px;cursor:pointer}.abs-library-group>summary .muted{margin-left:auto}

/* Align labelled selectors and adjacent buttons along the same baseline. */
button,select{min-height:44px}
.split{align-items:flex-end;flex-wrap:wrap}
.split>h2,.split>h3{margin-bottom:0}
.split>.actions,.page-head>.actions{align-items:flex-end}
.actions>label{margin:0}
.actions>label>select{min-height:44px}
.download-scroll{padding:0 12px 0 2px;border-radius:8px;scrollbar-width:thin;scrollbar-color:#536180 var(--panel)}
.download-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.download-scroll::-webkit-scrollbar{width:10px;height:10px}
.download-scroll::-webkit-scrollbar-track{background:var(--panel);border-radius:8px}
.download-scroll::-webkit-scrollbar-thumb{background:#536180;border:2px solid var(--panel);border-radius:8px}
.torrent-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px}
.torrent-actions{display:grid;grid-template-columns:80px 80px 128px;align-items:center;gap:10px}
.torrent-actions>button{white-space:nowrap;width:100%}
@media(max-width:1000px){.torrent-row{grid-template-columns:minmax(0,1fr)}.torrent-actions{justify-content:start;max-width:100%;grid-template-columns:minmax(60px,80px) minmax(60px,80px) minmax(105px,128px);gap:8px}}
/* Presentation only: keep entered values and API metadata intact. */
button,h1,h2,h3,h4,h5,h6,label,legend,summary,thead th,.application-title,.nav-label,.eyebrow,.plex-signin-link,.metric .muted,.listen-period>span,.listen-activity-card>div>span,.list-row strong,.listen-book-cell strong{text-transform:capitalize}
input,select,textarea,label .helper,h1 .badge,h2 .badge,h3 .badge,h3 .small{ text-transform:none }

.torrent-sort{align-items:flex-end;gap:10px}.torrent-sort label{min-width:170px}.torrent-sort select{min-height:44px}.torrent-totals{font-variant-numeric:tabular-nums}.torrent-info .muted{overflow-wrap:anywhere}.torrent-info strong{text-transform:none}

.torrent-group>h3{margin-bottom:16px}.torrent-group>.helper{margin-top:-4px;margin-bottom:16px}

.brand-logo{width:38px;height:38px;object-fit:contain;flex-shrink:0;margin-right:6px}.brand-wordmark{color:#eef3fc}.brand-wordmark>span{color:#ab86ef}.login-intro .brand-logo{width:50px;height:50px}.abs-listening-info{flex:1;min-width:0}.abs-current-title{display:block;margin-top:6px;font-weight:500;overflow-wrap:anywhere}.abs-listening-row>.abs-library-book{flex:1;min-width:0}.abs-listening-row .bar{min-width:160px}.abs-listening-row .abs-library-book{align-items:center}

#login-form{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}#login-form h3{margin-bottom:8px}#plex-dashboard-cancel{margin-top:12px}#plex-dashboard-link{margin-top:16px}.login-panel .notice{margin-top:20px;font-size:12px}.login-stage{align-items:start}

/* Phone layouts: reserve a complete row for actions rather than squeezing text. */
@media (max-width:760px) {
  .panel,.panel>.split,.page-head,.page-head>div { min-width:0; }
  .page-head>.actions { width:100%; }
  .abs-listening-row { display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start; }
  .abs-listening-row>.abs-library-book { display:grid;grid-template-columns:58px minmax(0,1fr);width:100%;gap:14px;align-items:start; }
  .abs-listening-info:only-child { grid-column:1/-1; }
  .abs-listening-info,.abs-current-title { min-width:0;line-height:1.45; }
  .abs-listening-row .bar { min-width:0;width:100%; }
  .abs-listening-row>.actions { width:100%;min-width:0;justify-content:space-between;align-items:center; }
  .abs-listening-row>.actions>button { min-height:44px; }
  .service-library-row { display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start; }
  .service-library-row>.actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;min-width:0;align-items:stretch; }
  .service-library-row>.actions>button { width:100%;min-width:0;white-space:normal;line-height:1.35;overflow-wrap:anywhere; }
  .history-row { display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-items:start; }
  .history-row>strong { display:block;min-width:0;line-height:1.5;overflow-wrap:anywhere; }
  .history-row>.muted { margin:0;justify-self:start; }
  .abs-library-row { display:grid;grid-template-columns:minmax(0,1fr);gap:12px; }
  .abs-library-row>.abs-library-book { display:grid;grid-template-columns:58px minmax(0,1fr);width:100%;align-items:start; }
  .abs-library-row>button { justify-self:start;min-height:44px; }
  .listen-heading { display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:16px; }
  .listen-heading>div { width:100%;min-width:0; }
  .listen-heading h2 { overflow-wrap:anywhere; }
  .listen-heading>.actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0;gap:10px;align-items:stretch; }
  .listen-heading .actions>label,.listen-heading .actions .stats-user-select { grid-column:1/-1;flex:none;width:100%;min-width:0;max-width:none;margin:0; }
  .listen-heading .actions select,#listen-user { width:100%;min-width:0;max-width:100%; }
  .listen-heading .actions>button { width:100%;min-width:0;flex:none;white-space:normal;line-height:1.35;overflow-wrap:anywhere; }
  .listen-periods { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .listen-periods>.listen-period:last-child:nth-child(odd) { grid-column:1/-1; }
  .listen-period strong { overflow-wrap:anywhere; }
  .listen-total { font-size:clamp(32px,12vw,52px);letter-spacing:-1.5px; }
  .listen-total span { font-size:20px; }
  .listen-panel>.split>h3 { min-width:0; }
}

.recent-carousel{--recent-card-width:clamp(130px,15vw,160px);--recent-poster-height:calc(var(--recent-card-width)*1.5);grid-auto-columns:var(--recent-card-width);align-items:stretch}
.recent-carousel .recent-card{display:grid;grid-template-rows:auto 36px 36px 18px;gap:8px;align-self:start;height:auto;padding:0;border:0;background:transparent}
.recent-carousel .recent-card .abs-cover{width:100%;height:auto;aspect-ratio:2/3}
.recent-carousel .recent-card .abs-cover-image{object-fit:contain}
.recent-carousel .recent-card>strong{font-size:13px;line-height:18px;margin:0;-webkit-line-clamp:2}
.recent-carousel .recent-card>span{font-size:12px;line-height:18px;margin:0;-webkit-line-clamp:2}
/* Library shelves: covers and captions, without framed cards. */
.media-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:26px 20px;margin-top:24px;min-width:0}
.library-tile{display:flex;flex-direction:column;gap:7px;align-items:stretch;align-self:start;min-width:0;text-align:left;background:transparent;border:0;border-radius:4px;padding:0;color:var(--ink);text-transform:none}
.library-tile:hover{background:transparent;color:var(--accent)}
.library-tile .abs-cover{width:100%;height:auto;aspect-ratio:2/3;border:0;border-radius:4px;box-shadow:0 3px 8px #0007}
.library-tile strong{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none}
.library-tile>.muted{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-tile .square-cover,.audiobook-tile .abs-cover,.abs-recent-book .abs-cover{aspect-ratio:1;height:auto}
.audiobook-tile .abs-cover-image,.abs-recent-book .abs-cover-image,.match-cover .abs-cover-image{object-fit:contain}
.recent-card{background:transparent;border:0;padding:0;border-radius:4px;text-transform:none}
.recent-card .abs-cover{border:0;border-radius:4px;box-shadow:0 3px 8px #0007}
.recent-card strong{text-transform:none;font-size:13px;font-weight:500}
.library-name{background:transparent;border:0;padding:0;min-height:28px;text-align:left;text-transform:none}
.library-toolbar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:20px 0}
.library-toolbar label{margin:0;min-width:130px}
.library-toolbar label:first-child{flex:1}
.plex-library-layout{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:16px;align-items:start}
.plex-library-layout .media-library-grid{margin-top:0}
.alphabet-index{position:sticky;top:16px;display:flex;flex-direction:column;align-items:stretch;max-height:85vh;overflow-y:auto}
.alphabet-index button{min-height:23px;height:23px;border:0;background:transparent;border-radius:4px;padding:2px;font-size:11px;color:var(--muted)}
.alphabet-index button[aria-pressed=true]{background:#a69aff22;color:var(--accent)}
.library-pages{justify-content:flex-end;margin-top:24px}
.plex-item-detail{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px}
.plex-item-detail .abs-cover{width:100%;height:auto;aspect-ratio:2/3}
.plex-item-detail p{overflow-wrap:anywhere}
.qbit-transfer-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:12px}
.qbit-transfer-totals .metric{min-width:0}
.qbit-transfer-totals .value{overflow-wrap:anywhere}
.temperature-bars{display:grid;gap:14px;margin-top:20px}
.temperature-bar-row{display:grid;grid-template-columns:minmax(100px,1.1fr) minmax(70px,2fr) 60px;gap:12px;align-items:center;font-size:12px}
.temperature-bar-row>span{overflow-wrap:anywhere;color:var(--muted)}
.temperature-bar-row>strong{text-align:right;font-variant-numeric:tabular-nums}
.temperature-bar-track{height:16px;background:#283247;border-radius:4px;overflow:hidden}
.temperature-bar-track>span{display:block;height:100%;background:var(--accent);border-radius:4px}
.temperature-bar-scale{display:flex;justify-content:space-between;margin-top:16px;font-size:11px;color:var(--muted)}
.docker-row>div:last-child{text-align:right}
@media(max-width:760px){.qbit-transfer-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.qbit-transfer-totals .value{font-size:20px}.temperature-bar-row{grid-template-columns:minmax(80px,1fr) minmax(60px,1fr) 54px;gap:8px}.docker-row>div:last-child{text-align:left}.media-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.library-toolbar label{min-width:0}.library-toolbar label:first-child{flex-basis:100%}.library-toolbar>button{flex:1}.library-toolbar label:nth-child(2){flex:1}.plex-library-layout{display:flex;flex-direction:column}.plex-library-layout>.media-library-grid{width:100%}.alphabet-index{position:static;order:-1;flex-direction:row;max-width:100%;overflow-x:auto;overflow-y:hidden;gap:3px}.alphabet-index button{width:28px;min-width:28px;min-height:36px}.plex-item-detail{grid-template-columns:90px minmax(0,1fr);gap:16px}.library-browser>.split>.actions{display:flex}.library-browser>.split>.actions>label{width:100%}}

/* Shared layout rules for pages, lists and dialogs. */
.page-head:has(> .actions:empty){gap:0}
.page-head>.actions:empty{display:none}
.page-head>div:first-child,.split>div,.metric,.service-card,.panel,fieldset{min-width:0}
.panel>.split{margin-bottom:18px;align-items:center}
.panel>.split>div>p:last-child{margin-bottom:0}
.panel>.split:last-child{margin-bottom:0}
.panel>.search{margin-top:0}
.list-row{flex-wrap:nowrap}
.list-row>strong,.list-row .muted,.metric .muted,.topbar span,.helper,.notice,.login-foot{overflow-wrap:anywhere}
.list-row>.actions{justify-content:flex-end}
.management-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center}
.management-row>button{width:100%}
.queue-toolbar{display:flex;justify-content:space-between;align-items:start;gap:16px;margin:18px 0 12px;flex-wrap:wrap}
.queue-toolbar>.actions{display:grid;gap:10px;align-items:stretch}
.queue-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
.queue-add{grid-template-columns:repeat(2,minmax(0,1fr))}
.queue-toolbar button{width:100%;height:100%;line-height:1.35}
.service-library-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
.service-library-row>.actions{display:grid;grid-template-columns:repeat(2,minmax(145px,1fr));align-items:stretch}
.service-library-row button{width:100%;height:100%}
.abs-library-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
.arr-library-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
.arr-library-row>.actions{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));align-items:stretch}
.arr-library-row>.actions>button{height:100%}
.history-row{align-items:start}
.history-row>strong{min-width:0;flex:1}
.history-row>.muted{flex-shrink:0}
.listen-heading>.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:300px;max-width:540px;flex:1;align-items:end}
.listen-heading>div:first-child{flex:1;min-width:0}
.listen-heading .stats-user-select{min-width:0;max-width:none;width:100%}
.listen-heading .stats-user-select:only-of-type{grid-column:1/-1}
#listen-user{min-width:0}
.listen-heading button{height:100%;line-height:1.35}
.library-format-bar{width:auto;flex:1;min-width:150px}
.listen-activity-card>div{min-width:0}
.listen-activity-card strong{overflow-wrap:anywhere}
.listen-share>span{flex-shrink:0;width:52px;white-space:nowrap}
.torrent-sort>button{align-self:end}
.download-panel-toolbar{justify-content:flex-end}
.download-panel-toolbar>.torrent-sort{margin-right:auto}
.metric-temperature{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.5;overflow-wrap:anywhere}
.metric-temperature strong,.sensor-reading strong,.drive-temperatures strong{font-weight:500;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.drive-temperatures{display:grid;gap:6px;margin-top:10px;line-height:1.5}
.sensor-reading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:9px 0;font-size:12px;border-bottom:1px solid var(--line)}
.sensor-reading>span{min-width:0;overflow-wrap:anywhere;color:var(--muted)}
.sensor-reading>strong{flex-shrink:0}
.cpu-temperatures{margin:16px 0}
.plex-stream-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.plex-stream-info{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;align-items:center;min-width:0}
.plex-poster{width:72px;height:108px}
.plex-poster.music{height:72px}
.plex-stream-text{min-width:0;line-height:1.5}
.plex-stream-text strong{text-transform:none}
@media(max-width:760px){.plex-stream-row{grid-template-columns:minmax(0,1fr);gap:14px}.plex-stream-row>button{width:100%}.plex-stream-info{grid-template-columns:64px minmax(0,1fr);gap:14px}.plex-poster{width:64px;height:96px}.plex-poster.music{height:64px}}
.cpu-temperatures>summary{padding:8px 0;font-size:12px;color:var(--muted)}
.sensor-readings{max-height:300px;overflow:auto;padding-right:8px}
.listen-table td{overflow-wrap:anywhere;max-width:420px}
.listen-table{min-width:480px}
.listen-table-wrap,.download-scroll{max-width:100%;min-width:0}
.episode-detail-grid>div{min-width:0;overflow-wrap:anywhere}
.check{align-items:flex-start;line-height:1.5}
.check>input{flex-shrink:0;margin-top:1px}
textarea{display:block;margin-top:8px}
form>button[type=submit]{margin-top:20px}
.dialog-actions{margin-top:24px}
.dialog-actions>button[type=submit]{margin-top:0}
#close-modal{display:block;margin-left:auto;min-width:100px}
.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
.inline-form>button[type=submit]{margin:0}
dialog{padding:24px;max-width:calc(100% - 24px);max-height:calc(100dvh - 32px);overflow-wrap:anywhere}
.login-stage{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.login-stage>*,.login-panel{min-width:0}
@media(max-width:1100px){
 .page-head{align-items:flex-start;flex-direction:column;gap:18px}
 .page-head>.actions{width:100%}
 .listen-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
 .listen-heading>.actions{width:100%;max-width:none;min-width:0}
 .arr-library-row{grid-template-columns:minmax(0,1fr)}
 .arr-library-row>.actions{width:100%;justify-content:stretch}
 .queue-toolbar{display:grid;grid-template-columns:minmax(0,1fr)}
 .topbar{flex-wrap:wrap}
 .topbar>div:first-child{min-width:0;flex-wrap:wrap;gap:6px 12px}
 .top-actions{margin-left:auto;min-width:0}
 .connection-grid{grid-template-columns:minmax(0,1fr)}
 .listen-activity{grid-template-columns:repeat(2,minmax(0,1fr))}
 .listen-activity-card:last-child:nth-child(odd){grid-column:1/-1}
}
@media(max-width:760px){
 .login-stage{grid-template-columns:minmax(0,1fr)}
 .login-intro h1{font-size:30px}
 .topbar>div:first-child{width:100%}
 .top-actions{width:100%;justify-content:space-between}
 .page-head>.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
 .page-head>.actions>:only-child{grid-column:1/-1}
 .page-head>.actions>label{width:100%;min-width:0}
 .page-head>.actions>button{width:100%;line-height:1.35}
 .panel>.split{display:flex;flex-direction:column;align-items:stretch;gap:14px}
 .panel>.split>button{width:100%}
 .panel>.split>.badge{align-self:flex-start}
 .panel>.split>.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;align-items:stretch}
 .panel>.split>.actions>button{width:100%;line-height:1.35}
 .panel>.split>.actions>label{grid-column:1/-1;width:100%;min-width:0}
 .list-row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
 .list-row>.actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
 .list-row>.actions>button{width:100%;line-height:1.35}
 .service-library-row>.actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .management-row{gap:12px}
 .management-row>button,.abs-library-row>button{width:100%;justify-self:stretch}
 .abs-listening-row>.actions{display:flex;justify-content:space-between;align-items:center}
 .torrent-row>.torrent-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:8px}
 .torrent-actions>button{padding:10px 8px;white-space:normal}
 .history-row{gap:6px}
 .queue-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
 .queue-toolbar button{padding:10px 8px}
 .torrent-sort{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:none}
 .torrent-sort label{min-width:0;grid-column:auto!important}
 .torrent-sort button{height:44px}
 .download-panel-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
 .download-panel-toolbar>button{width:100%}
 .download-panel-toolbar>.helper{display:none}
 .download-panel>summary{gap:8px;flex-wrap:wrap}
 .listen-heading>.actions{max-width:none}
 .listen-year-label{justify-content:space-between}
 .listen-panel>.split>.listen-year-label{width:100%}
 .library-format-bar{width:100%;min-width:0}
 .library-browse-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
 .library-browse-controls>label{grid-column:1/-1}
 #arr-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}
 #arr-pages>span{grid-column:1/-1}
 .connection-grid form>.actions,.dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
 .dialog-actions>:only-child{grid-column:1/-1}
 .dialog-actions button{width:100%}
 .abs-book-detail-head{display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px}
 .abs-book-detail-head .abs-cover-large{width:70px;height:100px}
 .abs-book-detail-head h2{font-size:21px;line-height:1.3}
 .abs-book-detail-head .actions,.abs-book-detail-head .split{display:flex;flex-direction:column;align-items:stretch}
 .abs-book-detail-head button{width:100%;line-height:1.35}
 .episode-detail-grid{gap:16px}
 dialog{padding:20px}
}
aside{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;overflow-y:auto;z-index:10}
@media(max-width:760px){aside{height:auto;max-height:45vh;max-height:45dvh}}
.recent-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(130px,15vw,160px);gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:4px 2px 12px;margin-top:16px;min-width:0;max-width:100%}
.recent-carousel:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}
.recent-card{display:flex;flex-direction:column;align-items:stretch;align-self:start;gap:8px;min-width:0;text-align:left;padding:8px;scroll-snap-align:start;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.recent-card .abs-cover{width:100%;height:auto;aspect-ratio:2/3}
.recent-card strong,.recent-card>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.recent-carousel>.empty{grid-column:1/-1;white-space:normal;text-align:left;padding:12px 0}
.panel>.split.recent-heading{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:12px}
.panel>.split.recent-heading>h3{min-width:0;margin:0}
.panel>.split.recent-heading>.actions{display:flex;width:auto;flex-shrink:0;gap:8px}
.panel>.split.recent-heading>.actions>button{width:40px;min-width:40px;padding:8px}
.sab-download-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}
.sab-download-totals .metric{min-width:0}
.sab-download-totals .value{font-size:clamp(18px,3vw,28px);overflow-wrap:anywhere}
.sab-history-row>div{min-width:0;flex:1}
.sab-history-row time,.sab-history-row>div>.small{display:block;margin-top:6px;overflow-wrap:anywhere}
#torrent-add-form textarea{width:100%;min-width:0;box-sizing:border-box;resize:vertical}
.import-warnings{margin:10px 0;padding-left:20px;color:#f0c783;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.import-attention .list-row>div{min-width:0;flex:1}
.import-attention .list-row>button{flex-shrink:0}
.import-download-title{overflow-wrap:anywhere}
.import-files{display:grid;gap:16px;margin:20px 0}
.import-file{min-width:0;margin:0;padding:16px;border:1px solid var(--border,#30394b);border-radius:12px}
.import-file-name{margin:0;align-items:flex-start;line-height:1.5;overflow-wrap:anywhere}
.import-file-name input{flex-shrink:0;margin-top:4px}
.import-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.import-fields label{min-width:0;margin:0}
.import-fields select{max-width:100%;width:100%}
.import-fields select[multiple]{height:auto;min-height:92px;padding:6px}
.import-fields select[multiple] option{padding:6px;white-space:normal;overflow-wrap:anywhere}
.import-episodes{grid-column:1/-1}
@media(max-width:600px){.import-fields{grid-template-columns:minmax(0,1fr)}.import-file{padding:12px}}
@media(max-width:360px){
 .metrics{grid-template-columns:minmax(0,1fr)}
 .panel{padding:16px}
 .queue-controls{grid-template-columns:minmax(0,1fr)}
 .queue-add{grid-template-columns:minmax(0,1fr)}
 .listen-activity{grid-template-columns:minmax(0,1fr)}
 .listen-activity-card:last-child{grid-column:auto}
 .connection-grid form>.actions,.dialog-actions{grid-template-columns:minmax(0,1fr)}
 .abs-book-detail-head{grid-template-columns:minmax(0,1fr)}
}
/* Cover proportions and caption rows are scoped to each application. */
#abs-recent-carousel .recent-card .abs-cover{aspect-ratio:1}
.recent-carousel .recent-card .abs-cover{background:transparent;min-height:0;overflow:hidden}
.recent-carousel .recent-card .abs-cover-image{width:100%;height:100%;object-fit:contain}
.recent-carousel .recent-card>span:last-child{line-height:18px;-webkit-line-clamp:1}
.recent-carousel{padding-bottom:20px}
.service-library-row>.actions{display:flex;flex-wrap:wrap;width:auto;max-width:100%;gap:10px;flex-shrink:0}
.service-library-row>.actions>button{width:auto;flex:0 1 auto;min-width:0;white-space:normal}
.service-library-row{flex-wrap:wrap}
.service-library-row>div:first-child{flex:1 1 180px}
.service-library-row>.actions{flex:0 1 auto}
.audiobook-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:24px;min-width:0}
.abs-group-tile{display:flex;flex-direction:column;gap:8px;background:transparent;border:0;padding:0;min-width:0;text-transform:none}
.book-stack{display:block;position:relative;width:100%;aspect-ratio:1.9;overflow:hidden;border-radius:5px;box-shadow:0 3px 8px #0007;background:var(--panel2)}
.stack-layer{position:absolute;top:0;bottom:0;left:calc(var(--stack-position) * 48% / max(1,var(--stack-count) - 1));width:52%;z-index:calc(20 - var(--stack-position));box-shadow:3px 0 7px #0008}
.stack-layer .abs-cover{width:100%;height:100%;border:0;border-radius:0}
.stack-layer .abs-cover-image{object-fit:cover}
.stack-count{position:absolute;right:7px;top:7px;z-index:30;background:#a77e31;border-radius:12px;padding:3px 6px;color:white;font-size:12px}
.abs-group-tile>strong{overflow-wrap:anywhere}
.alphabet-target{outline:2px solid var(--accent);outline-offset:5px;scroll-margin:140px}
.temperature-legend{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:12px;margin-top:12px;max-height:180px;overflow:auto}
.temperature-legend>span{overflow-wrap:anywhere;min-width:0;color:var(--muted)}
.temperature-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.temperature-legend strong{color:var(--ink);white-space:nowrap}
.change-log{max-height:65vh;max-height:65dvh;overflow-y:auto;padding-right:16px;overscroll-behavior:contain}
.change-log section{border-top:1px solid var(--line);padding:20px 0 8px}
.change-log h3{color:var(--accent)}
.change-log p{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:760px){.service-library-row>.actions{width:100%;flex-basis:100%}.service-library-row>.actions>button{flex:0 1 auto}.audiobook-groups{width:100%}}
.library-sentinel{display:flex;align-items:center;justify-content:center;gap:12px;min-height:64px;padding:18px 0 0;color:var(--muted);font-size:12px}
.recent-carousel{scrollbar-width:thin;scrollbar-color:#536180 var(--panel)}
.recent-carousel::-webkit-scrollbar{width:10px;height:10px}
.recent-carousel::-webkit-scrollbar-track{background:var(--panel);border-radius:8px}
.recent-carousel::-webkit-scrollbar-thumb{background:#536180;border:2px solid var(--panel);border-radius:8px}
.plex-stream-title{background:transparent;border:0;min-height:0;padding:0;text-align:left;font-weight:600;text-transform:none;overflow-wrap:anywhere}
.movie-field .check{margin-top:8px;font-size:12px}
.movie-tags{margin-top:24px}
#plex-movie-prefs>button,#plex-movie-art>button{margin-top:20px}
.plex-stream-platform{font-size:12px;overflow-wrap:anywhere}
.plex-playback-progress{height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin:8px 0 4px;width:100%}
.plex-playback-progress>span{height:100%;display:block;background:var(--accent);transition:width 1s linear}
.plex-stream-text{flex:1;min-width:0}
@media(prefers-reduced-motion:reduce){.plex-playback-progress>span{transition:none}}
.plex-stream-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px}
.plex-state-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:20px;font-size:12px;line-height:1.4;font-weight:650;color:var(--ink);background:var(--panel2);white-space:nowrap}
.plex-state-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.plex-state-playing{color:var(--green);background:#67d5a21c;border-color:#67d5a24d}
.plex-state-paused{color:#ffb05c;background:#ff9c351c;border-color:#ff9c354d}
.plex-state-buffering{color:#ff7777;background:#ff5c5c1c;border-color:#ff5c5c4d}
.library-viewport{min-width:0;width:100%;height:55vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;overflow-anchor:none;padding:6px 14px 12px 6px}
.library-viewport .media-library-grid{margin-top:0}
.library-top-sentinel{min-height:1px;text-align:center;color:var(--muted);font-size:12px}
.library-top-sentinel:not(:empty){padding:10px}
.library-browser .alphabet-index{position:static;max-height:60vh;flex-shrink:0}
#modal.wide-editor{width:min(1160px,calc(100vw - 48px));max-width:calc(100vw - 32px)}
#modal.wide-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px}
#modal.wide-editor textarea{min-height:100px}
#modal.wide-editor textarea[name=description],#modal.wide-editor textarea[name=summary]{min-height:180px}
#modal,.library-viewport,#modal textarea{scrollbar-width:thin;scrollbar-color:#536180 var(--panel)}
#modal::-webkit-scrollbar,.library-viewport::-webkit-scrollbar,#modal textarea::-webkit-scrollbar{width:10px;height:10px}
#modal::-webkit-scrollbar-track,.library-viewport::-webkit-scrollbar-track,#modal textarea::-webkit-scrollbar-track{background:var(--panel);border-radius:8px}
#modal::-webkit-scrollbar-thumb,.library-viewport::-webkit-scrollbar-thumb,#modal textarea::-webkit-scrollbar-thumb{background:#536180;border:2px solid var(--panel);border-radius:8px}
.history-title{padding:0;min-height:28px;background:transparent;border:0;text-align:left;overflow-wrap:anywhere;max-width:100%;font-weight:600;text-transform:none}
.download-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.download-detail-grid dt{font-size:12px;color:var(--muted);margin-bottom:6px}
.download-detail-grid dd{margin:0;overflow-wrap:anywhere}
.download-stage{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}
.download-stage p{font-size:13px;overflow-wrap:anywhere}
@media(max-width:760px){.plex-library-layout>.library-viewport{width:100%}.library-browser .alphabet-index{max-height:none}.library-viewport{padding-right:8px}#modal.wide-editor{width:calc(100vw - 32px)}#modal.wide-editor .form-grid{grid-template-columns:minmax(0,1fr);gap:4px}.download-detail-grid{grid-template-columns:minmax(0,1fr)}}
.service-card.service-offline{background:#351e29;border-color:#bf5763;box-shadow:inset 0 0 0 1px #ff777724}
.service-card.service-offline .app-icon{background:#ff777716}
.service-card.service-offline>button{border-color:#97505d;background:#452632}
.service-card.service-offline>button:hover{background:#59303e}
body.library-open{overflow:hidden}
#modal.wide-editor .movie-field:has(textarea[name=summary]){grid-column:1/-1}
.alphabet-index{scrollbar-width:thin;scrollbar-color:#536180 var(--panel)}
@media(max-width:760px){body.library-open #content>.page-head{display:none}body.library-open main{padding-top:16px}.library-browser .library-toolbar{gap:10px;margin:14px 0}.library-browser>.split{gap:10px}}
@media(max-height:650px){body.library-open .topbar,body.library-open #content>.page-head{display:none}body.library-open main{padding-top:12px}}

/* Library scale and compact mobile navigation. */
.plex-detail-actions{gap:12px;margin-top:16px;flex-wrap:wrap}
.library-size{margin:0;min-width:140px;max-width:180px;flex:0 1 180px}
.library-size output{float:right;font-variant-numeric:tabular-nums}
.library-size input{padding:0;min-height:28px;accent-color:var(--accent);cursor:pointer}
.library-viewport .scalable-library{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--poster-width)),1fr))}
.library-viewport .scalable-library.audiobook-groups{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--group-width)),1fr))}
.scalable-library .library-tile strong,.scalable-library .abs-group-tile>strong{font-size:var(--poster-title)}
.scalable-library .library-tile>.muted,.scalable-library .abs-group-tile>.muted{font-size:var(--poster-caption)}
.mobile-navigation-label{display:none}
@media(max-width:760px){aside #nav,aside>.nav-label{display:none}aside .mobile-navigation-label{display:block;margin:14px 0 0;width:100%;max-width:100%}.mobile-navigation-label select{margin-top:6px;min-height:44px;width:100%}aside{flex-wrap:wrap}aside .brand{width:100%}.library-browser>.split>.actions>.library-size{width:auto;flex:1 1 140px;max-width:200px}}

.sab-download-totals{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.sab-download-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.sab-download-totals>.metric:first-child{grid-column:1/-1}}
.sab-item-speed{font-variant-numeric:tabular-nums}
.library-size input[type=range]{appearance:none;background:transparent;border:0;height:28px;min-height:28px;margin-top:4px}
.library-size input[type=range]::-webkit-slider-runnable-track{height:6px;background:#374258;border-radius:6px}
.library-size input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;margin-top:-5px;background:var(--accent);border:2px solid var(--panel);border-radius:50%;box-shadow:0 0 0 1px var(--accent)}
.library-size input[type=range]::-moz-range-track{height:6px;background:#374258;border-radius:6px}
.library-size input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border:2px solid var(--panel);border-radius:50%}
@media(max-width:760px){.library-browser>.split>.actions>.library-size{flex:0 1 140px;max-width:140px}}

.notification-enable{margin:0;min-height:44px}
.notification-event-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.notification-events{border:1px solid var(--line);border-radius:12px;min-width:0;padding:12px 16px 18px}
.notification-events legend{padding:0 6px;font-weight:600;color:var(--ink)}
.notification-choice{display:flex;align-items:flex-start;gap:12px;margin-top:14px;cursor:pointer}
.notification-choice input{flex:0 0 18px;width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}
.notification-choice strong{display:block;color:var(--ink);font-size:14px;font-weight:500}
.notification-choice .helper{display:block;margin:4px 0 0;line-height:1.5}
.notification-apps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 20px}
.notification-apps .check{margin:8px 0}
.notification-save-actions{display:flex;flex-wrap:wrap;gap:12px}
.notification-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;overflow-wrap:anywhere}
#notification-form a{color:var(--accent)}
@media(max-width:600px){.notification-event-groups{grid-template-columns:1fr}.notification-save-actions>button{flex:1 1 170px}}
/* Mobile libraries: let the page reach the shelf before it takes over scrolling. */
@media(max-width:760px){
 body.library-open aside .brand{display:none}
 body.library-open aside .mobile-navigation-label{margin-top:0}
}
@media(max-width:760px),(max-height:650px){
 body.library-open{overflow-y:auto}
 body.library-open .library-viewport{touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}
 body.library-open .library-viewport:not(.library-scroll-ready){overflow-y:hidden}
}
.mobile-navigation-label>span{font-size:13px;color:var(--muted)}
#mobile-navigation{display:flex;align-items:center;gap:12px;text-align:left;width:100%;margin-top:6px;min-height:46px;background:#101724;border-color:#374258}
#mobile-navigation .application-logo,.mobile-navigation-menu .application-logo{width:24px;height:24px;flex:0 0 24px;object-fit:contain}
.mobile-section-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;color:var(--accent);font-size:20px}
#mobile-navigation>span:not(.mobile-section-icon):not(.mobile-navigation-chevron){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-navigation-chevron{margin-left:auto;font-size:20px;color:var(--muted)}
.mobile-navigation-menu{position:fixed;z-index:1000;padding:8px;background:var(--panel);border:1px solid #374258;border-radius:12px;box-shadow:0 16px 48px #0009;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#536180 var(--panel)}
.mobile-navigation-menu[hidden]{display:none}
.mobile-navigation-menu button{display:flex;align-items:center;gap:12px;min-height:48px;width:100%;text-align:left;background:transparent;border-color:transparent;padding:10px 12px}
.mobile-navigation-menu button>span:not(.mobile-section-icon):not(.mobile-navigation-tick){flex:1;min-width:0}
.mobile-navigation-menu button[aria-selected=true]{background:#a69aff18;border-color:#a69aff38;color:#c2b9ff}
.mobile-navigation-menu button:hover,.mobile-navigation-menu button:focus-visible{background:var(--panel2)}
.mobile-navigation-group{padding:14px 12px 6px;font-size:11px;font-weight:650;letter-spacing:1px;color:var(--muted);text-transform:uppercase}
.mobile-navigation-tick{margin-left:auto;color:var(--accent);visibility:hidden}
.mobile-navigation-menu [aria-selected=true] .mobile-navigation-tick{visibility:visible}
#mobile-navigation,.mobile-navigation-menu button{-webkit-tap-highlight-color:transparent}
.mobile-navigation-menu::-webkit-scrollbar{width:8px}.mobile-navigation-menu::-webkit-scrollbar-track{background:var(--panel);border-radius:8px}.mobile-navigation-menu::-webkit-scrollbar-thumb{background:#536180;border:2px solid var(--panel);border-radius:8px}

button.brand-home{background:transparent;border:0;padding:0;min-height:0;text-align:left;border-radius:6px}button.brand-home:hover{background:transparent}button.brand-home:focus-visible{outline:2px solid var(--accent);outline-offset:5px}

/* Keep native iOS time controls inside the settings grid. */
#general-form .form-grid>label{min-width:0;max-width:100%}
#general-form input[type=time]{display:block;box-sizing:border-box;width:100%;inline-size:100%;min-width:0;min-inline-size:0;max-width:100%;max-inline-size:100%;height:44px;text-align:left;-webkit-appearance:none;appearance:none}
#general-form input[type=time]::-webkit-date-and-time-value{text-align:left;min-width:0}
#general-form input[type=time]::-webkit-datetime-edit{padding:0;min-width:0}
button.settings-action{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.settings-action-icon{width:19px;height:19px;flex:none}

.diagnostic-step{padding:14px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.diagnostic-step p{margin:8px 0 0}.noip-diagnostic-results{margin-top:24px}.diagnostic-step .split{gap:12px;flex-wrap:wrap}

.plex-login-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}.plex-login-actions:has(> [hidden]):not(:has(> :not([hidden]))){display:none}.plex-login-actions #plex-dashboard-link,.plex-login-actions #plex-dashboard-cancel{margin:0;min-height:44px}

.torrent-tracker{display:block;margin:5px 0 7px;font-size:12px;overflow-wrap:anywhere;text-transform:none}.tracker-colour-0{color:#79c9ff}.tracker-colour-1{color:#c5a8ff}.tracker-colour-2{color:#7bdbc5}.tracker-colour-3{color:#efc576}.tracker-colour-4{color:#f2a1c6}.tracker-colour-5{color:#a9cd7c}.tracker-neutral{color:var(--muted)}
.remote-summary-grid,.remote-host-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:16px}.remote-host{padding:16px 0;border-bottom:1px solid var(--border,#2a3446);min-width:0}.remote-host h4{margin:0 0 12px;overflow-wrap:anywhere}.remote-host p,.remote-errors p,.remote-host-options label{overflow-wrap:anywhere}.remote-errors{max-height:260px;overflow:auto}.remote-errors>div{padding:10px 0;border-bottom:1px solid var(--border,#2a3446)}.remote-host-options{max-height:280px;overflow:auto;margin:12px 0}.remote-summary-grid{margin:20px 0}.remote-host-checks>div{min-width:0}
.remote-host-checks .badge{display:inline-block;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.5}.remote-host .badge.checking{background:#fbbf2415;color:#fbbf24}
