/* Shared account chrome: no fixed bottom panel or reserved bottom padding. */
:is(.account-panel,.account-dialog,.account-toolbar,[data-account-actions]) { box-sizing:border-box; font:15px/1.5 system-ui,sans-serif; color:#eefaff; }
:is(.account-panel,.account-dialog,.account-toolbar,[data-account-actions]) button { box-sizing:border-box; min-height:44px; padding:10px 13px; border:1px solid #71edf470; border-radius:12px; background:#153743; color:#eefaff; font:inherit; cursor:pointer; }
:is(.account-panel,.account-dialog,.account-toolbar,[data-account-actions]) button:hover { background:#204c59; }
:is(.account-panel,.account-dialog,.account-toolbar,[data-account-actions]) button:disabled { opacity:.5; cursor:not-allowed; }
:is(.account-panel,.account-dialog,.account-toolbar,[data-account-actions]) :focus-visible { outline:2px solid #71edf4; outline-offset:3px; box-shadow:0 0 0 5px #71edf41c,0 0 18px #71edf42b; }
:is(.account-panel,.account-dialog,[data-account-actions]) [hidden],.account-panel[hidden] { display:none!important; }
[data-account-actions],.account-toolbar { display:flex; gap:8px; align-items:center; }
:is([data-account-actions],.account-toolbar) > button { display:grid; place-items:center; width:44px; height:44px; padding:9px; flex:none; }
.account-toolbar { position:fixed; top:max(12px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); z-index:5001; }
/* Legacy standalone guest pages have their own presentation exit at this spot.
   Hostinger's persistent shell controls are outside that page and stay visible. */
.presentation-mode .account-toolbar { display:none; }
.account-panel { position:fixed; right:max(12px,env(safe-area-inset-right)); top:68px; z-index:5002; width:min(350px,calc(100vw - 24px)); max-height:calc(100dvh - 84px); overflow-y:auto; padding:12px; border:1px solid #71edf470; border-radius:16px; background:#091c29; box-shadow:0 12px 40px #0008; }
.account-panel > button { display:flex; align-items:center; gap:12px; width:100%; text-align:left; margin:3px 0; background:transparent; border-color:transparent; }
.account-panel > button:hover { border-color:#71edf470; }
.account-panel svg { flex:none; }
.account-panel p { font-size:13px; color:#b6c9d2; margin:12px 4px 4px; overflow-wrap:anywhere; }
.account-panel .account-menu-identity { padding:12px; margin:10px 0 4px; border-radius:10px; background:#15374380; border:1px solid #71edf430; color:#d2edf0; }
.account-person.account-attention { border-color:#ffc179; box-shadow:0 0 0 3px #ffc17940; }
.account-dialog { box-sizing:border-box; width:min(470px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto; border:1px solid #71edf48c; border-radius:18px; background:#071724; color:#eefaff; padding:24px; font:16px/1.5 system-ui,sans-serif; }
.account-dialog::backdrop { background:#03101edb; }
.account-dialog h2 { margin:0 0 12px; font-size:21px; color:#8aecf1; }
.account-dialog label { display:block; margin:18px 0; }
.account-dialog input { display:block; box-sizing:border-box; width:100%; margin-top:9px; padding:11px 12px; min-height:46px; border:1px solid #8ca5b7; border-radius:9px; background:#f5fbff; color:#06131e; font:inherit; }
.account-dialog input:focus { outline:1px solid #71edf4; outline-offset:2px; box-shadow:0 0 0 5px #71edf41c,0 0 18px #71edf42b; }
.account-dialog button { margin:4px 6px 4px 0; }
.account-dialog :is(button[type=submit],.account-primary) { font-weight:750; background:#245867; border-color:#8aecf1; }
.account-dialog :is(button[type=submit],.account-primary):hover { background:#2b6978; }
.account-dialog [data-cancel],.account-dialog .account-close { font-weight:400; background:transparent; border-color:#7896a655; color:#bfd0dc; }
.account-dialog [role=alert] { color:#ffcd96; }
.account-password { position:relative; display:block; margin-top:9px; }
.account-password input { padding-right:55px; margin-top:0; }
.account-dialog .account-eye { position:absolute; display:grid; place-items:center; right:2px; top:50%; transform:translateY(-50%); width:44px; height:44px; min-height:0; padding:10px; margin:0; border:0; color:#234b58; background:transparent; }
.account-dialog .account-eye:hover { background:#71edf425; }
.account-dialog .account-register-link { display:block; text-decoration:underline; background:transparent; border-color:transparent; }
.account-login-actions { display:flex; flex-wrap:wrap; gap:8px; }
.account-login-actions button { margin:0; flex:1 1 auto; }
.account-login-actions [data-register]:not(.account-primary),.account-dialog button.account-notice-guest { font-weight:400; background:transparent; border-color:#7896a655; color:#bfd0dc; }
.account-dialog button.account-notice-next { font-weight:750; background:#245867; border-color:#8aecf1; color:#eefaff; }
.account-dialog button.account-delete-blocked { color:#a9b2bb; background:#26313a; border-color:#65717b; cursor:help; }
.account-dialog button.account-delete-blocked:hover { background:#33414c; }
.account-dialog input[name=code] { text-transform:uppercase; letter-spacing:.15em; }
.account-dialog .account-progress-number { font-size:28px; font-weight:750; color:#91f0d0; }
.account-progress-list { padding-left:20px; }
.account-progress-list li { margin:7px 0; }
.account-progress-list strong { color:#eefaff; font-weight:750; }
.account-progress-done { color:#91f0b8; }
.account-progress-pending { color:#e6a8af; }
.account-progress-done.account-progress-optional { color:#78d7ca; }
.account-progress-pending.account-progress-optional { color:#d89587; }
.account-progress-list a { display:inline-block; padding:6px 2px; text-decoration:underline; text-underline-offset:3px; }
.account-identity { margin:16px 0 22px; padding:14px 16px; border:1px solid #71edf430; border-radius:12px; background:#102b38; }
.account-identity div { display:flex; gap:8px; flex-wrap:wrap; margin:5px 0; }
.account-identity dt { font-weight:700; }
.account-identity dd { margin:0; overflow-wrap:anywhere; min-width:0; }
.account-profile-form > label { font-weight:650; }
.account-profile-form input { font-weight:400; }
.account-profile-form [role=status]:empty { display:none; }
.account-profile-form [role=status] { color:#91f0b8; }
.account-muted { color:#aec3cf; font-size:13px; }
.account-blocked body:not(.legal-page) > :not(.account-panel):not(.account-dialog):not(.account-toolbar):not(script):not(link) { visibility:hidden!important; }
.account-blocked [data-account-actions] { visibility:visible; }
/* One top-level fullscreen element survives child-document navigation. */
html[data-account-shell],.account-shell { width:100%; height:100%; margin:0; background:#06131e; overflow:hidden; }
.account-shell { display:flex; flex-direction:column; }
.account-shell-header { box-sizing:border-box; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:8px max(12px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left)); padding-top:max(8px,env(safe-area-inset-top)); min-height:60px; flex:none; border-bottom:1px solid #71edf422; }
.account-shell-brand { display:block; line-height:0; }
.account-shell-brand img { display:block; width:clamp(190px,24vw,290px); max-width:100%; height:auto; }
.account-shell-brand { min-width:0; }
.account-shell iframe { display:block; border:0; width:100%; flex:1; min-height:0; background:#06131e; }
/* Keep one touch-sized control row in fullscreen; the lesson stays below it. */
:fullscreen .account-shell-header { min-height:49px; padding-top:max(2px,env(safe-area-inset-top)); padding-bottom:2px; }
:fullscreen .account-shell-brand img { width:190px; max-height:32px; object-fit:contain; }
.account-in-shell .course-header { display:none; }
.account-in-shell .mission-home-link,.account-in-shell .project-choice-brand { display:none; }
@media(max-width:480px) { .account-dialog { padding:20px; } .account-shell-brand img { width:190px; } }
.account-dialog .teacher-danger{color:#f1a0a6;font-weight:650}
.account-dialog .teacher-preserved{color:#91dcb0;padding-left:1.3em}
.account-dialog .teacher-preserved li{margin-bottom:.6em}
.account-dialog .account-secondary{font-weight:400;background:transparent}
.account-dialog .teacher-delete-check{display:flex;align-items:flex-start;gap:12px;margin:16px 0;font-weight:650}.account-dialog .teacher-delete-check input{width:22px;height:22px;flex:0 0 22px;margin:3px 0 0;accent-color:#75e0e6}.account-dialog .teacher-delete-check span{flex:1}
.account-dialog .teacher-delete-check input{appearance:none;-webkit-appearance:none;padding:0;min-height:0;border:2px solid #8cbdc8;border-radius:4px;background:#0d2230;cursor:pointer}
.account-dialog .teacher-delete-check input:checked{background:#75e0e6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-9' fill='none' stroke='%2307212c' stroke-width='2.5'/%3E%3C/svg%3E") center/18px no-repeat;border-color:#75e0e6}
.account-dialog .teacher-icons{display:inline-flex;flex:none;vertical-align:middle;margin-right:8px}
.account-dialog .teacher-icons svg{width:20px;height:20px;max-width:20px;max-height:20px}
.account-dialog .teacher-person-email{overflow-wrap:anywhere}
.account-dialog a,.account-panel a{color:#94edf1;text-underline-offset:3px}
.account-privacy{width:min(720px,calc(100vw - 32px))}
.account-privacy details{border:1px solid #476674;border-radius:12px;padding:12px;margin:16px 0}
.account-privacy summary{cursor:pointer;font-weight:700}
.account-privacy [data-notice]{font-size:.94rem;line-height:1.65;overflow-wrap:anywhere}
.account-privacy [data-notice] h2{font-size:1.1rem;margin:24px 0 8px}
.account-privacy [data-notice] h1{font-size:1.4rem;line-height:1.3}
.account-privacy [data-notice] address{font-style:normal}
.account-dialog select{display:block;width:100%;box-sizing:border-box;white-space:normal;padding:12px;font:inherit;background:#f4fbff;color:#17313e;border-radius:8px;margin:8px 0 18px}
.account-dialog .teacher-review-choices{display:grid;gap:10px;margin:18px 0}
.account-dialog .teacher-review-choices button{margin:0;white-space:normal;text-align:left}

.account-progress-list .account-progress-done { color:#aeb8c1; }
.account-progress-list .account-progress-pending { color:#e8a0a6; }
.account-progress-locked { color:#8c98a4; }
.account-progress-list .account-progress-next { color:#b5d9c8; background:transparent; border:1px solid #568f78; border-radius:4px; }
.account-progress-list .account-progress-active { color:#e1ffec; background:#1b503a; border:1px solid #7ee4ad; border-radius:4px; font-weight:750; }
.account-progress-list .account-progress-entry { text-decoration:none; }
.agent-action-dialog { width:min(460px,calc(100vw - 40px)); padding:28px; box-sizing:border-box; }
.agent-action-dialog h2 { margin:0 0 14px; color:#8aecf1; }
.agent-action-dialog p { margin:0 0 24px; line-height:1.6; }
.agent-action-buttons { display:flex; flex-wrap:wrap; gap:12px; }
.agent-action-buttons button { flex:1 1 140px; min-height:46px; margin:0; }
.account-dialog.agent-action-dialog button.account-primary { background:#76e4eb; border-color:#a5f1f4; color:#07242e; font-weight:750; }
.account-dialog.agent-action-dialog button.account-primary:hover { background:#a5f1f4; }
.teacher-table-wrap th { white-space:pre-line; }
.teacher-table-wrap td small { display:block; }
.account-dialog.teacher-certificate-dialog { width:min(640px,calc(100vw - 32px)); }
.teacher-certificate-preview svg { display:block; width:100%; height:auto; margin:12px 0; }
.account-dialog a.teacher-certificate-download { display:inline-flex; align-items:center; box-sizing:border-box; min-height:44px; padding:0 14px; border:1px solid #8aecf1; border-radius:12px; background:#245867; color:#eefaff; font-weight:700; text-decoration:none; }
.account-dialog a.teacher-certificate-download:hover { background:#2b6978; }
