:root{--c-page: #FAFAF9;--c-surface: #FFFFFF;--c-surface-2: #F4F4F2;--c-line: #E4E4E1;--c-line-strong: #C9C9C3;--c-ink: #1A1A18;--c-ink-2: #45453F;--c-dim: #6E6E68;--c-accent: #1F6F5C;--c-accent-dark: #175243;--c-accent-soft: #E6F1ED;--c-on-accent: #FFFFFF;--c-ok: #1F6F5C;--c-ok-soft: #E6F1ED;--c-warn: #8A5A1B;--c-warn-soft: #F6EEE2;--c-danger: #A32B24;--c-danger-soft: #F7E9E7;--c-info: #2C5282;--c-info-soft: #EBF1F7;--t-xs: 13px;--t-sm: 15px;--t-md: 17px;--t-lg: 22px;--t-xl: 28px;--lh-tight: 1.25;--lh-body: 1.55;--w-normal: 400;--w-medium: 500;--w-bold: 700;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--r-control: 6px;--r-card: 8px;--r-pill: 999px;--shadow-float: 0 8px 24px rgba(26, 26, 24, .14);--motion: .15s ease;--ink: var(--c-ink);--muted: var(--c-dim);--accent: var(--c-accent);--danger: var(--c-danger);--ok: var(--c-ok);--card: var(--c-surface);--bg: var(--c-page);--radius: var(--r-card)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--c-page);color:var(--c-ink);font-size:var(--t-sm);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:var(--r-control)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.landing{min-height:100vh;display:flex;flex-direction:column;background:var(--c-page)}.landing-nav{padding:var(--s-5) var(--s-6)}.brand{font-size:var(--t-md)}.brand b{font-weight:var(--w-bold)}.landing-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s-5) var(--s-4) var(--s-7)}.landing-hero h1{font-size:var(--t-xl);line-height:var(--lh-tight);margin-bottom:var(--s-4)}.landing-hero h1 em{font-style:normal}.landing-hero .sub{color:var(--c-dim);font-size:var(--t-md);max-width:60ch;margin-bottom:var(--s-7)}.signin-cards{display:flex;gap:var(--s-5);flex-wrap:wrap;justify-content:center}.signin-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--s-6);width:300px;display:flex;flex-direction:column;align-items:center;gap:var(--s-3)}.signin-icon{font-size:var(--t-xl);width:56px;height:56px;border-radius:var(--r-card);display:flex;align-items:center;justify-content:center;background:var(--c-surface-2)}.signin-card h2{font-size:var(--t-lg)}.signin-card p{color:var(--c-dim);font-size:var(--t-sm);min-height:60px}.fineprint{margin-top:var(--s-6);color:var(--c-dim);font-size:var(--t-xs);max-width:460px}.landing-footer{text-align:center;padding:var(--s-4);color:var(--c-dim);font-size:var(--t-xs)}.btn-primary{display:inline-flex;align-items:center;gap:var(--s-2);justify-content:center;background:var(--c-accent);color:var(--c-on-accent);border:1px solid var(--c-accent);border-radius:var(--r-control);padding:var(--s-3) var(--s-4);font-size:var(--t-sm);font-weight:var(--w-bold);font-family:inherit;cursor:pointer;text-decoration:none;transition:background var(--motion),border-color var(--motion)}.btn-primary:hover{background:var(--c-accent-dark);border-color:var(--c-accent-dark)}.btn-primary:active{background:var(--c-accent-dark)}.btn-primary:disabled{background:var(--c-surface-2);border-color:var(--c-line);color:var(--c-dim);cursor:not-allowed}.btn-secondary{display:inline-block;margin-top:var(--s-3);color:var(--c-accent);font-weight:var(--w-bold);text-decoration:none;font-size:var(--t-sm)}.btn-link{background:none;border:none;color:var(--c-accent);cursor:pointer;font-size:var(--t-xs);font-family:inherit;text-decoration:none;white-space:nowrap;padding:var(--s-1) 0;transition:color var(--motion)}.btn-link:hover{color:var(--c-accent-dark);text-decoration:underline}.btn-link:disabled{color:var(--c-dim);cursor:not-allowed;text-decoration:none}.btn-link.danger{color:var(--c-danger)}.btn-big{font-size:var(--t-md);padding:var(--s-3) var(--s-6)}.shell{min-height:100vh;display:flex;flex-direction:column;background:var(--c-page)}.topbar{display:flex;justify-content:space-between;align-items:center;background:var(--c-surface);border-bottom:1px solid var(--c-line);padding:var(--s-3) var(--s-6);position:sticky;top:0;z-index:5}.topbar .brand{font-weight:var(--w-bold)}.topbar-right{display:flex;align-items:center;gap:var(--s-2)}.topbar-right .muted{margin:0 var(--s-2)}.topbar .btn-link{padding:var(--s-2) var(--s-3);border-radius:var(--r-control)}.topbar .btn-link:hover{background:var(--c-surface-2);text-decoration:none}.content{max-width:1040px;width:100%;margin:0 auto;padding:var(--s-6) var(--s-5) var(--s-8)}.content h1{font-size:var(--t-xl);line-height:var(--lh-tight);margin-bottom:var(--s-1)}.muted{color:var(--c-dim);font-size:var(--t-sm)}.card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--s-5);margin-top:var(--s-5)}.card.narrow{max-width:440px;text-align:center}.card h2{font-size:var(--t-lg);line-height:var(--lh-tight);margin-bottom:var(--s-4)}.card p{line-height:var(--lh-body)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}.two-col .card{margin-top:var(--s-5)}@media(max-width:720px){.two-col{grid-template-columns:1fr}}.page-center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s-4);background:var(--c-page)}.stat-row{display:flex;gap:var(--s-3);margin-top:var(--s-4);flex-wrap:wrap}.stat{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--s-4) var(--s-5);min-width:110px}.stat b{display:block;font-size:var(--t-lg);line-height:var(--lh-tight);font-variant-numeric:tabular-nums}.stat span{font-size:var(--t-xs);color:var(--c-dim)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-4);margin-top:var(--s-5)}.tile{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--s-5);text-decoration:none;color:inherit;transition:border-color var(--motion),background var(--motion)}.tile:hover{border-color:var(--c-line-strong);background:var(--c-surface-2)}.tile.disabled{opacity:.55}.tile h3{font-size:var(--t-sm);margin-bottom:var(--s-1)}.tile p{color:var(--c-dim);font-size:var(--t-xs)}.row-form{display:flex;gap:var(--s-3);margin-top:var(--s-2);align-items:center;flex-wrap:wrap}.row-form input,.row-form select{width:auto;flex:1;min-width:120px}.row-form input[type=radio],.row-form input[type=checkbox]{flex:0 0 auto;min-width:0;width:auto}.row-form .btn-primary,.row-form .btn-link{flex:0 0 auto}input,select,textarea{font-family:inherit;font-size:var(--t-sm);padding:var(--s-3);border:1px solid var(--c-line-strong);border-radius:var(--r-control);outline:none;background:var(--c-surface);color:var(--c-ink);width:100%;transition:border-color var(--motion)}input:hover,select:hover,textarea:hover{border-color:var(--c-dim)}input:focus,select:focus,textarea:focus{border-color:var(--c-accent)}input:disabled,select:disabled,textarea:disabled{background:var(--c-surface-2);color:var(--c-dim);cursor:not-allowed}select{width:auto}textarea{resize:vertical;margin-bottom:var(--s-3)}label{font-size:var(--t-xs);color:var(--c-dim)}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--t-sm)}.data-table th{text-align:left;color:var(--c-dim);font-size:var(--t-xs);font-weight:var(--w-medium);padding:var(--s-3);background:var(--c-surface-2)}.data-table th:first-child{border-radius:var(--r-control) 0 0 var(--r-control)}.data-table th:last-child{border-radius:0 var(--r-control) var(--r-control) 0}.data-table td{padding:var(--s-3);border-bottom:1px solid var(--c-line)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background var(--motion)}.data-table tbody tr:hover td{background:var(--c-surface-2)}.role-pill{font-size:var(--t-xs);font-weight:var(--w-bold);padding:var(--s-1) var(--s-3);border-radius:var(--r-pill)}.role-student{background:var(--c-info-soft);color:var(--c-info)}.role-teacher{background:var(--c-ok-soft);color:var(--c-ok)}.role-superadmin{background:var(--c-warn-soft);color:var(--c-warn)}.acc-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}.acc-grid label,.content label{font-size:var(--t-xs);color:var(--c-dim);display:flex;flex-direction:column;gap:var(--s-2)}@media(max-width:720px){.acc-grid{grid-template-columns:1fr}}.title-input{font-size:var(--t-lg);font-weight:var(--w-bold);flex:1 1 300px}.section-title{font-size:var(--t-md);font-weight:var(--w-bold);border-color:transparent;background:transparent;padding-left:0}.section-title:hover,.section-title:focus{border-color:var(--c-line-strong);background:var(--c-surface);padding-left:var(--s-3)}.question-card{border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--s-4);margin-top:var(--s-3)}.check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:var(--s-2);padding:var(--s-2) 0;font-size:var(--t-sm)!important;color:var(--c-ink)!important}.check-row input{width:auto!important;flex:0 0 auto}.exam-bg{background:var(--c-page);min-height:100vh}.exam-topbar2{position:sticky;top:0;z-index:10;background:var(--c-surface);border-bottom:1px solid var(--c-line)}.exam-topbar-inner{max-width:760px;margin:0 auto;display:flex;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-5)}.exam-title{font-weight:var(--w-bold);font-size:var(--t-sm);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exam-timer{font-size:var(--t-md);font-weight:var(--w-bold);font-variant-numeric:tabular-nums;color:var(--c-ink);padding:var(--s-1) var(--s-2)}.exam-timer.urgent{color:var(--c-danger)}.exam-progress-label{font-size:var(--t-xs);color:var(--c-dim);white-space:nowrap;font-variant-numeric:tabular-nums}.exam-progress-track{height:3px;background:var(--c-surface-2)}.exam-progress-fill{height:100%;background:var(--c-accent);transition:width .4s ease}.exam-content{max-width:760px;margin:0 auto;padding:var(--s-6) var(--s-5) var(--s-8);-webkit-user-select:none;user-select:none}.exam-content input,.exam-content textarea{-webkit-user-select:text;user-select:text}.exam-section-title{font-size:var(--t-xs);color:var(--c-dim);margin:0 0 var(--s-4);font-weight:var(--w-medium)}.exam-q{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--s-5);margin-bottom:var(--s-4)}.exam-q-head{display:flex;gap:var(--s-3);align-items:flex-start;margin-bottom:var(--s-4)}.qnum{flex:0 0 auto;min-width:26px;height:26px;padding:0 var(--s-2);border-radius:var(--r-control);background:var(--c-surface-2);color:var(--c-ink-2);font-weight:var(--w-bold);font-size:var(--t-xs);font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center}.exam-q.answered .qnum{background:var(--c-accent-soft);color:var(--c-accent)}.q-prompt{font-size:var(--t-md);line-height:var(--lh-body);flex:1}.q-pts{flex:0 0 auto;font-size:var(--t-xs);color:var(--c-dim);white-space:nowrap}.choices{display:flex;flex-direction:column;gap:var(--s-2)}.choices-row{flex-direction:row}.choices-row .choice{flex:1;justify-content:center}.choice{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);cursor:pointer;border:1px solid var(--c-line-strong);border-radius:var(--r-control);background:var(--c-surface);font-size:var(--t-sm);transition:border-color var(--motion),background var(--motion)}.choice:hover{border-color:var(--c-dim)}.choice.selected{border-color:var(--c-accent);background:var(--c-accent-soft);font-weight:var(--w-bold)}.choice input{position:absolute;opacity:0;width:0;height:0}.choice:focus-within{outline:2px solid var(--c-accent);outline-offset:2px}.choice-letter{flex:0 0 auto;width:24px;height:24px;border-radius:var(--r-control);background:var(--c-surface-2);display:flex;align-items:center;justify-content:center;font-size:var(--t-xs);font-weight:var(--w-bold);color:var(--c-dim)}.choice.selected .choice-letter{background:var(--c-accent);color:var(--c-on-accent)}.short-answer{font-size:var(--t-md);padding:var(--s-3) var(--s-4)}.essay-answer{font-size:var(--t-sm);padding:var(--s-3) var(--s-4);line-height:var(--lh-body)}.exam-footer{text-align:center;margin-top:var(--s-6);display:flex;flex-direction:column;gap:var(--s-3);align-items:center}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a18cc;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--s-4)}.overlay .card{box-shadow:var(--shadow-float)}.modal-box{width:100%;max-width:520px;max-height:86vh;display:flex;flex-direction:column;padding:0}.modal-box.wide{max-width:760px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-5) var(--s-5) var(--s-3);border-bottom:1px solid var(--c-line)}.modal-body{padding:var(--s-5);overflow:auto}.modal-x{background:none;border:none;font-size:26px;line-height:1;color:var(--c-dim);cursor:pointer;padding:0 var(--s-2);min-height:44px}.modal-x:hover{color:var(--c-ink)}@media(max-width:640px){.modal-box{max-height:92vh}}.exam-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--c-line)}.exam-nav .btn-primary{min-width:110px}.flag-btn{background:none;border:1px solid var(--c-line-strong);border-radius:var(--r-control);padding:var(--s-2) var(--s-4);font-size:var(--t-xs);font-family:inherit;font-weight:var(--w-bold);color:var(--c-dim);cursor:pointer;transition:border-color var(--motion),color var(--motion)}.flag-btn:hover{border-color:var(--c-dim);color:var(--c-ink)}.flag-btn.on{background:var(--c-warn-soft);border-color:var(--c-warn);color:var(--c-warn)}.qnav{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--c-line)}.qnav-btn{width:36px;height:36px;border-radius:var(--r-control);cursor:pointer;border:1px solid var(--c-line-strong);background:var(--c-surface);color:var(--c-dim);font-size:var(--t-xs);font-weight:var(--w-bold);font-family:inherit;font-variant-numeric:tabular-nums;transition:border-color var(--motion),background var(--motion)}.qnav-btn:hover{border-color:var(--c-accent);color:var(--c-accent)}.qnav-btn.done{background:var(--c-accent-soft);border-color:var(--c-accent-soft);color:var(--c-accent)}.qnav-btn.flagged{background:var(--c-warn-soft);border-color:var(--c-warn-soft);color:var(--c-warn)}.qnav-btn.current{outline:2px solid var(--c-accent);outline-offset:2px}.exam-review{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--s-5)}.exam-review h2{font-size:var(--t-lg);margin-bottom:var(--s-1)}.exam-unanswered{margin-top:var(--s-3);color:var(--c-warn);font-size:var(--t-sm);font-weight:var(--w-bold)}.exam-notice{background:var(--c-warn-soft);border:1px solid var(--c-warn-soft);color:var(--c-warn);border-radius:var(--r-control);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-4);font-size:var(--t-sm)}.exam-on,.exam-off{position:relative}.exam-on,.exam-off{--room-scan: #16A34A}.exam-off{--room-scan: #DC2626}.exam-on:before,.exam-off:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40;border:12px solid var(--room-scan)}.exam-off:before{animation:examalert 1s ease-in-out infinite}@keyframes examalert{50%{opacity:.35}}.exam-on .exam-topbar2,.exam-off .exam-topbar2{background:var(--room-scan);border-bottom:none;color:#fff}.exam-off .exam-topbar2{animation:examalert 1s ease-in-out infinite}.exam-on .exam-topbar2 .exam-timer,.exam-off .exam-topbar2 .exam-timer,.exam-on .exam-topbar2 .exam-title,.exam-off .exam-topbar2 .exam-title,.exam-on .exam-topbar2 .exam-progress-label,.exam-off .exam-topbar2 .exam-progress-label{color:#fff}.exam-on .exam-topbar2 .exam-timer.urgent,.exam-off .exam-topbar2 .exam-timer.urgent{background:#fff;color:#dc2626;border-radius:6px}.exam-on .exam-topbar2 .btn-primary,.exam-off .exam-topbar2 .btn-primary{background:#fff;color:var(--room-scan);border-color:#fff}.exam-on .exam-progress-track,.exam-off .exam-progress-track{background:#ffffff4d}.exam-on .exam-progress-fill,.exam-off .exam-progress-fill{background:#fff}.overlay-alert{background:#a32b2459}.score-big{font-size:var(--t-lg);font-weight:var(--w-bold);margin-bottom:var(--s-2)}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin-top:var(--s-2);background:var(--c-surface-2);border-radius:var(--r-control);padding:var(--s-3) var(--s-4)}.review-label{font-size:var(--t-xs);color:var(--c-dim);margin-bottom:var(--s-1);font-weight:var(--w-medium)}.review-flag{border-color:var(--c-warn);background:var(--c-warn-soft)}@media(max-width:720px){.review-grid{grid-template-columns:1fr}}.error-banner{margin-top:var(--s-4);background:var(--c-danger-soft);color:var(--c-danger);padding:var(--s-3) var(--s-4);border-radius:var(--r-control);font-size:var(--t-sm);border-left:3px solid var(--c-danger)}.ok-banner{margin-top:var(--s-4);background:var(--c-ok-soft);color:var(--c-ok);padding:var(--s-3) var(--s-4);border-radius:var(--r-control);font-size:var(--t-sm);border-left:3px solid var(--c-ok)}.spinner{width:24px;height:24px;border:2px solid var(--c-line);border-top-color:var(--c-accent);border-radius:50%;animation:spin .8s linear infinite;margin:var(--s-5) auto}@keyframes spin{to{transform:rotate(360deg)}}.hebrew-text{direction:rtl;text-align:right;font-family:SBL Hebrew,Ezra SIL,Frank Ruhl Libre,Times New Roman,serif;font-size:var(--t-xl);line-height:2;background:var(--c-surface-2);border-radius:var(--r-card);padding:var(--s-4) var(--s-5);margin-top:var(--s-3)}.hebrew-text.transcript{font-size:var(--t-md);line-height:1.8}.hebrew-input{direction:rtl;text-align:right;font-size:var(--t-lg);line-height:1.9;font-family:SBL Hebrew,Ezra SIL,Frank Ruhl Libre,Times New Roman,serif}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--c-danger);display:inline-block;animation:recblink 1s ease-in-out infinite}@keyframes recblink{0%,to{opacity:1}50%{opacity:.25}}.chip-row{display:flex;flex-wrap:wrap;gap:var(--s-2)}.chip{background:var(--c-danger-soft);color:var(--c-danger);border-radius:var(--r-pill);padding:var(--s-1) var(--s-3);font-size:var(--t-md);font-family:SBL Hebrew,Ezra SIL,Times New Roman,serif}.hebrew-chip{direction:rtl;unicode-bidi:isolate}.heb-field{position:relative;display:flex;align-items:flex-start;gap:var(--s-2);width:100%}.heb-field>input,.heb-field>textarea{flex:1;min-width:0}.heb-toggle{flex:0 0 auto;min-width:42px;padding:var(--s-2) var(--s-3);border-radius:var(--r-control);cursor:pointer;border:1px solid var(--c-line-strong);background:var(--c-surface);color:var(--c-dim);font-family:inherit;font-size:var(--t-xs);font-weight:var(--w-bold);transition:background var(--motion),border-color var(--motion),color var(--motion)}.heb-toggle:hover{border-color:var(--c-dim);color:var(--c-ink)}.heb-toggle.on{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-on-accent)}.heb-toggle:disabled{opacity:.5;cursor:not-allowed}.heb-hint{position:absolute;left:0;bottom:-18px;font-size:var(--t-xs);color:var(--c-dim)}.heb-field .cloze-blank{width:140px}.match-table td{vertical-align:middle}.match-table select{width:100%}.hebrew-cell{direction:rtl;text-align:right;font-size:var(--t-lg);font-family:SBL Hebrew,Ezra SIL,Frank Ruhl Libre,Times New Roman,serif}.order-list{margin-top:var(--s-3)}.order-row{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);margin-top:var(--s-2);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-control)}.order-text{flex:1}.cloze{line-height:2.4}.cloze-blank{display:inline-block;width:140px;margin:0 var(--s-2);padding:var(--s-1) var(--s-2);border:none;border-bottom:2px solid var(--c-accent);border-radius:0;background:var(--c-surface-2);text-align:center;font-size:inherit;font-family:inherit}.cloze-blank:focus{background:var(--c-accent-soft)}.tip-list{margin:var(--s-2) 0 0;padding-left:var(--s-5)}.tip-list li{margin-top:var(--s-1);line-height:var(--lh-body)}.trend-attention{background:var(--c-danger-soft);color:var(--c-danger)}.row-away{background:var(--c-danger-soft)}.row-alert{animation:alertflash 1s ease-in-out 3}@keyframes alertflash{50%{background:var(--c-danger-soft)}}.away-badge{display:inline-block;margin-left:var(--s-2);padding:var(--s-1) var(--s-3);border-radius:var(--r-pill);background:var(--c-danger);color:var(--c-on-accent);font-size:var(--t-xs);font-weight:var(--w-bold);font-variant-numeric:tabular-nums}.stale-badge{display:inline-block;margin-left:var(--s-2);padding:var(--s-1) var(--s-3);border-radius:var(--r-pill);background:var(--c-warn-soft);color:var(--c-warn);font-size:var(--t-xs);font-weight:var(--w-bold)}body.exam-locked{-webkit-user-select:none;-moz-user-select:none;user-select:none}body.exam-locked input,body.exam-locked textarea,body.exam-locked select{-webkit-user-select:text;-moz-user-select:text;user-select:text}body.exam-locked img{-webkit-user-drag:none;user-drag:none;pointer-events:none}@media print{body.exam-locked *{visibility:hidden!important}body.exam-locked:after{visibility:visible!important;content:"Printing is disabled during a test.";display:block;padding:var(--s-7);font-size:var(--t-md);text-align:center}}.skel{background:var(--c-surface-2);border-radius:var(--r-control);animation:skelpulse 1.4s ease-in-out infinite}@keyframes skelpulse{50%{opacity:.55}}.skel-row{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-3);border-bottom:1px solid var(--c-line)}.skel-row:last-child{border-bottom:none}.skel-line{height:12px}.skel-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--s-5);margin-top:var(--s-5)}@media(max-width:640px){.content{padding:var(--s-5) var(--s-4) var(--s-7)}.content h1{font-size:var(--t-lg)}.topbar{padding:var(--s-3) var(--s-4);flex-wrap:wrap;gap:var(--s-2)}.topbar-right .muted{display:none}.data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table thead,.data-table tbody{display:table;width:100%}.stat-row{gap:var(--s-2)}.stat{flex:1 1 calc(50% - var(--s-2));min-width:0;padding:var(--s-3) var(--s-4)}.away-badge,.stale-badge,.role-pill{white-space:nowrap}.hebrew-text{font-size:var(--t-lg);padding:var(--s-3) var(--s-4)}.hebrew-cell{font-size:var(--t-md)}.exam-topbar-inner{flex-wrap:wrap;gap:var(--s-2) var(--s-3);padding:var(--s-3) var(--s-4)}.exam-title{flex:1 1 100%}.exam-content{padding:var(--s-5) var(--s-4) var(--s-7)}.exam-q{padding:var(--s-4)}.exam-nav{gap:var(--s-2)}.exam-nav .btn-primary,.exam-nav .flag-btn{flex:1 1 auto}.two-col,.acc-grid,.review-grid{grid-template-columns:1fr}.signin-card{width:100%}.cloze-blank,.heb-field .cloze-blank{width:96px}}@media(pointer:coarse){.qnav-btn{width:44px;height:44px}.btn-link{padding:var(--s-3) var(--s-2)}.flag-btn,.heb-toggle{min-height:44px}.choice{padding:var(--s-4)}}.print-only{display:none}.report-actions{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap;margin-top:var(--s-3)}@media print{body{background:#fff}.shell,.page-center,.exam-bg{background:none;min-height:0}.topbar,.no-print,.btn-primary,.btn-link,.spinner{display:none!important}.print-only{display:block}.print-meta{color:#444;font-size:var(--t-xs);margin-bottom:var(--s-5)}.content{max-width:none;padding:0}.card,.exam-review,.stat,.table-scroll{border:1px solid #999;box-shadow:none;break-inside:avoid;page-break-inside:avoid}.two-col{grid-template-columns:1fr 1fr;gap:var(--s-4)}.stat-row{gap:var(--s-3)}h1,h2,h3{break-after:avoid;page-break-after:avoid}tr,li{break-inside:avoid;page-break-inside:avoid}thead{display:table-header-group}a[href]:after{content:""}@page{margin:14mm}}.teh-shell{--teh-bg: #101A3A;--teh-card: #18244C;--teh-ink: #F2F5FF;--teh-dim: #9FB0DC;--teh-accent: #F58426;--teh-accent-2: #4C7DF0;--teh-track: rgba(255,255,255,.14);--teh-read-size: 30px;min-height:100vh;background:var(--teh-bg);color:var(--teh-ink);display:flex;flex-direction:column;align-items:center;padding:var(--s-5) var(--s-4) var(--s-7);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.teh-card{background:var(--teh-card);border-radius:22px;padding:var(--s-6) var(--s-5);max-width:620px;width:100%;margin-top:var(--s-5)}.teh-center{text-align:center}.teh-shell h1{font-size:34px;line-height:1.15;margin-bottom:var(--s-4)}.teh-shell h2{font-size:22px;margin-bottom:var(--s-2)}.teh-note{color:var(--teh-dim);font-size:var(--t-sm);margin-top:var(--s-4);line-height:1.5}.teh-where{font-size:var(--t-md);margin-top:var(--s-4)}.teh-error{background:#dc5a5029;color:#ffc4be;border-radius:12px;padding:var(--s-3) var(--s-4);margin-top:var(--s-4);font-size:var(--t-sm)}.teh-load{font-size:46px;color:var(--teh-dim);letter-spacing:6px;padding:var(--s-7)}.teh-big-btn{display:block;width:100%;margin-top:var(--s-5);background:var(--teh-accent);color:#21160a;border:none;border-radius:16px;padding:var(--s-5);font-size:21px;font-weight:800;font-family:inherit;cursor:pointer;transition:transform .12s ease,filter .12s ease}.teh-big-btn:hover{filter:brightness(1.07)}.teh-big-btn:active{transform:scale(.98)}.teh-big-btn.teh-play{background:#37c978}.teh-stats{display:flex;gap:var(--s-3);justify-content:center;margin-top:var(--s-5);flex-wrap:wrap}.teh-stats>div{background:#ffffff12;border-radius:14px;padding:var(--s-3) var(--s-5);min-width:96px}.teh-stats b{display:block;font-size:28px;font-variant-numeric:tabular-nums}.teh-stats span{font-size:var(--t-xs);color:var(--teh-dim)}.teh-reading{width:100%;max-width:900px}.teh-topline{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.teh-ring{position:relative;width:190px;height:190px;flex:0 0 auto}.teh-ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.teh-ring-label b{font-size:40px;font-variant-numeric:tabular-nums}.teh-ring-label span{font-size:var(--t-xs);color:var(--teh-dim)}.teh-controls{display:flex;flex-direction:column;gap:var(--s-3);align-items:flex-end}.teh-rec{display:flex;align-items:center;gap:var(--s-2);color:var(--teh-dim);font-size:var(--t-sm)}.teh-rec i{width:11px;height:11px;border-radius:50%;background:#f2564a;animation:recblink 1.2s ease-in-out infinite}.teh-font{display:flex;gap:var(--s-2)}.teh-font button,.teh-done-btn,.teh-mute{background:#ffffff1a;color:var(--teh-ink);border:none;border-radius:12px;padding:var(--s-3) var(--s-4);font-family:inherit;font-size:var(--t-sm);font-weight:700;cursor:pointer;min-height:44px}.teh-done-btn{background:var(--teh-accent-2)}.teh-text{direction:rtl;text-align:right;margin-top:var(--s-5);background:#ffffff0d;border-radius:18px;padding:var(--s-5);font-family:Frank Ruhl Libre,Taamey Frank CLM,SBL Hebrew,Ezra SIL,serif;font-size:var(--teh-read-size);line-height:2.15}.teh-text p{margin-bottom:var(--s-4)}.teh-more-btn{display:block;width:100%;margin-top:var(--s-4);background:#ffffff1a;color:var(--teh-ink);border:none;border-radius:14px;padding:var(--s-4);font-family:inherit;font-size:var(--t-md);font-weight:700;cursor:pointer;min-height:52px}.teh-more-btn:disabled{opacity:.6}.teh-pasuk-num{display:inline-block;margin-left:var(--s-3);font-size:15px;color:var(--teh-dim);font-family:system-ui,sans-serif;vertical-align:middle}.teh-stars{font-size:52px;letter-spacing:8px;color:#ffffff2e;margin-top:var(--s-3)}.teh-stars .on{color:#ffc93c}.teh-score{font-size:66px;font-weight:800;font-variant-numeric:tabular-nums;margin-top:var(--s-2)}.teh-encourage{font-size:var(--t-md);line-height:1.55;margin-top:var(--s-4)}.teh-milestone{background:#ffc93c29;color:#ffd86b;border-radius:14px;padding:var(--s-3) var(--s-4);margin-top:var(--s-4);font-weight:700}.teh-practice-label{margin-top:var(--s-5);color:var(--teh-dim);font-size:var(--t-sm)}.teh-words{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center;margin-top:var(--s-3)}.teh-words span{direction:rtl;background:#ffffff1a;border-radius:12px;padding:var(--s-2) var(--s-4);font-size:26px;font-family:Frank Ruhl Libre,SBL Hebrew,serif}.teh-game-shell{padding-top:var(--s-4)}.teh-frame{width:100%;max-width:960px;aspect-ratio:960 / 600;border:0;border-radius:18px;background:#07060f;display:block}.teh-canvas{width:100%;max-width:900px;border-radius:18px;background:#0a1230;touch-action:none;cursor:crosshair;display:block}.teh-game-hud{display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;width:100%;max-width:900px;margin-bottom:var(--s-3);color:var(--teh-dim);font-size:var(--t-sm)}.teh-hud-score{font-size:30px;font-weight:800;color:var(--teh-ink);font-variant-numeric:tabular-nums}.teh-hud-clock{margin-left:auto;font-size:22px;font-weight:800;color:var(--teh-ink);font-variant-numeric:tabular-nums}.teh-hud-clock.low{color:#ff9a8f}@media(max-width:640px){.teh-shell h1{font-size:27px}.teh-shell{--teh-read-size: 26px}.teh-topline{justify-content:center}.teh-controls{align-items:center;flex-direction:row;flex-wrap:wrap;justify-content:center}.teh-score{font-size:54px}}.teh-modes{display:grid;gap:var(--s-3);margin-bottom:var(--s-4)}.teh-mode{text-align:left;background:#ffffff12;border:2px solid transparent;border-radius:16px;padding:var(--s-4);cursor:pointer;color:var(--teh-ink);font-family:inherit}.teh-mode.on{border-color:var(--teh-accent);background:#f5842624}.teh-mode b{display:block;font-size:19px}.teh-mode span{display:block;color:var(--teh-dim);font-size:var(--t-sm);margin-top:var(--s-1)}.teh-mode i{display:block;font-style:normal;color:var(--teh-dim);font-size:var(--t-xs);margin-top:var(--s-2)}.teh-shop-btn{display:block;width:100%;margin-top:var(--s-3);background:#ffffff1a;color:var(--teh-ink);border:none;border-radius:14px;padding:var(--s-4);font-family:inherit;font-size:var(--t-md);font-weight:700;cursor:pointer}.teh-shop{margin-top:var(--s-4)}.teh-shop-head{color:var(--teh-dim);font-size:var(--t-sm);margin-top:var(--s-4)}.teh-shop-row{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}.teh-item{background:#ffffff14;border:1px solid transparent;border-radius:12px;padding:var(--s-3) var(--s-4);color:var(--teh-ink);font-family:inherit;cursor:pointer;min-height:44px;text-align:left}.teh-item b{display:block;font-size:var(--t-sm)}.teh-item span{font-size:var(--t-xs);color:var(--teh-dim)}.teh-item.mine{border-color:#37c978}.teh-item:disabled{opacity:.55;cursor:default}.teh-bolt{margin-top:var(--s-3);background:#ffd24a;color:#241c05;border:none;border-radius:14px;padding:var(--s-4) var(--s-6);font-family:inherit;font-size:var(--t-md);font-weight:800;cursor:pointer;min-height:52px;user-select:none;-webkit-user-select:none;touch-action:manipulation}.teh-bolt:active{transform:scale(.96)}.teh-row-btns{display:flex;gap:var(--s-3)}.teh-row-btns .teh-shop-btn{flex:1}.teh-howto{margin:var(--s-4) 0;padding-left:1.4em;display:grid;gap:var(--s-3);font-size:var(--t-md);line-height:1.5}.teh-howto li::marker{color:var(--teh-accent);font-weight:800}.teh-medal{font-size:26px;font-weight:800;margin-top:var(--s-2);letter-spacing:1px}.teh-newbest{display:inline-block;background:#ffd24a;color:#241c05;font-weight:900;border-radius:999px;padding:var(--s-2) var(--s-5);letter-spacing:2px;animation:bestpulse 1s ease-in-out infinite}.teh-best{box-shadow:0 0 0 3px #ffd24a,0 0 40px #ffd24a59}@keyframes bestpulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.teh-cal-head,.teh-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s-2)}.teh-cal-head{margin-bottom:var(--s-2)}.teh-cal-head span{text-align:center;font-size:var(--t-xs);color:var(--c-dim)}.teh-cell{aspect-ratio:1;border:1px solid var(--c-line);border-radius:var(--r-control);background:var(--c-surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;padding:2px}.teh-cell i{font-style:normal;font-size:var(--t-xs);color:var(--c-dim)}.teh-cell b{font-size:var(--t-xs);font-variant-numeric:tabular-nums}.teh-cell.empty{border:none;background:none;cursor:default}.teh-cell.read{background:var(--c-accent-soft);border-color:var(--c-accent-soft)}.teh-cell.great{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-on-accent)}.teh-cell.great i{color:#fffc}.teh-cell.tried{background:var(--c-warn-soft);border-color:var(--c-warn-soft)}.teh-cell.exempt{background:var(--c-surface-2);color:var(--c-dim)}.teh-legend{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-3)}.teh-legend .key{width:14px;height:14px;border-radius:4px;display:inline-block;margin-left:var(--s-3);border:1px solid var(--c-line)}.teh-legend .key.great{background:var(--c-accent)}.teh-legend .key.read{background:var(--c-accent-soft)}.teh-legend .key.tried{background:var(--c-warn-soft)}.teh-legend .key.exempt{background:var(--c-surface-2)}.chip-blocked{background:var(--c-danger-soft);color:var(--c-danger);text-decoration:line-through;border-color:var(--c-danger)}.chip:disabled{opacity:.75;cursor:default}
