* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--sp-bg); color: var(--sp-text); font-family: var(--sp-font); }
body { min-height: 100vh; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.shell { min-height: 100vh; display: flex; flex-direction: column; }
.topbar { height: 68px; border-bottom: 1px solid var(--sp-line); display: flex; align-items: center; }
.topbar__inner, .main { width: min(calc(100% - 40px), var(--sp-content)); margin: 0 auto; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { font-weight: 800; letter-spacing: -.03em; font-size: 20px; }
.topbar__meta { display: flex; gap: 9px; align-items: center; color: var(--sp-muted); font-size: 12px; }
.badge { border: 1px solid var(--sp-line); padding: 6px 9px; border-radius: 999px; }
.connection-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--sp-muted); }
.connection-dot.ok { background: var(--sp-success); }
.connection-dot.error { background: var(--sp-danger); }
.main { flex: 1; padding: 54px 0 72px; }
.auth-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(360px, .7fr); gap: 70px; align-items: center; min-height: calc(100vh - 194px); }
.intro-panel { max-width: 700px; }
.eyebrow, .card-kicker { color: var(--sp-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .14em; }
h1 { font-size: clamp(46px, 6.5vw, 78px); line-height: .97; letter-spacing: -.06em; margin: 18px 0 24px; }
h2 { font-size: clamp(34px, 4vw, 54px); letter-spacing: -.045em; margin: 10px 0 8px; }
h3 { font-size: 22px; letter-spacing: -.025em; margin: 8px 0 22px; }
p { color: var(--sp-muted); line-height: 1.65; }
.intro-panel > p { font-size: 18px; max-width: 650px; }
.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--sp-line); border-left: 1px solid var(--sp-line); margin-top: 36px; }
.feature-grid > div { padding: 18px; border-right: 1px solid var(--sp-line); border-bottom: 1px solid var(--sp-line); display: grid; gap: 6px; }
.feature-grid strong { font-size: 14px; }
.feature-grid span { color: var(--sp-muted); font-size: 13px; line-height: 1.5; }
.auth-card, .settings-card { border: 1px solid var(--sp-line); background: var(--sp-surface); border-radius: var(--sp-radius); }
.auth-card { padding: 24px; }
.tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; background: var(--sp-bg); border: 1px solid var(--sp-line); border-radius: 8px; margin-bottom: 24px; }
.tab { border: 0; background: transparent; color: var(--sp-muted); padding: 10px 12px; border-radius: 6px; }
.tab.is-active { background: var(--sp-surface-2); color: var(--sp-text); }
.form { display: grid; gap: 15px; }
.form label { display: grid; gap: 8px; font-size: 13px; color: var(--sp-muted); }
.form input { width: 100%; border: 1px solid var(--sp-line); background: #0f1117; color: var(--sp-text); min-height: 45px; border-radius: 7px; padding: 0 13px; outline: none; }
.form input:focus { border-color: #697181; box-shadow: 0 0 0 3px rgba(255,255,255,.04); }
.form input:disabled { opacity: .72; }
.form .check { display: flex; align-items: center; gap: 8px; }
.form .check input { width: 16px; min-height: 16px; }
.field-hint, .small-copy, .form-copy { color: var(--sp-muted); font-size: 13px; margin: -7px 0 0; }
.form-heading { font-size: 20px; font-weight: 750; letter-spacing: -.02em; }
.primary, .secondary, .link-button { border: 0; border-radius: 7px; min-height: 44px; padding: 0 16px; font-weight: 700; }
.primary { background: var(--sp-accent); color: #0b0c10; margin-top: 4px; }
.secondary { background: var(--sp-surface-2); border: 1px solid var(--sp-line); color: var(--sp-text); }
.link-button { background: transparent; color: var(--sp-muted); min-height: 34px; }
.danger-outline { color: #ffaaaa; }
.notice { border: 1px solid var(--sp-line); background: #10131a; border-radius: 7px; padding: 12px 13px; margin-bottom: 18px; color: var(--sp-muted); font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.notice.success { border-color: rgba(100,217,139,.35); color: #a7edbd; }
.notice.error { border-color: rgba(255,107,107,.35); color: #ffaaaa; }
.notice a { text-decoration: underline; }
.account-view { max-width: 1080px; margin: 0 auto; }
.account-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 30px; margin-bottom: 28px; }
.account-head p { margin: 0; }
.verify-banner { border: 1px solid rgba(255, 209, 102, .35); background: rgba(255, 209, 102, .06); padding: 16px; border-radius: var(--sp-radius); display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 22px; }
.verify-banner div { display: grid; gap: 4px; }
.verify-banner span { color: var(--sp-muted); font-size: 13px; }
.account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.settings-card { padding: 22px; }
.form.compact { gap: 13px; }
.verification-state { font-size: 12px; color: var(--sp-muted); }
.verification-state.ok { color: var(--sp-success); }
.verification-state.pending { color: #ffd166; }
@media (max-width: 920px) { .auth-layout { grid-template-columns: 1fr; gap: 40px; min-height: 0; } .intro-panel { max-width: none; } .auth-card { max-width: 560px; width: 100%; } }
@media (max-width: 680px) { .topbar__inner, .main { width: min(calc(100% - 28px), var(--sp-content)); } .main { padding-top: 34px; } .feature-grid, .account-grid { grid-template-columns: 1fr; } .account-head, .verify-banner { flex-direction: column; align-items: stretch; } .topbar__meta [data-api-status] { display: none; } }

/* Metadata discovery + web admin integration */
.head-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.admin-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.metadata-card { border: 1px solid var(--sp-line); background: var(--sp-surface); border-radius: var(--sp-radius); padding: 24px; margin-bottom: 22px; }
.metadata-heading, .integration-status { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.metadata-heading h3, .integration-status h3 { margin-bottom: 8px; }
.metadata-heading .small-copy { margin: 0; max-width: 720px; }
.metadata-status, .metadata-state { flex: 0 0 auto; border: 1px solid var(--sp-line); border-radius: 999px; padding: 7px 10px; color: var(--sp-muted); font-size: 12px; }
.metadata-status.ok, .metadata-state.ok { color: #a7edbd; border-color: rgba(100,217,139,.35); }
.metadata-status.pending, .metadata-state.pending { color: #ffe19a; border-color: rgba(255,209,102,.35); }
.metadata-status.error, .metadata-state.error { color: #ffaaaa; border-color: rgba(255,107,107,.35); }
.search-bar { display: grid; grid-template-columns: 155px minmax(0,1fr) auto; gap: 10px; margin-top: 22px; }
.search-bar input, .search-bar select, .form select { width: 100%; min-height: 46px; border: 1px solid var(--sp-line); border-radius: 7px; background: #0f1117; color: var(--sp-text); padding: 0 13px; outline: none; }
.search-bar input:focus, .search-bar select:focus, .form select:focus { border-color: #697181; box-shadow: 0 0 0 3px rgba(255,255,255,.04); }
.search-bar input:disabled, .search-bar select:disabled { opacity: .55; cursor: not-allowed; }
.search-input-wrap { position: relative; min-width: 0; }
.search-results { position: absolute; z-index: 20; top: calc(100% + 7px); left: 0; right: 0; max-height: 430px; overflow-y: auto; border: 1px solid var(--sp-line); background: #101219; border-radius: 9px; box-shadow: 0 18px 45px rgba(0,0,0,.42); }
.search-result { width: 100%; display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 10px; border: 0; border-bottom: 1px solid var(--sp-line); background: transparent; color: var(--sp-text); text-align: left; }
.search-result:last-child { border-bottom: 0; }
.search-result:hover, .search-result:focus { background: var(--sp-surface-2); outline: none; }
.search-result img, .poster-placeholder { width: 46px; height: 69px; object-fit: cover; border-radius: 5px; background: #20242e; }
.search-result-main { min-width: 0; display: grid; gap: 4px; }
.search-result-title { font-weight: 750; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-result-meta { color: var(--sp-muted); font-size: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.media-pill { border: 1px solid var(--sp-line); border-radius: 999px; padding: 4px 7px; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: var(--sp-muted); }
.search-result-id { color: var(--sp-muted); font-size: 11px; }
.search-empty { padding: 18px; color: var(--sp-muted); font-size: 13px; }
.search-hint { color: var(--sp-muted); font-size: 12px; margin-top: 9px; min-height: 18px; }
.selected-content { margin-top: 20px; border-top: 1px solid var(--sp-line); padding-top: 20px; }
.selected-card { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 22px; }
.selected-card img, .selected-poster-placeholder { width: 150px; aspect-ratio: 2/3; object-fit: cover; border-radius: 7px; background: #20242e; }
.selected-card h4 { margin: 2px 0 8px; font-size: 28px; letter-spacing: -.035em; }
.muted-title { color: var(--sp-muted); font-weight: 500; }
.selected-meta { display: flex; flex-wrap: wrap; gap: 8px; color: var(--sp-muted); font-size: 13px; margin-bottom: 14px; }
.selected-overview { color: var(--sp-muted); line-height: 1.65; margin: 0 0 14px; }
.id-grid { display: flex; flex-wrap: wrap; gap: 9px; }
.id-chip { border: 1px solid var(--sp-line); background: #0f1117; border-radius: 7px; padding: 8px 10px; font-size: 12px; color: var(--sp-muted); }
.id-chip strong { color: var(--sp-text); font-weight: 700; }
.section-label { color: var(--sp-muted); text-transform: uppercase; letter-spacing: .14em; font-size: 11px; margin: 28px 0 12px; }
.admin-main { max-width: 980px; }
.admin-integration-card { max-width: 820px; }
.settings-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.tmdb-attribution { margin: 14px 0 0; font-size: 11px; color: var(--sp-muted); }
@media (max-width: 780px) { .metadata-heading, .integration-status { flex-direction: column; } .search-bar { grid-template-columns: 1fr; } .search-results { position: static; margin-top: 8px; max-height: 360px; } .selected-card { grid-template-columns: 100px minmax(0,1fr); } .selected-card img, .selected-poster-placeholder { width: 100px; } .settings-row { grid-template-columns: 1fr; } }

/* Shared catalogue (introduced Phase 4) */
.catalogue-card{border:1px solid var(--sp-line);background:var(--sp-surface);border-radius:var(--sp-radius);padding:22px;margin-bottom:20px}.catalogue-toolbar{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:10px;margin:18px 0 14px}.catalogue-toolbar input,.catalogue-toolbar select{min-height:42px;border:1px solid var(--sp-line);border-radius:7px;background:#0f1117;color:var(--sp-text);padding:0 11px;outline:none}.catalogue-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.catalogue-item{min-width:0}.catalogue-poster{aspect-ratio:2/3;width:100%;object-fit:cover;border-radius:7px;background:#20242e;display:block}.catalogue-poster-placeholder{aspect-ratio:2/3;width:100%;border-radius:7px;background:#20242e;display:block}.catalogue-title{font-weight:750;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalogue-meta{display:flex;gap:6px;align-items:center;color:var(--sp-muted);font-size:11px;margin-top:4px}.catalogue-type{border:1px solid var(--sp-line);border-radius:999px;padding:2px 5px;text-transform:uppercase;font-size:9px;letter-spacing:.06em}@media(max-width:1050px){.catalogue-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:780px){.catalogue-toolbar{grid-template-columns:1fr}.catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Phase 5 movie / TV / season / episode detail experience (retained) */
.catalogue-item{cursor:pointer;border-radius:8px;padding:0 0 8px;transition:transform .14s ease,background .14s ease}.catalogue-item:hover,.catalogue-item:focus-within{transform:translateY(-2px)}.catalogue-item-button{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.catalogue-item-button:focus-visible{outline:2px solid var(--sp-accent);outline-offset:4px;border-radius:7px}.content-detail-overlay{position:fixed;inset:0;z-index:90;background:var(--sp-bg);overflow-y:auto}.content-detail-shell{width:min(calc(100% - 44px),1180px);margin:0 auto;padding:22px 0 64px}.detail-topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0 14px;background:linear-gradient(var(--sp-bg) 78%,rgba(11,12,16,0));}.detail-back{border:1px solid var(--sp-line);background:var(--sp-surface);color:var(--sp-text);min-height:42px;padding:0 14px;border-radius:7px;font-weight:700}.detail-type-badge{border:1px solid var(--sp-line);border-radius:999px;padding:7px 10px;color:var(--sp-muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.detail-loading,.detail-empty{border:1px solid var(--sp-line);background:var(--sp-surface);padding:24px;border-radius:var(--sp-radius);color:var(--sp-muted)}.detail-hero{position:relative;min-height:440px;border:1px solid var(--sp-line);border-radius:12px;overflow:hidden;background:#101219;margin-top:4px}.detail-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.46}.detail-backdrop-fallback{position:absolute;inset:0;background:linear-gradient(135deg,#171a22,#0e1015)}.detail-gradient{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,9,12,.98) 0%,rgba(8,9,12,.83) 38%,rgba(8,9,12,.36) 70%,rgba(8,9,12,.7) 100%),linear-gradient(0deg,rgba(8,9,12,.86),transparent 55%)}.detail-hero-content{position:relative;z-index:2;display:grid;grid-template-columns:190px minmax(0,1fr);gap:28px;align-items:end;min-height:440px;padding:40px}.detail-poster{width:190px;aspect-ratio:2/3;object-fit:cover;border-radius:8px;background:#20242e;box-shadow:0 18px 48px rgba(0,0,0,.35)}.detail-poster-fallback{width:190px;aspect-ratio:2/3;border-radius:8px;background:#20242e}.detail-copy{max-width:760px}.detail-copy h1{font-size:clamp(38px,5vw,64px);line-height:1;letter-spacing:-.05em;margin:8px 0 14px}.detail-meta{display:flex;flex-wrap:wrap;gap:8px 12px;color:#d1d5de;font-size:13px;align-items:center}.detail-meta span{display:inline-flex;align-items:center}.detail-genres{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 0}.detail-genre{border:1px solid rgba(255,255,255,.18);background:rgba(13,15,20,.45);border-radius:999px;padding:6px 9px;color:#e7e9ef;font-size:11px}.detail-overview{max-width:760px;color:#c3c8d2;line-height:1.65;margin:17px 0 18px;font-size:15px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.detail-actions .primary{margin:0}.detail-actions button:disabled{opacity:.55;cursor:not-allowed}.detail-action-note{width:100%;color:var(--sp-muted);font-size:11px;margin-top:1px}.detail-sections{display:grid;gap:20px;margin-top:22px}.detail-section{border:1px solid var(--sp-line);background:var(--sp-surface);border-radius:var(--sp-radius);padding:22px}.detail-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px}.detail-section h2{font-size:24px;margin:0;letter-spacing:-.03em}.detail-section-copy{color:var(--sp-muted);font-size:12px;margin-top:5px}.cast-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.cast-card{min-width:0}.cast-photo,.cast-photo-placeholder{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;background:#20242e;display:block}.cast-name{font-weight:750;font-size:12px;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cast-character{font-size:11px;color:var(--sp-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.season-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.season-controls select{min-height:42px;border:1px solid var(--sp-line);border-radius:7px;background:#0f1117;color:var(--sp-text);padding:0 12px;min-width:180px}.season-summary{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;margin-bottom:18px}.season-poster,.season-poster-placeholder{width:110px;aspect-ratio:2/3;object-fit:cover;border-radius:7px;background:#20242e}.season-summary h3{font-size:22px;margin:2px 0 6px}.season-summary p{font-size:13px;margin:0;color:var(--sp-muted)}.episode-list{display:grid;gap:10px}.episode-card{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:14px;align-items:center;width:100%;border:1px solid var(--sp-line);border-radius:8px;background:#101219;color:var(--sp-text);padding:10px;text-align:left}.episode-card:hover,.episode-card:focus{background:var(--sp-surface-2);outline:none}.episode-still,.episode-still-placeholder{width:180px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#20242e}.episode-number{font-size:10px;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.1em}.episode-name{font-weight:780;margin-top:4px}.episode-overview{color:var(--sp-muted);font-size:12px;line-height:1.5;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.episode-runtime{color:var(--sp-muted);font-size:11px;white-space:nowrap}.episode-focus{border:1px solid var(--sp-line);border-radius:9px;background:#0f1117;padding:15px;margin-bottom:16px}.episode-focus-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px}.episode-focus img,.episode-focus-placeholder{width:260px;aspect-ratio:16/9;object-fit:cover;border-radius:7px;background:#20242e}.episode-focus h3{font-size:24px;margin:4px 0 8px}.episode-focus p{font-size:13px;margin:0;color:var(--sp-muted)}.detail-ids{display:flex;flex-wrap:wrap;gap:8px}.detail-id{border:1px solid var(--sp-line);border-radius:7px;padding:8px 10px;color:var(--sp-muted);font-size:11px}.detail-id strong{color:var(--sp-text)}
@media(max-width:900px){.detail-hero-content{grid-template-columns:140px minmax(0,1fr);padding:28px}.detail-poster,.detail-poster-fallback{width:140px}.cast-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.episode-card{grid-template-columns:140px minmax(0,1fr)}.episode-runtime{display:none}.episode-still,.episode-still-placeholder{width:140px}.episode-focus-grid{grid-template-columns:190px minmax(0,1fr)}.episode-focus img,.episode-focus-placeholder{width:190px}}
@media(max-width:620px){.content-detail-shell{width:min(calc(100% - 24px),1180px)}.detail-hero{min-height:0}.detail-hero-content{grid-template-columns:1fr;align-items:start;min-height:0;padding:24px}.detail-poster,.detail-poster-fallback{width:110px}.detail-copy h1{font-size:38px}.cast-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.season-summary{grid-template-columns:82px minmax(0,1fr)}.season-poster,.season-poster-placeholder{width:82px}.episode-card{grid-template-columns:105px minmax(0,1fr);gap:10px}.episode-still,.episode-still-placeholder{width:105px}.episode-overview{display:none}.episode-focus-grid{grid-template-columns:1fr}.episode-focus img,.episode-focus-placeholder{width:100%}.detail-section{padding:16px}.detail-topbar{padding-top:6px}}
.season-overview{margin-top:8px!important}.episode-focus-actions{margin-top:12px}

/* Phase 7 unified playback overlay */
body.playback-open{overflow:hidden}.playback-overlay[hidden]{display:none!important}.playback-overlay{position:fixed;inset:0;z-index:140;background:#07080b;display:flex;align-items:stretch;justify-content:center}.playback-shell{width:100%;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#07080b}.playback-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 18px;border-bottom:1px solid var(--sp-line);background:rgba(10,11,15,.96)}.playback-heading{min-width:0;display:flex;align-items:baseline;gap:10px}.playback-heading strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playback-heading span{color:var(--sp-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playback-top-actions{display:flex;gap:8px;flex-shrink:0}.playback-top-actions .secondary{min-height:38px;padding:0 12px}.playback-stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden}.playback-frame,.playback-video{display:block;width:100%;height:100%;border:0;background:#000}.playback-video{object-fit:contain}.playback-loading,.playback-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:28px;color:#d8dbe4}.playback-error strong{font-size:20px}.playback-error span{max-width:620px;color:var(--sp-muted);line-height:1.55}.playback-spinner{width:28px;height:28px;border:3px solid rgba(255,255,255,.18);border-top-color:#fff;border-radius:50%;animation:sp-playback-spin .8s linear infinite}.playback-status{min-height:38px;display:flex;align-items:center;padding:0 18px;border-top:1px solid var(--sp-line);background:#0a0b0f;color:var(--sp-muted);font-size:11px}@keyframes sp-playback-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.playback-topbar{padding:10px}.playback-heading span{display:none}.playback-fullscreen{display:none}.playback-status{padding:0 10px}}

/* Phase 8 synchronized user library */
.library-card{border:1px solid var(--sp-line);background:var(--sp-surface);border-radius:var(--sp-radius);padding:22px;margin-bottom:20px}.library-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:18px 0 14px}.library-tabs{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.library-tab{display:inline-flex;align-items:center;gap:8px;min-height:38px;border:1px solid var(--sp-line);background:#0f1117;color:var(--sp-muted);border-radius:7px;padding:0 11px;font-weight:700;cursor:pointer}.library-tab b{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;border:1px solid var(--sp-line);border-radius:999px;font-size:10px;color:var(--sp-text);font-weight:800}.library-tab.is-active{background:var(--sp-text);color:var(--sp-bg);border-color:var(--sp-text)}.library-tab.is-active b{border-color:rgba(0,0,0,.18);color:inherit}.library-actions{display:flex;gap:8px;flex-shrink:0}.library-actions .secondary{min-height:38px;padding:0 11px}.library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.library-item{display:grid;grid-template-columns:68px minmax(0,1fr);gap:11px;align-items:center;width:100%;min-width:0;border:1px solid var(--sp-line);background:#0f1117;color:var(--sp-text);border-radius:8px;padding:9px;text-align:left;cursor:pointer}.library-item:hover,.library-item:focus-visible{background:var(--sp-surface-2);outline:none}.library-item img,.library-art-placeholder{display:block;width:68px;aspect-ratio:2/3;object-fit:cover;border-radius:6px;background:#20242e}.library-item--episode{grid-template-columns:104px minmax(0,1fr)}.library-item--episode img,.library-item--episode .library-art-placeholder{width:104px;aspect-ratio:16/9}.library-item-copy{display:flex;flex-direction:column;min-width:0}.library-item-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-item-copy span{font-size:10px;color:var(--sp-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-item-copy small{font-size:10px;color:var(--sp-muted);margin-top:5px}.library-empty{grid-column:1/-1;border:1px dashed var(--sp-line);border-radius:8px;padding:22px;color:var(--sp-muted);text-align:center}.library-toggle.is-active{background:var(--sp-text);color:var(--sp-bg);border-color:var(--sp-text)}
@media(max-width:1050px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.library-toolbar{align-items:stretch;flex-direction:column}.library-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.library-tab{justify-content:space-between}.library-actions{justify-content:flex-end}.library-grid{grid-template-columns:1fr}}

/* Phase 9 cross-device Continue Watching */
.continue-card{border:1px solid var(--sp-line);background:var(--sp-surface);border-radius:var(--sp-radius);padding:24px;margin-bottom:20px}.continue-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:18px 0 14px}.continue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.continue-item{display:grid;grid-template-columns:150px minmax(0,1fr);gap:13px;align-items:center;width:100%;min-width:0;border:1px solid var(--sp-line);background:var(--sp-surface-2);color:var(--sp-text);border-radius:8px;padding:10px;text-align:left;cursor:pointer}.continue-item:hover,.continue-item:focus-visible{outline:none;transform:translateY(-1px)}.continue-art{position:relative;display:block;width:150px;aspect-ratio:16/9;overflow:hidden;border-radius:6px;background:#20242e}.continue-art img,.continue-art-placeholder{display:block;width:100%;height:100%;object-fit:cover}.continue-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;background:rgba(0,0,0,.22);opacity:0;transition:opacity .15s ease}.continue-item:hover .continue-play,.continue-item:focus-visible .continue-play{opacity:1}.continue-copy{display:flex;flex-direction:column;min-width:0}.continue-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-copy>span:not(.continue-progress){font-size:11px;color:var(--sp-muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-copy small{font-size:10px;color:var(--sp-muted);margin-top:8px}.continue-progress{display:block;height:4px;background:rgba(127,127,127,.24);border-radius:999px;overflow:hidden;margin-top:8px}.continue-progress i{display:block;height:100%;background:currentColor}.continue-empty{grid-column:1/-1;border:1px dashed var(--sp-line);border-radius:8px;padding:24px;color:var(--sp-muted);text-align:center}
@media(max-width:1120px){.continue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.continue-card{padding:18px}.continue-toolbar{align-items:flex-start;flex-direction:column}.continue-grid{grid-template-columns:1fr}.continue-item{grid-template-columns:120px minmax(0,1fr)}.continue-art{width:120px}}

/* Phase 10 shared streaming homepage & discovery */
.home-discovery{border:1px solid var(--sp-line);background:var(--sp-surface);border-radius:var(--sp-radius);padding:24px;margin-bottom:20px;overflow:hidden}.home-discovery-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.home-discovery-head h3{margin:5px 0 6px}.home-discovery-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.home-hero-card{position:relative;min-height:390px;border:1px solid var(--sp-line);border-radius:10px;overflow:hidden;background:#08090c}.home-hero-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.home-hero-backdrop--fallback{background:linear-gradient(125deg,#20242e,#0b0c10)}.home-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,6,8,.96) 0%,rgba(5,6,8,.8) 38%,rgba(5,6,8,.24) 72%,rgba(5,6,8,.18) 100%),linear-gradient(0deg,rgba(5,6,8,.7),transparent 50%)}.home-hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;min-height:390px;max-width:650px;padding:38px}.home-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#d8dbe4;font-weight:800}.home-hero-copy h2{font-size:clamp(36px,5vw,66px);line-height:.98;letter-spacing:-.045em;margin:10px 0 12px}.home-hero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#d2d5dd;font-size:12px}.home-hero-meta i{font-style:normal;color:#747985}.home-hero-copy p{max-width:620px;color:#d2d5dd;font-size:14px;line-height:1.6;margin:14px 0 18px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.home-hero-actions{display:flex;gap:9px;flex-wrap:wrap}.home-rows{display:grid;gap:24px;margin-top:24px}.home-row{min-width:0}.home-row-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:10px}.home-row-head h3{font-size:20px;margin:0}.home-row-head div>span,.home-row-head>span{font-size:11px;color:var(--sp-muted)}.home-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(145px,170px);gap:10px;overflow-x:auto;overscroll-behavior-inline:contain;padding:2px 1px 9px;scrollbar-width:thin}.home-card{display:flex;flex-direction:column;min-width:0;border:0;background:transparent;color:var(--sp-text);padding:0;text-align:left;cursor:pointer}.home-card:hover .home-card-art,.home-card:focus-visible .home-card-art{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.28)}.home-card:focus-visible{outline:1px solid var(--sp-text);outline-offset:3px}.home-card-art{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:8px;background:#20242e;transition:transform .16s ease,box-shadow .16s ease}.home-card-art--wide{aspect-ratio:16/9}.home-card-art--placeholder{background:linear-gradient(135deg,#20242e,#11131a)}.home-card-copy{display:flex;flex-direction:column;min-width:0;padding:8px 2px 0}.home-card-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-card-copy small{font-size:10px;color:var(--sp-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-card-copy em{font-size:9px;font-style:normal;color:var(--sp-muted);margin-top:5px}.home-card-progress{height:3px;background:rgba(127,127,127,.28);border-radius:999px;overflow:hidden;margin-top:7px}.home-card-progress i{display:block;height:100%;background:currentColor}.home-card--continue{width:260px}.home-card--continue .home-card-copy strong{font-size:13px}.home-row[data-home-row="continue_watching"] .home-strip{grid-auto-columns:260px}.home-empty{border:1px dashed var(--sp-line);border-radius:9px;padding:30px;color:var(--sp-muted);text-align:center;background:#0f1117}
@media(max-width:760px){.home-discovery{padding:16px}.home-discovery-head{flex-direction:column}.home-discovery-actions{width:100%;justify-content:space-between}.home-hero-card,.home-hero-copy{min-height:330px}.home-hero-copy{padding:24px}.home-hero-copy h2{font-size:40px}.home-strip{grid-auto-columns:minmax(125px,145px)}.home-row[data-home-row="continue_watching"] .home-strip{grid-auto-columns:220px}.home-card--continue{width:220px}}

/* Phase 13 personalized discovery */
.taste-toggle.is-active{background:var(--sp-text);color:var(--sp-bg);border-color:var(--sp-text)}.recent-searches{margin:12px 0 14px;padding:10px 12px;border:1px solid var(--sp-line);border-radius:8px;background:#0f1117}.recent-searches-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.recent-search-clear{border:0;background:transparent;color:var(--sp-muted);font-size:10px;cursor:pointer}.recent-search-clear:hover{color:var(--sp-text)}.recent-search-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.recent-search-chip{border:1px solid var(--sp-line);background:var(--sp-surface);color:var(--sp-text);border-radius:999px;padding:6px 9px;font-size:10px;cursor:pointer}.recent-search-chip:hover{background:var(--sp-surface-2)}

/* Phase 14 account security */
.security-status-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--sp-muted);font-size:11px}.security-status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 8px;border:1px solid var(--sp-line);border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--sp-muted)}.security-status-badge.ok,.security-status-badge.secure{color:#a7edbd;border-color:rgba(92,205,128,.32);background:rgba(92,205,128,.08)}.security-status-badge.pending{color:#f0c86b;border-color:rgba(240,200,107,.32);background:rgba(240,200,107,.08)}.security-policy-note{margin-top:10px;padding:10px 12px;border:1px solid rgba(92,205,128,.22);border-radius:7px;background:rgba(92,205,128,.06);font-size:11px;line-height:1.5;color:var(--sp-muted)}.security-policy-note.warning{border-color:rgba(240,200,107,.3);background:rgba(240,200,107,.07)}.security-inline-state{font-size:11px;color:var(--sp-muted)}.security-inline-state.error{color:#ffaaaa}.security-details{margin-top:12px;border:1px solid var(--sp-line);border-radius:7px;padding:10px 12px;background:#0f1117}.security-details summary{cursor:pointer;font-size:11px;font-weight:700}.security-action-form{margin-top:12px}.two-factor-secret{display:grid;gap:5px;margin:12px 0;padding:12px;border:1px solid var(--sp-line);border-radius:7px;background:#0f1117}.two-factor-secret span{font-size:9px;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.08em}.two-factor-secret code,.security-uri{display:block;overflow-wrap:anywhere;font-size:12px;line-height:1.55}.recovery-code-box{margin:14px 0;padding:14px;border:1px solid rgba(240,200,107,.28);border-radius:8px;background:rgba(240,200,107,.06);display:grid;gap:5px}.recovery-code-box>strong{font-size:12px}.recovery-code-box>span{font-size:10px;color:var(--sp-muted);line-height:1.5}.recovery-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.recovery-code-grid code{border:1px solid var(--sp-line);border-radius:6px;padding:7px 8px;background:#0f1117;text-align:center;font-size:11px;letter-spacing:.06em}.account-session-list{display:grid;margin-top:10px}.account-session-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--sp-line)}.account-session-row:last-child{border-bottom:0}.account-session-row>div{min-width:0;display:grid;gap:3px}.account-session-row strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-session-row span,.account-session-row small{font-size:9px;color:var(--sp-muted)}.account-session-row.current{background:linear-gradient(90deg,rgba(92,205,128,.04),transparent);}.danger-outline{border-color:rgba(255,120,120,.35)!important;color:#ffb0b0!important}.security-setting-hint{align-self:center;margin:0}.status-pill.secure{color:#a7edbd;border-color:rgba(92,205,128,.32);background:rgba(92,205,128,.08)}
@media(max-width:640px){.recovery-code-grid{grid-template-columns:1fr}.account-session-row{align-items:flex-start}.account-session-row>button,.account-session-row>.security-status-badge{flex-shrink:0}}

/* Phase 15 release/maintenance banner */
.release-banner{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid var(--sp-line);border-radius:9px;padding:13px 15px;margin-bottom:16px;background:#101219}.release-banner[hidden]{display:none!important}.release-banner__copy{display:grid;gap:3px}.release-banner__copy strong{font-size:12px}.release-banner__copy span{font-size:11px;color:var(--sp-muted);line-height:1.45}.release-banner--warning{border-color:rgba(240,200,107,.42);background:rgba(240,200,107,.07)}.release-banner--critical{border-color:rgba(255,105,105,.48);background:rgba(255,105,105,.08)}.release-banner--info{border-color:rgba(145,177,255,.34);background:rgba(145,177,255,.06)}
@media(max-width:680px){.release-banner{align-items:flex-start;flex-direction:column}.release-banner .secondary{width:100%}}
