/* Shared PWA components */
.pwa-install[hidden],.pwa-install-notice[hidden],[data-cancel-download][hidden],.offline-actions progress[hidden]{display:none!important}
.pwa-install{position:fixed;z-index:200;top:0;left:0;right:0;display:grid;grid-template-columns:48px 1fr auto 32px;align-items:center;gap:16px;padding:20px max(20px,5%);padding-top:max(20px,env(safe-area-inset-top));background:#1c2520;color:#f5f7f5;border-bottom:1px solid #79c9aa55;box-shadow:0 12px 40px #0005;animation:pwa-slide .3s ease-out;font:14px/1.5 Inter,"Segoe UI",sans-serif}
.pwa-install img{border-radius:12px}.pwa-install strong{font-size:16px}.pwa-install p{margin:4px 0 0;color:#b9c7bf;font-size:12px}.pwa-install button,.offline-actions button{border:0;border-radius:7px;background:#79c9aa;color:#10271a;padding:11px 18px;font:600 13px/1.4 Inter,"Segoe UI",sans-serif;cursor:pointer}.pwa-install .pwa-dismiss{background:none;color:inherit;padding:5px;font-size:25px}.pwa-install .pwa-install-notice{grid-column:1/-1}.pwa-install button:focus-visible,.offline-actions button:focus-visible{outline:3px solid #79c9aa;outline-offset:4px}
@keyframes pwa-slide{from{transform:translateY(-100%)}to{transform:translateY(0)}}
html.light .pwa-install{background:#fff;color:#173726;box-shadow:0 12px 35px #163b2220}html.light .pwa-install p{color:#55695c}
.viewer-downloads{display:flex;align-items:center;color:inherit}
.offline-actions{margin:28px 5%;padding:24px;border:1px solid var(--line,#ffffff20);border-radius:12px;background:var(--panel,#1b1b1b)}
.offline-actions h2{font-size:20px}.offline-actions>p{font-size:13px;color:var(--muted,#aaa);line-height:1.7;margin:10px 0 20px}.offline-actions ul{padding:0;list-style:none;margin:0}.offline-actions li{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:14px 0;border-top:1px solid var(--line,#ffffff20)}.offline-actions li>span{flex:1;min-width:160px;font-size:14px}.offline-actions small{display:block;flex-basis:100%;font-size:12px;color:var(--muted,#aaa)}.offline-actions progress{width:100%;height:5px;accent-color:#79c9aa}.offline-actions>a{display:inline-block;margin-top:18px;color:var(--teal,#79c9aa);font-size:13px}.offline-actions button:disabled{opacity:.6;cursor:wait}
.offline-body{margin:0;background:#101010;color:#f4f4f4;font:15px/1.6 Inter,"Segoe UI",Arial,sans-serif}.offline-body *{box-sizing:border-box}.offline-body [hidden]{display:none!important}.offline-body header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff18;padding:22px 6%}.offline-body a{color:#79c9aa;text-decoration:none}.offline-brand{font-size:26px;font-weight:750;letter-spacing:-1px}.offline-body main{max-width:1150px;margin:auto;padding:45px 6% 80px}.offline-eyebrow{font-size:10px;letter-spacing:2px;color:#79c9aa}.offline-body h1{font-size:42px;letter-spacing:-1.5px;line-height:1.2;margin:20px 0}.offline-description{color:#aaa;max-width:750px;font-size:14px}.offline-description+[class=offline-description]{font-size:12px}.offline-body #offline-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:30px}.offline-card{padding:25px;border:1px solid #ffffff1c;border-radius:12px;background:#1b1b1b}.offline-card h2{font-size:20px;line-height:1.4;margin:0 0 8px}.offline-card p{color:#aaa;font-size:14px;margin:4px 0}.offline-card small{display:block;color:#aaa;font-size:11px;margin:15px 0}.offline-body button{border:0;border-radius:6px;padding:11px 16px;background:#79c9aa;color:#10271a;font-weight:650;font-size:13px;cursor:pointer}.offline-body button:focus-visible{outline:3px solid #79c9aa;outline-offset:4px}.offline-body .offline-remove{background:transparent;color:#bbb;margin-left:10px;border:1px solid #ffffff25}.offline-body video{width:100%;max-height:65vh;background:#000;border-radius:8px;display:block;margin:15px 0}.offline-body #offline-status{color:#d9bf80;font-size:13px}.offline-body #offline-player{margin:30px 0}.offline-body #offline-empty{border:1px dashed #ffffff35;border-radius:10px;padding:30px;color:#aaa}
html.light .offline-body{background:#f5f7f5;color:#173726}html.light .offline-body header{border-color:#d9e5dc}html.light .offline-card{background:#fff;border-color:#d9e5dc}html.light .offline-body a{color:#23734b}html.light .offline-body .offline-description,html.light .offline-card p,html.light .offline-card small{color:#55695c}html.light .offline-body .offline-remove{color:#55695c;border-color:#d9e5dc}html.light .offline-body #offline-empty{color:#55695c;border-color:#9aafa1}
@media(max-width:760px){.pwa-install{grid-template-columns:40px 1fr 28px;gap:10px;padding:15px}.pwa-install img{width:40px;height:40px}.pwa-install strong{font-size:14px}.pwa-install button:not(.pwa-dismiss){grid-column:2;width:fit-content}.pwa-install .pwa-dismiss{grid-column:3;grid-row:1}.pwa-install p{font-size:11px}.offline-actions{margin:20px 6%;padding:20px}.offline-actions li>span{flex-basis:100%}.offline-body #offline-list{grid-template-columns:1fr}.offline-body h1{font-size:32px}.offline-body button{font-size:14px}.offline-body header{padding:18px 6%}.offline-body main{padding-top:30px}.viewer-controls{gap:14px}}
@media(prefers-reduced-motion:reduce){.pwa-install{animation:none}}
/* Episode downloads sit beside playback, as independent keyboard-accessible actions. */
.op-episode-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 14px}
.op-episode-row>.op-episode{min-width:0}
.op-episode-download{display:flex;align-items:center;gap:8px}
.op-episode-download .op-download-circle{display:grid;place-items:center;width:40px;height:40px;min-width:40px;margin:0;padding:0;border:1.5px solid var(--muted,#aaa);border-radius:50%;background:transparent;color:inherit;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.op-download-circle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.op-episode-download .op-download-circle:hover,.op-episode-download .op-download-circle:focus-visible{border-color:var(--teal,#79c9aa);color:var(--teal,#79c9aa);background:#79c9aa12;outline:2px solid transparent;outline-offset:3px}
.op-episode-download .op-download-circle:focus-visible{outline-color:var(--teal,#79c9aa)}
.op-download-circle[aria-busy=true]{opacity:.45;cursor:wait}.op-episode-download .op-download-circle.is-saved{border-color:var(--teal,#79c9aa);color:var(--teal,#79c9aa)}
.op-download-progress{grid-column:1/-1;width:100%;height:3px;margin:9px 0 0;accent-color:var(--teal,#79c9aa)}
.op-download-progress[hidden],.op-download-status:empty{display:none!important}
.op-download-status{grid-column:1/-1;padding:5px 0 2px;color:var(--muted,#aaa);font-size:11px;line-height:1.5}
@media(max-width:700px){.op-episode-row{gap:0 10px}.op-episode-download .op-download-circle{width:44px;height:44px;min-width:44px}.op-download-status{font-size:10px}}
