@font-face{font-family:Vazirmatn;src:url('/assets/fonts/Vazirmatn-variable.4e3fa217d38fdafc.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}

.attempt-history{min-width:0;overflow-wrap:anywhere}.attempt-history h2{font-size:1.12rem}.attempt-history ol{display:grid;gap:12px;padding-inline-start:22px}.attempt-history li{min-width:0;padding-block:8px;border-bottom:1px solid var(--border)}.attempt-history li:last-child{border:0}.attempt-history li p{margin-block:6px}.attempt-history-change.positive{color:var(--green)}.attempt-history-change.negative{color:var(--danger)}.attempt-history-change.neutral{color:var(--muted)}.attempt-history-links{display:flex;flex-wrap:wrap;gap:4px 16px}.attempt-history-links a{display:inline-flex;align-items:center;min-height:44px;max-width:100%}

:root{font-family:Vazirmatn,Tahoma,Arial,sans-serif;font-synthesis:none;color:var(--text);background:var(--background);color-scheme:light;
 --background:#f7f8fa;--surface:#fff;--surface-soft:#f0f2f5;--surface-elevated:var(--surface);--text:#171717;--muted:#5c6673;--border:#dce1e7;
 --accent-fill:#c90000;--red:#c90000;--red-hover:#a90000;--soft-red:#fff1f1;--on-accent:#fff;--blue:#d7eeff;
 --green:#146c35;--success-soft:#e8f8ec;--amber:#805000;--warning-soft:#fff2df;--danger:#b91c1c;--danger-soft:#fff0f0;--info:#155e9d;--info-soft:#eef7ff;
 --focus-ring:#2563eb;--shadow:0 2px 8px #0000000f;--shadow-dialog:0 20px 65px #0003;
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;
 --radius-control:10px;--radius-card:14px;--radius-pill:999px;--control-height:40px;--control-touch:44px;--text-small:.8rem;--text-body:.9rem}
:root[data-theme=dark]{color-scheme:dark;--background:#11151c;--surface:#1b222d;--surface-soft:#242e3b;--text:#edf1f7;--muted:#b5c0ce;--border:#405064;
 --accent-fill:#bc1726;--red:#ff7379;--red-hover:#ff9499;--soft-red:#3c232c;--on-accent:#fff;--blue:#203c51;--green:#89dfaa;--success-soft:#203a2c;--amber:#ffcf7e;--warning-soft:#3e3220;--danger:#ffa2a2;--danger-soft:#42272d;--info:#9ad0ff;--info-soft:#22364b;--focus-ring:#91c9ff;--shadow:0 2px 10px #0004;--shadow-dialog:0 20px 65px #0008}
body{background:var(--background);color:var(--text)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
:root[data-theme=dark] .btn-primary,:root[data-theme=dark] .admin-danger-button{background:#bc1726;color:var(--on-accent)}
:root[data-theme=dark] .btn-primary:hover{background:#a90d1c}
.theme-control{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-small);font-weight:600;min-width:0}
.theme-control select{width:auto;min-height:var(--control-height);padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--text)}
.profile-preferences{display:grid;justify-items:start;gap:var(--space-4)}
.ui-confirm{width:min(490px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;color:var(--text);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-dialog)}
.ui-confirm::backdrop{background:#10162199}.ui-confirm p{overflow-wrap:anywhere}
.bank-bulk-dialog [data-results]{max-height:35dvh;overflow:auto;overflow-wrap:anywhere;padding-inline-start:1.25rem;font-size:.875rem}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

/* UI-02: secondary information stays outside exam/workspace navigation. */
.site-info-footer{border-top:1px solid var(--border);background:var(--surface);color:var(--muted)}
.shell.site-info-inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 24px;padding-block:14px}
.information-nav,.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.information-nav a,.social-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;border-radius:10px;font-size:.85rem}
.information-nav a:hover,.social-link:hover,.information-nav [aria-current=page]{background:var(--surface-soft);color:var(--text)}
.social-link img{width:20px;height:20px;flex:none;object-fit:contain}.shell.about-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:24px}
.shell.about-page{padding-block:24px 64px}.card.about-card{max-width:720px;margin:0 auto;padding:32px}
.about-card h1{margin:10px 0 16px}.about-card p{font-size:1rem;line-height:2.1;margin-bottom:20px}
.about-card>.social-links{padding-block:0 20px}.about-card>.btn{margin-top:4px}
#app:has(.about-page){min-height:calc(100dvh - 88px)}
#app>.auth-wrap{min-height:calc(100dvh - 88px)}
@media(max-width:900px){.site-info-footer[data-mobile-nav]{padding-bottom:calc(var(--bottom-nav-height,76px) + env(safe-area-inset-bottom) + 12px)}}
@media(max-width:640px){.shell.site-info-inner{gap:4px 10px;padding-block:10px}.shell.about-header{padding-block:18px}.about-header>.text-link{font-size:.85rem}.shell.about-page{padding-block:16px 36px}.card.about-card{padding:22px}.about-card p{font-size:.95rem}.about-card>.btn{width:100%}}

*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.55}h2{font-size:1.2rem}h3{font-size:1rem}p{line-height:1.8}.muted{color:var(--muted)}.small{font-size:.82rem}.eyebrow{font-size:.82rem;font-weight:700;color:var(--red);letter-spacing:.02em}.mono{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}.ltr{direction:ltr;text-align:left}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.65rem 1.15rem;border-radius:12px;border:1px solid transparent;font-weight:700;transition:background .15s,border .15s,transform .15s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:focus-visible,.nav-link:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--info);outline-offset:2px}.btn-primary{background:var(--accent-fill);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--red-hover)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--background)}.btn-ghost{background:transparent;color:var(--text)}.btn-danger{background:var(--soft-red);color:var(--red-hover);border-color:var(--danger-soft)}.btn-sm{min-height:38px;padding:.35rem .75rem;font-size:.85rem}.full{width:100%}
.shell{max-width:1240px;margin:auto;padding:0 20px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:15}.topbar-inner{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:20px}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand img{width:42px;height:42px;object-fit:cover;border-radius:12px}.brand strong{display:block;font-size:1.08rem;line-height:1.2}.brand span{display:block;color:var(--muted);font-size:.7rem;direction:ltr;text-align:left}.topnav{display:flex;align-items:center;gap:4px}.nav-link{padding:.65rem .8rem;border-radius:10px;color:var(--muted);font-size:.91rem}.nav-link:hover,.nav-link.active{background:var(--soft-red);color:var(--red);font-weight:700}.top-actions{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--blue);display:grid;place-items:center;font-weight:800;color:var(--info)}.mobile-nav{display:none}.page{padding-top:34px;padding-bottom:88px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:24px}.page-head p{margin:0;color:var(--muted)}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.card.soft-blue{background:var(--info-soft);border-color:var(--info-soft)}.hero{background:linear-gradient(125deg,var(--surface) 48%,var(--info-soft));display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;border:1px solid var(--border);border-radius:22px;padding:28px 32px;margin-bottom:22px}.hero p{max-width:620px;color:var(--muted);margin-bottom:18px}.hero-mark{width:120px;height:120px;border-radius:28px;background:var(--red);display:grid;place-items:center;box-shadow:0 12px 25px #c9000026}.hero-mark img{width:100%;height:100%;object-fit:cover;border-radius:28px}.stat-label{color:var(--muted);font-size:.85rem}.stat-value{font-size:1.8rem;font-weight:800;line-height:1.4}.stat-note{font-size:.78rem;color:var(--muted)}.section-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 14px}.section-row h2{margin:0}.exam-card{display:flex;flex-direction:column;gap:12px}.exam-title{font-size:1.08rem;font-weight:800;margin:0}.exam-meta{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--muted);font-size:.84rem}.exam-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:10px;border-top:1px solid var(--surface-soft)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .65rem;font-size:.75rem;font-weight:700;background:var(--info-soft);color:var(--info)}.badge.red{background:var(--soft-red);color:var(--red)}.badge.gold{background:var(--warning-soft);color:var(--amber)}.badge.green{background:var(--success-soft);color:var(--green)}.badge.gray{background:var(--surface-soft);color:var(--muted)}.badge.amber{background:var(--warning-soft);color:var(--amber)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.tab{border:1px solid var(--border);border-radius:999px;padding:.5rem .95rem;background:var(--surface);color:var(--muted)}.tab.active{background:var(--text);color:var(--background);border-color:var(--text)}.empty{padding:42px 20px;text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:16px}.empty-icon{font-size:2rem;margin-bottom:8px}.loading{padding:100px 20px;text-align:center;color:var(--muted)}.alert{border-radius:12px;padding:13px 16px;border:1px solid var(--danger-soft);background:var(--danger-soft);color:var(--danger);margin-bottom:18px}.info{background:var(--info-soft);border-color:var(--info-soft);color:var(--info)}.success{background:var(--success-soft);border-color:var(--success-soft);color:var(--green)}
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-aside{background:var(--accent-fill);color:var(--on-accent);padding:8vw;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-aside::after{content:'Z';position:absolute;left:-3vw;bottom:-12vw;font-size:40vw;font-weight:800;line-height:1;opacity:.08;direction:ltr}.auth-aside .brand span{color:var(--danger-soft)}.auth-aside h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.5;max-width:650px}.auth-aside p{color:var(--danger-soft);max-width:510px}.auth-aside .brand img{border:2px solid #ffffff70}.auth-main{display:grid;place-items:center;padding:32px}.auth-panel{width:min(100%,430px)}.auth-panel h1{margin-bottom:5px}.auth-switch{margin-top:20px;text-align:center;color:var(--muted)}.text-link{border:0;background:none;color:var(--red);font-weight:700;padding:2px}.form{display:grid;gap:16px}.field{display:grid;gap:6px}.field label{font-size:.86rem;font-weight:700}.field input,.field select,.field textarea{width:100%;min-height:48px;border:1px solid var(--border);border-radius:12px;padding:.65rem .85rem;background:var(--surface);color:var(--text)}.field textarea{min-height:110px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.helper{font-size:.78rem;color:var(--muted)}.divider{height:1px;background:var(--border);margin:18px 0}
.runner-top{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--border)}.runner-top-inner{max-width:1060px;margin:auto;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.runner-title{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.runner-meta{display:flex;align-items:center;gap:14px}.timer{font-size:1.06rem;font-weight:800;font-variant-numeric:tabular-nums}.timer.warn{color:var(--amber)}.timer.danger{color:var(--danger)}.save-state{font-size:.75rem;color:var(--muted)}.runner{max-width:1060px;margin:30px auto 90px;padding:0 18px;display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:22px}.question-card{padding:30px}.question-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.85rem;margin-bottom:22px}.question-text{font-size:1.15rem;line-height:2.1;font-weight:600;white-space:pre-wrap}.option{display:flex;gap:12px;align-items:flex-start;width:100%;padding:13px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);text-align:right;margin:10px 0;min-height:54px}.option.selected{border:2px solid var(--red);background:var(--danger-soft);padding:12px 15px}.option-no{flex:none;width:27px;height:27px;border-radius:50%;border:1px solid var(--border);display:grid;place-items:center;font-size:.8rem}.option.selected .option-no{background:var(--accent-fill);color:var(--on-accent);border-color:var(--red)}.runner-controls{display:flex;justify-content:space-between;gap:10px;margin-top:24px}.question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.question-jump{width:100%;aspect-ratio:1;border-radius:9px;border:1px solid var(--border);background:var(--surface)}.question-jump.answered{background:var(--info-soft);border-color:var(--info)}.question-jump.flagged{background:var(--warning-soft);border-color:var(--amber)}.question-jump.current{outline:2px solid var(--red);outline-offset:1px}.answer-legend{display:flex;flex-wrap:wrap;gap:9px;color:var(--muted);font-size:.76rem;margin-top:14px}.runner-side .card{position:sticky;top:85px}.runner-bottom{display:none}
.result-hero{background:linear-gradient(130deg,var(--accent-fill),var(--accent-fill));color:white;border-radius:20px;padding:28px;margin-bottom:20px}.result-hero .stat-value{font-size:3rem}.result-hero .muted{color:var(--danger-soft)}.kpi{display:flex;justify-content:space-between;align-items:center;gap:10px}.kpi strong{font-size:1.5rem}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;text-align:right;border-bottom:1px solid var(--surface-soft)}.table th{font-size:.8rem;color:var(--muted)}.progress-track{height:8px;background:var(--surface-soft);border-radius:10px;overflow:hidden}.progress-bar{height:100%;background:var(--red);border-radius:10px}.timeline{display:flex;align-items:flex-end;gap:10px;height:135px;padding:10px 0}.timeline-col{flex:1;min-width:20px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.timeline-bar{width:min(36px,100%);background:var(--blue);border-radius:7px 7px 0 0;min-height:3px}.timeline-col:last-child .timeline-bar{background:var(--red)}.timeline-label{font-size:.7rem;color:var(--muted)}.review-item{border-bottom:1px solid var(--surface-soft);padding:18px 0}.review-item:last-child{border:0}.answer-line{padding:8px 12px;border:1px solid var(--border);border-radius:9px;margin-top:6px}.answer-line.correct{border-color:var(--success-soft);background:var(--success-soft)}.answer-line.wrong{border-color:var(--danger-soft);background:var(--danger-soft)}
#toast{position:fixed;left:18px;bottom:18px;z-index:50;max-width:360px;background:var(--text);color:var(--background);border-radius:12px;padding:11px 16px;box-shadow:0 8px 28px #0003;opacity:0;transform:translateY(15px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:translateY(0)}
@media(max-width:900px){.topnav{display:none}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.runner{grid-template-columns:1fr}.runner-side{display:none}.runner-bottom{display:block}.auth-wrap{grid-template-columns:1fr}.auth-aside{min-height:215px;padding:24px}.auth-aside h1{font-size:1.65rem;margin:12px 0 0}.auth-aside p{display:none}.auth-main{padding:30px 20px 60px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--surface);border-top:1px solid var(--border);padding:7px 5px max(7px,env(safe-area-inset-bottom));justify-content:space-around}.mobile-nav a{flex:1;min-width:0;display:grid;place-items:center;gap:1px;color:var(--muted);font-size:.63rem}.mobile-nav a.active{color:var(--red);font-weight:800}.mobile-nav .icon{font-size:1.27rem}.page{padding-bottom:calc(var(--bottom-nav-height, 64px) + 12px)}}
@media(max-width:640px){.shell{padding-inline:16px}.topbar-inner{min-height:62px}.brand img{width:36px;height:36px}.brand strong{font-size:.95rem}.brand span{font-size:.62rem}.top-actions .name{display:none}.page{padding-top:22px}.page-head{align-items:flex-start;flex-direction:column}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.hero{grid-template-columns:1fr;padding:22px}.hero-mark{display:none}.card{padding:18px}.form-grid{grid-template-columns:1fr}.auth-aside{min-height:180px}.auth-panel h1{font-size:1.55rem}.question-card{padding:20px}.runner{margin-top:16px}.runner-title{max-width:140px;font-size:.83rem}.runner-meta{gap:6px}.save-state{display:none}.runner-controls .btn{padding:.6rem .7rem}.result-hero{padding:22px}.result-hero .stat-value{font-size:2.4rem}.table-scroll{overflow:auto}.table{min-width:550px}.exam-footer{align-items:stretch;flex-direction:column}.exam-footer .btn{width:100%}}
.save-state[data-state="pending"]{color:var(--amber)}.save-state[data-state="saving"]{color:var(--info)}
@media(max-width:640px){.runner-meta{flex-wrap:wrap;justify-content:flex-end}.runner-title{max-width:120px}.save-state{display:block;order:3;flex-basis:100%;font-size:.67rem;white-space:nowrap;text-align:center}}

/* Student-01: compact, data-led student surfaces. */
.topnav a:focus-visible,.mobile-nav a:focus-visible,.avatar:focus-visible,.text-link:focus-visible,.student-shortcuts a:focus-visible,.timeline-col:focus-visible{outline:3px solid var(--info);outline-offset:2px}
.avatar.active{outline:2px solid var(--red);outline-offset:2px}
.student-intro{max-width:720px;margin-bottom:18px}
.student-greeting{font-size:1rem;font-weight:700;margin-bottom:12px;color:var(--muted)}
.student-primary{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px 28px;background:var(--surface);border-inline-start:4px solid var(--red);box-shadow:0 6px 22px #1717170a}
.student-primary>div{min-width:0}.student-primary h2{font-size:clamp(1.18rem,2.4vw,1.55rem);margin:6px 0}.student-primary p{margin:0;color:var(--muted)}.student-primary p.small{margin-top:7px;color:var(--muted)}
.student-primary .btn{flex:none}.student-kicker{font-size:.78rem;font-weight:800;color:var(--red-hover)}
.student-quick-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.student-quick-stats .card{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:none}
.student-quick-stats span{font-size:.84rem;color:var(--muted)}.student-quick-stats strong{font-size:1.35rem;line-height:1.3}
.student-dashboard-result{margin-top:18px}.student-dashboard-result .section-row{margin-top:0}
.student-result-preview{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--info-soft);border-color:var(--border);box-shadow:none}
.student-result-preview>div:first-child{min-width:0}.student-result-preview strong{display:block;font-size:1.05rem;overflow-wrap:anywhere}.student-result-preview h2{margin:5px 0}.student-result-preview p{margin:0}
.student-result-preview .small{display:block;margin-top:4px}
.student-result-numbers{display:flex;flex-wrap:wrap;gap:8px 14px;min-width:0}
.student-result-numbers span{display:grid;gap:2px;font-size:.76rem;color:var(--muted);white-space:nowrap}
.student-result-numbers b{color:var(--text);font-size:1.12rem;line-height:1.3;font-variant-numeric:tabular-nums}
.student-result-actions,.student-report-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.student-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.student-shortcuts a{display:inline-flex;min-height:42px;align-items:center;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:6px 13px;color:var(--muted);font-size:.83rem;font-weight:700}
.student-shortcuts a:hover{border-color:var(--info);background:var(--info-soft)}
.student-exam-card{box-shadow:none;min-width:0}.student-exam-card .exam-title{line-height:1.75;overflow-wrap:anywhere}.student-exam-card .exam-meta{line-height:1.7}
.student-badges{display:flex;gap:6px;flex-wrap:wrap}.student-filters{flex-wrap:nowrap;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}
.student-filters .tab{flex:none;min-height:42px}.student-bank-entry{display:flex;align-items:center;justify-content:space-between;gap:14px}.student-bank-entry p,.student-bank-entry h3{margin-bottom:4px}
.student-report-list{display:grid;gap:12px}.student-report-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;box-shadow:none}
.student-report-card h2{margin:7px 0 0;overflow-wrap:anywhere}.student-report-card p{margin:0}.student-report-card>div{min-width:0}
.student-pending-report,.student-activity{display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:none}
.student-pending-report>div,.student-activity>div{min-width:0}.student-pending-report h3{margin:8px 0 2px;overflow-wrap:anywhere}.student-pending-report p,.student-activity p{margin:3px 0 0}.student-activity strong{overflow-wrap:anywhere}
.student-progress-stats .card{box-shadow:none}.timeline-col{min-width:0}.timeline-col:focus-visible{border-radius:5px}
.student-locked-bank{max-width:720px}.student-locked-bank h2{margin:12px 0 6px}
.student-skeleton{display:grid;gap:12px;max-width:800px;padding-top:8px}.skeleton-line,.skeleton-card{display:block;background:var(--surface-soft);border-radius:9px;animation:skeleton-pulse 1.4s ease-in-out infinite alternate}
.skeleton-line{height:18px}.skeleton-wide{width:min(100%,480px)}.skeleton-short{width:min(48%,180px)}.skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px}.skeleton-card{height:132px;border-radius:16px}
@keyframes skeleton-pulse{to{background:var(--surface-soft)}}
@media(max-width:900px){.mobile-nav{gap:2px;padding-inline:8px}.mobile-nav a{min-height:52px;border-radius:10px;font-size:.7rem;line-height:1.2;white-space:nowrap}.mobile-nav a.active{background:var(--soft-red)}.mobile-nav .icon{font-size:1.4rem;line-height:1.1}.student-report-card{grid-template-columns:minmax(0,1fr) auto}.student-report-card .student-result-numbers{grid-column:1/-1;grid-row:2}.student-report-actions{grid-column:2;grid-row:1}}
@media(max-width:640px){.student-primary{align-items:stretch;flex-direction:column;padding:20px}.student-primary .btn{align-self:stretch}.student-result-preview{align-items:stretch;flex-direction:column}.student-quick-stats .card{align-items:flex-start;flex-direction:column}.student-bank-entry{align-items:stretch;flex-direction:column}.student-report-card{grid-template-columns:1fr;gap:14px}.student-report-card .student-result-numbers,.student-report-actions{grid-column:auto;grid-row:auto}.student-pending-report,.student-activity{align-items:flex-start;flex-direction:column}.student-pending-report .btn,.student-activity .btn{min-height:42px}.student-filters{margin-inline:-16px;padding-inline:16px}.student-progress-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.student-progress-stats .card:last-child{grid-column:1/-1}.timeline{gap:5px}.timeline-label{font-size:.62rem}.student-shortcuts a{flex:1;justify-content:center;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.skeleton-line,.skeleton-card{animation:none}.btn{transition:none}.btn:hover:not(:disabled){transform:none}}
.question-text{overflow-wrap:anywhere}
.question-text .katex,.question-option-body .katex{direction:ltr;unicode-bidi:isolate;max-width:100%}
.question-text .katex-display,.question-option-body .katex-display{overflow-x:auto;overflow-y:hidden}
.question-option-body{display:block;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}
.question-figure{display:block;max-width:100%;margin:12px 0;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.question-figure img{display:block;max-width:100%;max-height:720px;width:auto;height:auto;object-fit:contain}
.question-option-body .question-figure img{max-height:300px}
.question-math-error{color:var(--danger);text-decoration:underline wavy var(--danger)}
.question-media-error{display:block;color:var(--danger);font-size:.85rem}
/* Educational blocks scroll locally; academic images keep their pixels/colors. */
.question-card{min-width:0}
.rich-block{margin-block:12px;min-width:0;overflow-wrap:anywhere}.rich-block .question-text{white-space:pre-wrap}
.rich-scroll{width:100%;max-width:100%;overflow-x:auto;min-width:0;padding-block:6px}
.rich-table{border-collapse:collapse;min-width:max-content;max-width:none}.rich-table td{border:1px solid var(--border);padding:8px;white-space:pre-wrap}
.rich-callout,.rich-lesson_note,.rich-option_analysis{background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;padding:12px}
.rich-formula{direction:ltr;text-align:center}.rich-originals{margin-block:12px}.rich-provenance{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
.question-option-body{min-width:0;max-width:100%}.question-figure img{max-width:100%;height:auto}
.rich-editor-block{border:1px solid var(--border);border-radius:12px;padding:12px;margin-block:12px;min-width:0}.rich-editor-block textarea,.rich-editor-block input{max-width:100%}
/* Exam Builder stays within the existing RTL/theme system. */
.exam-builder{min-width:0}.exam-builder .card{min-width:0;overflow-wrap:anywhere}
.exam-builder fieldset{border:0;padding:0;margin:0;display:grid;gap:1rem;min-width:0}
.exam-builder .eb-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1rem;align-items:start}
.exam-builder .eb-cart{padding-inline-start:0;list-style:none;display:grid;gap:1rem}
.exam-builder .eb-cart>li{padding-block:1rem;border-bottom:1px solid var(--border)}
.exam-builder .actions{flex-wrap:wrap}.exam-builder input,.exam-builder select,.exam-builder textarea{max-width:100%;min-width:0}
.exam-builder .question-options{overflow-wrap:anywhere}.exam-builder .eb-preview{display:grid;gap:1rem}
.exam-builder dialog{width:min(90vw,480px);max-width:100%;border-radius:1rem}
@media(max-width:760px){.exam-builder .eb-columns{grid-template-columns:minmax(0,1fr)}.exam-builder .grid-2{grid-template-columns:minmax(0,1fr)}.exam-builder .actions>.btn{white-space:normal}}
/* Auth methods retain the shared button/field language and respect RTL. */
.auth-methods { display:flex; gap:12px; margin:20px 0; }
.auth-methods .btn { flex:1; }
.auth-methods [aria-pressed="true"] { border-color:var(--red); }
[data-mobile-auth] .text-link, [data-profile-phone] .text-link { margin:8px 0; }
[data-phone-status] { min-height:1.5em; overflow-wrap:anywhere; }
[hidden] { display:none !important; }

/* UI-03: fixed optical boxes, local outline icons, and labelled RTL controls. */
.zed-icon{display:inline-block;inline-size:20px;block-size:20px;flex:0 0 20px;vertical-align:middle;color:inherit;overflow:visible}
.icon-link,.profile-phone-summary h2{display:inline-flex;align-items:center;gap:8px}
.topnav .nav-link{display:inline-flex;align-items:center;gap:7px;font-weight:600;padding-inline:10px;white-space:nowrap}
.student-shortcuts .zed-icon{inline-size:22px;block-size:22px;flex-basis:22px}
.admin-menu .icon-link{display:flex;gap:10px}.admin-quicklinks .icon-link{gap:10px}
.admin-menu a:focus-visible,.admin-back:focus-visible,.admin-quicklinks a:focus-visible{outline:3px solid var(--info);outline-offset:2px}
[data-action="logout"]{display:inline-flex;align-items:center;gap:7px}[data-action="logout"] .zed-icon{inline-size:18px;block-size:18px;flex-basis:18px}
.profile-phone-summary h2{margin-bottom:12px}.verified-phone{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
#profile-phone-editor{margin-top:16px}#profile-phone-editor [data-phone-cancel]{margin-top:12px;min-height:44px}
[data-phone-expand]{min-height:44px}
@media(min-width:901px) and (max-width:1100px){.top-actions .name{display:none}.topnav{gap:0}.topnav .nav-link{padding-inline:7px;font-size:.84rem}}
@media(max-width:900px){.mobile-nav a{padding:5px 0;row-gap:4px}.mobile-nav .zed-icon{inline-size:22px;block-size:22px;flex-basis:22px}.mobile-nav a.icon-link{display:grid;gap:4px}.mobile-nav a:focus-visible{outline-offset:-3px}}
@media(max-width:360px){.mobile-nav{padding-inline:4px;gap:0}.mobile-nav a{font-size:.65rem}.student-shortcuts{gap:6px}.student-shortcuts a{gap:5px;font-size:.78rem}}

.advisor-workspace nav a[aria-current="page"]{background:var(--soft-red);color:var(--red);border-color:var(--red)}
#profile-phone-editor [data-phone-editor] h2{display:none}
.profile-phone-summary [data-phone-editor] h2 + p.small{display:none}

/* Shared product polish: focus, readable feedback and narrow RTL screens. */
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--info);outline-offset:3px}
button:disabled{cursor:default}.btn{overflow-wrap:anywhere}.actions{row-gap:10px}.card{min-width:0}
.ui-confirm{width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;direction:rtl}.ui-confirm::backdrop{background:#10203088}.ui-confirm p{line-height:1.9;overflow-wrap:anywhere}
.save-state{display:inline-flex;align-items:center;gap:6px;line-height:1.6}.save-state::before{content:'';width:7px;height:7px;flex:none;border-radius:50%;background:currentColor}.save-state[data-state=saved]{color:var(--green)}.save-state[data-state=pending]{color:var(--amber)}
.runner .question-head{gap:12px;flex-wrap:wrap}.runner .option{min-height:52px;text-align:right}.runner .option.selected{box-shadow:inset 0 0 0 1px currentColor}.runner .question-jump{min-width:40px;min-height:40px}.runner-controls{gap:10px}.runner-controls .btn{min-height:46px}
.runner-title{min-width:0;overflow-wrap:anywhere}.runner-meta{flex-wrap:wrap;row-gap:8px}.report-hero{overflow-wrap:anywhere}
@media(max-width:480px){.runner-top-inner{gap:10px;flex-wrap:wrap;padding:12px}.runner-title{flex-basis:100%;font-size:.95rem}.runner-meta{width:100%;justify-content:space-between;gap:8px}.runner-meta .save-state{font-size:.75rem;max-width:145px}.runner-meta .timer{font-size:1rem}.runner .question-card{padding:16px}.runner .option{padding:12px 10px;gap:9px}.runner-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.runner-controls .btn{padding-inline:8px;font-size:.82rem}.actions>.btn{white-space:normal}.ui-confirm .admin-dialog-actions{display:flex;gap:10px;flex-wrap:wrap}.ui-confirm button{min-height:44px;flex:1}.student-intro{line-height:1.9}}

/* A 320px viewport can have a 305px layout area with classic scrollbars. */
body{min-width:0}
/* Shared owned import and PDF presentation; canonical answer controls remain. */
.owned-import-workspace{min-width:0}.owned-import-workspace label{display:grid;gap:.4rem;min-width:0}.owned-import-workspace input,.owned-import-workspace textarea,.owned-import-workspace select{max-width:100%;min-width:0}.owned-import-workspace input[type=checkbox]{width:auto;justify-self:start}
.owned-import-workspace .workspace-tabs{display:flex;gap:1rem;flex-wrap:wrap;margin-block-end:1.2rem}.import-list-item{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;padding:1rem 0;border-bottom:1px solid var(--border)}.import-list-item a{overflow-wrap:anywhere}
.import-field-grid,.pdf-mapping-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:1rem}.pdf-mapping-grid fieldset{min-width:0;border:1px solid var(--border);border-radius:12px;padding:.8rem}.pdf-key-grid,.pdf-key-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(85px,1fr));gap:.6rem}.pdf-key-preview{margin-block:1rem}.pdf-key-grid select{min-height:44px}.owned-import-workspace details{margin-block:1.5rem}.owned-import-workspace summary{cursor:pointer;min-height:44px}
.exam-pdf-viewer{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--card,var(--surface));margin-block-end:1rem}.pdf-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem}.pdf-toolbar button{min-height:44px;min-width:44px}.pdf-scroll{max-height:72dvh;overflow:auto;overscroll-behavior:contain;direction:ltr;touch-action:pan-x pan-y pinch-zoom;background:#ddd}.pdf-scroll [data-pdf-canvas]{min-width:100%;margin-inline:auto}.pdf-scroll canvas{display:block;width:100%;height:auto;background:white}.exam-pdf-viewer [data-pdf-status]:empty{display:none}.exam-pdf-viewer [data-pdf-status]{padding:.6rem}
.pdf-runner>section{min-width:0}.pdf-runner .question-card{scroll-margin-top:80px}.pdf-runner .question-card .option{min-height:48px}.solution-pdf-dialog{width:min(1000px,95vw);max-width:95vw;max-height:95dvh;overflow:auto;border:1px solid var(--border);border-radius:16px;background:var(--card,var(--surface));color:var(--text)}.solution-pdf-dialog::backdrop{background:#0009}.solution-pdf-dialog input{width:90px}
@media(min-width:1000px){.pdf-runner{display:block;max-width:1500px}.pdf-runner>section{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:1rem;align-items:start}.pdf-runner [data-runner-pdf-host]{grid-column:1;grid-row:1 / span 2}.pdf-runner .question-card{grid-column:2;grid-row:1}.pdf-runner .runner-side{display:none}.pdf-runner .runner-bottom{display:block;grid-column:2;grid-row:2}.pdf-runner .question-head{flex-wrap:wrap}}
@media(max-width:600px){.pdf-runner{padding-inline:8px}.pdf-runner .question-card{padding:12px}.pdf-runner .pdf-scroll{max-height:55dvh}.pdf-runner .question-card [role=group]{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.pdf-runner .option{margin:0;padding:10px;min-width:0}.pdf-toolbar{gap:.25rem}.pdf-toolbar [data-pdf-page]{font-size:.8rem}.pdf-runner .runner-controls button{min-height:44px;flex:1}.pdf-runner .runner-controls{display:flex;gap:.5rem}.pdf-runner .runner-bottom{display:block}}

.pdf-page-jump{display:flex;align-items:center;gap:.35rem;min-width:0}.pdf-page-jump input{width:5.5rem;min-width:44px;min-height:44px;margin:0;direction:ltr;text-align:center}.pdf-toolbar [data-pdf-page]{white-space:nowrap;font-variant-numeric:tabular-nums}.pdf-toolbar [aria-invalid="true"]{outline:2px solid var(--danger,#d32f2f)}
.pdf-fallbacks{padding:.6rem}.pdf-fallbacks button{min-height:44px;white-space:normal}.exam-pdf-viewer [data-pdf-transfer-status]{padding-inline:.6rem}.exam-pdf-viewer [data-pdf-transfer-status]:empty{display:none}

/* Independent PDF subject ranges keep controls usable at 320px. */
.pdf-subject-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:.75rem;align-items:end}
[data-pdf-subject-structure] fieldset{min-width:0;margin-block:.8rem;padding:.8rem;border:1px solid var(--border);border-radius:.75rem}
.pdf-subject-row label,.pdf-subject-row input,.pdf-subject-row select{min-width:0;max-width:100%;width:100%}
[data-range-error],[data-subject-missing]{color:var(--danger,#b42318);overflow-wrap:anywhere}
