.api-error{border:1px solid #ef535066;background:#ef535012;padding:16px;border-radius:12px;margin:16px 0}.api-error button{margin-top:12px}.loading{min-height:220px;display:grid;place-items:center;color:var(--muted)}.brand img{width:34px;height:34px;flex:0 0 34px}.hero-image{object-fit:cover}.film-image img{width:100%;height:100%;object-fit:cover;display:block}.admin-json{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.6 ui-monospace,monospace}.status-line{min-height:22px;color:var(--muted);font-size:13px}.hidden{display:none!important}.player-frame{width:100%;height:100%;border:0}.field-error{color:#ff8b8b;font-size:12px}.admin-table button{white-space:nowrap}.route-placeholder{max-width:760px}.auth-state{display:flex;align-items:center;gap:10px}.button-row{display:flex;gap:10px;flex-wrap:wrap}.admin-form textarea{min-height:140px}.upload-drop{border:1px dashed var(--line);padding:28px;border-radius:12px;text-align:center}.mobile-nav{z-index:80}
@media(max-width:600px){.button-row>*{flex:1}.admin-table{min-width:720px}}

/* Production watch surface: preserve 16:9 artwork without stretching or tiling. */
.player-placeholder{padding:clamp(18px,3vw,38px);background:#020812;isolation:isolate}
.player-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.player-placeholder:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#02081226,#0208128c),radial-gradient(circle at center,#07142622 0,#020812b8 78%)}
.player-placeholder-content{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(560px,94%);padding:clamp(20px,3vw,34px);border:1px solid #b8d8ff42;border-radius:18px;background:#051326d9;box-shadow:0 18px 70px #000a;backdrop-filter:blur(10px)}
.player-placeholder-content h2{margin:2px 0 0;color:#fff;text-shadow:0 2px 16px #000;font-size:clamp(1.15rem,2.2vw,1.65rem)}
.player-placeholder-content p{margin:0;color:#dce9fb;text-shadow:0 2px 10px #000}
.player-placeholder-content .small{color:#b7cae4}
.external-player-note{position:absolute;inset:0;display:grid;place-items:center;padding:28px;text-align:center;background:radial-gradient(circle at 50% 40%,#173d6f,#020812 72%);color:#fff}
.external-player-note>div{max-width:560px}.external-player-note h2{margin-bottom:10px}.external-player-note p{color:#c4d3e8;margin-bottom:20px}
.watch-tags{margin:4px 0 20px}.watch-tags .chip,.film-meta a,.hero-meta a{position:relative;z-index:2}.watch-tags .chip:hover,.film-meta a:hover,.hero-meta a:hover{color:var(--soft);border-color:var(--blue)}
.film-meta a{color:var(--muted);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.film-meta a:hover{text-decoration-color:currentColor}
.hero-meta a{color:#dae6f7}.hero-meta a:hover{color:#fff}
.source-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.source-buttons>span{flex:0 0 auto;margin-right:2px!important}.source-buttons .btn{flex:0 0 auto}
.source-buttons .btn.is-blocked{border-color:#ffad4d80;color:#ffd49a;background:#ffad4d12}
.provider-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:clamp(18px,4vw,44px);isolation:isolate;text-align:center;background:#020812;overflow:hidden}
.provider-fallback .player-poster{z-index:-2;filter:saturate(.82)}
.provider-fallback:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#02081255,#020812c7),radial-gradient(circle at center,#0a2b5160,#020812dd 76%)}
.provider-fallback-card{width:min(640px,96%);padding:clamp(22px,4vw,38px);border:1px solid #bad9ff3d;border-radius:18px;background:#051326e8;box-shadow:0 22px 80px #000b;backdrop-filter:blur(12px)}
.provider-fallback-card h2{margin:9px 0 10px;color:#fff;font-size:clamp(1.16rem,2.3vw,1.7rem);line-height:1.35}.provider-fallback-card p{margin:0 auto 22px;color:#c4d3e8;line-height:1.65}.provider-fallback-card .button-row{justify-content:center}
.source-health-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.source-health-summary .panel{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px}.source-health-summary span{color:var(--muted);font-size:.78rem}.source-health-summary strong{font-size:1.6rem}.source-health-summary .warning{border-color:#ffad4d66}.source-health-summary .danger{border-color:#ef535066}
.source-health-status{display:inline-flex;padding:5px 9px;border-radius:999px;border:1px solid var(--line);font-size:.72rem;white-space:nowrap}.source-health-status.is-allowed{color:#75d9a2;border-color:#38b67655;background:#38b67612}.source-health-status.is-blocked{color:#ffd49a;border-color:#ffad4d66;background:#ffad4d12}.source-health-status.is-unavailable{color:#ffaaa8;border-color:#ef535066;background:#ef535012}.button-row.compact{gap:6px}.button-row.compact .btn{padding:7px 10px;font-size:.7rem}
.source-url-cell{max-width:300px}.source-url-cell a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--soft);text-decoration:underline;text-underline-offset:3px}.source-url-cell a:hover{color:var(--blue)}

/* Installable PWA entry point. */
.app-install-button{order:20;min-height:40px;padding:8px 13px;border-radius:9px;white-space:nowrap;font-size:.78rem}
.app-install-button svg,.drawer-install svg{width:18px;height:18px}
.drawer-install{display:none;margin-top:16px;width:100%}
.install-intro{display:flex;align-items:center;gap:18px;padding:4px 0 22px;border-bottom:1px solid var(--line)}
.install-intro img{border-radius:18px;box-shadow:0 10px 34px #167fff35;flex:0 0 auto}.install-intro h3{margin:0 0 6px}.install-intro p{margin:0;color:var(--muted);line-height:1.55}
.install-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}
.install-grid section{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--elev)}
.install-grid h3{margin:8px 0 12px;font-size:1rem}.install-grid ol{padding-left:20px;margin:0;display:grid;gap:8px;color:var(--muted);font-size:.84rem;line-height:1.5}
.install-platform{font-size:.66rem;font-weight:750;letter-spacing:.1em;color:var(--soft)}
html.app-installed .app-install-button{display:none}

@media(max-width:1180px){.app-install-button span{display:none}.app-install-button{width:42px;min-width:42px;padding:9px;border-radius:50%}}
@media(max-width:900px){.drawer-install{display:flex}.install-grid{grid-template-columns:1fr}.app-install-button{order:0}}
@media(max-width:900px){.source-health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.app-install-button{width:38px;min-width:38px;min-height:38px;padding:8px}.player-placeholder-content{border-radius:14px;padding:18px 16px}.player-placeholder-content .player-play{width:56px;height:56px}.source-buttons{gap:8px}.source-buttons>span{width:100%;margin:0 0 2px!important}.provider-fallback-card{padding:20px 16px;border-radius:14px}.provider-fallback-card .button-row{flex-direction:column}.source-health-summary{grid-template-columns:1fr 1fr}.source-health-summary .panel{padding:14px;align-items:flex-start;flex-direction:column}.install-intro{align-items:flex-start}.install-intro img{width:58px;height:58px;border-radius:14px}}

/* Google Identity entry points and OAuth feedback. */
.google-auth-button{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;gap:13px;margin-top:24px;padding:12px 18px;border:1px solid #dadce0;border-radius:8px;background:#fff;color:#1f1f1f;font-size:.94rem;font-weight:650;line-height:1.2;box-shadow:0 1px 2px #00000018;transition:border-color .18s,box-shadow .18s,background .18s}
.google-auth-button:hover{background:#f8faff;border-color:#aeb4bc;color:#1f1f1f;box-shadow:0 2px 6px #00000024}
.google-auth-button:focus-visible{outline:3px solid #4285f455;outline-offset:3px}
.google-auth-button .google-mark{width:20px;height:20px;flex:0 0 20px}
.google-auth-button.compact{width:max-content;min-width:190px;min-height:46px;margin:0;padding:10px 16px}
.or{display:flex;align-items:center;gap:14px;margin:24px 0 4px;color:var(--muted);font-size:.78rem}
.or:before,.or:after{content:"";height:1px;flex:1;background:var(--line)}
.auth-alert{margin:20px 0 4px;padding:13px 15px;border:1px solid #ffae4266;border-radius:9px;background:#ffae4214;color:#ffd291;font-size:.84rem;line-height:1.55}
[data-theme="light"] .auth-alert{color:#774400;background:#fff3df;border-color:#dda44f}
.google-link-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:18px}
.google-link-panel h3{margin-bottom:6px}.google-link-panel p{margin:0;font-size:.84rem;line-height:1.5}
@media(max-width:600px){.google-auth-button{min-height:50px}.google-link-panel{align-items:flex-start;flex-direction:column}.google-auth-button.compact{width:100%}}

/* Copyright report: keep the form, guidance and long policy in stable columns. */
.copyright-report{display:grid;grid-template-columns:minmax(0,.78fr) minmax(520px,1.22fr);gap:38px;align-items:start}
.copyright-guide{min-width:0;padding:30px 0}
.copyright-guide h2{margin-bottom:12px}
.copyright-guide>p:not(.note){color:var(--muted);line-height:1.8}
.copyright-guide .note{max-width:100%;margin:22px 0 18px}
.copyright-form{min-width:0;width:100%}
.copyright-policy-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:30px;align-items:start;margin-top:52px}
.copyright-policy-nav{position:sticky;top:104px;display:grid;gap:7px;min-width:0}
.copyright-policy-nav a{padding:11px 13px;border:1px solid transparent;border-radius:9px;color:var(--muted);font-size:.82rem;line-height:1.4}
.copyright-policy-nav a:hover,.copyright-policy-nav a:focus-visible{color:var(--soft);border-color:var(--line);background:var(--surface)}
.copyright-policy{min-width:0}
.copyright-policy>h2{margin-bottom:14px;font-size:clamp(1.45rem,2.2vw,2rem)}
.copyright-policy>p{max-width:82ch;margin-bottom:30px;color:var(--muted);line-height:1.85}
.copyright-policy .legal-section{padding-top:28px;border-top:1px solid var(--line);scroll-margin-top:100px}
.copyright-policy .legal-section p,.copyright-policy .legal-section ul{max-width:82ch}
.copyright-policy .legal-section li+li{margin-top:7px}
@media(max-width:900px){.copyright-report{grid-template-columns:1fr;gap:22px}.copyright-guide{padding:0}.copyright-policy-layout{grid-template-columns:1fr;gap:20px;margin-top:38px}.copyright-policy-nav{position:static;display:flex;overflow-x:auto;padding-bottom:10px;border-bottom:1px solid var(--line);scrollbar-width:thin}.copyright-policy-nav a{white-space:nowrap;flex:0 0 auto}.copyright-policy{width:100%}}
@media(max-width:600px){.copyright-page .page-heading{margin-bottom:28px}.copyright-guide .note{margin:18px 0}.copyright-form{padding:20px}.copyright-policy-layout{margin-top:30px}.copyright-policy{padding:22px 18px}.copyright-policy>h2{font-size:1.4rem}.copyright-policy>p{font-size:.9rem;margin-bottom:24px}.copyright-policy .legal-section{padding-top:23px;margin-bottom:26px}.copyright-policy .legal-section h2{font-size:1.12rem}.copyright-policy .legal-section p,.copyright-policy .legal-section li{font-size:.875rem;line-height:1.75}.copyright-policy .legal-section ul{padding-left:19px}}
