:root{--bg:#f5f5f5;--surface:#fff;--surface2:#fafafa;--text:#1f1f1f;--muted:#666;--line:#e2e2e2;--accent:#0067c0;--accent2:#005a9e;--soft:#e7f3ff;--success:#107c10;--warning:#9a6700;--danger:#c42b1c;--shadow:0 6px 24px rgba(0,0,0,.07);--radius:14px}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font:15px/1.5 "Segoe UI",SegoeUI,system-ui,-apple-system,sans-serif;color:var(--text);background:radial-gradient(circle at 10% 0,#eaf4ff 0,transparent 24%),var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid #c8c8c8;border-radius:8px;background:#fff;padding:10px 11px;outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,103,192,.13)}label{display:flex;flex-direction:column;gap:6px;font-weight:600}label small,.muted{font-weight:400;color:var(--muted)}textarea{resize:vertical}.public-header{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1200px)/2));background:rgba(255,255,255,.86);backdrop-filter:blur(16px);border-bottom:1px solid rgba(0,0,0,.08);position:sticky;top:0;z-index:20}.public-brand{display:flex;align-items:center;gap:12px;color:var(--text)}.public-brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--accent);color:white;font-weight:700}.portal-brand-logo{display:block;width:auto;height:43px;max-width:155px;object-fit:contain}.portal-brand-copy{display:flex;flex-direction:column}.public-brand small{font-size:11px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:8px}.header-link{padding:7px 9px;border-radius:7px;color:#333}.header-link:hover{background:#f0f0f0;text-decoration:none}.button-link{border:0;background:transparent;cursor:pointer}.header-actions form{margin:0}.public-main{width:min(1200px,calc(100% - 32px));margin:0 auto;padding:34px 0 60px}.auth-shell .public-main{min-height:calc(100vh - 68px);display:grid;place-items:center}.public-flash{max-width:960px;margin:0 auto 16px;border-radius:9px;padding:12px 14px;border:1px solid}.public-flash.success{background:#eaf7ea;border-color:#b9ddb9;color:#185b18}.public-flash.error{background:#fde7e9;border-color:#efb8b2;color:#8f2015}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700;color:var(--accent)}h1{font-size:clamp(28px,4vw,42px);line-height:1.12;margin:7px 0 10px;letter-spacing:-.025em}h2{font-size:20px;margin:0 0 12px}.form-heading,.portal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.form-heading p,.portal-head p{margin:0;color:var(--muted)}.language-choice{display:inline-flex;background:#eee;border-radius:9px;padding:3px;gap:2px}.language-choice a{min-width:42px;text-align:center;padding:6px 9px;color:#444;border-radius:7px;font-weight:600;font-size:12px}.language-choice a.active{background:white;color:var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.12)}.top-choice{position:absolute;right:22px;top:22px}.registration-wrap{max-width:1000px;margin:0 auto}.registration-form{display:flex;flex-direction:column;gap:14px}.form-section{display:grid;grid-template-columns:48px 1fr;gap:14px;background:var(--surface);border:1px solid rgba(0,0,0,.09);border-radius:var(--radius);padding:22px;box-shadow:0 1px 2px rgba(0,0,0,.02)}.section-number{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-weight:700}.public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.location-search{display:grid;grid-template-columns:160px 1fr auto;gap:12px;align-items:end}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid #c8c8c8;background:#fff;color:#222;padding:9px 14px;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{text-decoration:none;background:#f4f4f4}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent2)}.btn.secondary{background:#fff}.btn.large{min-height:44px;padding-inline:20px}.dynamic-panel{margin-top:16px;background:var(--surface2);border:1px solid var(--line);padding:14px;border-radius:10px}.dynamic-help{color:var(--muted);margin:8px 0}.subtle-link,.back-link{font-size:13px}.program-options{display:grid;gap:8px}.program-option{display:flex;flex-direction:row;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.program-option:hover{border-color:#b5b5b5}.program-option input{width:18px;height:18px;flex:0 0 auto}.program-option span{display:flex;flex-direction:column}.program-option small{color:var(--muted);font-size:12px}.placeholder-card,.empty-state{padding:22px;text-align:center;color:var(--muted);background:#fafafa;border:1px dashed #c9c9c9;border-radius:10px}.classroom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.classroom-card{display:grid;grid-template-columns:1fr 130px;gap:10px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fafafa}.classroom-card>strong{grid-column:1/-1}.consents{display:flex;flex-direction:column;gap:10px;margin-top:16px}.check-row{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}.check-row input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}.form-submit{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:18px}.optional{font-size:11px;color:var(--muted);font-weight:400}.auth-card{position:relative;width:min(430px,100%);background:#fff;border:1px solid rgba(0,0,0,.10);border-radius:16px;padding:30px;box-shadow:var(--shadow)}.auth-card>p{color:var(--muted)}.stack-form{display:flex;flex-direction:column;gap:14px;margin-top:20px}.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:18px;font-size:13px}.narrow-page{max-width:780px;margin:0 auto}.panel-form{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 1px 3px rgba(0,0,0,.03);display:flex;flex-direction:column;gap:16px}.actions{display:flex;justify-content:flex-end;gap:8px}.portal-shell{background:#f4f6f8}.portal-head{align-items:center}.program-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.program-card{min-height:220px;display:flex;flex-direction:column;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.035)}.program-card h2{font-size:23px;margin:12px 0 6px}.program-card small{color:var(--muted)}.status-pill{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;background:#eee;color:#555}.status-pill.approved,.status-pill.active{background:#e7f5e7;color:#176b17}.status-pill.pending,.status-pill.open,.status-pill.in_progress{background:#e8eef5;color:#43536a}.status-pill.rejected,.status-pill.suspended{background:#fde7e9;color:#982317}.status-pill.resolved,.status-pill.closed{background:#e8eef5;color:#43536a}.soft-note{padding:10px;border-radius:8px;background:#edf3f8;color:#36546d;font-size:13px}.film-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.film-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.film-placeholder{aspect-ratio:3/4;display:grid;place-items:center;background:linear-gradient(145deg,#dbeeff,#eef6ff);color:var(--accent);font-size:52px;font-weight:700}.film-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:15px}.film-card-body h3{font-size:18px;margin:0}.section-title{margin:8px 0 16px}.locked-card{text-align:center;padding:44px;background:#fff;border:1px solid var(--line);border-radius:14px}.locked-card>span{font-size:32px}.film-detail-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-bottom:14px}.content-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.wide-content{margin-bottom:20px}.resource-list{display:flex;flex-direction:column;gap:8px}.resource-item{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;color:var(--text)}.resource-item:hover{text-decoration:none;border-color:#aaa}.resource-item>span{display:grid;place-items:center;height:38px;border-radius:7px;background:#fde7e9;color:#9c261b;font-weight:700;font-size:11px}.resource-item small{color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:center}.scene-grid{display:grid;gap:10px}.scene-card{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.scene-card h3{margin:0 0 4px}.scene-card p{margin:0;color:var(--muted)}.scene-index{display:inline-block;color:var(--accent);margin-bottom:8px}.details-card{display:grid;grid-template-columns:1fr 1fr;gap:10px}.details-card>div{padding:12px;background:#fafafa;border:1px solid var(--line);border-radius:9px}.details-card span,.details-card strong{display:block}.details-card span{color:var(--muted);font-size:12px}.ticket-list{display:flex;flex-direction:column;gap:8px}.ticket-row{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;color:var(--text)}.ticket-row:hover{text-decoration:none;border-color:#aaa}.ticket-row span:first-child{display:flex;flex-direction:column}.ticket-row small{color:var(--muted)}.support-thread{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.support-message{max-width:82%;border-radius:12px;padding:13px 15px}.support-message.from-user{align-self:flex-end;background:var(--accent);color:#fff}.support-message.from-admin{align-self:flex-start;background:#fff;border:1px solid var(--line)}.support-message p{margin:5px 0 0}.support-message small{opacity:.75}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:900px){.program-card-grid{grid-template-columns:repeat(2,1fr)}.film-grid{grid-template-columns:repeat(2,1fr)}.film-detail-grid{grid-template-columns:1fr}.location-search{grid-template-columns:1fr 1fr}.location-search .btn{grid-column:1/-1}.public-header{padding:0 16px}.header-actions .header-link:not(.button-link){display:none}}
@media(max-width:620px){.public-main{width:min(100% - 22px,1200px);padding-top:22px}.form-heading,.portal-head{flex-direction:column}.form-section{grid-template-columns:1fr;padding:16px}.section-number{width:30px;height:30px}.public-grid,.classroom-grid,.form-grid,.details-card{grid-template-columns:1fr}.classroom-card{grid-template-columns:1fr}.program-card-grid,.film-grid{grid-template-columns:1fr}.form-submit{align-items:flex-start;flex-direction:column}.auth-card{padding:24px 18px}.top-choice{top:14px;right:14px}.scene-card{align-items:flex-start;flex-direction:column}.resource-item{grid-template-columns:44px 1fr}.resource-item small{grid-column:2}.public-brand small{display:none}}

/* Ficha privada de película: materiales arriba, Vimeo incrustado y escenas por pestañas. */
.film-materials-top{margin-bottom:14px}.material-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.material-group{background:#fafafa;border:1px solid var(--line);border-radius:12px;padding:14px}.material-group h3{margin:0 0 10px;font-size:16px}.resource-list.compact .resource-item{grid-template-columns:40px 1fr;align-items:start}.resource-list.compact .resource-item small{grid-column:2}.film-summary,.film-player-section,.film-scenes-section{margin-bottom:14px}.film-introduction{font-size:17px;line-height:1.65;color:#353535}.vimeo-frame{position:relative;aspect-ratio:16/9;width:100%;overflow:hidden;border-radius:12px;background:#111}.vimeo-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.scene-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:thin}.scene-tab{flex:0 0 auto;border:1px solid var(--line);background:#f8f8f8;color:var(--text);border-radius:9px;padding:9px 12px;cursor:pointer;font:inherit;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:7px}.scene-tab span{color:var(--accent);font-variant-numeric:tabular-nums}.scene-tab:hover{border-color:#aaa;background:#fff}.scene-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.scene-tab.active span{color:#fff}.scene-viewer{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.5fr);gap:16px;align-items:start}.scene-copy{padding:6px 4px}.scene-copy h3{margin:0 0 8px;font-size:20px}.scene-copy p{margin:0;color:var(--muted);line-height:1.55}
@media(max-width:900px){.material-group-grid{grid-template-columns:1fr}.scene-viewer{grid-template-columns:1fr}.scene-copy{padding:2px 0}}

/* v0.5 · área privada y perfil */
.portal-program-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.portal-program-card{min-height:250px;display:flex;flex-direction:column;justify-content:space-between;padding:22px}.program-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.film-count{font-size:12px;color:var(--muted);font-weight:600}.program-card-content h2{font-size:23px;line-height:1.2;margin:22px 0 10px}.program-card-content p{color:var(--muted);margin:0;line-height:1.6}.program-card-footer{margin-top:24px}.program-lead{max-width:780px;line-height:1.65;color:var(--muted);font-size:16px}.portal-film-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.portal-film-card{overflow:hidden}.film-poster{aspect-ratio:2/3;background:#ececec;overflow:hidden}.film-poster img{width:100%;height:100%;object-fit:cover;display:block}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profile-readonly{margin:18px 0}.profile-readonly small{display:block;color:var(--success);font-size:11px;margin-top:3px}.security-card{margin-top:18px}.readonly-field{background:#f7f7f7;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:16px 0}.readonly-field span,.readonly-field strong{display:block}.readonly-field span{font-size:12px;color:var(--muted)}.local-debug{border:1px dashed #8bbce8;background:#edf6ff;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px;margin:16px 0}.verification-card{max-width:560px}.scope-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.scope-summary{border:1px solid var(--line);background:#fafafa;border-radius:10px;padding:12px}.scope-summary strong,.scope-summary span{display:block}.scope-summary span{font-size:12px;color:var(--muted);margin-top:4px}
@media(max-width:620px){.profile-grid{grid-template-columns:1fr}}
.film-overview{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:24px;margin-bottom:14px}.film-overview-poster{aspect-ratio:2/3;border-radius:10px;overflow:hidden;background:#ececec}.film-overview-poster img{width:100%;height:100%;object-fit:cover;display:block}.film-overview-copy h2{font-size:18px;margin:18px 0 6px}.film-overview-copy p{margin:0 0 10px;line-height:1.65}.film-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.film-meta span{padding:4px 8px;border-radius:6px;background:#f2f2f2;color:#555;font-size:12px}@media(max-width:700px){.film-overview{grid-template-columns:1fr}.film-overview-poster{max-width:220px}}

/* v0.6 · listado de películas y ficha técnica compartida */
.program-film-list{display:grid;gap:24px}.program-film-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr;background:#fff;border:1px solid rgba(17,24,39,.08);border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.06)}.program-film-poster{min-height:280px;background:#edf2f7}.program-film-poster img{width:100%;height:100%;object-fit:cover;display:block}.program-film-poster.placeholder{display:grid;place-items:center;font-size:3rem;font-weight:700}.program-film-copy{padding:26px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}.program-film-copy h3{margin:0;font-size:1.55rem}.film-card-synopsis{color:#51555c;line-height:1.6;max-width:75ch}.film-card-synopsis p{margin:.35rem 0}.film-card-resources{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.film-card-resources a{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:#f4f6f8;text-decoration:none;color:inherit;font-size:.92rem}.film-card-resources a span{font-size:.72rem;font-weight:700;color:#0067c0}.rich-copy{line-height:1.65;color:#333}.rich-copy p:first-child{margin-top:0}.film-info-block+ .film-info-block{margin-top:24px}@media(max-width:720px){.program-film-row{grid-template-columns:1fr}.program-film-poster{max-height:420px}.program-film-copy{padding:20px}}

/* Recursos del programa agrupados sin duplicar la ficha audiovisual. */
.film-card-resource-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(34,34,34,.16)}
.film-card-resource-group>strong{display:block;margin-bottom:8px;font-size:.82rem;letter-spacing:.01em}
.film-card-resource-group .film-card-resources{display:flex;flex-direction:column;gap:7px;margin:0}
@media (max-width:760px){.film-card-resource-groups{grid-template-columns:1fr}}

/* v0.6.1 · ficha técnica estructurada por idioma */
.film-technical-list{margin:0;display:grid;gap:0}.film-technical-list>div{display:grid;grid-template-columns:minmax(110px,160px) 1fr;gap:18px;padding:11px 0;border-bottom:1px solid rgba(0,0,0,.08)}.film-technical-list>div:last-child{border-bottom:0}.film-technical-list dt{font-weight:650;color:var(--text,#1f2937)}.film-technical-list dd{margin:0;color:var(--muted,#5f6b7a)}@media(max-width:620px){.film-technical-list>div{grid-template-columns:1fr;gap:3px}}

/* Consentimiento de cookies / contenido multimedia */
.cookie-consent{position:fixed;left:22px;right:22px;bottom:20px;z-index:180;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;max-width:1180px;margin:auto;padding:20px 22px;background:#fff;border:1px solid #d8d8d2;box-shadow:0 18px 60px rgba(0,0,0,.18);border-radius:16px}.cookie-consent[hidden]{display:none}.cookie-consent-copy strong{display:block;font-size:18px;margin-bottom:5px}.cookie-consent-copy p{margin:0;max-width:760px;line-height:1.45;color:#434343}.cookie-consent-copy a{display:inline-block;margin-top:7px;color:inherit;text-decoration:underline}.cookie-consent-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.cookie-action{min-width:118px;border:1px solid #111;background:#fff;color:#111;padding:12px 15px;border-radius:8px;font:inherit;font-weight:700;cursor:pointer}.cookie-action:last-child{background:#111;color:#fff}.cookie-settings[hidden]{display:none}.cookie-settings{position:fixed;inset:0;z-index:190;display:grid;place-items:center;padding:20px}.cookie-settings-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(3px)}.cookie-settings-dialog{position:relative;width:min(680px,100%);max-height:min(760px,90vh);overflow:auto;background:#fff;border-radius:16px;padding:26px;box-shadow:0 30px 100px rgba(0,0,0,.35)}.cookie-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.cookie-settings-head h2{margin:3px 0 0;font-size:30px;line-height:1}.cookie-settings-head .eyebrow{margin:0;font-size:11px;letter-spacing:.08em}.cookie-close{border:0;background:transparent;font-size:32px;line-height:1;cursor:pointer;padding:2px 5px}.cookie-settings-intro{font-size:15px;line-height:1.55;color:#4f4f4f}.cookie-category{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:18px 0;border-top:1px solid #e4e4df}.cookie-category strong{font-size:17px}.cookie-category p{margin:5px 0 0;font-size:14px;line-height:1.5;color:#555}.cookie-switch{display:grid;justify-items:end;gap:5px}.cookie-switch input{position:absolute;opacity:0;pointer-events:none}.cookie-switch span{display:block;width:46px;height:25px;border-radius:99px;background:#bbb;position:relative}.cookie-switch span:after{content:"";position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s}.cookie-switch input:checked+span{background:#1764ff}.cookie-switch input:checked+span:after{transform:translateX(21px)}.cookie-switch input:disabled+span{opacity:.72}.cookie-switch em{font-style:normal;font-size:11px;color:#666}.cookie-settings-foot{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid #e4e4df;padding-top:20px}.cookie-settings-foot>a{color:inherit;text-decoration:underline}.cookie-settings-foot>div{display:flex;gap:8px}.cookie-primary,.cookie-secondary{border:1px solid #111;border-radius:8px;padding:11px 14px;font:inherit;font-weight:700;cursor:pointer}.cookie-primary{background:#111;color:#fff}.cookie-secondary{background:#fff;color:#111}.cookie-manage{position:fixed;left:16px;bottom:14px;z-index:120;border:1px solid #bbb;background:#fff;color:#111;border-radius:999px;padding:7px 11px;font:inherit;font-size:12px;font-weight:700;box-shadow:0 4px 18px rgba(0,0,0,.12);cursor:pointer}.cookie-manage[hidden]{display:none}.cookie-dialog-open{overflow:hidden}.media-consent-placeholder{position:absolute;inset:0;z-index:2;display:grid;place-content:center;text-align:center;gap:8px;padding:24px;background:#101010;color:#fff}.media-consent-placeholder[hidden]{display:none}.media-consent-placeholder strong{font-size:17px}.media-consent-placeholder p{margin:0 auto;max-width:460px;color:#d7d7d7;font-size:14px;line-height:1.45}.media-consent-placeholder button{justify-self:center;margin-top:4px;border:1px solid #fff;background:#fff;color:#111;border-radius:999px;padding:9px 14px;font:inherit;font-weight:700;cursor:pointer}.vimeo-frame,.site-video-frame{position:relative}
@media(max-width:760px){.cookie-consent{left:10px;right:10px;bottom:10px;grid-template-columns:1fr;gap:14px;padding:17px}.cookie-consent-actions{display:grid;grid-template-columns:1fr 1fr}.cookie-action{min-width:0}.cookie-action:last-child{grid-column:1/-1}.cookie-settings-dialog{padding:20px}.cookie-settings-head h2{font-size:25px}.cookie-settings-foot{align-items:stretch;flex-direction:column}.cookie-settings-foot>div{display:grid;grid-template-columns:1fr 1fr}.cookie-primary,.cookie-secondary{width:100%}}
.cookie-consent-actions .cookie-action[data-cookie-reject],.cookie-consent-actions .cookie-action[data-cookie-accept]{background:#111;color:#fff}
.cookie-consent-actions .cookie-action[data-cookie-settings]{background:#fff;color:#111}

/* v0.6.23 · accesibilidad y puerta informativa de privacidad */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #1764ff;outline-offset:3px}
.cookie-switch input:focus-visible+span{outline:3px solid #1764ff;outline-offset:3px}
.privacy-gate[hidden]{display:none}.privacy-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.privacy-gate-backdrop{position:absolute;inset:0;background:rgba(12,18,25,.68)}.privacy-gate-panel{position:relative;z-index:1;width:min(720px,100%);max-height:min(820px,calc(100vh - 40px));overflow:auto;background:#fff;border-radius:20px;padding:34px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.privacy-gate-panel h2{margin:6px 42px 12px 0}.privacy-gate-panel>p{line-height:1.6}.privacy-gate-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border:0;border-radius:50%;background:#f0f1f3;font:inherit;font-size:28px;line-height:1;cursor:pointer}.privacy-gate-summary{display:grid;gap:0;margin:22px 0;border-top:1px solid #e4e7eb}.privacy-gate-summary>div{display:grid;grid-template-columns:minmax(120px,.36fr) minmax(0,1fr);gap:20px;padding:14px 0;border-bottom:1px solid #e4e7eb}.privacy-gate-summary dt{font-weight:800}.privacy-gate-summary dd{margin:0;line-height:1.5}.privacy-gate-note{padding:14px 16px;border-radius:12px;background:#f5f7fa;font-size:14px}.privacy-gate-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:24px}.privacy-gate-open{overflow:hidden}.form-privacy-note{font-size:14px;line-height:1.55;color:#555}
@media (max-width:640px){.privacy-gate{padding:10px}.privacy-gate-panel{padding:24px 20px;border-radius:14px;max-height:calc(100vh - 20px)}.privacy-gate-summary>div{grid-template-columns:1fr;gap:5px}.privacy-gate-actions{display:grid}.privacy-gate-actions .btn{width:100%}}

/* v0.6.26 · aulas dinámicas */
.classroom-editor{display:grid;gap:12px}.classroom-card-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px}.classroom-card-head strong{display:block}.classroom-remove{border:0;background:transparent;cursor:pointer;color:#8a2b22;padding:4px 0}.classroom-remove:disabled{opacity:.35;cursor:not-allowed}.classroom-add{justify-self:start}

/* v0.6.27 · barra visible de accesibilidad y privacidad */
.utility-rail{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:135;display:flex;flex-direction:column;gap:7px}.utility-rail-button{width:92px;min-height:64px;border:1px solid #c9c9c9;border-radius:12px;background:#fff;color:#171717;box-shadow:0 6px 24px rgba(0,0,0,.12);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.utility-rail-button:hover,.utility-rail-button:focus-visible{border-color:var(--accent);outline:3px solid rgba(0,103,192,.18);outline-offset:2px}.utility-rail-icon{font-size:18px;line-height:1}.a11y-panel{position:fixed;right:118px;top:50%;transform:translateY(-50%);z-index:170;width:min(390px,calc(100vw - 150px));max-height:82vh;overflow:auto;background:#fff;border:1px solid #d5d5d5;border-radius:16px;padding:22px;box-shadow:0 20px 70px rgba(0,0,0,.22)}.a11y-panel[hidden]{display:none}.a11y-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.a11y-panel-head h2{margin:3px 0 0;font-size:25px}.a11y-close{border:0;background:transparent;font-size:30px;line-height:1;cursor:pointer}.a11y-panel-intro{color:#555;font-size:14px;line-height:1.45}.a11y-control-group{padding:15px 0;border-top:1px solid #e3e3e3}.a11y-control-group strong{display:block;margin-bottom:9px}.a11y-size-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.a11y-size-controls button,.a11y-reset{border:1px solid #aaa;background:#fff;border-radius:8px;padding:9px;font:inherit;font-weight:700;cursor:pointer}.a11y-size-controls button[aria-pressed="true"]{background:#111;color:#fff;border-color:#111}.a11y-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-top:1px solid #e3e3e3;background:#fff;padding:14px 0;font:inherit;font-weight:700;text-align:left;cursor:pointer}.a11y-toggle span:last-child{font-size:18px}.a11y-panel-foot{border-top:1px solid #e3e3e3;padding-top:14px}.a11y-reset{width:100%}.private-program-logo-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.private-program-logo-row img{max-width:180px;max-height:90px;object-fit:contain}.private-program-logo-legend{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:14px;line-height:1.55;color:var(--muted)}.portal-welcome{margin-bottom:18px;padding:24px;border-radius:16px;background:#fff;border:1px solid rgba(0,0,0,.08)}.portal-welcome h1{margin-bottom:8px}.portal-welcome p{margin:0 0 7px;max-width:760px;color:var(--muted)}.portal-welcome small{font-weight:700}.portal-access-notice{margin:0 0 22px;padding:14px 16px;border-left:4px solid var(--accent);background:var(--soft);border-radius:8px}.portal-access-notice strong{display:block;margin-bottom:3px}.portal-access-notice p{margin:0;color:#444}.portal-main-title{margin:0 0 5px;font-size:28px}

html.a11y-underline-links a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px!important}html.a11y-high-contrast body{background:#fff!important;color:#000!important}html.a11y-high-contrast a{color:#003b8f!important}html.a11y-high-contrast .content-card,html.a11y-high-contrast .program-card,html.a11y-high-contrast .portal-welcome,html.a11y-high-contrast .portal-access-notice{border-color:#000!important;box-shadow:none!important}html.a11y-high-contrast input,html.a11y-high-contrast select,html.a11y-high-contrast textarea,html.a11y-high-contrast button{border-color:#000!important}html.a11y-reduce-motion *,html.a11y-reduce-motion *::before,html.a11y-reduce-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
@media(max-width:760px){.utility-rail{right:10px;top:auto;bottom:10px;transform:none;flex-direction:row}.utility-rail-button{width:auto;min-width:74px;min-height:50px;padding:6px 9px}.a11y-panel{right:10px;left:10px;top:auto;bottom:72px;transform:none;width:auto;max-height:70vh}}

/* Protección visible de contenido privado */
.protected-content-notice{margin:0 0 14px;padding:10px 13px;border:1px solid #d7e0e8;border-radius:10px;background:#f5f8fb;color:#405466;font-size:13px;line-height:1.45}.playback-conflict{margin:0 0 14px;padding:14px 16px;border:1px solid #d8b7b7;border-radius:10px;background:#fff4f4;color:#7d2222;font-weight:700}.protected-player{position:relative}.content-watermark{position:absolute;z-index:4;max-width:70%;padding:5px 8px;border-radius:5px;background:rgba(0,0,0,.34);color:rgba(255,255,255,.83);font-size:12px;line-height:1.2;letter-spacing:.02em;pointer-events:none;user-select:none;transition:top .5s ease,left .5s ease,right .5s ease,bottom .5s ease}.content-watermark.wm-pos-0{top:12px;left:12px}.content-watermark.wm-pos-1{top:12px;right:12px}.content-watermark.wm-pos-2{bottom:12px;left:12px}.content-watermark.wm-pos-3{bottom:12px;right:12px}.protected-fullscreen{position:absolute;right:10px;bottom:10px;z-index:5;border:1px solid rgba(255,255,255,.65);border-radius:7px;background:rgba(0,0,0,.6);color:#fff;padding:7px 9px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.protected-player:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0;background:#000}.protected-player:fullscreen iframe{width:100%;height:100%}.playback-denied .protected-player{opacity:.55;pointer-events:none}.playback-denied .protected-fullscreen{display:none}@media(max-width:700px){.content-watermark{font-size:10px;max-width:78%}.protected-fullscreen{font-size:11px;padding:6px 8px}}


/* v0.6.33 · refuerzo WCAG 2.2 AA */
html{scroll-padding-block:96px 84px}.skip-link{position:fixed;left:12px;top:10px;z-index:3000;transform:translateY(-180%);background:#111;color:#fff!important;border:2px solid #fff;border-radius:8px;padding:11px 15px;font-weight:800;text-decoration:none!important;transition:transform .12s ease}.skip-link:focus{transform:translateY(0)}#main-content:focus,#admin-main-content:focus{outline:none}:where(a,button,input,select,textarea,[tabindex]):focus-visible{scroll-margin-block:104px 92px}.btn,.header-link,.language-choice a,.a11y-close,.a11y-size-controls button,.a11y-reset,.cookie-close,.cookie-primary,.cookie-secondary,.cookie-action,.media-consent-placeholder button,.classroom-remove,.protected-fullscreen{min-height:44px}.language-choice a{min-width:44px}.a11y-close,.cookie-close{min-width:44px}.protected-fullscreen{min-width:44px}.carousel-controls button:disabled{opacity:.42;cursor:not-allowed}.public-flash[role="alert"],.public-flash[role="status"]{position:relative}
@media(max-width:760px){html{scroll-padding-block:80px 86px}:where(a,button,input,select,textarea,[tabindex]):focus-visible{scroll-margin-block:88px 92px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
@media(prefers-contrast:more){:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline-width:4px!important}.content-card,.program-card,.auth-card,.form-section,.panel-form{border-color:currentColor!important}}
@media(forced-colors:active){:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid Highlight!important}.utility-rail-button,.btn,.cookie-action,.cookie-primary,.cookie-secondary{forced-color-adjust:auto}}

/* v0.6.34 · Portal operativo y notificaciones */
.portal-action-grid{display:grid;gap:1rem;margin:1rem 0 1.5rem}.panel-like{background:#fff;border:1px solid #dfe4ea;border-radius:18px;padding:1.1rem}.portal-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.upcoming-list{display:grid;gap:.65rem;margin-top:.8rem}.upcoming-item{display:grid;grid-template-columns:92px 1fr;gap:.85rem;align-items:center;padding:.8rem;border-radius:14px;background:#f6f8fa;text-decoration:none;color:inherit}.upcoming-item time{font-weight:700}.upcoming-item span{display:grid;gap:.15rem}.upcoming-item small{color:#5f6873}.notification-badge{display:inline-flex;min-width:1.35rem;height:1.35rem;align-items:center;justify-content:center;border-radius:999px;background:#0f5bd7;color:#fff;font-size:.75rem;padding:0 .35rem}.notification-list{display:grid;gap:.8rem}.notification-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:#fff;border:1px solid #dfe4ea;border-radius:16px;padding:1rem}.notification-card.is-unread{border-color:#0f5bd7;box-shadow:0 0 0 2px rgba(15,91,215,.08)}.notification-card h2{margin:.35rem 0;font-size:1rem}.notification-card p{margin:.2rem 0 .45rem}.site-breadcrumbs{padding-top:.75rem;padding-bottom:.4rem}.site-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0;font-size:.9rem}.site-breadcrumbs li+li:before{content:'›';margin-right:.4rem;color:#7a8490}.site-breadcrumbs a{color:inherit}.site-breadcrumbs span[aria-current="page"]{font-weight:600}
@media(max-width:700px){.upcoming-item{grid-template-columns:1fr}.notification-card{align-items:flex-start;flex-direction:column}.portal-section-head{flex-direction:column}}
.admin-preview-banner{margin:0 auto 18px;max-width:1180px;padding:11px 14px;border:1px solid #9ac9f5;border-radius:8px;background:#e7f3ff;color:#17314b}.admin-preview-banner strong{margin-right:6px}

/* v0.6.48 · película privada: materiales compactos y escenas en pestañas laterales. */
.film-specific-materials{padding-block:18px}.film-specific-materials .section-heading{margin-bottom:10px}.film-specific-materials .material-group-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:8px}.film-specific-materials .material-group{padding:11px 12px}.film-specific-materials .material-group h3{margin-bottom:7px}.film-specific-materials .resource-item{padding:8px;gap:8px}.film-player-section{padding-bottom:20px}.film-scenes-section{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:14px 18px;align-items:start}.film-scenes-section>.section-heading{grid-column:1/-1;margin-bottom:0}.film-scenes-section>.scene-tabs{grid-column:1;display:flex;flex-direction:column;gap:6px;overflow-y:auto;overflow-x:hidden;max-height:min(70vh,680px);padding:0 6px 0 0}.film-scenes-section>.scene-viewer{grid-column:2;display:block;min-width:0}.film-scenes-section .scene-tab{width:100%;flex:0 0 auto;text-align:left;justify-content:flex-start;white-space:normal;padding:10px 11px}.film-scenes-section .scene-copy{padding:12px 2px 0}.film-scenes-section .scene-copy h3{font-size:20px}.film-scenes-section .scene-copy p{max-width:70ch}
@media(max-width:760px){.film-scenes-section{grid-template-columns:1fr}.film-scenes-section>.section-heading,.film-scenes-section>.scene-tabs,.film-scenes-section>.scene-viewer{grid-column:1}.film-scenes-section>.scene-tabs{flex-direction:row;overflow-x:auto;overflow-y:hidden;max-height:none;padding:0 0 10px}.film-scenes-section .scene-tab{width:auto;min-width:max-content}.film-specific-materials .material-group-grid{grid-template-columns:1fr}}

/* v0.6.49 · ficha privada de película: lectura compacta + película + escenas laterales. */
.film-detail-page{display:grid;gap:14px}.film-detail-page>.content-card{margin:0}
.film-overview-complete{display:grid;grid-template-columns:minmax(150px,205px) minmax(0,1fr) minmax(230px,320px);gap:26px;align-items:start;padding:20px}
.film-overview-complete.no-poster{grid-template-columns:minmax(0,1fr) minmax(230px,320px)}
.film-overview-complete .film-overview-poster{width:100%;max-width:205px;aspect-ratio:2/3;border-radius:9px}
.film-overview-complete .film-overview-copy h2{font-size:24px;line-height:1.08;margin:8px 0 4px}
.film-original-title{font-size:13px}.film-overview-section{padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}
.film-overview-section h3,.film-overview-tech h3{font-size:16px;line-height:1.2;margin:0 0 8px}.film-overview-section .rich-copy{font-size:14px;line-height:1.55}
.film-overview-tech{border-left:1px solid var(--line);padding-left:22px;min-width:0}.film-overview-tech .film-technical-list>div{grid-template-columns:92px 1fr;gap:10px;padding:9px 0;font-size:13px}.film-overview-tech .film-tech-actors{grid-template-columns:1fr;gap:4px}.film-program-document{margin-top:16px!important}
.film-specific-materials{padding:16px 18px}.film-specific-materials .section-heading h2{font-size:19px;margin-bottom:0}.film-specific-materials .material-group-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-top:8px}.film-specific-materials .material-group{padding:10px;border-radius:9px;background:#f6f8fa}.film-specific-materials .material-group h3{font-size:14px;margin:0 0 6px}.film-specific-materials .resource-item{padding:7px 8px;border-radius:7px}.film-specific-materials .resource-item strong{font-size:13px}.film-specific-materials .resource-item small{font-size:11px}
.film-player-section{padding:18px}.film-player-section .section-heading{margin-bottom:12px}.film-player-section .section-heading h2{font-size:20px}.film-player-section .vimeo-frame{border-radius:10px}
.film-scenes-section{grid-template-columns:minmax(190px,245px) minmax(0,1fr);gap:12px 18px;padding:18px}.film-scenes-section>.section-heading{margin-bottom:2px}.film-scenes-section>.section-heading h2{font-size:20px;margin-bottom:3px}.film-scenes-section>.section-heading p{margin:0;color:var(--muted);font-size:13px}.film-scenes-section>.scene-tabs{gap:5px;max-height:min(66vh,610px);padding-right:7px}.film-scenes-section .scene-tab{border-radius:8px;padding:9px 10px;font-size:12px;line-height:1.25}.film-scenes-section .scene-tab span{min-width:24px}.film-scenes-section .scene-tab strong{font:inherit;font-weight:650}.film-scenes-section .scene-viewer .vimeo-frame{border-radius:10px}.film-scenes-section .scene-copy{padding-top:10px}.film-scenes-section .scene-copy h3{font-size:18px;margin-bottom:5px}.film-scenes-section .scene-copy p{font-size:13px;line-height:1.5}.preview-empty-section{padding:18px}.preview-empty-section h2{font-size:20px;margin:4px 0 5px}.preview-empty-section p{margin:0;color:var(--muted)}
@media(max-width:900px){.film-overview-complete,.film-overview-complete.no-poster{grid-template-columns:minmax(135px,180px) minmax(0,1fr)}.film-overview-complete .film-overview-tech{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:16px 0 0}.film-overview-complete .film-overview-tech .film-technical-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;column-gap:22px}.film-overview-complete .film-overview-tech .film-tech-actors{grid-column:1/-1}}
@media(max-width:760px){.film-scenes-section{grid-template-columns:1fr}.film-scenes-section>.scene-tabs{flex-direction:row;max-height:none;overflow-x:auto;padding:0 0 9px}.film-scenes-section .scene-tab{width:auto;min-width:max-content}.film-specific-materials .material-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.film-overview-complete,.film-overview-complete.no-poster{grid-template-columns:1fr}.film-overview-complete .film-overview-poster{max-width:170px}.film-overview-complete .film-overview-tech{grid-column:auto}.film-overview-complete .film-overview-tech .film-technical-list{grid-template-columns:1fr}.film-specific-materials .material-group-grid{grid-template-columns:1fr}}

/* v0.6.58 · Área de profesorado: identidad y paleta fría */
.portal-shell .content-card,.portal-shell .panel-form,.portal-shell .program-card,.portal-shell .film-card,.portal-shell .scene-card,.portal-shell .ticket-row,.portal-shell .notification-card{background:#fff;border-color:#dfe6ed}.portal-shell .details-card>div,.portal-shell .dynamic-panel,.portal-shell .material-group{background:#f5f8fb;border-color:#dfe6ed}.portal-shell .portal-access-notice{background:#edf4fa;border-left-color:var(--accent)}.account-delete-card{margin-top:18px;background:#fff;border:1px solid #dfe6ed}.account-delete-card>p{margin:.45rem 0;color:#4a5663}.account-delete-stat-note{padding:12px 14px;border-radius:10px;background:#edf4fa;color:#36546d!important}.btn.danger{background:#fff;border-color:#b42318;color:#9f1d14}.btn.danger:hover,.btn.danger:focus-visible{background:#fff2f0;border-color:#9f1d14;color:#7f1710}@media(max-width:760px){.public-header{height:auto;min-height:68px;padding-top:10px;padding-bottom:10px;align-items:flex-start}.portal-brand-logo{height:38px;max-width:132px}.portal-brand-copy{display:none}}
