/* SEC Idiomas - static library */
:root{--bg:#000000;--surface:#171725;--surface2:#202033;--text:#f0e6d3;--muted:#8f8aa3;--line:rgba(255,255,255,.1);--accent:#fbbf24;--level:#fbbf24;--level-bg1:#3d2f1f;--level-bg2:#2a2113}*{box-sizing:border-box}html{min-height:100%;background:#000000!important;color-scheme:dark}body{margin:0;min-height:100vh;background:#000000!important;color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,a{font:inherit}main.app,.app,#app{min-height:100vh;background:#000000!important}.page{display:none;min-height:100vh;padding:42px 18px}.page.active{display:block}.home-page.active{display:flex;align-items:center;justify-content:center}.shell{width:100%;max-width:940px;margin:0 auto}.home-shell{max-width:760px}.hero{text-align:center;margin-bottom:38px}.hero h1{font-size:clamp(2.7rem,8vw,4.2rem);line-height:1;margin:0 0 13px;font-weight:800;letter-spacing:-.045em}.hero p{margin:0;color:var(--muted);font-size:1.03rem}.level-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.level-card{border:0;border-radius:22px;padding:28px;text-align:left;color:var(--text);min-height:150px;cursor:pointer;transition:.24s transform,.24s box-shadow,.24s opacity;background:linear-gradient(135deg,var(--c1),var(--c2))}.level-card:hover:not(:disabled){transform:translateY(-5px);box-shadow:0 18px 42px rgba(0,0,0,.28)}.level-card:disabled{opacity:.42;cursor:not-allowed}.level-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:var(--level);color:white;margin-bottom:18px}.level-card h2{margin:0;font-size:1.55rem}.level-card p{margin:5px 0 0;color:rgba(255,255,255,.58);font-size:.9rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:30px}.back-button,.ghost-button{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);background:rgba(255,255,255,.045);color:var(--muted);padding:10px 14px;border-radius:12px;cursor:pointer;text-decoration:none}.back-button:hover,.ghost-button:hover{color:var(--text);background:rgba(255,255,255,.075)}.badge{display:inline-block;color:var(--level);background:color-mix(in srgb,var(--level) 14%,transparent);font-weight:750;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;padding:6px 10px;border-radius:999px;margin-bottom:10px}.page-title{margin:0;font-size:clamp(2.3rem,7vw,3.7rem);letter-spacing:-.04em}.tabs{display:flex;gap:9px;flex-wrap:wrap;margin:27px 0 20px}.tab{border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);padding:9px 16px;cursor:pointer;font-weight:700}.tab.active{background:var(--level);border-color:var(--level);color:#101018}.resource-card{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:16px;padding:14px 16px;margin-bottom:20px}.resource-card strong{font-size:.94rem}.resource-card audio{width:min(390px,62vw);height:38px}.search{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.045);color:var(--text);border-radius:14px;padding:13px 15px;outline:none;margin-bottom:20px}.search:focus{border-color:var(--level);box-shadow:0 0 0 3px color-mix(in srgb,var(--level) 16%,transparent)}.items-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding-bottom:36px}.item-card{border:0;border-radius:17px;min-height:125px;padding:18px;text-align:left;color:var(--text);cursor:pointer;background:linear-gradient(135deg,var(--level-bg1),var(--level-bg2));transition:.2s transform,.2s box-shadow,.2s opacity}.item-card:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.25)}.item-card:disabled{opacity:.38;cursor:not-allowed}.item-kicker{display:block;color:var(--level);font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;font-weight:800;margin-bottom:7px}.item-number{display:block;font-weight:800;font-size:1.45rem;line-height:1}.item-title{display:block;color:rgba(240,230,211,.72);font-size:.82rem;line-height:1.25;margin-top:8px}.pending{display:inline-block;margin-top:9px;color:#fca5a5;font-size:.7rem}.viewer-head{margin-bottom:23px}.viewer-head h1{margin:0;font-size:clamp(2rem,6vw,3.15rem);letter-spacing:-.035em}.viewer-head p{color:var(--muted);margin:8px 0 0}.media-stack{display:grid;gap:18px}.media-card{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:18px;padding:17px}.media-card h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--level);margin:0 0 12px}.audio-player{width:100%}.pdf-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:13px}.primary-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:11px;padding:10px 14px;background:var(--level);color:#101018;font-weight:800}.pdf-frame{display:block;width:100%;height:min(76vh,820px);border:0;border-radius:12px;background:#fff}.empty-state{border:1px dashed var(--line);border-radius:17px;padding:28px;text-align:center;color:var(--muted)}.footer{color:#5f5a70;text-align:center;font-size:.75rem;padding:12px 0 28px}.teacher-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.teacher-link{display:block;text-decoration:none;color:var(--text);border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:15px;padding:16px}.teacher-link span{display:block;color:var(--accent);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}@media(max-width:800px){.items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.page{padding:28px 14px}.level-grid{grid-template-columns:1fr}.level-card{min-height:128px}.items-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.item-card{min-height:116px;padding:15px}.resource-card{align-items:flex-start;flex-direction:column}.resource-card audio{width:100%}.pdf-frame{height:68vh}.topbar{align-items:flex-start}.teacher-grid{grid-template-columns:1fr}}
/* Mobile-safe PDF.js viewer */
.pdfjs-viewer{width:100%;min-height:240px;border-radius:12px;background:#2b2b38;padding:10px;overflow:visible}
.pdf-summary{position:sticky;top:8px;z-index:2;width:max-content;margin:0 auto 10px;padding:6px 10px;border-radius:999px;background:rgba(15,15,26,.88);color:#d8d4df;font-size:.72rem;font-weight:700;backdrop-filter:blur(6px)}
.pdf-page{width:100%;min-height:340px;display:flex;align-items:flex-start;justify-content:center;margin:0 auto 14px;border-radius:8px;background:#e7e7e7;overflow:hidden;box-shadow:0 5px 18px rgba(0,0,0,.28)}
.pdf-canvas{display:block;max-width:100%;height:auto!important;background:#fff}
.pdf-page-placeholder,.pdf-loading,.pdf-page-error,.pdf-error{width:100%;min-height:240px;display:flex;align-items:center;justify-content:center;text-align:center;color:#565663;background:#f2f2f2;padding:22px}
.pdf-loading{border-radius:10px}
.pdf-error{flex-direction:column;gap:7px;border-radius:10px;color:#5e2730;background:#fff0f2}
.pdf-error span{font-size:.86rem}
@media(max-width:600px){.media-card{padding:12px}.pdfjs-viewer{padding:6px}.pdf-page{min-height:250px;margin-bottom:9px}.pdf-summary{top:4px}.primary-link{width:100%}}

/* Teacher all-in-one listening view — v11 */
.teacher-intro{margin:12px 0 38px;color:var(--muted);font-size:1rem;line-height:1.5}
.teacher-sections{display:grid;gap:48px}
.teacher-section h2{margin:0 0 18px;font-size:2rem}
.teacher-listening-card{width:100%;font:inherit;text-align:left;cursor:pointer;appearance:none}
.teacher-listening-card span{color:var(--teacher-level,var(--accent))}
.teacher-listening-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.07);border-color:color-mix(in srgb,var(--teacher-level,var(--accent)) 45%,var(--line));box-shadow:0 10px 24px rgba(0,0,0,.22)}
.teacher-media-card{scroll-margin-top:12px}
.teacher-audio-card{position:sticky;top:8px;z-index:4;background:#171725;box-shadow:0 8px 26px rgba(0,0,0,.28)}
@media(max-width:600px){.teacher-intro{margin-bottom:28px}.teacher-sections{gap:38px}.teacher-section h2{font-size:1.65rem}.teacher-audio-card{top:4px}}

/* Teacher password gate — v12 */
.teacher-entry-wrap{display:flex;justify-content:center;margin-top:26px}
.teacher-access-button{border:1px solid var(--line);background:rgba(255,255,255,.045);color:var(--muted);padding:10px 16px;border-radius:999px;cursor:pointer;font-weight:700;transition:.2s background,.2s color,.2s border-color}
.teacher-access-button:hover{background:rgba(255,255,255,.085);color:var(--text);border-color:rgba(255,255,255,.18)}
.teacher-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.82);backdrop-filter:blur(9px)}
.teacher-gate[hidden]{display:none!important}
.teacher-gate-card{position:relative;width:min(100%,430px);border:1px solid var(--line);border-radius:22px;padding:30px;background:#111115;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.teacher-gate-card h2{margin:0;font-size:2rem;letter-spacing:-.035em}
.teacher-gate-card>p{margin:9px 0 23px;color:var(--muted);line-height:1.45}
.teacher-gate-close{position:absolute;top:14px;right:15px;width:36px;height:36px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.04);color:var(--muted);font-size:1.45rem;line-height:1;cursor:pointer}
.teacher-gate-close:hover{color:var(--text);background:rgba(255,255,255,.08)}
.teacher-password-label{display:block;margin-bottom:8px;color:var(--text);font-size:.86rem;font-weight:750}
.teacher-password-input{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#070709;color:var(--text);outline:none}
.teacher-password-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.teacher-login-error{margin:10px 0 0;color:#fca5a5;font-size:.84rem}
.teacher-gate-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:20px}
.teacher-gate-actions-single{justify-content:space-between}
.teacher-submit-button{border:0;cursor:pointer}
.teacher-submit-button:disabled{opacity:.58;cursor:wait}
body.teacher-gate-open{overflow:hidden}
@media(max-width:600px){.teacher-entry-wrap{margin-top:20px}.teacher-gate{padding:14px}.teacher-gate-card{padding:25px 20px}.teacher-gate-actions{align-items:stretch;flex-direction:column-reverse}.teacher-gate-actions .ghost-button,.teacher-gate-actions .primary-link{width:100%;justify-content:center}.teacher-gate-actions-single{flex-direction:column-reverse}}

/* Teacher entry visibility and iframe-safe placement — v13 */
.teacher-entry-wrap{
  position:fixed;
  top:16px;
  right:18px;
  z-index:50;
  margin:0;
}
.teacher-access-button{
  background:rgba(17,17,21,.92);
  box-shadow:0 8px 26px rgba(0,0,0,.34);
  backdrop-filter:blur(8px);
}
@media(max-width:600px){
  .teacher-entry-wrap{top:10px;right:10px}
  .teacher-access-button{padding:8px 12px;font-size:.78rem}
}

/* Discreet Teacher Area entry below the level cards — v14 */
.teacher-entry-wrap{
  position:static;
  top:auto;
  right:auto;
  z-index:auto;
  display:flex;
  justify-content:center;
  margin:24px auto 0;
}
.teacher-access-button{
  border-color:rgba(255,255,255,.07);
  background:transparent;
  color:#5f5a70;
  padding:6px 10px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:600;
  box-shadow:none;
  backdrop-filter:none;
  opacity:.62;
}
.teacher-access-button:hover,
.teacher-access-button:focus-visible{
  background:rgba(255,255,255,.035);
  color:var(--muted);
  border-color:rgba(255,255,255,.12);
  opacity:1;
}
@media(max-width:600px){
  .teacher-entry-wrap{position:static;top:auto;right:auto;margin-top:18px}
  .teacher-access-button{padding:6px 9px;font-size:.69rem}
}
