*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.mb-3{margin-bottom:.75rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.w-full{width:100%}.shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.text-center{text-align:center}.text-right{text-align:right}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--bg:#f3f6fc;--surface:#fff;--surface-soft:#f8faff;--line:#e4e9f4;--text:#101a38;--muted:#6b7695;--primary:#3157d7;--primary-2:#6f8cf4;--primary-soft:#eaf0ff;--success:#168a63;--danger:#cf3e4f;--warning:#bd7b18;--shadow:0 16px 40px rgba(44,70,145,.12);--shadow-soft:0 8px 22px rgba(44,70,145,.08)}*{box-sizing:border-box}html{direction:rtl;background:var(--bg)}body{margin:0;min-height:100vh;font-family:Tajawal,Segoe UI,Tahoma,Arial,sans-serif;background:radial-gradient(circle at 88% -10%,rgba(111,140,244,.18),transparent 32rem),linear-gradient(180deg,#f9fbff 0,var(--bg) 46%,#eef3fb 100%);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding-bottom:94px}.top-strip{width:min(1120px,calc(100% - 24px));margin:12px auto 0;min-height:64px;padding:10px 12px 10px 16px;justify-content:space-between;gap:12px;background:hsla(0,0%,100%,.86);backdrop-filter:blur(16px);border:1px solid rgba(219,226,242,.9);border-radius:22px;box-shadow:var(--shadow-soft);position:relative;z-index:20}.brand-lockup,.top-strip{display:flex;align-items:center}.brand-lockup{gap:10px;min-width:0}.brand-lockup small,.brand-lockup strong{display:block}.brand-lockup strong{font-size:.93rem;font-weight:800}.brand-lockup small{color:var(--muted);font-size:.76rem;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.brand-mark{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:800;background:linear-gradient(145deg,var(--primary-2),var(--primary));box-shadow:0 10px 20px rgba(49,87,215,.28)}.ghost-button{border:1px solid var(--line);background:#fff;color:var(--muted);padding:9px 13px;border-radius:12px;font-weight:700;font-size:.82rem}.ghost-button:hover{color:var(--primary);border-color:#cbd7fa;background:#f8faff}.page-wrap{width:min(1080px,calc(100% - 28px));margin:18px auto 0}.hero-panel{position:relative;overflow:hidden;padding:34px 30px;border-radius:30px;color:#fff;background:linear-gradient(135deg,#7894f5,#4266dd 44%,#2646bb);box-shadow:0 22px 45px rgba(49,87,215,.24)}.hero-panel:after{content:"";position:absolute;inset:auto -70px -100px auto;width:280px;height:280px;border-radius:50%;border:46px solid hsla(0,0%,100%,.08)}.compact-hero{padding-block:28px}.hero-panel h1{margin:4px 0 8px;font-size:clamp(1.55rem,4vw,2.35rem);line-height:1.2;font-weight:800;position:relative;z-index:1}.hero-panel p{margin:0;color:hsla(0,0%,100%,.86);max-width:700px}.eyebrow,.hero-panel p{position:relative;z-index:1}.eyebrow{display:inline-flex;color:#e8edff;font-weight:800;font-size:.76rem;letter-spacing:.02em}.eyebrow.dark{color:var(--primary)}.card{background:hsla(0,0%,100%,.96);border:1px solid rgba(226,232,244,.95);border-radius:22px;padding:20px;box-shadow:var(--shadow-soft)}.info-panel{margin-top:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.section-heading h2{margin:2px 0 0;font-size:1.16rem;font-weight:800}.muted-text{line-height:1.85}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:-18px;padding-inline:14px;position:relative;z-index:3}.admin-stats{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:18px;padding:0}.stat-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow-soft)}.stat-label{display:block;color:var(--muted);font-weight:700;font-size:.8rem}.stat-number{display:block;margin-top:5px;font-size:1.8rem;font-weight:800;color:var(--text)}.stat-note{display:block;margin-top:2px;color:var(--muted);font-size:.75rem}.dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:18px}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.quick-card{min-height:126px;border-radius:20px;padding:17px;background:linear-gradient(180deg,#fff,#f8faff);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 8px 20px rgba(44,70,145,.07);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.quick-card:hover{transform:translateY(-2px);border-color:#cad7fb;box-shadow:0 14px 28px rgba(44,70,145,.12)}.quick-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-weight:900;font-size:1.1rem}.quick-card strong{font-size:.95rem}.quick-card small{color:var(--muted);line-height:1.5}.progress-track{width:100%;height:9px;margin-top:12px;overflow:hidden;border-radius:99px;background:#e9edf7}.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary-2),var(--primary));transition:width .35s ease}.list{display:grid;gap:10px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.list-row-main{min-width:0}.list-row strong{display:block;font-size:.9rem}.list-row small{color:var(--muted);font-size:.77rem}.badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:800;background:var(--primary-soft);color:var(--primary)}.badge.success{background:#e8f7f1;color:var(--success)}.badge.warning{background:#fff5df;color:var(--warning)}.form-page{width:min(760px,calc(100% - 28px));margin:18px auto 0}.form-stack{display:grid;gap:14px;margin-top:18px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field label{display:block;margin-bottom:7px;font-size:.82rem;font-weight:800;color:#364261}.input{width:100%;border:1.5px solid var(--line);border-radius:15px;padding:12px 13px;background:#fbfcff;color:var(--text);outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.input:focus{border-color:#8ca2ef;background:#fff;box-shadow:0 0 0 4px rgba(79,110,223,.09)}textarea.input{resize:vertical;min-height:100px}.btn-primary{border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 18px;border-radius:15px;color:#fff;font-weight:800;background:linear-gradient(135deg,var(--primary-2),var(--primary));box-shadow:0 13px 24px rgba(49,87,215,.24);transition:transform .2s ease,box-shadow .2s ease}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 16px 28px rgba(49,87,215,.3)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-secondary{border:1px solid var(--line);background:#fff;color:var(--text);min-height:44px;padding:10px 14px;border-radius:14px;font-weight:800}.option-grid{display:flex;flex-wrap:wrap;gap:8px}.option-button{border:1px solid var(--line);background:#f8faff;color:#65718f;padding:9px 12px;border-radius:13px;font-size:.78rem;font-weight:800}.option-button.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--primary-2),var(--primary));box-shadow:0 8px 16px rgba(49,87,215,.2)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 10px;background:var(--primary-soft);color:var(--primary);font-size:.76rem;font-weight:800}.chip button{border:0;background:transparent;color:inherit;padding:0}.notice{padding:12px 14px;border-radius:14px;font-size:.82rem;line-height:1.65}.notice.error{background:#fff0f2;color:#a92f40;border:1px solid #ffd7dd}.notice.success{background:#ebf9f3;color:#126c50;border:1px solid #ccefe1}.notice.info{background:#eef3ff;color:#3854aa;border:1px solid #d8e2ff}.notice.warning{background:#fff7e6;color:#8a5a00;border:1px solid #f5dca6;font-weight:700}.empty-state{text-align:center;padding:34px 18px;color:var(--muted)}.empty-state strong{display:block;color:var(--text);margin-bottom:5px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:26px 16px}.auth-card{width:min(430px,100%);padding:0;overflow:hidden;border-radius:28px;background:#fff;border:1px solid var(--line);box-shadow:0 26px 60px rgba(39,65,136,.16)}.auth-cover{padding:28px 26px 24px;color:#fff;background:linear-gradient(140deg,#7894f5,#3157d7);position:relative;overflow:hidden}.auth-cover:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;border:32px solid hsla(0,0%,100%,.09);left:-55px;bottom:-95px}.auth-cover h1{margin:8px 0 4px;font-size:1.55rem;font-weight:800}.auth-cover p{margin:0;color:hsla(0,0%,100%,.84);font-size:.86rem;line-height:1.7}.auth-body{padding:24px;display:grid;gap:15px}.auth-footer{text-align:center;color:var(--muted);font-size:.82rem}.auth-footer a{color:var(--primary);font-weight:800}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.page-title-row h1{margin:0;font-size:1.45rem;font-weight:800}.page-title-row p{margin:4px 0 0;color:var(--muted);font-size:.85rem}.bottom-nav{position:fixed;z-index:40;bottom:14px;left:50%;transform:translateX(-50%);width:min(620px,calc(100% - 20px));display:grid;grid-template-columns:repeat(5,1fr);padding:7px;border:1px solid rgba(214,222,239,.95);border-radius:22px;background:hsla(0,0%,100%,.94);backdrop-filter:blur(18px);box-shadow:0 18px 45px rgba(39,65,136,.2)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;border-radius:15px;padding:7px 3px;color:var(--muted);font-size:.64rem;font-weight:800}.bottom-nav-item:hover{color:var(--primary);background:#f3f6ff}.bottom-nav-icon{width:24px;height:24px;display:grid;place-items:center;font-size:1rem;color:var(--primary);font-weight:900}.timeline,.timeline-row{display:grid;gap:12px}.timeline-row{grid-template-columns:90px 1fr;align-items:start}.timeline-time{color:var(--primary);font-weight:800;font-size:.8rem;padding-top:11px}.timeline-card{padding:13px 14px;border-radius:16px;border:1px solid var(--line);background:#fff}.timeline-card strong{display:block}.timeline-card small{color:var(--muted)}@media (max-width:860px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media (max-width:620px){.top-strip{width:calc(100% - 16px);margin-top:8px;border-radius:18px}.form-page,.page-wrap{width:calc(100% - 20px);margin-top:12px}.hero-panel{border-radius:24px;padding:26px 20px}.stats-grid{padding-inline:5px;gap:8px}.stat-card{padding:14px;border-radius:17px}.stat-number{font-size:1.45rem}.field-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.quick-card{min-height:116px;padding:14px}.auth-shell{padding:12px}.auth-card{border-radius:24px}.bottom-nav{bottom:8px}.timeline-row{grid-template-columns:70px 1fr}}.status-big{display:block;margin-top:8px;font-size:1.12rem;font-weight:900;color:var(--text)}.status-big.success{color:var(--success)}.status-big.warning{color:var(--warning)}.status-big.danger{color:var(--danger)}.stat-link{display:inline-flex;margin-top:10px;color:var(--primary);font-size:.78rem;font-weight:800}.attention-banner{margin-top:16px;padding:15px 18px;border-radius:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #f1d9a9;background:#fff9ec;color:#805a12;box-shadow:var(--shadow-soft)}.attention-banner strong{font-size:.92rem}.attention-banner span{color:inherit;opacity:.8;font-size:.8rem;flex:1;min-width:240px}.attention-banner.warning{border-color:#f1d9a9;background:#fff9ec;color:#805a12}.attention-banner.danger{border-color:#f3cbd0;background:#fff3f5;color:#a52f40}.admin-alert .badge{margin-inline-start:auto}.admin-nav{width:min(1080px,calc(100% - 28px));margin:12px auto 0;display:flex;flex-wrap:wrap}.admin-nav a{padding:9px 13px;border-radius:12px;border:1px solid var(--line);background:#fff;color:#4d5a7b;font-size:.8rem;font-weight:800;box-shadow:0 4px 12px rgba(44,70,145,.05)}.admin-nav a:hover{color:var(--primary);border-color:#cbd7fa;background:#f8faff}.admin-hero{background:linear-gradient(135deg,#506fd8,#2949ae 56%,#183480)}.admin-stats-6{grid-template-columns:repeat(6,minmax(0,1fr))}.danger-text{color:var(--danger)!important}.warning-text{color:var(--warning)!important}.admin-table-wrap,.report-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:16px}.admin-table,.report-table{width:100%;border-collapse:collapse;min-width:800px;background:#fff}.admin-table td,.admin-table th,.report-table td,.report-table th{padding:11px 12px;text-align:right;border-bottom:1px solid var(--line);vertical-align:top;font-size:.78rem}.admin-table th,.report-table th{background:#f6f8fd;color:#52607f;font-weight:900;position:sticky;top:0;z-index:1}.admin-table td strong{display:block}.admin-table td small{display:block;margin-top:2px;color:var(--muted)}.admin-table tbody tr:last-child td,.report-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr:hover{background:#fbfcff}.row-danger td{background:#fff7f8}.row-warning td{background:#fffbf2}.table-link{color:var(--primary);font-weight:900;white-space:nowrap}.badge.danger{background:#ffedf0;color:var(--danger)}.table-empty{text-align:center!important;padding:28px!important;color:var(--muted)}.report-page{padding-bottom:40px}.report-toolbar{margin-top:16px}.month-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.month-form .field{min-width:190px}.printable-report{margin-top:16px;padding:30px}.report-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:18px;border-bottom:2px solid #e5eaf5}.report-header h1{margin:4px 0;font-size:1.55rem}.report-header p{margin:0;color:var(--muted)}.report-kicker{color:var(--primary);font-weight:900;font-size:.76rem}.report-status-box{min-width:130px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:#fafbff}.report-status-box>span{display:block;color:var(--muted);font-size:.72rem;margin-bottom:7px}.report-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.report-meta-grid>div{padding:12px 13px;border-radius:14px;border:1px solid var(--line);background:#fafbff}.report-meta-grid span,.report-summary-grid span{display:block;color:var(--muted);font-size:.7rem;margin-bottom:4px}.report-meta-grid strong{font-size:.84rem}.report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}.report-summary-grid>div{padding:14px;border-radius:15px;background:linear-gradient(180deg,#f8faff,#fff);border:1px solid var(--line)}.report-summary-grid strong{display:block;font-size:1.35rem;color:var(--primary)}.report-table{min-width:1050px}.report-table td{line-height:1.55}.report-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:50px;margin-top:34px;padding-top:12px}.report-signatures span{color:#56627f;font-size:.8rem;font-weight:800}.signature-line{height:42px;border-bottom:1px solid #8d96ac}@media (max-width:980px){.admin-stats-6,.teacher-stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.admin-stats-6,.report-meta-grid,.report-summary-grid,.teacher-stats-3{grid-template-columns:1fr 1fr}.printable-report{padding:18px}.report-header{flex-direction:column}}@media (max-width:480px){.admin-stats-6,.report-meta-grid,.report-summary-grid,.teacher-stats-3{grid-template-columns:1fr}}@media print{@page{size:A4 portrait;margin:10mm}body,html{background:#fff!important}body{color:#111827;font-family:Segoe UI,Tahoma,Arial,sans-serif}.admin-nav,.bottom-nav,.no-print,.top-strip{display:none!important}.app-shell{padding:0!important}.page-wrap{width:100%!important;max-width:none!important;margin:0!important}.printable-report{margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important}.report-table-wrap{overflow:visible!important;border-color:#cbd5e1!important}.report-table{min-width:0!important;font-size:9pt}.report-table td,.report-table th{padding:5px 6px!important;font-size:8.5pt!important}.report-table th{position:static!important;background:#f1f5f9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-meta-grid>div,.report-status-box,.report-summary-grid>div{background:#fff!important;box-shadow:none!important}.badge{border:1px solid #cbd5e1;color:#111827!important}.badge,.row-danger td,.row-warning td{background:#fff!important}a{text-decoration:none!important}}.teacher-hours-admin{margin-bottom:16px}.hours-editor{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--line);background:#fbfcff;border-radius:16px}.hours-editor-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.hours-editor-copy strong{color:var(--text);font-size:.92rem}.hours-editor-copy span{color:var(--muted);font-size:.77rem;line-height:1.65}.hours-editor-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hours-input{width:74px;min-height:40px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text);font-weight:900;font-size:1rem;text-align:center;padding:7px 8px;outline:none}.hours-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(49,87,215,.1)}.hours-unit{color:var(--muted);font-size:.72rem;white-space:nowrap}.hours-message{display:block;font-weight:800;font-size:.68rem}.hours-editor-compact{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:0;border:0;background:transparent;min-width:145px}.hours-editor-compact .hours-editor-controls{flex-wrap:nowrap;gap:5px}.hours-editor-compact .hours-input{width:54px;min-height:34px;padding:4px 6px;font-size:.84rem;border-radius:9px}.hours-editor-compact .hours-unit{font-size:.64rem}.hours-save-small{border:0;border-radius:9px;min-height:34px;padding:5px 9px;background:var(--primary);color:#fff;font-size:.68rem;font-weight:900;cursor:pointer}.hours-save-small:disabled{opacity:.55;cursor:not-allowed}.success-text{color:#15803d}@media (max-width:760px){.hours-editor{align-items:flex-start;flex-direction:column}}.portal-hero{background:linear-gradient(135deg,#6f8df0,#3d61db 52%,#2648aa)}.portal-sections-card{margin-top:16px}.portal-sections-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.portal-section{min-height:110px;padding:16px;border:1px solid #dfe6f6;border-radius:18px;background:linear-gradient(180deg,#fff,#f8faff);display:flex;gap:12px;align-items:flex-start;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.portal-section:hover{transform:translateY(-2px);border-color:#c8d5fb;box-shadow:0 12px 26px rgba(52,84,175,.1)}.portal-section-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#edf2ff,#dfe8ff);color:var(--primary);font-weight:900;font-size:1.05rem}.portal-section strong{display:block;color:var(--text);font-size:.88rem;margin-bottom:4px}.portal-section small{display:block;color:var(--muted);line-height:1.55;font-size:.72rem}.segmented-control{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;border:1px solid var(--line);border-radius:15px;background:#f4f7fd}.segmented-control button{border:0;border-radius:11px;padding:10px 8px;background:transparent;color:#6b7691;font-weight:800}.segmented-control button.active{background:#fff;color:var(--primary);box-shadow:0 5px 14px rgba(49,87,215,.12)}.session-time-grid{grid-template-columns:1.2fr 1fr 1fr}.student-picker{max-height:300px;overflow-y:auto;overscroll-behavior:contain}.selection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.select-tile{display:flex;align-items:center;gap:9px;text-align:right;border:1px solid var(--line);border-radius:14px;padding:11px 12px;background:#fbfcff;color:var(--text);transition:.18s ease}.select-tile:hover{border-color:#cbd7fa;background:#f6f8ff}.select-tile.active{border-color:#9fb3f4;background:#eef3ff;color:#284bb9;box-shadow:inset 0 0 0 1px rgba(49,87,215,.05)}.check-dot{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;border-radius:7px;border:1px solid #cfd8ed;background:#fff;color:#fff;font-size:.75rem;font-weight:900}.select-tile.active .check-dot{border-color:transparent;background:linear-gradient(135deg,var(--primary-2),var(--primary))}.section-note{margin:-2px 0 12px;color:var(--muted);font-size:.78rem;line-height:1.7}.input-with-suffix{position:relative}.input-with-suffix .input{padding-left:42px}.input-with-suffix>span{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:800}.sticky-save{position:sticky;bottom:88px;z-index:12}.compact-stack{gap:12px}.field-hint{display:block;margin-top:5px;color:var(--muted);font-size:.7rem;line-height:1.5}.file-input{padding:9px 12px}.timetable-document-card{margin-top:16px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:24px}.document-hero-icon{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;color:#fff;font-size:1rem;font-weight:900;background:linear-gradient(135deg,#ef6a73,#c93648);box-shadow:0 12px 25px rgba(199,54,72,.2)}.document-hero-copy h2{margin:4px 0 5px;font-size:1.15rem}.document-hero-copy p{margin:0;color:var(--muted);font-size:.8rem}.document-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.big-empty{padding:52px 20px}.row-actions{gap:6px;flex-wrap:wrap}.danger-button{border:0;cursor:pointer;background:#fff0f2!important;color:var(--danger)!important}.filter-link-row{margin:14px 0;display:flex;gap:8px;flex-wrap:wrap}.admin-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.admin-action-card{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-soft)}.admin-action-card>span{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--primary-soft);color:var(--primary);font-size:1.1rem;font-weight:900}.admin-action-card strong{display:block;color:var(--text);margin-bottom:3px}.admin-action-card small{display:block;color:var(--muted);font-size:.72rem;line-height:1.5}@media (max-width:900px){.portal-sections-grid,.selection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-action-grid{grid-template-columns:1fr}.timetable-document-card{grid-template-columns:auto 1fr}.document-actions{grid-column:1/-1;justify-content:stretch}.document-actions a{flex:1}}@media (max-width:620px){.portal-sections-grid{grid-template-columns:1fr 1fr;gap:8px}.portal-section{min-height:108px;padding:13px;flex-direction:column;gap:8px}.portal-section-icon{width:34px;height:34px;flex-basis:34px}.selection-grid{grid-template-columns:1fr 1fr;gap:7px}.select-tile{padding:9px;font-size:.78rem}.session-time-grid,.timetable-document-card{grid-template-columns:1fr}.timetable-document-card{text-align:center}.document-hero-icon{margin:auto}.document-actions{flex-direction:column}.document-actions a{width:100%}.sticky-save{bottom:82px}}@media (max-width:410px){.portal-sections-grid,.selection-grid{grid-template-columns:1fr}}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.mode-switch{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 13px;border-radius:12px;color:#fff;font-size:.78rem;font-weight:900;background:linear-gradient(135deg,var(--primary-2),var(--primary));box-shadow:0 8px 18px rgba(49,87,215,.18)}.mode-switch:hover{transform:translateY(-1px)}.auth-cover h1,.document-hero-copy h2,.hero-panel h1,.page-title-row h1,.report-header h1,.section-heading h2{text-wrap:balance}.hero-panel h1{margin:8px 0 12px;line-height:1.32}.hero-panel p{margin-top:0;line-height:1.9;font-size:.92rem}.section-heading{align-items:flex-start;margin-bottom:18px}.section-heading>div{display:flex;flex-direction:column;gap:5px;min-width:0}.section-heading h2{margin:0;line-height:1.45}.section-description{margin:2px 0 0;color:var(--muted);line-height:1.8;font-size:.8rem;max-width:760px}.page-title-row h1{line-height:1.4;margin-bottom:6px}.page-title-row p{line-height:1.8;margin-top:0}.card h2+.muted-text,.card h2+.section-note,.card>h1+p,.card>h2+p{margin-top:10px}.empty-state{line-height:1.9}.empty-state strong{margin-bottom:9px;line-height:1.5}.portal-section div{min-width:0}.portal-section strong{line-height:1.5;margin-bottom:7px}.portal-section small{line-height:1.75}.accounts-stack{display:grid;gap:16px;margin-top:18px}.accounts-stats{margin-top:18px;padding:0}.account-create-card{display:grid;gap:16px}.account-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.accounts-table{min-width:820px}.mini-select{min-height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px 9px;color:var(--text);font-weight:800}.compact-btn{min-height:34px;padding:6px 10px;font-size:.72rem}@media (max-width:760px){.top-strip{align-items:flex-start}.top-actions{max-width:52%}.ghost-button,.mode-switch{font-size:.7rem;padding:7px 9px}.account-fields{grid-template-columns:1fr}.section-heading{gap:10px}.section-heading .badge{margin-top:2px}}.admin-action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:900px){.admin-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.admin-action-grid{grid-template-columns:1fr}}.report-print-sheet{--report-navy:#0b356d;--report-teal:#14899a;--report-light:#eef8fa;--report-line:#9cb8cf;--report-ink:#16243a;max-width:980px;margin:18px auto 0;padding:28px 30px 24px;direction:rtl;color:var(--report-ink);background:#fff;border:1px solid #d7e0ea;border-radius:8px;box-shadow:0 16px 42px rgba(20,48,88,.1)}.report-portrait{max-width:840px}.report-landscape{max-width:1180px}.print-report-header{margin-bottom:18px}.print-report-brand{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:90px}.print-school-logo{width:94px;height:94px;-o-object-fit:contain;object-fit:contain;flex:0 0 auto}.print-brand-copy{margin-inline-start:auto;text-align:right;display:flex;flex-direction:column;gap:4px}.print-brand-copy strong{color:var(--report-navy);font-size:1.05rem;letter-spacing:.02em}.print-brand-copy span{color:#3e536c;font-size:.8rem;font-weight:800}.print-report-title{text-align:center;margin-top:8px}.print-report-title h1{margin:0;color:var(--report-navy);font-size:1.65rem;line-height:1.45}.print-report-title p{margin:6px 0 3px;color:var(--report-teal);font-weight:900;font-size:1rem}.print-report-title>span{color:#66768c;font-size:.78rem;font-weight:800}.print-header-rule{height:4px;margin-top:14px;background:linear-gradient(90deg,var(--report-teal) 0 33%,var(--report-navy) 33% 67%,var(--report-teal) 67% 100%);border-radius:999px}.print-info-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1.5px solid var(--report-line);border-radius:7px;overflow:hidden;margin:18px 0 12px}.print-info-box>div{display:grid;grid-template-columns:118px 1fr;gap:8px;align-items:center;padding:9px 11px;min-height:44px;border-bottom:1px solid #d8e4ed}.print-info-box>div:nth-child(odd){border-inline-end:1px solid #d8e4ed}.print-info-box>div:nth-last-child(-n+2){border-bottom:0}.print-info-box span{color:#53657c;font-size:.72rem;font-weight:800}.print-info-box strong{color:#172b45;font-size:.8rem;overflow-wrap:anywhere}.print-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 18px}.print-kpi-row>div{min-height:82px;border:1px solid #b8ccdc;border-radius:6px;overflow:hidden;text-align:center;background:#fff}.print-kpi-row span{display:block;padding:7px 6px;color:#fff;background:var(--report-navy);font-size:.7rem;font-weight:900}.print-kpi-row strong{display:inline-block;margin-top:9px;color:var(--report-navy);font-size:1.35rem;line-height:1}.print-kpi-row small{margin-inline-start:4px;color:#5e7088;font-size:.68rem;font-weight:700}.admin-print-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.print-status-line{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-4px 0 16px;padding:8px 12px;border:1px solid #cddce7;background:#f8fbfd;border-radius:6px;font-size:.76rem}.print-status-line span{color:#607086;font-weight:800}.print-status-line strong{color:var(--report-navy)}.print-status-line.missing strong{color:#a62f3d}.print-status-line.partial strong{color:#9a6800}.print-status-line.complete strong{color:#147a54}.print-table-section{margin-top:8px}.print-table-section h2{margin:0;padding:8px 12px;color:#fff;background:var(--report-navy);border-radius:6px 6px 0 0;text-align:center;font-size:.86rem}.report-print-sheet .report-table-wrap{border:1px solid var(--report-line);border-top:0;border-radius:0 0 6px 6px;overflow:auto}.report-print-sheet .report-table{min-width:0;table-layout:fixed}.report-print-sheet .report-table td,.report-print-sheet .report-table th{border-bottom:1px solid #cbd9e4;border-inline-start:1px solid #d5e1e9;padding:7px 6px;font-size:.68rem;vertical-align:middle;line-height:1.5}.report-print-sheet .report-table th{position:static;color:#173456;background:#e9f5f7;font-weight:900;text-align:center}.report-print-sheet .report-table td{text-align:center}.report-print-sheet .report-table td:nth-child(6),.report-print-sheet .report-table td:nth-child(8){text-align:right}.report-print-sheet .report-table tfoot td{color:#173456;background:#e9f5f7;font-weight:900}.print-detail-table th:first-child{width:8%}.print-detail-table th:nth-child(2),.print-detail-table th:nth-child(3){width:12%}.print-detail-table th:nth-child(4){width:8%}.print-detail-table th:nth-child(5){width:10%}.print-detail-table th:nth-child(6){width:21%}.print-detail-table th:nth-child(7){width:13%}.print-detail-table th:nth-child(8){width:16%}.print-notes-box{margin-top:16px;border:1px solid var(--report-line);border-radius:6px;overflow:hidden}.print-notes-box>span{display:block;width:-moz-max-content;width:max-content;min-width:140px;margin-inline-start:0;padding:6px 12px;color:#fff;background:var(--report-navy);font-size:.72rem;font-weight:900;text-align:center}.print-notes-box>div{height:70px;background:repeating-linear-gradient(180deg,#fff 0,#fff 23px,#d8e2ea 24px)}.print-notes-box.compact>div{height:48px}.print-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:80px;margin:20px 34px 8px}.print-signatures>div{text-align:center}.print-signatures span{color:#334b66;font-size:.74rem;font-weight:900}.print-signatures .signature-line{height:34px;border-bottom:1px solid #7d8ca0}.print-report-footer{margin-top:18px;padding-top:8px;border-top:3px solid var(--report-teal);color:#53677d;text-align:center;font-size:.62rem;font-weight:800;letter-spacing:.01em}@media (max-width:720px){.report-print-sheet{padding:18px 14px}.print-report-brand{min-height:76px}.print-school-logo{width:74px;height:74px}.print-report-title h1{font-size:1.25rem}.print-info-box{grid-template-columns:1fr}.print-info-box>div:nth-child(odd){border-inline-end:0}.print-info-box>div:nth-last-child(-n+2){border-bottom:1px solid #d8e4ed}.print-info-box>div:last-child{border-bottom:0}.admin-print-kpis,.print-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.print-signatures{gap:26px;margin-inline:4px}}@page portraitReport{size:A4 portrait;margin:10mm}@page landscapeReport{size:A4 portrait;margin:10mm}.report-landscape,.report-portrait{page:portraitReport}@media print{body,html{background:#fff!important}body{color:#172b45;font-family:Tahoma,Arial,sans-serif}.admin-nav,.bottom-nav,.no-print,.top-strip{display:none!important}.app-shell,.page-wrap{width:100%!important}.app-shell,.page-wrap,.report-print-sheet{max-width:none!important;margin:0!important;padding:0!important}.report-print-sheet{border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}.print-info-box,.print-kpi-row,.print-notes-box,.print-report-footer,.print-report-header,.print-signatures,.print-status-line{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.print-report-brand{min-height:24mm}.print-school-logo{width:24mm;height:24mm}.print-brand-copy strong{font-size:10pt}.print-brand-copy span{font-size:8pt}.print-report-title h1{font-size:18pt}.print-report-title p{font-size:10pt}.print-report-title>span{font-size:8pt}.print-header-rule{height:1.2mm;margin-top:3mm}.print-info-box{margin:4mm 0 3mm;grid-template-columns:repeat(2,minmax(0,1fr))!important}.print-info-box>div:nth-child(odd){border-inline-end:1px solid #d8e4ed!important}.print-info-box>div:nth-last-child(-n+2){border-bottom:0!important}.print-kpi-row{grid-template-columns:repeat(4,minmax(0,1fr))!important}.admin-print-kpis{grid-template-columns:repeat(6,minmax(0,1fr))!important}.print-signatures{gap:80px!important;margin-inline:34px!important}.print-info-box>div{min-height:9mm;padding:1.8mm 2.5mm;grid-template-columns:31mm 1fr}.print-info-box span{font-size:7.5pt}.print-info-box strong{font-size:8pt}.print-kpi-row{gap:2.5mm;margin:3mm 0 4mm}.print-kpi-row>div{min-height:18mm}.print-kpi-row span{padding:1.7mm 1mm;font-size:7pt}.print-kpi-row strong{margin-top:2.2mm;font-size:14pt}.print-kpi-row small{font-size:7pt}.print-table-section h2{padding:1.8mm 2mm;font-size:8pt}.report-print-sheet .report-table-wrap{overflow:visible!important}.report-print-sheet .report-table{width:100%!important;min-width:0!important}.report-print-sheet .report-table td,.report-print-sheet .report-table th{padding:1.3mm 1.1mm!important;font-size:6.8pt!important;line-height:1.35!important}.report-print-sheet .report-table tfoot td,.report-print-sheet .report-table th{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#e9f5f7!important}.print-kpi-row span,.print-notes-box>span,.print-table-section h2{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#0b356d!important;color:#fff!important}.print-header-rule{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-notes-box{margin-top:3.5mm}.print-notes-box>div{height:15mm}.print-notes-box.compact>div{height:10mm}.print-signatures{gap:24mm;margin:4mm 8mm 1mm}.print-signatures .signature-line{height:8mm}.print-report-footer{margin-top:4mm;padding-top:2mm;font-size:6pt}.badge,.row-danger td,.row-warning td{background:#fff!important;color:inherit!important}a{text-decoration:none!important}thead{display:table-header-group}tfoot{display:table-row-group}tr{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}}.report-print-sheet .print-report-brand{position:relative;justify-content:flex-start}.report-print-sheet .print-school-logo{position:absolute;left:50%;transform:translateX(-50%)}.report-print-sheet .print-brand-copy{margin:0;text-align:right}.row-pending td{background:#fffaf0}.pending-invites-card{margin-top:18px}.admin-summary-portrait .print-admin-summary-table th:first-child{width:4%}.admin-summary-portrait .print-admin-summary-table th:nth-child(2){width:19%}.admin-summary-portrait .print-admin-summary-table th:nth-child(3){width:22%}.admin-summary-portrait .print-admin-summary-table th:nth-child(4),.admin-summary-portrait .print-admin-summary-table th:nth-child(5){width:12%}.admin-summary-portrait .print-admin-summary-table th:nth-child(6),.admin-summary-portrait .print-admin-summary-table th:nth-child(7){width:8%}.admin-summary-portrait .print-admin-summary-table th:nth-child(8){width:15%}@media print{.admin-summary-portrait,.report-landscape,.report-portrait{page:portraitReport!important}.admin-summary-portrait .admin-print-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:2mm}.admin-summary-portrait .print-kpi-row>div{min-height:15mm}.admin-summary-portrait .print-kpi-row strong{font-size:12pt}.admin-summary-portrait .print-admin-summary-table td,.admin-summary-portrait .print-admin-summary-table th{padding:1.05mm .7mm!important;font-size:5.8pt!important;line-height:1.25!important;overflow-wrap:anywhere}.admin-summary-portrait .print-admin-summary-table td:nth-child(2),.admin-summary-portrait .print-admin-summary-table td:nth-child(3){text-align:right!important}}.timetable-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.timetable-zip-card{margin-top:16px}.timetable-upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.timetable-help-box{margin-top:12px;padding:13px 15px;border:1px dashed #c8d4f6;border-radius:16px;background:#f8faff;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.8rem}.timetable-help-box strong{color:#364366}.timetable-help-box code{direction:ltr;background:#fff;color:#274ab8;border:1px solid #dfe6fb;padding:5px 9px;border-radius:9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.timetable-help-box span{flex-basis:100%;line-height:1.7}.zip-preview-panel{margin-top:16px;border:1px solid #dce4fa;border-radius:20px;padding:16px;background:linear-gradient(180deg,#fbfcff,#f7f9ff)}.zip-preview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.zip-preview-stats>div{background:#fff;border:1px solid #e4e9f7;border-radius:15px;padding:12px;display:flex;flex-direction:column;gap:3px}.zip-preview-stats strong{font-size:1.45rem;color:#35415f}.zip-preview-stats span{color:var(--muted);font-size:.74rem}.zip-preview-stats .ok{border-color:#c8ebdb;background:#f7fdf9}.zip-preview-stats .ok strong{color:#21845d}.zip-preview-stats .warn{border-color:#f3dfb8;background:#fffcf5}.zip-preview-stats .warn strong{color:#b87b16}.preview-details{margin-top:10px;border:1px solid #e2e7f5;background:#fff;border-radius:14px;overflow:hidden}.preview-details summary{cursor:pointer;padding:11px 13px;font-weight:800;color:#4b5878}.preview-list{max-height:230px;overflow:auto;border-top:1px solid #edf0f8}.preview-list>div{display:flex;justify-content:space-between;gap:12px;padding:9px 13px;border-bottom:1px solid #f0f2f8}.preview-list>div:last-child{border-bottom:0}.preview-list strong{font-size:.78rem}.preview-list span{color:var(--muted);font-size:.72rem;text-align:left}.zip-commit-row{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;border-top:1px solid #e3e8f6}.zip-commit-row span{color:var(--muted);font-size:.78rem;line-height:1.7}.timetable-filter-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.timetable-filter-row .input{flex:1}.filter-check{display:flex;align-items:center;gap:7px;white-space:nowrap;color:#56617d;font-size:.78rem;font-weight:800}.filter-check input{accent-color:var(--primary)}.timetable-row-actions{min-width:190px}.upload-badge{cursor:pointer;border:0;font:inherit}.timetable-preview-card{margin-top:16px}.timetable-pdf-frame{width:100%;height:min(76vh,900px);min-height:620px;border:1px solid #dce3f5;border-radius:18px;background:#f3f5fb}@media (max-width:820px){.timetable-summary-grid,.timetable-upload-row{grid-template-columns:1fr}.zip-preview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-filter-row,.zip-commit-row{align-items:stretch;flex-direction:column}.filter-check{padding:0 2px}.timetable-pdf-frame{min-height:520px}}@media (max-width:520px){.zip-preview-stats{grid-template-columns:1fr 1fr}.preview-list>div{flex-direction:column;gap:3px}.preview-list span{text-align:right}.timetable-pdf-frame{min-height:430px;border-radius:14px}}.schedule-import-card{margin-top:16px}.schedule-upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.schedule-safety-note{margin-top:12px;display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #cfe9df;border-radius:15px;background:#f4fcf8;color:#246c53;font-size:.8rem}.schedule-safety-note strong{white-space:nowrap}.schedule-safety-note span{color:#4b796a;line-height:1.65}.schedule-file-chips{margin-top:12px}.schedule-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0}.schedule-review-card{margin-top:16px}.schedule-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schedule-review-box{border:1px solid var(--line);border-radius:17px;background:#fbfcff;overflow:hidden}.schedule-review-box.success{border-color:#ccecdf;background:#f8fdfb}.schedule-review-box.danger{border-color:#f2cfd5;background:#fff9fa}.schedule-review-box.info{border-color:#d8e2ff;background:#fafbff}.schedule-review-title{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(225,230,242,.85)}.schedule-review-title strong{font-size:.84rem}.schedule-review-title span{min-width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);font-weight:900;font-size:.75rem}.schedule-review-list{max-height:220px;overflow:auto}.schedule-review-list>div{display:flex;justify-content:space-between;gap:12px;padding:9px 13px;border-bottom:1px solid rgba(233,237,247,.9)}.schedule-review-list>div:last-child{border-bottom:0}.schedule-review-list strong{font-size:.77rem}.schedule-review-list span{color:var(--muted);font-size:.7rem;text-align:left}.schedule-review-empty{color:var(--success);font-weight:800;font-size:.77rem}.schedule-detail-stack{margin-top:12px}.schedule-days-stack{display:grid;gap:16px;margin-top:16px}.schedule-day-card{padding:18px}.school-grid-wrap{overflow:auto;border:1px solid var(--line);border-radius:17px;max-height:72vh}.school-grid{width:-moz-max-content;width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;background:#fff}.school-grid td,.school-grid th{width:150px;min-width:150px;padding:7px;border-left:1px solid #e8ecf6;border-bottom:1px solid #e8ecf6;vertical-align:top;text-align:right}.school-grid thead th{position:sticky;top:0;z-index:4;background:#f3f6fd;color:#465372;font-size:.73rem;font-weight:900;text-align:center}.school-grid .lesson-head{right:0;z-index:6;width:60px;min-width:60px}.school-grid .lesson-cell{position:sticky;right:0;z-index:3;width:60px;min-width:60px;background:#f8faff;color:var(--primary);font-size:.82rem;font-weight:900;text-align:center}.school-grid td.empty{background:#fbfcff}.school-grid td.occupied{background:#fff}.school-assignment{padding:7px 8px;border-radius:10px;background:#f6f8fe;border:1px solid #e7ebf7}.school-assignment+.school-assignment{margin-top:6px}.school-assignment-name{display:flex;align-items:center;justify-content:space-between;gap:5px}.school-assignment strong{font-size:.72rem;line-height:1.4}.school-assignment>span{display:block;margin-top:2px;color:var(--muted);font-size:.67rem;line-height:1.4}.mini-status{flex:none;display:inline-flex;border-radius:999px;padding:2px 5px;font-size:.56rem;font-weight:900;background:#edf2ff;color:#536fd0}.mini-status.approved-new{background:#e9f8f1;color:#187657}.mini-status.unknown{background:#fff0f2;color:#b33749}.mini-status.legacy-alias{background:#eef3ff;color:#4962bd}@media (max-width:1050px){.schedule-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.schedule-upload-row{grid-template-columns:1fr}.schedule-safety-note{align-items:flex-start;flex-direction:column;gap:4px}.schedule-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-review-grid{grid-template-columns:1fr}.school-grid td,.school-grid th{width:135px;min-width:135px}}.active-schedule-banner{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.active-schedule-banner h2{margin:4px 0}.day-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:16px 0}.day-toolbar>div{display:grid;gap:5px}.day-toolbar .input{min-width:190px}.today-lessons-list{display:grid;gap:10px}.today-lesson{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:13px;padding:13px;border:1px solid var(--line);border-radius:16px;background:#fbfcff}.today-lesson.changed{border-color:#d6def9;background:#f8f9ff}.today-lesson-number{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#edf2ff;color:var(--primary);font-weight:900;font-size:1.1rem}.today-lesson-copy{display:grid;gap:3px}.today-lesson-copy strong{font-size:.9rem}.today-lesson-copy small,.today-lesson-copy span{color:var(--muted);font-size:.74rem}.live-assignment.override,.school-assignment.override{border-color:#cfd9fa;background:#f5f7ff}.live-assignment.cancelled,.school-assignment.cancelled{opacity:.58;text-decoration:none;background:#f6f6f8}.live-assignment.needs_replacement,.school-assignment.needs_replacement{border-color:#f1c9ce;background:#fff6f7}.school-assignment small{display:block;color:var(--muted);font-size:.6rem;margin-top:3px}.admin-inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-inline-form .input{min-width:180px;flex:1}.danger-chip{background:#fff1f3;border-color:#f2cbd1;color:#a42b3e}.danger-chip button{border:0;background:transparent;color:inherit;font-weight:900;cursor:pointer}.lesson-checkboxes{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}.lesson-checkboxes label{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:12px;padding:7px 10px;background:#fafbff;font-size:.75rem;font-weight:800}.live-slot{display:grid;gap:6px}.live-assignment details{margin-top:5px}.live-assignment summary,.slot-add summary{cursor:pointer;color:var(--primary);font-size:.64rem;font-weight:900}.assignment-actions{display:grid;gap:5px;margin-top:6px}.assignment-actions button{border:1px solid #d9e0f2;background:#fff;border-radius:9px;padding:6px 7px;font-size:.62rem;font-weight:800;cursor:pointer}.input.compact{padding:6px 7px;font-size:.67rem;min-height:auto}.mini-danger-btn{border:1px solid #f0c7cd!important;background:#fff7f8!important;color:#ad3042!important;border-radius:9px;padding:6px 8px;font-size:.65rem;font-weight:900;cursor:pointer}.slot-add{padding:4px 6px;border-radius:9px;border:1px dashed #d8dff0;background:#fbfcff}.admin-live-grid td{min-height:90px}.attendance-list{display:grid;gap:8px;margin:15px 0}.attendance-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(350px,2fr) minmax(170px,1fr);gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}.attendance-row>strong{font-size:.82rem}.attendance-buttons{display:flex;gap:5px;flex-wrap:wrap}.attendance-status{border:1px solid #dce2f0;background:#fff;border-radius:9px;padding:6px 8px;font-size:.65rem;font-weight:800;cursor:pointer}.attendance-status.active{background:#eaf0ff;border-color:#b9c8f4;color:#284ea9}.attendance-note{font-size:.7rem!important}.textarea{min-height:90px;resize:vertical}.span-2{grid-column:span 2}.notes-timeline{display:grid;gap:8px;margin-top:14px}.note-item{display:grid;gap:4px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}.note-item strong{font-size:.8rem}.note-item span{font-size:.76rem;line-height:1.65}.note-item small{font-size:.65rem;color:var(--muted)}.homeroom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.homeroom-card{display:grid;gap:8px;border:1px solid var(--line);border-radius:16px;padding:13px;background:#fbfcff}.homeroom-card small{color:var(--muted);font-size:.68rem}.subject-groups-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,2fr);gap:16px;margin-top:16px}.group-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-picker{align-self:start;position:sticky;top:90px}.student-check-list,.teacher-check-list{display:grid;gap:5px;max-height:440px;overflow:auto;margin:10px 0;padding:4px}.student-check-list label,.teacher-check-list label{display:flex;gap:8px;align-items:center;padding:7px;border:1px solid #edf0f6;border-radius:10px;font-size:.72rem}.teacher-check-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:210px}.group-students{margin:10px 0}.row-actions{display:flex;align-items:center;gap:8px}.compact-btn{padding:7px 10px!important;font-size:.7rem!important}.wide-bottom-nav{overflow-x:auto;justify-content:flex-start}.wide-bottom-nav .bottom-nav-item{min-width:76px;flex:1}.muted-text{color:var(--muted);font-size:.75rem}@media(max-width:980px){.homeroom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-groups-layout{grid-template-columns:1fr}.student-picker{position:static}.attendance-row,.group-cards{grid-template-columns:1fr}.attendance-buttons{justify-content:flex-start}}@media(max-width:650px){.homeroom-grid{grid-template-columns:1fr}.today-lesson{grid-template-columns:44px 1fr}.today-lesson .btn-primary{grid-column:1/-1}.span-2{grid-column:auto}.teacher-check-list{grid-template-columns:1fr}.admin-inline-form{align-items:stretch;flex-direction:column}.admin-inline-form .input{width:100%}.active-schedule-banner{align-items:flex-start;flex-direction:column}}.auto-fill-row{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.auto-fill-row span{color:var(--muted);font-size:.72rem;line-height:1.6}@media(max-width:650px){.auto-fill-row{align-items:stretch;flex-direction:column}}.group-filter-label{display:grid;gap:6px;font-size:.72rem;font-weight:900;color:var(--text)}.group-transfer-toolbar,.subject-pair-savebar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}.group-transfer-toolbar>div:first-child,.subject-pair-savebar>div:first-child{display:grid;gap:3px}.group-transfer-toolbar small,.subject-pair-savebar small{font-size:.68rem;color:var(--muted)}.subject-pair-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.subject-pair-box{min-width:0}.subject-pair-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.subject-pair-head>div{display:grid;gap:4px}.subject-pair-head strong{font-size:1rem}.subject-pair-fields{margin-bottom:12px}.subject-pair-students{display:grid;gap:7px;max-height:560px;overflow:auto;padding:3px;overscroll-behavior:contain}.subject-pair-student{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid #e7ebf3;border-radius:12px;background:#fbfcff;cursor:pointer;transition:.15s ease}.subject-pair-student:hover{border-color:#c9d5f3;background:#f5f8ff;transform:translateY(-1px)}.subject-pair-student label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.78rem;font-weight:800;min-width:0}.student-move-arrow{font-size:1rem;color:var(--primary);font-weight:900}.subject-pair-savebar{position:sticky;bottom:78px;z-index:20;box-shadow:0 10px 35px rgba(28,45,86,.1)}.excused-mini-badge{display:inline-flex;margin-inline-start:7px;padding:2px 6px;border-radius:999px;background:#e8f7ef;color:#247348;font-size:.58rem;font-weight:900;vertical-align:middle}.teacher-stats-4{grid-template-columns:repeat(4,minmax(0,1fr))}.success-text{color:#268152}.homeroom-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.check-line{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:.75rem;font-weight:800}.homeroom-attendance-list{display:grid;gap:8px}.homeroom-attendance-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.8fr);align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}.homeroom-attendance-row.absence{border-color:#efd9dd;background:#fffafb}.attendance-excuse-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.attendance-excuse-actions .input{min-width:180px}.followup-list{display:grid;gap:12px}.followup-card{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fbfcff}.followup-card>.section-heading{margin-bottom:8px}.followup-history{margin-top:10px}.followup-history summary{cursor:pointer;color:var(--primary);font-size:.72rem;font-weight:900}.small-textarea{min-height:66px}.compact-notice{padding:8px 10px;margin:8px 0;font-size:.7rem}@media(max-width:980px){.homeroom-student-grid,.subject-pair-grid{grid-template-columns:1fr}.teacher-stats-4{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-pair-savebar{position:static}.homeroom-attendance-row{grid-template-columns:1fr}.attendance-excuse-actions{justify-content:flex-start}}@media(max-width:650px){.attendance-excuse-actions,.group-transfer-toolbar,.subject-pair-head,.subject-pair-savebar{align-items:stretch;flex-direction:column}.teacher-stats-4{grid-template-columns:1fr 1fr}.attendance-excuse-actions .input{min-width:0;width:100%}.subject-pair-students{max-height:none}}.student-profile-link{color:inherit;text-decoration:none;border-bottom:1px dashed #b8c4df}.student-profile-link:hover{color:var(--primary);border-bottom-color:var(--primary)}.print-only{display:none!important}.daily-schedule-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.daily-print-header{direction:rtl;text-align:right;margin:0 0 4mm;padding-bottom:3mm;border-bottom:1.2mm solid #244f8f}.daily-print-brand{display:flex;align-items:baseline;justify-content:space-between;gap:10mm}.daily-print-brand strong{font-size:11pt;color:#173f78;letter-spacing:.02em}.daily-print-brand span{font-size:8pt;color:#55657a;font-weight:800}.daily-print-title{text-align:center;margin-top:1.5mm}.daily-print-title h1{margin:0;color:#142f56;font-size:17pt;line-height:1.25}.daily-print-title>strong{display:block;margin-top:1mm;font-size:9pt;color:#34506f}.daily-print-meta{display:flex;justify-content:center;gap:6mm;flex-wrap:wrap;margin-top:1.4mm;color:#617188;font-size:6.7pt;font-weight:800}.daily-print-absences{display:flex;align-items:center;justify-content:center;gap:2mm;margin-top:2mm;padding:1.4mm 2mm;border:1px solid #e2b7bd;background:#fff8f8;border-radius:2mm;color:#7f2533;font-size:6.8pt}.daily-print-legend{align-items:center;justify-content:center;gap:5mm;flex-wrap:wrap;margin-top:2.3mm;padding-top:2mm;border-top:1px solid #d7dfeb;color:#43546b;font-size:6.5pt;font-weight:800}.daily-print-legend span{display:inline-flex;align-items:center;gap:1.2mm}.legend-dot{display:inline-block;width:3mm;height:3mm;border-radius:.8mm;border:1px solid #b9c4d6;background:#eef2f8}.legend-dot.override{background:#e8eeff;border-color:#9eb3ef}.legend-dot.replacement{background:#fff0f2;border-color:#e7aeb7}.legend-dot.cancelled{background:#eeeeef;border-color:#c8c8cc}.daily-print-change{font-weight:900!important;color:#425f91!important}@page dailySchedule{size:A4 landscape;margin:7mm}.daily-schedule-print-sheet{page:dailySchedule}@media print{.daily-schedule-page .print-only{display:block!important}.daily-schedule-page .daily-print-legend{display:flex!important}.daily-schedule-page .daily-schedule-print-sheet{page:dailySchedule;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}.daily-schedule-page .daily-print-grid-wrap{overflow:visible!important;max-height:none!important;border:1px solid #93a5bd!important;border-radius:0!important}.daily-schedule-page .daily-print-grid{width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important;border-spacing:0!important;background:#fff!important;direction:rtl}.daily-schedule-page .daily-print-grid thead{display:table-header-group}.daily-schedule-page .daily-print-grid tr{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.daily-schedule-page .daily-print-grid td,.daily-schedule-page .daily-print-grid th{position:static!important;width:auto!important;min-width:0!important;padding:1mm .65mm!important;border:1px solid #b7c3d2!important;vertical-align:top!important;text-align:right!important;font-size:5.3pt!important;line-height:1.15!important;overflow-wrap:anywhere!important;word-break:normal!important;background:#fff!important}.daily-schedule-page .daily-print-grid thead th{padding:1.5mm .55mm!important;text-align:center!important;background:#e8eef7!important;color:#173b69!important;font-size:5.7pt!important;font-weight:900!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-schedule-page .daily-print-grid .lesson-cell,.daily-schedule-page .daily-print-grid .lesson-head,.daily-schedule-page .daily-print-grid th:first-child{width:8mm!important;min-width:8mm!important;text-align:center!important;vertical-align:middle!important;background:#f2f5fa!important;color:#173f78!important;font-size:6.7pt!important;font-weight:900!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-schedule-page .daily-print-grid .live-slot{gap:.65mm!important}.daily-schedule-page .daily-print-grid .school-assignment{margin:0!important;padding:.75mm .65mm!important;border-radius:1.2mm!important;border:1px solid #d7deea!important;background:#f8f9fc!important;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-schedule-page .daily-print-grid .school-assignment+.school-assignment{margin-top:.65mm!important}.daily-schedule-page .daily-print-grid .school-assignment strong{display:block!important;font-size:5.45pt!important;line-height:1.15!important;color:#17283f!important}.daily-schedule-page .daily-print-grid .school-assignment>span{display:block!important;margin-top:.25mm!important;font-size:4.95pt!important;line-height:1.15!important;color:#4d5f75!important}.daily-schedule-page .daily-print-grid .school-assignment small{display:block!important;margin-top:.25mm!important;font-size:4.45pt!important;line-height:1.15!important;color:#637286!important}.daily-schedule-page .daily-print-grid .school-assignment.override{background:#eef3ff!important;border-color:#a9bbed!important}.daily-schedule-page .daily-print-grid .school-assignment.needs_replacement{background:#fff1f3!important;border-color:#e5aeb7!important}.daily-schedule-page .daily-print-grid .school-assignment.cancelled{opacity:1!important;background:#f0f0f1!important;border-color:#c8c8cc!important;color:#6d6d72!important}.daily-schedule-page .daily-print-grid .school-assignment.cancelled strong,.daily-schedule-page .daily-print-grid .school-assignment.cancelled>span{color:#74747a!important;text-decoration:line-through!important}.daily-schedule-page .daily-print-grid .daily-print-change{display:block!important;color:#34588d!important;font-size:4.3pt!important;font-weight:900!important;text-decoration:none!important}.daily-schedule-page .daily-print-header{display:block!important;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.daily-schedule-page .daily-print-absences{background:#fff8f8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-schedule-page .daily-print-legend{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.daily-schedule-page .legend-dot{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.pwa-install{display:grid;gap:7px;margin-top:2px}.pwa-install-button{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid #d8e1f6;background:#f6f8ff;color:#284da7;border-radius:13px;padding:10px 12px;font-family:inherit;font-size:.78rem;font-weight:900;cursor:pointer;transition:.15s ease}.pwa-install-button:hover{background:#eef2ff;border-color:#bdcbee;transform:translateY(-1px)}.pwa-install-icon{width:23px;height:23px;display:grid;place-items:center;border-radius:8px;background:#e4ebff;font-size:1rem;line-height:1}.pwa-install-hint{display:block;padding:8px 10px;border-radius:10px;background:#fffaf0;border:1px solid #f1dfb7;color:#77613b;font-size:.68rem;line-height:1.6;text-align:center}.pwa-install.compact{margin:0}.pwa-install-button.compact{width:auto;padding:7px 10px;font-size:.7rem}@media (max-width:620px){.pwa-install-button{min-height:44px;font-size:.8rem}}@media print{.pwa-install{display:none!important}}:root{--teacher-nav-height:72px;--teacher-nav-offset:8px;--teacher-safe-bottom:env(safe-area-inset-bottom,0px);--teacher-content-safe-space:calc(var(--teacher-nav-height) + var(--teacher-nav-offset) + var(--teacher-safe-bottom) + 38px)}html{min-height:100%}body{overflow-x:hidden}.auth-shell,body{min-height:100dvh}.teacher-nav-mobile{display:none}.bottom-nav-item.active{background:#eef3ff}.bottom-nav-item.active .bottom-nav-icon{background:#dfe8ff;border-radius:10px}.bottom-nav-more-backdrop,.bottom-nav-more-sheet{display:none}@media (max-width:620px){html{scroll-padding-bottom:var(--teacher-content-safe-space)}.app-shell{min-height:100dvh;padding-bottom:var(--teacher-content-safe-space)}.teacher-nav-desktop{display:none!important}.teacher-nav-mobile{display:grid;z-index:60;bottom:calc(var(--teacher-nav-offset) + var(--teacher-safe-bottom));width:calc(100% - 16px);height:var(--teacher-nav-height);grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;overflow:visible;padding:5px;border-radius:20px}.teacher-nav-mobile .bottom-nav-item{min-width:0;min-height:60px;border:0;background:transparent;justify-content:center;gap:1px;padding:5px 2px;color:var(--muted);font-size:.59rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-nav-mobile .bottom-nav-item>span:last-child{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;text-align:center}.teacher-nav-mobile .bottom-nav-item.active{color:var(--primary);background:#eef3ff}.teacher-nav-mobile .bottom-nav-icon{width:27px;height:27px;display:grid;place-items:center;color:var(--primary);font-size:.98rem;font-weight:900}.teacher-nav-mobile .bottom-nav-item.active .bottom-nav-icon{background:#dfe8ff;border-radius:10px}.bottom-nav-more-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit}.bottom-nav-more-button .bottom-nav-icon{letter-spacing:1px;font-size:.82rem}.bottom-nav-more-backdrop{display:block;position:fixed;inset:0;z-index:50;border:0;margin:0;padding:0;background:rgba(18,31,65,.22);backdrop-filter:blur(2px)}.bottom-nav-more-sheet{display:block;position:fixed;z-index:55;left:50%;transform:translateX(-50%);bottom:calc(var(--teacher-nav-height) + var(--teacher-nav-offset) + var(--teacher-safe-bottom) + 8px);width:calc(100% - 16px);max-width:430px;padding:14px;border:1px solid rgba(214,222,239,.98);border-radius:20px;background:hsla(0,0%,100%,.98);box-shadow:0 22px 55px rgba(27,48,105,.28);direction:rtl}.bottom-nav-more-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 11px;border-bottom:1px solid var(--line)}.bottom-nav-more-head small,.bottom-nav-more-head strong{display:block}.bottom-nav-more-head strong{font-size:.95rem}.bottom-nav-more-head small{margin-top:2px;color:var(--muted);font-size:.67rem}.bottom-nav-close{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;background:#f8faff;color:var(--muted);font-size:1.25rem;line-height:1}.bottom-nav-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:11px}.bottom-nav-more-link{min-height:54px;display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid var(--line);border-radius:14px;background:#fbfcff;color:#44506d;font-size:.76rem;font-weight:900}.bottom-nav-more-link.active{color:var(--primary);border-color:#c7d3f6;background:#eef3ff}.bottom-nav-more-icon{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:10px;background:#edf2ff;color:var(--primary);font-size:.95rem}.mobile-sticky-save,.sticky-save{position:sticky;bottom:calc(var(--teacher-nav-height) + var(--teacher-nav-offset) + var(--teacher-safe-bottom) + 8px);z-index:25;box-shadow:0 14px 30px rgba(49,87,215,.25)}.mobile-sticky-save{margin-top:10px}.school-grid-wrap{max-height:none}.form-page,.page-wrap{scroll-margin-bottom:var(--teacher-content-safe-space)}textarea.input{scroll-margin-bottom:calc(var(--teacher-content-safe-space) + 18px)}}@media (max-width:380px){.teacher-nav-mobile .bottom-nav-item{font-size:.54rem}.teacher-nav-mobile .bottom-nav-icon{width:25px;height:25px}.bottom-nav-more-grid{grid-template-columns:1fr}}@media print{.bottom-nav-more-backdrop,.bottom-nav-more-sheet,.teacher-nav-mobile{display:none!important}}.session-history-row{align-items:center}.session-history-side{gap:9px}.session-history-side,.session-row-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap}.session-row-actions{gap:7px}.session-action-error{width:100%;color:var(--danger);font-size:.68rem;font-weight:800;text-align:left}.session-fixed-date:disabled{opacity:1;color:var(--text);background:#f3f5fa;cursor:not-allowed}.session-edit-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px;border:1px solid rgba(220,227,242,.96);border-radius:17px;background:hsla(0,0%,100%,.96);box-shadow:0 12px 28px rgba(44,70,145,.12)}.session-edit-actions .btn-primary{flex:1}@media (min-width:621px){:root{--teacher-desktop-nav-clearance:108px}.app-shell{padding-bottom:132px}.teacher-nav-desktop{display:flex;grid-template-columns:none;align-items:stretch;width:min(820px,calc(100% - 24px));min-height:70px;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.teacher-nav-desktop .bottom-nav-item{flex:1 0 92px;min-width:92px;justify-content:center}.mobile-sticky-save,.sticky-save{position:sticky;bottom:var(--teacher-desktop-nav-clearance);z-index:45;box-shadow:0 14px 30px rgba(49,87,215,.22)}}@media (max-width:620px){.session-history-row{align-items:stretch;flex-direction:column}.session-history-side{justify-content:space-between;width:100%}.session-row-actions{justify-content:flex-start}.session-edit-actions{align-items:stretch;flex-direction:column-reverse;padding:8px}.session-edit-actions .btn-primary,.session-edit-actions .btn-secondary{width:100%}.session-action-error{text-align:right}}body.reneh-dragging{-moz-user-select:none;user-select:none;-webkit-user-select:none;cursor:grabbing}.daily-slot-card{display:grid;gap:4px;padding:6px 7px;border:1px solid #dbe3f5;border-radius:12px;background:#fbfcff;cursor:grab;touch-action:manipulation;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}.daily-slot-card:hover{border-color:#c3d0f0;box-shadow:var(--shadow-soft)}.daily-slot-card:active{cursor:grabbing}.daily-slot-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.daily-slot-head strong{font-size:.72rem;font-weight:900;color:var(--text);line-height:1.35}.daily-slot-body{display:grid;gap:5px}.daily-slot-body .school-assignment{background:#fff}.assignment-copy{display:grid;gap:2px}.slot-delete-btn{border:1px solid #f0c7cd;background:#fff7f8;color:#ad3042;border-radius:8px;width:22px;height:22px;line-height:1;font-size:.85rem;font-weight:900;display:grid;place-items:center;flex:0 0 auto;cursor:pointer}.slot-delete-btn:hover{background:#ffeef0}.daily-slot-pending{position:relative;display:grid;gap:2px;padding:6px 7px;border:1px dashed #e7b3bb;border-radius:12px;background:#fff6f7}.daily-slot-pending strong{font-size:.68rem;color:#a42b3e}.daily-slot-pending span{font-size:.63rem;color:var(--muted)}.daily-slot-pending .slot-delete-btn{position:absolute;inset-inline-start:6px;inset-block-start:6px}.daily-slot-empty{display:grid;place-items:center;min-height:42px;padding:6px;border-radius:12px;font-size:.64rem;font-weight:800;text-align:center}.daily-slot-empty.gap-neutral{border:1px dashed #e0e6f2;background:#fafbfe;color:var(--muted)}.daily-slot-empty.gap-warning{border:1px dashed #e8c58c;background:#fff8ec;color:var(--warning)}.live-slot.is-drag-source .daily-slot-card{opacity:.45;border-style:dashed}.live-slot.drop-ok{outline:2px dashed rgba(22,138,99,.45);outline-offset:2px;border-radius:13px}.live-slot.drop-blocked{outline:2px dashed rgba(207,62,79,.35);outline-offset:2px;border-radius:13px}.live-slot.drop-hover-ok{background:rgba(22,138,99,.12);outline-style:solid}.live-slot.drop-hover-blocked{background:rgba(207,62,79,.12);outline-style:solid;cursor:not-allowed}.daily-drag-ghost{position:fixed;top:0;inset-inline-start:0;z-index:120;pointer-events:none;display:grid;gap:2px;min-width:130px;max-width:230px;padding:8px 10px;border-radius:12px;border:1px solid #c3d0f0;background:hsla(0,0%,100%,.97);box-shadow:var(--shadow);transform:translate3d(-999px,-999px,0);margin-top:-18px;margin-inline-start:-60px}.daily-drag-ghost strong{font-size:.7rem;color:var(--primary)}.daily-drag-ghost span{font-size:.66rem;color:var(--muted);line-height:1.4}.day-summary{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-inline-end:34px}.day-summary-items{display:flex;flex-wrap:wrap;gap:6px}.day-summary-items em{font-style:normal;font-size:.72rem;font-weight:800;padding:3px 9px;border-radius:999px;background:rgba(49,87,215,.1);color:var(--primary)}.day-summary-warn{font-size:.73rem;font-weight:800;color:var(--warning)}.day-summary-close{position:absolute;inset-inline-end:8px;inset-block-start:8px;border:0;background:transparent;font-size:1rem;font-weight:900;color:var(--muted);cursor:pointer}@media (max-width:720px){.daily-slot-card{padding:5px}.daily-slot-head strong{font-size:.66rem}.daily-drag-ghost{min-width:110px;font-size:.64rem}}@media print{.daily-drag-ghost,.day-summary,.slot-delete-btn{display:none!important}.daily-slot-card{border:0!important;background:transparent!important;padding:0!important;gap:.4mm!important}.daily-schedule-page .daily-print-grid .daily-slot-head strong{font-size:5.45pt!important;line-height:1.15!important;color:#17283f!important}.daily-schedule-page .daily-print-grid .daily-slot-empty{border:0!important;background:transparent!important;min-height:0!important;padding:0!important;font-size:4.6pt!important;color:#8a93a3!important}.daily-schedule-page .daily-print-grid .daily-slot-pending{background:#fff1f3!important;border-color:#e5aeb7!important;padding:.75mm .65mm!important;border-radius:1.2mm!important}.daily-schedule-page .daily-print-grid .daily-slot-pending strong{font-size:5.1pt!important}.daily-schedule-page .daily-print-grid .daily-slot-pending span{font-size:4.6pt!important}.live-slot.drop-blocked,.live-slot.drop-ok{outline:0!important;background:transparent!important}}@page dailySchedule{size:A4 landscape;margin:5mm}.daily-print-footer{display:none;align-items:center;justify-content:center;gap:2mm;margin-top:2.4mm;padding:1.5mm 2.5mm;border:1px solid #dfc6a8;border-radius:1.6mm;background:#fffaf2;color:#6d4d21;font-size:7pt;font-weight:800}@media print{.daily-schedule-page .daily-print-footer{display:flex!important;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-schedule-page .daily-print-legend{display:none!important}.daily-schedule-page .daily-schedule-print-sheet{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.daily-schedule-page .daily-print-grid .daily-slot-empty,.daily-schedule-page .daily-print-grid .daily-slot-pending{display:none!important}.daily-schedule-page .daily-print-grid td,.daily-schedule-page .daily-print-grid th{padding:.7mm .5mm!important;font-size:5.1pt!important}.daily-schedule-page .daily-print-grid thead th{padding:1.1mm .5mm!important;font-size:5.6pt!important}.daily-schedule-page .daily-print-grid .live-slot{gap:.5mm!important}.daily-schedule-page .daily-print-grid .daily-slot-card{gap:.3mm!important}.daily-schedule-page .daily-print-grid .school-assignment{padding:.2mm 0!important;border:0!important;background:transparent!important;border-radius:0!important}.daily-schedule-page .daily-print-grid .school-assignment+.school-assignment{margin-top:.35mm!important;border-top:1px dotted #c9d4e2!important;padding-top:.45mm!important}.daily-schedule-page .daily-print-grid .school-assignment strong{font-size:5.2pt!important}.daily-schedule-page .daily-print-grid .daily-slot-head strong{font-size:5.5pt!important;color:#122c52!important}.daily-schedule-page .daily-print-grid .daily-print-change{font-size:4.1pt!important;color:#5b7196!important}.daily-schedule-page .daily-print-title h1{font-size:14pt!important}.daily-schedule-page .daily-print-header{margin-bottom:1.6mm!important}.daily-schedule-page .daily-print-grid td.tone-a{background:#f5f9ff!important}.daily-schedule-page .daily-print-grid td.tone-b{background:#f4fbf6!important}.daily-schedule-page .daily-print-grid td.tone-c{background:#fff9f3!important}.daily-schedule-page .daily-print-grid thead th.tone-a{background:#dde9fa!important}.daily-schedule-page .daily-print-grid thead th.tone-b{background:#dcf0e3!important}.daily-schedule-page .daily-print-grid thead th.tone-c{background:#fbe8d6!important}.daily-schedule-page .daily-print-grid td.tone-a,.daily-schedule-page .daily-print-grid td.tone-b,.daily-schedule-page .daily-print-grid td.tone-c,.daily-schedule-page .daily-print-grid thead th.tone-a,.daily-schedule-page .daily-print-grid thead th.tone-b,.daily-schedule-page .daily-print-grid thead th.tone-c{-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-schedule-page .daily-print-grid .school-assignment.override{background:transparent!important}.daily-schedule-page .daily-print-grid .school-assignment.override strong{color:#23407a!important}}.admin-live-grid thead th.tone-a{background:#f2f7fe}.admin-live-grid thead th.tone-b{background:#f2fbf5}.admin-live-grid thead th.tone-c{background:#fff8f1}.stat-hint{display:block;margin-top:2px;color:var(--muted);font-size:.66rem;font-weight:800}.session-goal-badge{display:inline-flex;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#3b4bb5;font-size:.6rem;font-weight:900}.teacher-stats-5{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1100px){.teacher-stats-5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.teacher-stats-5{grid-template-columns:1fr 1fr}}.admin-live-grid td.has-moved-slot{background:#fff7f8}.daily-slot-card.is-moved{border-color:#eeb4bb;background:#fff1f2}.daily-slot-card.is-moved:hover{border-color:#e59aa4}.daily-slot-card.is-moved .daily-slot-head strong{color:#9b2333}.daily-slot-card.is-moved .daily-slot-body .school-assignment{background:#fff8f9;border-color:#f0c3c9}@media print{.daily-schedule-page .daily-print-header{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:4mm!important;padding-bottom:.9mm!important;margin-bottom:.7mm!important;border-bottom-width:1.2px!important;text-align:right!important}.daily-schedule-page .daily-print-brand{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important}.daily-schedule-page .daily-print-brand strong{font-size:7.5pt!important}.daily-schedule-page .daily-print-brand span{font-size:5.6pt!important}.daily-schedule-page .daily-print-title{flex:1!important;margin-top:0!important;text-align:center!important}.daily-schedule-page .daily-print-title h1{font-size:10.5pt!important;margin:0!important}.daily-schedule-page .daily-print-title strong{font-size:8pt!important}.daily-schedule-page .daily-print-meta{display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:flex-end!important;gap:0!important;margin-top:0!important;font-size:5.6pt!important}.daily-schedule-page .daily-print-grid td,.daily-schedule-page .daily-print-grid th{padding:.5mm .4mm!important;font-size:var(--dp-font,9pt)!important;line-height:1.08!important}.daily-schedule-page .daily-print-grid thead th{padding:.6mm .5mm!important;font-size:calc(var(--dp-font, 9pt) * .93)!important}.daily-schedule-page .daily-print-grid .lesson-cell,.daily-schedule-page .daily-print-grid .lesson-head,.daily-schedule-page .daily-print-grid th:first-child{width:8mm!important;min-width:8mm!important;font-size:calc(var(--dp-font, 9pt) * 1.06)!important}.daily-schedule-page .daily-print-grid .live-slot{gap:.5mm!important}.daily-schedule-page .daily-print-grid .daily-slot-card{gap:.4mm!important}.daily-schedule-page .daily-print-grid .daily-slot-head strong{font-size:calc(var(--dp-font, 9pt) * 1.03)!important;line-height:1.08!important}.daily-schedule-page .daily-print-grid .school-assignment{padding:.35mm .3mm!important}.daily-schedule-page .daily-print-grid .school-assignment+.school-assignment{margin-top:.4mm!important}.daily-schedule-page .daily-print-grid .school-assignment strong{font-size:var(--dp-font,9pt)!important;line-height:1.08!important}.daily-schedule-page .daily-print-grid .school-assignment>span{font-size:calc(var(--dp-font, 9pt) * .86)!important;line-height:1.08!important}.daily-schedule-page .daily-print-grid .school-assignment small{font-size:calc(var(--dp-font, 9pt) * .8)!important;line-height:1.05!important;margin-top:.12mm!important}.daily-schedule-page .daily-print-grid .daily-print-change{font-size:calc(var(--dp-font, 9pt) * .8)!important}.daily-schedule-page .daily-print-grid .print-hidden{display:none!important}.daily-schedule-page .daily-print-grid .daily-slot-condensed{display:block!important;padding:.35mm .3mm!important}.daily-schedule-page .daily-print-grid .daily-slot-condensed strong{display:block!important;font-size:var(--dp-font,9pt)!important;line-height:1.08!important;color:#17283f!important}.daily-schedule-page .daily-print-grid tr.print-hide-row{display:none!important}.daily-schedule-page .daily-print-grid tbody tr:nth-child(odd) td.tone-a{background:#f5f9ff!important}.daily-schedule-page .daily-print-grid tbody tr:nth-child(odd) td.tone-b{background:#f4fbf6!important}.daily-schedule-page .daily-print-grid tbody tr:nth-child(odd) td.tone-c{background:#fff9f3!important}.daily-schedule-page .daily-print-grid tbody tr:nth-child(2n) td.tone-a{background:#e5e8ee!important}.daily-schedule-page .daily-print-grid tbody tr:nth-child(2n) td.tone-b{background:#e4eae6!important}.daily-schedule-page .daily-print-grid tbody tr:nth-child(2n) td.tone-c{background:#ece7e1!important}.daily-schedule-page .daily-print-grid tbody tr:nth-child(odd) .lesson-cell{background:#f2f5fa!important}.daily-schedule-page .daily-print-grid tbody tr:nth-child(2n) .lesson-cell{background:#e2e6ec!important}.daily-schedule-page .daily-print-grid tbody .lesson-cell,.daily-schedule-page .daily-print-grid tbody td{-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-schedule-page .daily-print-grid tbody tr td.has-moved-slot,.daily-schedule-page .daily-print-grid tbody tr:nth-child(2n) td.has-moved-slot{background:#edbfc6!important}.daily-schedule-page .daily-print-grid .daily-slot-card.is-moved .daily-slot-condensed,.daily-schedule-page .daily-print-grid .daily-slot-card.is-moved .school-assignment{background:transparent!important;border-color:transparent!important}.daily-schedule-page .daily-print-grid .daily-slot-card.is-moved .daily-slot-condensed strong,.daily-schedule-page .daily-print-grid .daily-slot-card.is-moved .daily-slot-head strong,.daily-schedule-page .daily-print-grid .daily-slot-card.is-moved .school-assignment strong{color:#6d1421!important}.daily-schedule-page .daily-print-grid .daily-slot-card.is-moved .daily-print-change{color:#7d1a2a!important;font-weight:900!important}.daily-schedule-page .daily-print-footer{display:block!important;margin-top:1.2mm!important;padding:0!important;border:0!important;background:transparent!important;color:#23304a!important;font-size:10pt!important;font-weight:900!important;text-align:right!important}}.day-attendance-toolbar{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-top:16px}.day-attendance-toolbar label{display:grid;gap:5px;font-size:.75rem;font-weight:800}.day-attendance-counts{display:flex;gap:8px;flex-wrap:wrap;margin-inline-start:auto}.day-count{display:inline-flex;padding:6px 11px;border-radius:999px;font-size:.72rem;font-weight:900;border:1px solid transparent}.day-count.present{background:#e9f7ef;border-color:#b6e0c6;color:#1c7346}.day-count.absent{background:#fdecee;border-color:#f0bcc4;color:#a32236}.day-count.late{background:#fff6e6;border-color:#f0d6a4;color:#8a5c12}.day-attendance-saved{font-size:.72rem;font-weight:900;color:#1c7346}.day-attendance-list{display:grid;gap:7px;margin-bottom:14px}.day-attendance-row{display:grid;grid-template-columns:210px minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}.day-attendance-row.status-absent{border-color:#f0bcc4;background:#fffafb}.day-attendance-row.status-late{border-color:#f0d6a4;background:#fffdf7}.day-attendance-row strong{font-size:.82rem}.day-status-group{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.day-status-btn{border:1px solid #e2e7f2;border-radius:11px;padding:11px 6px;background:#fff;color:#97a0b5;font-size:.74rem;font-weight:900;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease;-webkit-tap-highlight-color:transparent}.day-status-btn:hover{border-color:#cfd8ea}.day-status-btn.present.active{background:#d8f2e3;border-color:#6dc196;color:#0f5a33}.day-status-btn.absent.active{background:#fbd2d9;border-color:#dd7186;color:#85162a}.day-status-btn.late.active{background:#fce7bf;border-color:#e0ab53;color:#6f4708}.homeroom-day-badge{display:inline-flex;margin-inline-start:7px;padding:2px 7px;border-radius:999px;background:#fdecee;color:#a32236;font-size:.58rem;font-weight:900;vertical-align:middle}@media (max-width:720px){.day-attendance-row{grid-template-columns:1fr;gap:8px;padding:11px 12px}.day-attendance-row strong{order:-1;font-size:.88rem}.day-attendance-row .input.compact{grid-column:1/-1}.day-attendance-counts{margin-inline-start:0}.day-status-btn{padding:14px 6px;font-size:.8rem}}.homeroom-action-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.homeroom-action{display:grid;gap:3px;padding:15px 17px;border:1px solid var(--line);border-radius:16px;background:#fbfcff;text-decoration:none;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease,transform .12s ease}.homeroom-action:hover{border-color:#c3d0f0;box-shadow:var(--shadow-soft);transform:translateY(-1px)}.homeroom-action strong{font-size:.95rem;font-weight:900}.homeroom-action span{font-size:.73rem;color:var(--muted);font-weight:700}.homeroom-action.primary{background:linear-gradient(135deg,#2f52cf,#4b76ef);border-color:#2a49b8;color:#fff;box-shadow:0 3px 0 #21398f,0 12px 26px rgba(39,65,136,.28),inset 0 1px 0 hsla(0,0%,100%,.35)}.homeroom-action.primary strong{color:#fff;font-size:1.02rem}.homeroom-action.primary span{color:hsla(0,0%,100%,.86)}.homeroom-action.primary:hover{border-color:#21399a;transform:translateY(-2px);box-shadow:0 5px 0 #21398f,0 16px 30px rgba(39,65,136,.32),inset 0 1px 0 hsla(0,0%,100%,.35)}.homeroom-action.primary:active{transform:translateY(1px);box-shadow:0 1px 0 #21398f,0 6px 14px rgba(39,65,136,.26),inset 0 1px 0 hsla(0,0%,100%,.3)}.day-attendance-saved.saving{color:var(--muted)}.day-attendance-saved.saved{color:#1c7346}@media (max-width:720px){.homeroom-action-bar{grid-template-columns:1fr}}.history-nav{position:fixed;z-index:45;bottom:22px;inset-inline-start:max(12px,calc((100vw - 1080px) / 2 - 60px));display:flex;flex-direction:column;gap:10px}.history-btn{width:46px;height:46px;display:grid;place-items:center;padding:0;border:1px solid #c6d2ec;border-radius:50%;background:linear-gradient(180deg,#fff,#e9eefa);color:var(--primary);cursor:pointer;box-shadow:0 3px 0 #bcc8e4,0 10px 20px rgba(39,65,136,.22),inset 0 1px 0 #fff;transition:transform .1s ease,box-shadow .1s ease,background .15s ease}.history-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.history-btn:hover:not(:disabled){background:linear-gradient(180deg,#fff,#dee6f8)}.history-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 0 #bcc8e4,0 3px 8px rgba(39,65,136,.2),inset 0 1px 0 #fff}.history-btn:disabled{opacity:.35;cursor:default;box-shadow:0 2px 0 #dfe4ef,inset 0 1px 0 #fff}@media (max-width:1220px){.history-nav{flex-direction:row;bottom:84px;inset-inline-start:14px;gap:9px}.app-shell{padding-bottom:152px}}@media (max-width:620px){.history-nav{bottom:76px;inset-inline-start:12px}.history-btn{width:44px;height:44px}.app-shell{padding-bottom:146px}}.school-grid-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:auto;scrollbar-color:#9db0d6 #eef2fa;cursor:grab}.school-grid-wrap.is-panning{cursor:grabbing;-webkit-user-select:none;-moz-user-select:none;user-select:none}.school-grid-wrap::-webkit-scrollbar{height:14px;width:14px}.school-grid-wrap::-webkit-scrollbar-track{background:#eef2fa;border-radius:999px}.school-grid-wrap::-webkit-scrollbar-thumb{background:#9db0d6;border:3px solid #eef2fa;border-radius:999px}.school-grid-wrap::-webkit-scrollbar-thumb:hover{background:#7d93c4}@media (max-width:820px){.school-grid td,.school-grid th{width:118px;min-width:118px;padding:6px 5px}.school-grid .lesson-cell,.school-grid .lesson-head{width:44px;min-width:44px}}@media (max-width:520px){.school-grid td,.school-grid th{width:104px;min-width:104px}}@media print{.school-grid-wrap{cursor:auto}}.signature-approval{position:relative}.approval-slot{gap:6px;min-height:34px}.approval-slot,.approval-stamp{display:grid;justify-items:center}.approval-stamp{gap:1px;padding:6px 18px;border:3px double;border-radius:8px;transform:rotate(-7deg);font-weight:900;letter-spacing:.5px}.approval-stamp strong{font-size:1.1rem;line-height:1.15}.approval-stamp span{font-size:.6rem;font-weight:800;opacity:.85}.approval-stamp.yes{color:#1b7a4b;background:rgba(27,122,75,.06)}.approval-stamp.no{color:#b3261e;background:rgba(179,38,30,.06)}.approval-actions{display:flex;gap:8px;margin-top:6px}.approval-btn{min-height:36px;padding:6px 18px;border-radius:10px;border:2px solid;background:#fff;font-size:.92rem;font-weight:900}.approval-btn.yes{color:#1b7a4b}.approval-btn.no{color:#b3261e}.approval-btn:disabled{opacity:.5}.approval-changed{margin:0;color:#8a5a12;font-size:.7rem;font-weight:800;text-align:center}.approval-error{margin:0;color:#b3261e;font-size:.72rem;font-weight:800}.approval-cell{text-align:center}.approval-mark{font-size:1rem;font-weight:900}.approval-mark.yes{color:#1b7a4b}.approval-mark.no{color:#b3261e}.admin-report-table tr.row-approved td{background:#f2fbf6}.admin-report-table tr.row-rejected td{background:#fdf4f3}.print-notes-box.notes-live>.notes-body{height:auto;background:#fff;padding:12px 14px}.notes-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.notes-list li{padding-bottom:8px;border-bottom:1px dashed var(--report-line)}.notes-list li p{margin:0 0 3px;font-size:.86rem;line-height:1.6}.notes-list li small{color:var(--muted);font-size:.68rem;font-weight:800}.notes-empty{margin:0;color:var(--muted);font-size:.8rem}.notes-actions{display:inline-flex;gap:8px;margin-inline-start:10px}.notes-actions button{border:0;background:none;color:var(--primary);font-size:.72rem;font-weight:800;cursor:pointer}.notes-actions button.danger{color:#b3261e}.notes-add,.notes-edit{display:flex;gap:8px;align-items:flex-start;margin-top:10px}.notes-add textarea,.notes-edit textarea{flex:1}@media print{.approval-box{border-color:#333}.approval-stamp{transform:rotate(-8deg)}}.class-picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.class-chip{padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--text);font-size:.85rem;font-weight:800;text-decoration:none}.class-chip.active{border-color:var(--primary);background:#fff;color:var(--primary);box-shadow:0 0 0 3px rgba(49,87,215,.12)}.sick-leave-list .sick-leave-row{align-items:flex-start;border-inline-start:4px solid transparent}.sick-leave-row.pending{border-inline-start-color:#e0a800;background:#fffdf4}.sick-leave-row.received{border-inline-start-color:#2f9e63;background:#f5fbf7}.sick-leave-note{display:block;color:var(--muted);line-height:1.6}.sick-leave-row .row-actions{flex-wrap:wrap;gap:6px;justify-content:flex-end}:root{--primary-shadow:rgba(49,87,215,.24);--primary-shadow-strong:rgba(49,87,215,.3);--hero-grad:linear-gradient(135deg,#7894f5,#4266dd 44%,#2646bb)}[data-area=admin]{--primary:#5b3fd1;--primary-2:#8a6ff0;--primary-soft:#f0ebff;--primary-shadow:rgba(91,63,209,.24);--primary-shadow-strong:rgba(91,63,209,.3);--hero-grad:linear-gradient(135deg,#9b84f6,#6a4ddc 44%,#4a2fb8)}[data-area=secretary]{--primary:#0f7d8c;--primary-2:#35b1bf;--primary-soft:#e2f5f7;--primary-shadow:rgba(15,125,140,.24);--primary-shadow-strong:rgba(15,125,140,.3);--hero-grad:linear-gradient(135deg,#46c0ce,#15899a 46%,#0a6372)}.hero-panel{background:var(--hero-grad);box-shadow:0 22px 45px var(--primary-shadow)}.brand-mark{box-shadow:0 10px 20px var(--primary-shadow)}.mode-switch{box-shadow:0 8px 18px var(--primary-shadow)}.btn-primary{box-shadow:0 13px 24px var(--primary-shadow)}.btn-primary:hover{box-shadow:0 16px 28px var(--primary-shadow-strong)}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item.active,.bottom-nav-item.active .bottom-nav-icon{background:var(--primary-soft)}.btn-chip{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface-soft);color:#4d5a7b;font-size:.76rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.btn-chip:hover{color:var(--primary);border-color:var(--primary);background:#fff}.btn-chip:disabled{opacity:.5;cursor:not-allowed}.btn-approve{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:5px 12px;border-radius:999px;border:1px solid #bfe6d4;background:#eafaf2;color:var(--success);font-size:.76rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn-approve:hover{background:#dcf5ea;border-color:#9ed9c0}.btn-approve:disabled{opacity:.5;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:5px 12px;border-radius:999px;border:1px solid #f6d3d8;background:#fff0f2;color:var(--danger);font-size:.76rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn-danger:hover{background:#ffe3e8;border-color:#eeb6c0}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.badge{border:0;box-shadow:none}.btn-chip.active{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}div.badge,span.badge{cursor:default}.approval-btn.yes{color:var(--success)}.approval-btn.no{color:var(--danger)}.approval-btn.yes:hover{background:#eafaf2}.approval-btn.no:hover{background:#fff0f2}.notes-actions button.danger{color:var(--danger)}.record-only-toggle{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-size:.8rem;color:var(--muted);line-height:1.6}.record-only-toggle input{margin-top:3px;width:16px;height:16px;accent-color:var(--primary)}.nav-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--danger);margin-inline-start:3px;vertical-align:top}.missing-leaves{border:1px solid #f3e2bd}.admin-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.admin-nav a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:46px;padding:8px 10px;line-height:1.35}.admin-nav a.active{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}@media (max-width:640px){.admin-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-nav a{font-size:.76rem;min-height:44px}.hero-panel{padding:20px 16px;border-radius:22px}.hero-panel h1{font-size:1.35rem;margin:4px 0 6px}.hero-panel p{font-size:.82rem;line-height:1.65}.compact-hero{padding:16px 14px}}.hero-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.cta-wide{flex:1 1 220px}.quick-card>div{display:flex;flex-direction:column;gap:3px;min-width:0}.quick-card small,.quick-card strong{display:block}.portal-section>div{display:flex;flex-direction:column;gap:2px;min-width:0}.teacher-stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:620px){.hero-actions{margin-top:12px}.cta-wide{flex:1 1 100%}.teacher-stats-3{gap:7px}.teacher-stats-3 .stat-card{padding:11px 9px;border-radius:15px}.teacher-stats-3 .stat-label{font-size:.7rem}.teacher-stats-3 .stat-number{font-size:1.15rem;margin-top:3px}.teacher-stats-3 .stat-link,.teacher-stats-3 .stat-note{font-size:.68rem}.teacher-stats-3 .status-big{font-size:1.05rem}.quick-grid{grid-template-columns:1fr}.quick-card{min-height:auto;flex-direction:row;align-items:center;gap:12px}}.nav-badge,.nav-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;margin-inline-start:6px;border-radius:999px;background:var(--danger);color:#fff;font-size:.68rem;font-weight:900;font-style:normal;line-height:1;box-shadow:0 2px 6px rgba(207,62,79,.35)}.bottom-nav-icon{position:relative}.nav-badge-float{position:absolute;top:-5px;inset-inline-end:-9px;margin:0;border:2px solid #fff}.file-viewer{display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}.file-viewer-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:10px 14px;background:hsla(0,0%,100%,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.file-viewer-bar strong{flex:1;min-width:0;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-viewer-body{flex:1;display:flex;padding:12px}.file-viewer-body iframe,.file-viewer-body object{flex:1;width:100%;min-height:72vh;border:0;border-radius:16px;background:#fff}.file-viewer-body img{max-width:100%;margin:0 auto;align-self:flex-start;border-radius:16px;box-shadow:var(--shadow-soft)}.pick-row{display:flex;flex-wrap:wrap;gap:8px}.pick-row .btn-secondary{flex:1 1 150px}.pick-preview{margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.pick-preview img{display:block;width:100%;max-height:260px;-o-object-fit:contain;object-fit:contain;border-radius:12px;background:#fff}.pick-file-name{display:block;font-weight:800;font-size:.85rem;word-break:break-all}.pick-preview-actions{display:flex;align-items:center;gap:8px;margin-top:9px}.pick-preview-actions small{color:var(--muted);font-size:.74rem;margin-inline-end:auto}.phrase-bank{margin-top:10px}.phrase-tabs{flex-wrap:wrap}.phrase-list,.phrase-tabs{display:flex;gap:6px;margin-top:9px}.phrase-list{flex-direction:column;max-height:220px;overflow:auto;padding-inline-end:4px}.phrase-item{display:flex;align-items:center;gap:6px}.phrase-item>button:first-child{flex:1;text-align:start;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:12px;padding:8px 11px;font-size:.78rem;line-height:1.6;cursor:pointer}.phrase-item>button:first-child:hover{border-color:var(--primary);background:var(--primary-soft)}.phrase-remove{border:0;background:none;color:var(--danger);font-size:1rem;font-weight:900;cursor:pointer;padding:0 4px}.notes-add-actions{gap:8px;margin-top:8px}.month-toolbar,.notes-add-actions{display:flex;flex-wrap:wrap;align-items:center}.month-toolbar{justify-content:space-between;gap:10px}.month-switch{display:flex;align-items:center;gap:10px}.month-switch strong{font-size:1rem}.attend-row{border:1px solid var(--line);border-radius:16px;background:var(--surface-soft);padding:11px 13px}.attend-row summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.attend-row summary::-webkit-details-marker{display:none}.attend-row strong{font-size:.9rem}.attend-counts{display:flex;gap:6px}.attend-pill{font-style:normal;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800}.attend-pill.absent{background:#ffedf0;color:var(--danger)}.attend-pill.late{background:#fff5df;color:var(--warning)}.attend-days{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.attend-day{min-width:30px;text-align:center;border-radius:9px;padding:4px 7px;font-size:.76rem;font-weight:800}.attend-day.absent{background:#ffedf0;color:var(--danger)}.attend-day.late{background:#fff5df;color:var(--warning)}.month-grid-wrap{overflow-x:auto}.month-grid{border-collapse:separate;border-spacing:0;width:100%;font-size:.76rem}.month-grid td,.month-grid th{border-bottom:1px solid var(--line);padding:6px 4px;text-align:center;white-space:nowrap}.month-grid thead th{color:var(--muted);font-weight:800}.month-grid .sticky-name{position:sticky;inset-inline-start:0;z-index:2;background:#fff;text-align:start;min-width:120px;max-width:150px;overflow:hidden;text-overflow:ellipsis;font-weight:800}.month-grid td.absent{background:#ffedf0;color:var(--danger);font-weight:900}.month-grid td.late{background:#fff5df;color:var(--warning);font-weight:900}.month-grid td.total{font-weight:900}@media (max-width:620px){.month-grid-card{display:none}}.hero-actions+.stats-grid{margin-top:12px}.teacher-stats-3 .stat-card{display:flex;flex-direction:column;justify-content:flex-start;gap:2px}.teacher-stats-3 .progress-track{margin-top:auto}.month-archive{display:flex;flex-direction:column;gap:9px}.month-block{border:1px solid var(--line);border-radius:16px;background:var(--surface-soft);overflow:hidden}.month-block>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;cursor:pointer;font-weight:800;font-size:.86rem;list-style:none}.month-block>summary::-webkit-details-marker{display:none}.month-block>summary:after{content:"▾";color:var(--muted);font-size:.8rem}.month-block[open]>summary:after{content:"▴"}.month-block[open]>summary{border-bottom:1px solid var(--line);background:#fff}.month-block-body{padding:11px;background:#fff}.month-count{font-style:normal;background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:3px 9px;font-size:.72rem;margin-inline-start:auto;margin-inline-end:8px}.month-archive-toggle{align-self:flex-start}.chosen-period{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 13px;border:1px solid var(--line);border-radius:15px;background:var(--surface-soft)}.chosen-period span{color:var(--muted);font-size:.78rem;font-weight:800}.chosen-period strong{font-size:.95rem}.chosen-period .btn-chip{margin-inline-start:auto}.sick-leave-row .btn-approve{min-height:36px;padding:7px 14px;font-size:.8rem}.period-picker{display:flex;flex-direction:column;gap:12px}.period-tabs{display:flex;flex-wrap:wrap;gap:7px}.period-tabs .btn-chip{min-height:38px;padding:8px 16px;font-size:.82rem}.period-field{max-width:320px}.report-tools{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px}.report-tools .field{min-width:170px}.print-dates-toggle{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--muted);font-weight:800}.print-dates-toggle input{width:16px;height:16px;accent-color:var(--primary)}.report-tools .btn-primary{margin-inline-start:auto}.absence-empty{margin:0 0 12px;padding:12px 14px;border-radius:14px;background:var(--surface-soft);border:1px solid var(--line);color:var(--muted);font-size:.85rem}.absence-table{width:100%;border-collapse:separate;border-spacing:0}.absence-table thead th{text-align:start;padding:9px 12px;font-size:.78rem;font-weight:800;color:var(--muted);border-bottom:1px solid var(--line)}.absence-table tbody td{padding:4px 12px;border-bottom:1px solid var(--line);vertical-align:top}.absence-table tr.expanded td{background:var(--surface-soft)}.absence-table .count-col{text-align:center;width:110px;white-space:nowrap}.absence-table .count-col strong{font-size:1.02rem;font-variant-numeric:tabular-nums}.absence-name{display:flex;align-items:center;gap:7px;width:100%;min-height:42px;border:0;background:none;padding:0;text-align:start;cursor:pointer;font-size:.9rem;font-weight:800;color:var(--text);line-height:1.5}.absence-name:disabled{cursor:default;color:var(--text);opacity:.75}.absence-name span{overflow-wrap:anywhere}.absence-caret{font-style:normal;color:var(--muted);font-size:.75rem}.absence-dates{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 10px}.absence-dates span{border-radius:9px;padding:4px 9px;background:#ffedf0;color:var(--danger);font-size:.75rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.absence-dates.print-only{display:none}@media (max-width:620px){.report-tools .btn-primary{margin-inline-start:0;width:100%}.absence-table .count-col{width:74px}.absence-table tbody td{padding:4px 8px}}@media print{.absence-report{border:0;box-shadow:none;padding:0}.absence-table{font-size:.85rem}.absence-table thead th{border-bottom:1.5px solid #333;color:#000}.absence-table tbody td{border-bottom:1px solid #d7dcea}.absence-table tbody tr{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.absence-name{min-height:0;color:#000}.absence-caret,.absence-dates{display:none}.print-with-dates .absence-dates,.print-with-dates .absence-dates.print-only{display:flex}.print-with-dates .absence-dates span{background:none;color:#000;border:1px solid #ccc;padding:2px 6px}.absence-empty{border:0;color:#000}}