body,html{max-width:100%}.table-wrap{max-inline-size:100%;overflow-x:auto}.button-link,button{min-height:44px}a{outline-offset:3px}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.action-card{display:grid;grid-gap:.5rem;gap:.5rem;min-height:120px;padding:1.25rem;border-radius:16px;background:#fff;border:1px solid var(--border);text-decoration:none;color:var(--text)}.action-card strong{color:var(--primary);font-size:1.15rem}.segmented{display:flex;gap:.5rem;margin-block:1rem}.segmented button[aria-pressed=false]{background:#e8eeeb;color:var(--text)}.score{font-size:1.2rem;font-weight:700;color:var(--primary)}.print-actions{display:flex;gap:.5rem}.grade-sheet{background:#fff;padding:1rem}.grade-sheet header{text-align:center}.grade-sheet table{width:100%;border-collapse:collapse}.grade-sheet td,.grade-sheet th{border:1px solid #222;padding:.6rem;text-align:right}.grade-sheet td small{display:block}.danger-zone{display:flex;flex-wrap:wrap;gap:.75rem}.danger-zone h2{width:100%}.danger-zone button:last-child{background:var(--danger)}dl{display:grid;grid-template-columns:auto 1fr;grid-gap:.5rem;gap:.5rem}dd{margin:0}@media(max-width:760px){.action-grid{grid-template-columns:1fr}}@media print{@page{size:A4 portrait;margin:12mm}body{background:#fff}.app-shell>aside,.app-shell>header,.context-bar,.notice,.offline-banner,.page-heading,.print-actions{display:none!important}.app-shell,.app-shell>main{display:block;padding:0;max-width:none}.grade-sheet{padding:0}.grade-sheet thead{display:table-header-group}.grade-sheet tr{break-inside:avoid;page-break-inside:avoid}.grade-sheet td,.grade-sheet th{font-size:11pt}}.agent-hero,.agent-question{padding:1.25rem;border-radius:18px;background:linear-gradient(135deg,#0c4c39,#176b52);color:#fff}.agent-hero h2,.agent-question h2{margin:.35rem 0;font-size:clamp(1.35rem,5vw,2rem)}.agent-hero p,.agent-question p{margin:.35rem 0;color:#e4f4ed}.command-center{display:grid;grid-gap:.65rem;gap:.65rem;padding:1rem;background:#fff;border:1px solid var(--border);border-radius:14px}.command-center div{display:flex;gap:.5rem;flex-wrap:wrap}.command-center a{padding:.55rem .75rem;border-radius:999px;background:#eef5f2;color:var(--primary);text-decoration:none;border:1px solid #c8ddd4}.primary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.75rem;gap:.75rem}.primary-action{display:grid;grid-gap:.35rem;gap:.35rem;padding:1rem;border:1px solid var(--border);background:#fff;color:var(--text);text-decoration:none;min-height:92px}.primary-action strong{color:var(--primary);font-size:1.05rem}.primary-action.featured{grid-column:1/-1;background:#e9f5ef;border-color:#83b9a3}.secondary-actions{display:flex;gap:.5rem;flex-wrap:wrap}.secondary-actions a{padding:.55rem .75rem;border-radius:999px;background:#fff;color:var(--primary);border:1px solid var(--border);text-decoration:none}.insight-summary{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.6rem;gap:.6rem}.insight-summary span{display:grid;grid-gap:.25rem;gap:.25rem;padding:.8rem;background:#fff;border:1px solid var(--border);border-radius:12px;text-align:center}.insight-summary strong{font-size:1.3rem;color:var(--primary)}.step-progress{height:7px;border-radius:99px;background:#dbe5e0;overflow:hidden}.step-progress span{display:block;height:100%;background:var(--primary);transition:width .2s}.choice-row{gap:.4rem}.choice-row button{flex:1 1;background:#e8eeeb;color:var(--text);white-space:nowrap}.choice-row button[aria-pressed=true],.criterion-list button[aria-pressed=true],.level-list button[aria-pressed=true]{background:var(--primary);color:#fff}.criterion-list,.level-list{display:grid;grid-gap:.6rem;gap:.6rem}.criterion-list button,.level-list button{display:grid;text-align:right;grid-gap:.3rem;gap:.3rem;background:#f2f6f4;color:var(--text);border:1px solid var(--border)}.criterion-list small,.level-list span{color:inherit}.explanation-card dl{grid-template-columns:minmax(100px,auto) 1fr}.attendance-list,.monitor-list{display:grid;grid-gap:.6rem;gap:.6rem}.attendance-row,.monitor-item{display:grid;grid-gap:.65rem;gap:.65rem;padding:.85rem;background:#fff;border:1px solid var(--border);border-radius:12px}.monitor-item{text-decoration:none;color:var(--text)}.monitor-item span{color:var(--primary)}.experience-card dt{font-weight:700}.experience-card dd{line-height:1.7}@media(max-width:760px){.primary-actions{grid-template-columns:1fr}.primary-action.featured{grid-column:auto}.guided-flow .card{padding:.85rem}.choice-row button{padding:.55rem}.attendance-row .choice-row{display:grid;grid-template-columns:repeat(3,1fr)}.insight-summary{grid-template-columns:1fr}.command-center div{display:grid;grid-template-columns:1fr 1fr}}@media(max-width:390px){.command-center div{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.step-progress span{transition:none}}.rubric-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-top:.75rem}.rubric-preview article{padding:.8rem;border:1px solid var(--border);border-radius:12px;background:#f7faf8}.rubric-preview p{margin:.4rem 0}.level-list button small,.rubric-preview small{display:block;color:var(--primary);font-weight:700;margin-top:.35rem}@media(max-width:760px){.rubric-preview{grid-template-columns:1fr}}.quick-sheet{max-width:860px;margin-inline:auto}.quick-context{position:-webkit-sticky;position:sticky;top:.5rem;z-index:7;box-shadow:0 5px 18px #173b2f18}.competency-row button{white-space:normal;min-width:9rem}.compact-levels{grid-template-columns:repeat(2,minmax(0,1fr))}.rapid-roster{display:grid;grid-gap:.45rem;gap:.45rem}.rapid-row{display:grid;grid-template-columns:minmax(9rem,1fr) auto auto;align-items:center;grid-gap:.5rem;gap:.5rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:12px;background:#fff}.rapid-row>div{display:grid;grid-template-columns:repeat(4,44px);grid-gap:.35rem;gap:.35rem}.rapid-row button{min-width:44px;min-height:44px;padding:.25rem;border-radius:10px;background:#edf3f0;color:var(--text)}.rapid-row button[aria-pressed=true]{background:var(--primary);color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--primary)}.recent-entry,.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.roster-heading h3,.roster-heading p{margin:.15rem 0}.attendance-warning,.warning-box{color:#7a3200}.warning-box{padding:.8rem;border:1px solid #d79254;border-radius:12px;background:#fff5e8}.exception-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.6rem;gap:.6rem;margin-top:.75rem}.recent-entry{padding:.6rem;border-bottom:1px solid var(--border)}@media(max-width:600px){.quick-context{position:static}.compact-levels{grid-template-columns:1fr}.rapid-row{grid-template-columns:1fr auto}.rapid-row>strong{grid-column:1}.rapid-row>small{grid-column:2}.rapid-row>div{grid-column:1/-1;grid-template-columns:repeat(4,minmax(44px,1fr))}.competency-row,.exception-list{grid-template-columns:1fr}.competency-row{display:grid}.competency-row button{min-width:0}}.disabled-link,.export-link{display:inline-grid;place-items:center;min-height:44px;padding:.65rem 1rem;border-radius:10px;text-decoration:none;background:var(--primary);color:#fff}.disabled-link{pointer-events:none;opacity:.55}.gradebook-table{display:grid;border:1px solid var(--border);border-radius:10px;overflow:hidden}.gradebook-head,.gradebook-row>summary,.static-row{display:grid;grid-template-columns:55px minmax(150px,1.5fr) repeat(5,minmax(85px,1fr));grid-gap:.5rem;gap:.5rem;align-items:center;padding:.65rem}.gradebook-head{background:#e9f2ee;font-weight:700}.gradebook-row{border-top:1px solid var(--border)}.gradebook-row>summary{cursor:pointer;list-style:none}.score-explanation{padding:.75rem 1rem;background:#f7faf8}.score-explanation small{display:block}.semester-grid .gradebook-head,.semester-grid .static-row{grid-template-columns:55px minmax(150px,1.4fr) minmax(220px,2fr) 80px 90px 120px}.quality-check{margin-top:1rem;border:1px dashed var(--border);padding:1rem;border-radius:10px}.quality-check li{margin-block:.45rem}@media(max-width:760px){.gradebook-head{display:none}.gradebook-row>summary,.semester-grid .static-row,.static-row{grid-template-columns:1fr;gap:.35rem;padding:.85rem}.gradebook-row [data-label],.static-row [data-label]{display:flex;justify-content:space-between;gap:1rem}.gradebook-row [data-label]:before,.static-row [data-label]:before{content:attr(data-label);color:var(--muted);font-weight:400}.gradebook-row strong[data-label]{font-size:1.05rem;color:var(--primary)}.gradebook{padding:.65rem}.print-actions{flex-wrap:wrap}.print-actions>*{flex:1 1}}@media print{.gradebook-row>summary,.static-row{font-size:9pt;padding:.35rem}.notice,.quality-check,.score-explanation{display:none!important}.gradebook-row:not([open])>summary{display:grid}.gradebook-row{page-break-inside:avoid;break-inside:avoid}.gradebook-head,.gradebook-row>summary{grid-template-columns:35px minmax(120px,1.5fr) repeat(5,minmax(60px,1fr))}.semester-grid .gradebook-head,.semester-grid .static-row{grid-template-columns:35px minmax(120px,1.2fr) minmax(180px,2fr) 55px 55px 90px}}.official-mobile-list{display:grid;grid-gap:.8rem;gap:.8rem}.grade-card{border:1px solid var(--border);border-radius:12px;padding:.85rem;background:var(--surface)}.grade-card header{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.month-edit-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));grid-gap:.6rem;gap:.6rem}.month-edit-grid label{display:grid;grid-template-columns:1fr auto;align-items:end;grid-gap:.35rem;gap:.35rem}.month-edit-grid input{grid-column:1/-1}.month-edit-grid button{grid-column:2;min-height:36px}.official-preview{overflow:auto;background:#fff;color:#111;padding:1rem}.official-preview header{text-align:center}.official-preview table{border-collapse:collapse;width:100%;min-width:800px;table-layout:fixed}.official-preview td,.official-preview th{border:1px solid #222;text-align:center;padding:.25rem}.official-preview th{background:#283c34;color:#fff}.official-preview td:nth-child(2),.official-preview th:nth-child(2){width:24%}.official-preview td:last-child,.official-preview th:last-child{width:23%}@media(max-width:760px){.month-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-card header{flex-direction:column}.official-preview{border-radius:10px}}@media print{@page{size:A4 landscape;margin:7mm}.agent-question,.app-shell>:not(main),.print-actions,.segmented{display:none!important}.official-preview{overflow:visible;padding:0}.official-preview table{min-width:0;font-size:7.5pt}.official-preview td,.official-preview th{height:14px;padding:1px}}@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Regular.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:Sahel;src:url(/fonts/Sahel-Regular.woff2) format("woff2");font-display:swap;font-weight:400}@font-face{font-family:Shabnam;src:url(/fonts/Shabnam-Regular.woff2) format("woff2");font-display:swap;font-weight:400}.appearance-settings fieldset{border:0;padding:0;margin:0}.font-options{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.6rem;gap:.6rem}.font-options label{display:flex;align-items:center;justify-content:center;min-height:48px;padding:.6rem;border:1px solid var(--border);border-radius:12px}.font-options input{width:20px;min-height:20px;margin:0 0 0 .45rem}.compact-change{min-height:44px;padding:.45rem .7rem;flex:none}.context-wizard{max-width:560px;margin:auto}.wizard-progress{display:flex;gap:.35rem;overflow:auto;padding:.25rem}.wizard-progress span{white-space:nowrap;padding:.4rem;border-radius:10px;background:#edf3f0}.wizard-progress span[aria-current=step]{background:var(--primary);color:#fff}.attendance-summary,.daily-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.5rem;gap:.5rem}.daily-status{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-summary span,.daily-status span{display:flex;flex-direction:column;align-items:center;min-width:0;padding:.75rem .4rem;border:1px solid var(--border);border-radius:12px;background:#fff}.choice-row{display:flex;flex-wrap:wrap;gap:.5rem}.choice-row button{flex:1 1 auto}.choice-row button[aria-pressed=true]{background:var(--primary);color:#fff}.unsaved{color:#8a4b00;font-weight:700}@media(max-width:760px){.font-options{grid-template-columns:1fr}}@media(max-width:390px){.attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-status{grid-template-columns:1fr}.choice-row button{flex-basis:calc(50% - .5rem)}}@media(prefers-reduced-motion:reduce){:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}@media print{.bottom-nav{display:none!important}body{padding-bottom:0}}.primary-action{border-radius:14px;box-shadow:none}.agent-hero,.agent-question{background:var(--primary);border-radius:16px}.daily-status{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem;border-block:1px solid var(--border);color:var(--muted)}.daily-status span{display:inline!important;padding:0!important;border:0!important;background:transparent!important;text-align:center}.daily-status strong{color:var(--text)}.compact-actions{grid-template-columns:1fr!important;gap:.75rem!important}.compact-actions .primary-action{min-height:76px!important;display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem 1.25rem!important}.compact-actions .featured{background:var(--primary)!important;border-color:var(--primary)!important}.compact-actions .featured strong{color:#fff!important;font-size:1.2rem}.compact-actions .assessment-action{background:var(--surface);border:2px solid var(--primary)}.compact-actions .assessment-action strong{font-size:1.15rem}.quiet-actions{display:grid!important;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.quiet-actions a{display:grid;place-items:center;min-height:48px;color:var(--primary)!important;background:transparent;border:1px solid var(--border);border-radius:12px;text-decoration:none}.choice-row button[aria-pressed=true],.criterion-list button[aria-pressed=true],.level-list button[aria-pressed=true]{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px currentColor}.competency-row button:first-child[aria-pressed=true]{background:var(--category-analysis)}.competency-row button:nth-child(2)[aria-pressed=true]{background:var(--category-making)}.competency-row button:nth-child(3)[aria-pressed=true]{background:var(--category-operation)}.rubric-range{display:block;color:inherit!important;font-weight:700}.assessment-hub,.assessment-wizard{max-width:680px;margin-inline:auto}.assessment-hub>header{display:flex;align-items:center;gap:1rem}.assessment-hub>header h1{margin:0}.assessment-hub>header a,.hub-secondary{display:grid;place-items:center;min-height:52px;padding:.75rem 1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--primary);text-decoration:none}.hub-primary{min-height:72px;font-size:1.2rem;font-weight:800}.hub-secondary{width:100%;font-weight:700}.assessment-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:.75rem;gap:.75rem}.assessment-header p{margin:0;text-align:center;color:var(--muted)}.assessment-header button:first-child{justify-self:start}.assessment-header .text-action{justify-self:end}.text-action{background:transparent!important;color:var(--primary)!important;border:0;padding:.4rem .6rem}.wizard-stage{display:grid;grid-gap:1rem;gap:1rem;padding:clamp(1rem,4vw,1.5rem);background:var(--surface);border:1px solid var(--border);border-radius:16px}.wizard-stage h1{margin:0}.category-options,.option-list,.rubric-options{display:grid;grid-gap:.65rem;gap:.65rem}.category-options button,.option-list button,.rubric-options button{display:grid;grid-gap:.25rem;gap:.25rem;min-height:64px;text-align:start;background:var(--surface);color:var(--text);border:1px solid var(--border)}.option-list button:hover,.rubric-options button:hover{background:var(--primary-soft)}.category-options button[data-suggested=true]{border-width:2px}.category-problem_solving.category-chip,.category-problem_solving[data-suggested=true]{border-color:var(--category-analysis);background:var(--category-analysis-soft);color:var(--category-analysis)}.category-making.category-chip,.category-making[data-suggested=true]{border-color:var(--category-making);background:var(--category-making-soft);color:var(--category-making)}.category-operation.category-chip,.category-operation[data-suggested=true]{border-color:var(--category-operation);background:var(--category-operation-soft);color:var(--category-operation)}.category-options .category-problem_solving:hover{background:var(--category-analysis);color:#fff}.category-options .category-making:hover{background:var(--category-making);color:#fff}.category-options .category-operation:hover{background:var(--category-operation);color:#fff}.category-chip{width:max-content;padding:.35rem .65rem;border:1px solid;border-radius:999px}.compact-summary,.score-summary,.selection-summary{padding:.75rem;background:var(--primary-soft);border-radius:12px}.compact-summary{display:flex;flex-wrap:wrap;gap:.4rem}.compact-summary span:not(:last-child):after{content:" | ";color:var(--muted)}.segmented-choice{display:flex;flex-wrap:wrap;gap:.5rem}.segmented-choice button{flex:1 1;background:var(--primary-soft);color:var(--text);border:1px solid var(--border)}.segmented-choice button[aria-pressed=true]{background:var(--primary);color:#fff;border-color:var(--primary)}.wizard-stage fieldset{margin:0;padding:.75rem;border:1px solid var(--border);border-radius:12px}.wizard-stage legend{font-weight:700;padding-inline:.35rem}.student-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.5rem;gap:.5rem;max-height:280px;overflow:auto}.student-picker label{display:flex;align-items:center;gap:.5rem;padding:.55rem;border:1px solid var(--border);border-radius:10px}.student-picker input{width:20px;min-height:20px}.score-summary{display:grid;grid-template-columns:1fr auto;grid-gap:.4rem;gap:.4rem}.score-summary dd{font-weight:800}.submission-button{min-height:56px;font-weight:800}@media(max-width:760px){.daily-status{font-size:.78rem;gap:.35rem;padding-inline:.25rem}.daily-status span{flex:1 1}.assessment-header button{min-width:76px}.student-picker{grid-template-columns:1fr}}@media(max-width:390px){.daily-status{align-items:stretch}.daily-status span{display:grid!important;place-items:center}.quiet-actions{gap:.5rem}}@media(prefers-reduced-motion:reduce){:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.roster-checklist{display:grid;grid-gap:.5rem;gap:.5rem;max-height:440px;overflow:auto;padding:.25rem}.roster-checklist label{display:flex;align-items:center;gap:.7rem;min-height:52px;padding:.65rem .75rem;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.roster-checklist label:has(input:checked){border-color:var(--primary);background:var(--primary-soft);font-weight:700}.roster-checklist label[aria-disabled=true]{opacity:.55}.roster-checklist input{width:22px;min-height:22px}.jalali-date{display:grid;grid-gap:.65rem;gap:.65rem}.jalali-date-fields{display:grid;grid-template-columns:.75fr 1.4fr 1fr;grid-gap:.5rem;gap:.5rem}.calendar-holiday{color:#8b2f2f;font-weight:700}.calendar-event{color:var(--category-analysis)}.utility-links{display:grid;grid-gap:.5rem;gap:.5rem}.utility-links a{display:flex;align-items:center;min-height:48px;padding:.65rem .8rem;border:1px solid var(--border);border-radius:12px;color:var(--primary);text-decoration:none}.utility-links a:hover{background:var(--primary-soft)}:root{color-scheme:light;font-family:var(--app-font,var(--font-default));font-size:100%;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--page-gutter:var(--layout-mobileGutter);--navigation-height:4.5rem;--navigation-reserved:calc(var(--navigation-height) + var(--safe-bottom))}html[data-font=sahel]{--app-font:Sahel,Vazirmatn,Tahoma,sans-serif}html[data-font=shabnam]{--app-font:Shabnam,Vazirmatn,Tahoma,sans-serif}*{box-sizing:border-box}body,html{margin:0;min-inline-size:0;background:var(--bg);color:var(--text)}html{scroll-padding-block:var(--spacing-4) calc(var(--navigation-reserved) + 1rem)}body{min-block-size:100vh;min-block-size:100dvh;font-size:var(--typography-body);line-height:var(--typography-lineHeight)}button,input,select,textarea{font:inherit;font-family:var(--app-font,var(--font-default))}h1,h2,p{overflow-wrap:anywhere}h1{font-size:var(--typography-heading);line-height:1.45}h2{font-size:var(--typography-subheading);line-height:1.5}.hint,small{color:var(--muted);font-size:var(--typography-caption)}a{color:var(--primary);text-underline-offset:.18em}.button-link,button{min-block-size:var(--touch-preferred);min-inline-size:var(--touch-minimum);padding:.625rem 1rem;border:1px solid transparent;border-radius:var(--radius-control);overflow-wrap:anywhere;white-space:normal}button{background:var(--primary);color:var(--on-primary);cursor:pointer}button:hover{background:var(--primary-dark)}[aria-disabled=true],button:disabled{cursor:not-allowed;opacity:.6}[tabindex],a,button,input,select,summary,textarea{outline-offset:3px;scroll-margin-block:1rem calc(var(--navigation-reserved) + 1rem)}:focus-visible{outline:3px solid var(--focus)}.secondary,.ui-button[data-variant=secondary]{background:var(--primary-soft);color:var(--primary);border-color:var(--border)}.secondary:hover,.ui-button[data-variant=secondary]:hover{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.ui-button[data-variant=danger]{background:var(--danger);color:var(--on-primary)}.ui-button[aria-busy=true]{cursor:progress}.ui-button[aria-busy=true]:before{content:"";display:inline-block;inline-size:.8em;block-size:.8em;-webkit-margin-end:.5em;margin-inline-end:.5em;border:2px solid;border-inline-end-color:transparent;border-radius:50%;animation:ui-spin .8s linear infinite}input,select,textarea{inline-size:100%;min-inline-size:0;min-block-size:var(--touch-preferred);padding:.625rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-control)}textarea{resize:vertical}input[type=checkbox],input[type=radio]{inline-size:1.25rem;min-block-size:1.25rem;block-size:1.25rem;accent-color:var(--primary)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger);border-width:2px}input:disabled,select:disabled,textarea:disabled{background:var(--bg)}.ui-field,label{display:grid;min-inline-size:0;grid-gap:.375rem;gap:.375rem;font-weight:700}.ui-field small{font-weight:400}.ui-bidi{unicode-bidi:-webkit-isolate;unicode-bidi:isolate}.ui-numeric{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.stack,.ui-stack{display:grid;grid-gap:var(--spacing-4);gap:var(--spacing-4);min-inline-size:0}.form-grid,.ui-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--spacing-4);gap:var(--spacing-4)}.form-grid>button,.form-grid>h2,.form-grid>p{grid-column:1/-1}.card,.state{min-inline-size:0;padding:var(--spacing-4);border:1px solid var(--border);border-radius:var(--radius-surface);background:var(--surface);box-shadow:none}.card h2{-webkit-margin-before:0;margin-block-start:0}.state{display:grid;grid-gap:var(--spacing-2);gap:var(--spacing-2);text-align:center}.state p{margin:0;color:var(--muted)}.state-error{border-color:var(--danger)}.state-success{border-color:var(--success)}.state-unsupported{border-style:dashed}.inline-notice,.notice,.offline-banner{padding:var(--spacing-3);border:1px solid transparent;-webkit-border-start:3px solid var(--warning);border-inline-start:3px solid var(--warning);border-radius:var(--radius-small);background:var(--warning-soft);color:var(--warning);overflow-wrap:anywhere}.inline-notice[data-tone=success]{color:var(--success);background:var(--success-soft);border-inline-start-color:var(--success)}.inline-notice[data-tone=error]{color:var(--danger);background:var(--danger-soft);border-inline-start-color:var(--danger)}.inline-notice[data-tone=information]{color:var(--information);background:var(--information-soft);border-inline-start-color:var(--information)}.error,.offline{color:var(--danger)}.online{color:var(--success)}.offline-banner{margin-block:var(--spacing-3)}.center,.login-page{min-block-size:100vh;min-block-size:100dvh;display:grid;align-items:center;justify-items:center;padding:max(var(--spacing-4),var(--safe-top)) max(var(--page-gutter),var(--safe-right)) max(var(--spacing-4),var(--safe-bottom)) max(var(--page-gutter),var(--safe-left))}.login-card{inline-size:min(100%,26.25rem);min-inline-size:0;display:grid;grid-gap:var(--spacing-4);gap:var(--spacing-4);padding:clamp(1rem,4vw,2rem);border:1px solid var(--border);border-radius:var(--radius-surface);background:var(--surface);box-shadow:var(--shadow-surface)}.login-card h1,.login-card>p{margin:0;text-align:center}.login-card a{display:inline-flex;align-items:center;min-block-size:var(--touch-minimum)}.brand-logo{display:block;object-fit:contain;aspect-ratio:1;block-size:auto}.brand-logo--auth{margin-inline:auto;inline-size:6rem;max-inline-size:100%}.brand-logo--compact{inline-size:3rem}.app-shell{display:block;min-block-size:100dvh}.app-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-3);padding:max(.625rem,var(--safe-top)) max(var(--page-gutter),var(--safe-right)) .625rem max(var(--page-gutter),var(--safe-left));-webkit-border-after:1px solid var(--border);border-block-end:1px solid var(--border);background:var(--surface)}.app-header .brand{grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:var(--spacing-2);gap:var(--spacing-2);flex:1 1;color:var(--primary);font-weight:800;text-decoration:none;overflow-wrap:anywhere}.app-header .brand,.app-header .brand-text{display:grid;min-inline-size:0}.app-header .brand small{font-weight:400}.app-header .offline,.app-header .online{font-size:var(--typography-caption)}.desktop-nav{display:none}.app-shell>main{inline-size:100%;max-inline-size:var(--layout-content);min-inline-size:0;margin-inline:auto;padding:var(--page-gutter) max(var(--page-gutter),var(--safe-right)) calc(var(--navigation-reserved) + var(--spacing-6)) max(var(--page-gutter),var(--safe-left))}.compact-context{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-2);min-inline-size:0;padding:var(--spacing-3);-webkit-margin-after:var(--spacing-3);margin-block-end:var(--spacing-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-control)}.compact-context>span{flex:1 1 100%;min-inline-size:0;font-size:var(--typography-caption);font-weight:700;overflow-wrap:anywhere}.compact-context b{color:var(--muted);padding-inline:.2em}.compact-change{display:inline-flex;align-items:center;flex:0 1 auto;color:var(--primary);border:1px solid var(--border);text-decoration:none}.quick-class-switch{display:grid;flex:1 1 8rem;grid-gap:.25rem;gap:.25rem;min-inline-size:0;font-size:var(--typography-caption)}.quick-class-switch select{max-inline-size:100%}.page-heading,.workflow-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-3);-webkit-margin-after:var(--spacing-3);margin-block-end:var(--spacing-3)}.page-heading h1,.workflow-header h1{margin:0;flex:1 1 10rem;font-size:var(--typography-heading)}.workflow-header a{display:inline-flex;align-items:center;justify-content:center;min-block-size:var(--touch-preferred);padding-inline:var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius-control);text-decoration:none}.bottom-nav{position:fixed;inset-block-end:0;inset-inline:0;z-index:var(--layer-navigation);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-block-size:var(--navigation-reserved);padding:.25rem max(.25rem,var(--safe-right)) calc(.25rem + var(--safe-bottom)) max(.25rem,var(--safe-left));background:var(--surface);-webkit-border-before:1px solid var(--border);border-block-start:1px solid var(--border);box-shadow:var(--shadow-navigation)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-inline-size:0;min-block-size:3.5rem;padding:.25rem;gap:.125rem;text-align:center;font-size:.75rem;line-height:1.4;color:var(--muted);text-decoration:none;-webkit-border-before:3px solid transparent;border-block-start:3px solid transparent;border-radius:var(--radius-small);overflow-wrap:anywhere}.bottom-nav a>span[aria-hidden]{font-size:1.125rem;line-height:1.1}.bottom-nav a[aria-current=page]{color:var(--primary);background:var(--primary-soft);border-block-start-color:var(--primary);font-weight:800}.sticky-action{position:-webkit-sticky;position:sticky;inset-block-end:calc(var(--navigation-reserved) + var(--spacing-2));z-index:var(--layer-sticky);inline-size:100%;box-shadow:var(--shadow-surface)}.guided-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-2);padding-block:var(--spacing-2);background:var(--surface)}.guided-actions button{flex:1 1}.bulk-student-list,.responsive-list{display:grid;grid-gap:var(--spacing-3);gap:var(--spacing-3)}.bulk-student-row{display:grid;grid-template-columns:1.5rem minmax(0,1fr);grid-gap:var(--spacing-2);gap:var(--spacing-2);align-items:end;padding:var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius-control)}.bulk-student-row>.ui-field,.bulk-student-row>button{grid-column:2}.entity-list{list-style:none;padding:0;margin:0;min-inline-size:0}.entity-list>li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-2);min-inline-size:0;padding-block:var(--spacing-3);-webkit-border-after:1px solid var(--border);border-block-end:1px solid var(--border)}.entity-list>li>strong{flex:1 1 100%;min-inline-size:0;overflow-wrap:anywhere}.entity-list .button-link{display:inline-flex;align-items:center;border-color:var(--border);text-decoration:none}.ui-choice[aria-pressed=false]{background:var(--primary-soft);color:var(--text)}.ui-choice[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border:2px solid var(--primary);font-weight:800;text-decoration:underline;text-underline-offset:.3em}progress{inline-size:100%;block-size:.5rem;accent-color:var(--primary)}.responsive-data{max-inline-size:100%;overflow-x:auto;overscroll-behavior-inline:contain}dialog{max-inline-size:min(calc(100% - 2rem),var(--layout-form));max-block-size:calc(100dvh - 2rem);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-surface);background:var(--surface);color:var(--text);padding:var(--spacing-5)}dialog::-webkit-backdrop{background:rgb(0 0 0/35%)}dialog::backdrop{background:rgb(0 0 0/35%)}@keyframes ui-spin{to{transform:rotate(1turn)}}@media (min-width:480px){.bulk-student-row{grid-template-columns:1.5rem minmax(0,1fr) minmax(0,1fr) auto}.bulk-student-row>.ui-field,.bulk-student-row>button{grid-column:auto}}@media (max-width:479px){.form-grid,.ui-grid{grid-template-columns:minmax(0,1fr)}}@media (min-width:768px){:root{--page-gutter:var(--layout-tabletGutter)}.bottom-nav{max-inline-size:var(--layout-navigation);margin-inline:auto;border-inline:1px solid var(--border);border-start-start-radius:var(--radius-surface);border-start-end-radius:var(--radius-surface)}.entity-list>li>strong{flex:1 1 12rem}}@media (min-width:1024px){:root{--page-gutter:var(--layout-desktopGutter)}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media print{.bottom-nav{display:none!important}.app-shell>main{padding:0}}.experience-entry{margin-block:1rem}.experience-entry h2{font-size:1.3rem}.experience-entry form{margin-top:1.5rem}.experience-feedback-trigger{position:fixed;inset-inline-end:12px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:40;padding:10px 16px;border-radius:24px;box-shadow:0 2px 12px #163b3620;font-size:.85rem;min-height:44px}.experience-dialog{max-width:32rem;width:calc(100% - 32px);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid var(--border);border-radius:18px;padding:24px;background:var(--surface,#fff);color:var(--text)}.experience-dialog::-webkit-backdrop{background:#102d3566}.experience-dialog::backdrop{background:#102d3566}.experience-dialog label{display:block;margin-block:16px}.experience-dialog select{display:block;width:100%;min-height:44px;margin-top:8px}.experience-dialog .experience-check{display:flex;gap:10px;align-items:flex-start;line-height:1.8}.experience-check input{width:20px;height:20px;flex-shrink:0;margin-top:5px}.experience-dialog .ui-button{-webkit-margin-end:8px;margin-inline-end:8px;margin-block:8px}.experience-lease{background:#fff4d9;border-top:1px solid #d2b26b;color:#624600;padding:12px 20px;font-size:.85rem;text-align:center}.experience-dialog textarea,textarea[readonly]{width:100%;max-width:100%;font:inherit;overflow:auto}@media print{.experience-dialog,.experience-feedback-trigger,.experience-lease{display:none!important}}@media(max-height:500px){.experience-dialog{padding:16px;max-height:calc(100dvh - 16px)}}