:root { --te-gold:#e0b510; --te-purple:#570b88; --te-ink:#282631; --te-muted:#696674; --te-paper:#faf9f6; }
body.te-web { margin:0; background:var(--te-paper); color:var(--te-ink); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; }
.te-header { min-height:80px; padding:16px max(24px,calc((100vw - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; gap:24px; background:var(--te-gold); }
.te-brand { color:#302611; text-decoration:none; display:flex; align-items:center; gap:10px; font-size:1.4rem; font-weight:650; letter-spacing:-.04em; }
.te-brand img { object-fit:contain; }
.te-header nav { display:flex; align-items:center; flex-wrap:wrap; gap:18px; }
body.te-study .te-header { position:sticky; top:0; z-index:1040; }
.te-nav-link { color:#322817; font-size:.94rem; font-weight:600; background:none; border:0; padding:6px 0; text-decoration:none; }
.te-nav-link:hover { color:var(--te-purple); text-decoration:underline; }
.te-skip { position:absolute; left:12px; top:-60px; background:white; padding:12px; z-index:9999; }
.te-skip:focus { top:8px; }
.te-entry-layout { max-width:550px; margin:0 auto; padding:40px 20px; min-height:calc(100dvh - 156px); }
.te-eyebrow { font-size:.72rem; font-weight:750; letter-spacing:.15em; color:var(--te-purple); margin:0 0 20px; }
.te-intro h1 { font-size:clamp(2.6rem,4.2vw,3.7rem); font-weight:650; letter-spacing:-.055em; line-height:1.08; margin:0 0 26px; }
.te-lead { font-size:1.15rem; line-height:1.65; color:var(--te-muted); max-width:450px; }
.te-benefits { list-style:none; padding:0; margin:36px 0; display:grid; gap:20px; }
.te-benefits li { display:flex; gap:16px; align-items:center; font-size:.96rem; }
.te-benefits i { color:var(--te-purple); width:24px; text-align:center; }
.te-app-hint { border-left:3px solid var(--te-gold); padding:4px 0 4px 16px; max-width:390px; font-size:.89rem; color:var(--te-muted); line-height:1.6; }
.te-login-card { min-width:0; background:white; border:1px solid #e8e5df; border-radius:10px; padding:32px; box-shadow:0 8px 30px #32281705; }
.te-login-card h2,.te-login-card > div > .te-muted { text-align:center; }
.te-account-link { text-align:center; margin:24px 0 0; font-size:.92rem; }
.te-account-link .te-text-button { display:inline; margin:0; font-size:inherit; padding:0; }
.te-selected-email { overflow-wrap:anywhere; }
.te-login-card .te-app-hint { border:0; padding:0; margin:16px auto 0; text-align:center; font-size:.8rem; }
.te-login-card h2 { font-size:1.65rem; font-weight:650; letter-spacing:-.035em; }
.te-muted { color:var(--te-muted); line-height:1.6; font-size:.92rem; }
#te-google { min-height:44px; margin:24px 0 10px; display:flex; justify-content:center; }
.te-divider { display:flex; align-items:center; gap:12px; color:#77717d; font-size:.8rem; margin:18px 0 22px; }
.te-divider:before,.te-divider:after { content:""; flex:1; height:1px; background:#e8e5df; }
.te-login-card label { display:block; font-weight:600; font-size:.86rem; margin:16px 0 7px; }
.te-login-card input { width:100%; min-height:48px; border:1px solid #cbc7d0; border-radius:8px; padding:10px 13px; background:white; color:var(--te-ink); }
.te-web :focus-visible { outline:3px solid #9872b9; outline-offset:3px; }
.te-primary { display:flex; align-items:center; justify-content:center; gap:16px; width:100%; min-height:49px; background:var(--te-gold); color:#302611; border:0; border-radius:8px; font-weight:650; margin:23px 0 12px; }
.te-primary:hover { background:#cda50b; }
.te-primary:disabled { opacity:.6; cursor:wait; }
.te-text-button { display:block; background:none; border:0; color:var(--te-purple); font-size:.86rem; margin:18px auto 0; padding:6px; text-align:center; }
.te-terms { font-size:.73rem; color:var(--te-muted); text-align:center; margin:24px 0 0; line-height:1.7; }
.te-terms a { color:inherit; }
#te-auth-message { font-size:.88rem; line-height:1.5; margin:16px 0 0; }
#te-auth-message:empty { display:none; }
.te-error { color:#a42135; }
.te-success { color:#176644; }
.te-footer { max-width:1180px; padding:24px; margin:auto; border-top:1px solid #e7e3dc; display:flex; justify-content:space-between; gap:16px; font-size:.78rem; color:var(--te-muted); }
.te-study-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; max-width:1120px; margin:30px auto 16px; padding:0 20px; }
.te-study-heading .te-eyebrow { margin:0 0 6px; }
.te-study-heading h1 { font-size:1.8rem; letter-spacing:-.04em; }
.te-study-heading > p { color:var(--te-muted); font-size:.85rem; }
.te-loading { text-align:center; padding:70px 24px; color:var(--te-muted); }
body.te-study #p_main { padding-bottom:36px; }
body.te-study #main { min-height:50vh; }
body.te-study .banner-wrapper { left:auto; right:auto; margin:0; max-width:100%; }
body.te-study .banner { width:100%; max-height:240px; object-fit:cover; border-radius:12px; }
body.te-study #menu_load > nav,body.te-study #menu_load > .fixed-bottom { display:none!important; }
body.te-study .navbar.fixed-bottom { display:none!important; }
body.te-study .te-footer { margin-top:28px; }
body.te-study #main .v2-question-statement { line-height:1.75; }
body.te-study #floating-div { position:sticky!important; bottom:12px!important; left:auto!important; width:auto!important; padding:12px; background:transparent; border:0; border-radius:12px; }
body.te-study #menu_heart { min-height:50vh; }
body.te-study.tema_dark { --te-paper:#1e2025; --te-ink:#f1f0f5; --te-muted:#c6c2cd; --te-purple:#d5adf5; color-scheme:dark; background:var(--te-paper); color:var(--te-ink); }
body.te-study.tema_dark .te-study-heading h1 { color:var(--te-ink); }
body.te-study.tema_dark .te-footer { border-color:#55515e; }
body.te-study.tema_dark .te-nav-link:hover { color:#570b88; }
body.te-study.tema_dark .te-header { color-scheme:light; }
@media(min-width:992px) {
  body.te-study #p_main { max-width:1120px; }
  body.te-study .modal-lg { --bs-modal-width:850px; }
  body.te-study #main.te-reading { max-width:850px; margin:auto; }
}
@media(max-width:760px) {
  .te-header { padding:14px 20px; min-height:72px; gap:16px; }
  .te-brand { font-size:1.18rem; }.te-brand img { width:30px;height:30px; }
  .te-entry-layout { grid-template-columns:minmax(0,1fr); gap:28px; padding:36px 20px; }
  .te-intro h1 { font-size:2.5rem; }.te-intro h1 br { display:none; }
  .te-lead { font-size:1rem; }.te-benefits { display:none; }.te-app-hint { margin-top:18px; }
  .te-login-card { padding:26px 22px; }.te-footer { flex-direction:column; gap:4px; }
  .te-header nav { gap:12px; }.te-nav-link { font-size:.8rem; }
  .te-study .te-header { flex-wrap:wrap; }.te-study-heading > p { max-width:40%; text-align:right; }
}

/* Certificate layout is scoped to the web platform, including modal content. */
body.te-study .te-certificate-item { width:100%; max-width:520px; min-width:0; margin-inline:auto; flex:0 1 520px; }
body.te-study .te-certificate-item > .card { width:100%; height:100%; }
body.te-study .te-certificate-item .card-title { overflow-wrap:break-word; word-break:normal; }
body.te-study .te-certificate-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); align-items:stretch; }
body.te-study .modal .te-certificate-grid { grid-template-columns:minmax(0,1fr); }
body.te-study .te-certificate-item .card-footer { margin-top:auto; }
