@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=DM+Sans:wght@300;400;500&display=swap";:root{--solys-navy:#023569;--solys-green:#038973;--solys-amber:#f5b00f;--navy-50:#eff6ff;--navy-100:#dcecff;--navy-200:#c0dcff;--navy-300:#a0caff;--navy-400:#6fb0ff;--navy-500:#4496f5;--navy-600:#267ddb;--navy-700:#1564b7;--navy-800:#084d93;--navy-900:#023569;--navy-950:#01254d;--green-50:#dafff4;--green-100:#bff8e8;--green-200:#a6e9d7;--green-300:#8bd9c5;--green-400:#63c1aa;--green-500:#3baa92;--green-600:#038973;--green-700:#007663;--green-800:#005c4c;--green-900:#00463a;--green-950:#002e25;--amber-50:#fff4e2;--amber-100:#ffe6be;--amber-200:#ffd184;--amber-300:#f5b00f;--amber-400:#df9f00;--amber-500:#c18900;--amber-600:#a27300;--amber-700:#845d00;--amber-800:#674800;--amber-900:#4f3600;--amber-950:#342200;--red-50:#fff2f0;--red-100:#ffe2dd;--red-200:#ffcbc2;--red-300:#ffafa2;--red-400:#ff8372;--red-500:#fa5140;--red-600:#d92d20;--red-700:#ba1c12;--red-800:#940d06;--red-900:#730502;--red-950:#4e0201;--neutral-0:#fff;--neutral-50:#f0f6fe;--neutral-100:#e4eaf3;--neutral-200:#d3dae2;--neutral-300:#c1c7cf;--neutral-400:#a7adb5;--neutral-500:#8f959d;--neutral-600:#777d84;--neutral-700:#60656c;--neutral-800:#484f58;--neutral-900:#353c44;--neutral-950:#20272f;--color-primary:var(--navy-900);--color-primary-hover:var(--navy-950);--color-primary-active:var(--navy-950);--color-primary-strong:var(--navy-950);--color-primary-link:var(--navy-800);--color-primary-soft:var(--navy-50);--color-primary-soft-hover:var(--navy-100);--color-primary-border:var(--navy-200);--color-primary-muted:var(--navy-700);--color-on-primary:#fff;--color-accent:var(--solys-amber);--color-accent-soft:var(--amber-50);--color-accent-border:var(--amber-200);--color-accent-text:var(--amber-900);--color-success:var(--green-700);--color-success-soft:var(--green-50);--color-success-border:var(--green-200);--color-success-text:var(--green-800);--color-warning:var(--amber-400);--color-warning-soft:var(--amber-50);--color-warning-border:var(--amber-200);--color-warning-text:var(--amber-900);--color-danger:var(--red-600);--color-danger-hover:var(--red-700);--color-danger-soft:var(--red-50);--color-danger-border:var(--red-200);--color-danger-text:var(--red-700);--color-info:var(--navy-700);--color-info-soft:var(--navy-50);--color-info-border:var(--navy-200);--color-info-text:var(--navy-800);--color-text:var(--neutral-950);--color-text-strong:var(--navy-900);--color-text-muted:var(--neutral-700);--color-text-subtle:var(--neutral-500);--color-text-inverse:#fff;--color-surface:#fff;--color-surface-sunken:var(--neutral-50);--color-surface-raised:#fff;--color-surface-inverse:var(--navy-900);--color-border:var(--neutral-100);--color-border-strong:var(--neutral-200);--color-border-focus:var(--navy-600);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:999px;--shadow-sm:0 1px 2px #0235690f;--shadow-md:0 4px 12px #02356914;--shadow-lg:0 12px 32px #0235691f;--shadow-focus:0 0 0 3px #02356926;--cat-1:#1f6fc4;--cat-2:#d4671f;--cat-3:#038973;--cat-4:#b58600;--cat-5:#d15f8c;--cat-6:#007a24;--cat-7:#4a3aa7;--cat-8:#cf3b34;--cat-1-tint:#e1eeff;--cat-2-tint:#ffe7db;--cat-3-tint:#d8f4ec;--cat-4-tint:#faebcf;--cat-5-tint:#ffe5ed;--cat-6-tint:#daf6db;--cat-7-tint:#eaebff;--cat-8-tint:#ffe6e3;--cat-1-text:#004b90;--cat-2-text:#7a3400;--cat-3-text:#00594a;--cat-4-text:#624700;--cat-5-text:#831c4c;--cat-6-text:#005d19;--cat-7-text:#45379d;--cat-8-text:#920009;--font-sans:"DM Sans", "Segoe UI", system-ui, -apple-system, sans-serif;font-family:var(--font-sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--color-text);background-color:var(--color-surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-width:320px;min-height:100vh;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);margin:0}a{color:var(--color-primary-link);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:var(--color-primary);text-decoration:underline}h1,h2,h3,h4,h5,h6{color:var(--color-text-strong)}button{cursor:pointer;font-family:inherit;font-size:1em;font-weight:500}:where(button,a,input,select,textarea):focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}.login-root{--ink:var(--navy-950);--cream:var(--neutral-50);--warm:var(--navy-100);--accent:var(--color-primary);--accent-dark:var(--color-primary-hover);--muted:var(--color-text-muted);--border:var(--color-border-strong);grid-template-columns:1fr 1fr;min-width:90vh;min-height:100vh;font-family:DM Sans,sans-serif;display:grid;overflow:hidden}.login-left{background:var(--ink);flex-direction:column;justify-content:space-between;padding:3rem;display:flex;position:relative;overflow:hidden}.background-image{object-fit:cover;filter:blur(8px)brightness(.7);z-index:0;width:100%;height:100%;inset:0}.login-left:before{content:"";pointer-events:none;background:radial-gradient(60% 60% at 20% 80%,#03897359 0%,#0000 60%),radial-gradient(40% 50% at 80% 20%,#f5b00f2e 0%,#0000 60%);position:absolute;inset:0}.noise-overlay{opacity:.04;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px;position:absolute;inset:0}.login-right{background:var(--cream);justify-content:center;align-items:center;padding:3rem 2rem;display:flex;position:relative}.login-right:before{content:"";pointer-events:none;background:radial-gradient(circle,#0235690f 0%,#0000 70%);border-radius:50%;width:400px;height:400px;position:absolute;top:-100px;right:-100px}.form-container{width:100%;max-width:400px;animation:.6s both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.form-header{margin-bottom:2.5rem}.login-logo{width:auto;height:46px;margin-bottom:1.5rem;display:block}.form-header h2{color:var(--ink);letter-spacing:-.04em;margin-bottom:.5rem;font-family:Playfair Display,serif;font-size:2.2rem;line-height:1.1}.form-header p{color:var(--muted);font-size:.9rem}.form-header p a{color:var(--accent);font-weight:500;text-decoration:none}.form-header p a:hover{text-decoration:underline}.field{margin-bottom:1.25rem}.field label{color:var(--ink);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.5rem;font-size:.8rem;font-weight:500;display:block}.input-wrap{position:relative}.input-wrap input{border:1.5px solid var(--border);width:100%;color:var(--ink);background:#fff;border-radius:10px;outline:none;padding:.85rem 1rem .85rem 2.8rem;font-family:DM Sans,sans-serif;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.input-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0235691a}.input-wrap input::placeholder{color:var(--color-text-subtle)}.input-icon{color:var(--muted);pointer-events:none;display:flex;position:absolute;top:50%;left:.9rem;transform:translateY(-50%)}.input-icon svg{width:16px;height:16px}.toggle-password{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0;transition:color .2s;display:flex;position:absolute;top:50%;right:.9rem;transform:translateY(-50%)}.toggle-password:hover{color:var(--ink)}.toggle-password svg{width:16px;height:16px}.field-error{color:var(--color-danger);align-items:center;gap:.3rem;margin-top:.35rem;font-size:.78rem;display:flex}.options-row{justify-content:space-between;align-items:center;margin-top:.25rem;margin-bottom:1.75rem;display:flex}.checkbox-label{cursor:pointer;color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.forgot-link{color:var(--accent);font-size:.85rem;font-weight:500;text-decoration:none}.forgot-link:hover{text-decoration:underline}.btn-submit{background:var(--accent);color:#fff;cursor:pointer;letter-spacing:.02em;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.95rem;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:500;transition:background .2s,transform .15s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.btn-submit:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px);box-shadow:0 4px 20px #02356959}.btn-submit:active:not(:disabled){transform:translateY(0)}.btn-submit:disabled{opacity:.7;cursor:not-allowed}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.divider{color:var(--muted);align-items:center;gap:1rem;margin:1.5rem 0;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.oauth-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.btn-oauth{border:1.5px solid var(--border);color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;font-family:DM Sans,sans-serif;font-size:.85rem;font-weight:500;transition:border-color .2s,box-shadow .2s;display:flex}.btn-oauth:hover{border-color:var(--muted);box-shadow:0 2px 8px #0235690f}.btn-oauth svg{width:18px;height:18px}.alert{border-radius:10px;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.85rem 1rem;font-size:.85rem;animation:.3s fadeUp;display:flex}.alert-error{background:var(--color-danger-soft);color:var(--color-danger-text);border:1px solid var(--color-danger-border)}.alert-success{background:var(--color-success-soft);color:var(--color-success-text);border:1px solid var(--color-success-border)}@media (width<=768px){.login-root{grid-template-columns:1fr}.login-left{display:none}.login-right{padding:2rem 1.5rem}}.dashboard-root{background:var(--color-surface-sunken);width:100vw;height:100vh;margin:0;padding:0;font-family:DM Sans,Segoe UI,sans-serif;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar-features{padding:0 12px}.features-btn{cursor:pointer;color:#ffffff9e;background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;width:100%;padding:11px 16px;font-size:14px;display:flex}.new-badge{background:var(--navy-600);color:#fff;letter-spacing:.5px;border-radius:4px;margin-left:4px;padding:2px 6px;font-size:10px;font-weight:700}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.top-banner{border-bottom:1px solid var(--color-border);background:#fff;justify-content:space-between;align-items:center;padding:12px 32px;display:flex}.banner-text{color:var(--neutral-800);margin:0;font-size:13px;line-height:1.5}.banner-text span{color:var(--color-text-muted)}.banner-actions{align-items:center;gap:16px;display:flex}.bell-btn{cursor:pointer;background:0 0;border:none;padding:4px;position:relative}.bell-dot{background:var(--red-500);border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:2px;right:2px}.logout-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 22px;font-size:14px;font-weight:600;transition:background .15s}.logout-btn:hover{background:var(--color-primary-hover)}.content{flex:1;padding:48px 64px;overflow:hidden auto}.content-inner{max-width:1200px;margin:0 auto}.welcome-title{color:var(--color-text);letter-spacing:-.5px;margin-bottom:8px;font-size:32px;font-weight:700}.welcome-title span{color:var(--navy-900)}.welcome-email{color:var(--color-text-muted);margin-bottom:48px;font-size:15px}.action-list{flex-direction:column;gap:24px;display:flex}.action-card{cursor:pointer;background:#fff;border-radius:14px;align-items:flex-start;gap:20px;padding:24px 28px;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 1px 4px #0235690f,0 0 0 1px #0235690a}.action-card:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0235691a}.action-icon-wrap{background:var(--navy-50);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.action-card-title{color:var(--color-text);margin:0 0 6px;font-size:17px;font-weight:600}.action-card-desc{color:var(--color-text-muted);margin:0;font-size:14px;line-height:1.6}.support-fab{position:fixed;bottom:28px;right:28px}.support-btn{background:var(--navy-950);color:#fff;cursor:pointer;border:none;border-radius:50px;align-items:center;gap:10px;padding:14px 22px;font-size:15px;font-weight:600;transition:background .15s;display:flex;box-shadow:0 4px 16px #02356959}.support-btn:hover{background:var(--navy-950)}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title{color:var(--color-text);margin:0;font-size:22px;font-weight:700}.page-header-actions{align-items:center;gap:12px;display:flex}.btn-export{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:14px;font-weight:500;transition:background .15s}.btn-export:hover{background:var(--navy-50)}.btn-primary{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 20px;font-size:14px;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-primary-border);cursor:pointer;border-radius:8px;padding:9px 20px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s}.btn-secondary:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.toolbar{align-items:center;gap:12px;margin-bottom:24px;display:flex}.btn-filter{color:var(--neutral-400);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:8px 4px;font-size:14px;display:flex}.search-box{border:1px solid var(--color-border-strong);background:#fff;border-radius:8px;flex:1;align-items:center;gap:10px;padding:10px 14px;display:flex}.search-input{color:var(--neutral-800);background:0 0;border:none;outline:none;width:100%;font-size:14px}.search-input::placeholder{color:var(--neutral-400)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:320px;display:flex}.empty-title{color:var(--neutral-800);margin:0 0 8px;font-size:20px;font-weight:600}.empty-sub{color:var(--neutral-400);margin:0;font-size:14px}.add-teacher-header{justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:28px;display:flex}.add-teacher-designation{flex-direction:column;gap:6px;min-width:260px;display:flex}.add-teacher-tabs{border-bottom:2px solid var(--color-border-strong);gap:28px;margin-bottom:28px;display:flex}.tab-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:0 0 12px;font-size:15px;font-weight:500;transition:color .15s,border-color .15s}.tab-btn.tab-active{color:var(--color-text);border-bottom-color:var(--color-text);font-weight:600}.form-label{color:var(--neutral-800);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-error{color:var(--red-800);background:var(--color-danger-soft);border:1px solid var(--color-danger-border);border-radius:8px;margin:0 0 18px;padding:12px 14px;font-size:14px}.field-error{color:var(--color-danger);margin-top:6px;font-size:12px;display:block}.teacher-schools-group{margin-top:4px}.teacher-school-options{flex-wrap:wrap;gap:9px;display:flex}.teacher-school-option{border:1px solid var(--color-border);color:var(--neutral-900);background:var(--color-surface-sunken);cursor:pointer;border-radius:9px;align-items:center;gap:7px;padding:8px 11px;font-size:13px;display:inline-flex}.teacher-school-option:has(input:checked){border-color:var(--navy-300);color:var(--color-primary-hover);background:var(--navy-50)}.teacher-subjects-group{margin-top:6px}.teacher-subject-options{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.teacher-subject-option{border:1px solid var(--color-border);color:var(--neutral-900);background:var(--color-surface-sunken);cursor:pointer;border-radius:9px;align-items:center;gap:7px;padding:9px 11px;display:flex}.teacher-subject-option.selected{border-color:var(--navy-400);color:var(--color-primary-hover);background:var(--navy-50)}.form-input[aria-invalid=true]{border-color:var(--color-danger)}.form-hint{color:var(--color-text-muted);margin-top:2px;font-size:11px}.form-input,.form-select{border:1px solid var(--neutral-300);width:100%;color:var(--color-text);box-sizing:border-box;background:#fff;border-radius:8px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s}.form-input:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0235691a}.form-group{flex-direction:column;gap:6px;display:flex}.form-group.full-width{width:100%;max-width:540px}.teacher-form-row{border-bottom:1px solid var(--neutral-100);flex-direction:column;gap:20px;margin-bottom:8px;padding-bottom:28px;display:flex}.form-row-3{grid-template-columns:1fr 140px 140px;gap:12px;max-width:540px;display:grid}.form-row-2{grid-template-columns:1fr 1fr;gap:12px;max-width:540px;display:grid}.form-actions{align-items:center;gap:20px;margin-top:8px;display:flex}.btn-add-another{color:var(--neutral-800);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:14px;font-weight:500;display:flex}.btn-add-another:hover{color:var(--color-text)}.csv-drop{border:2px dashed var(--neutral-300);background:var(--neutral-50);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:14px;margin-top:8px;padding:60px 40px;display:flex}.csv-label{color:var(--color-text-muted);margin:0;font-size:15px}.pagination{justify-content:center;align-items:center;gap:.75rem;margin-top:2rem;padding:1.5rem;display:flex}.pagination-btn,.pag-btn{border:1px solid var(--color-border-strong);color:var(--neutral-800);cursor:pointer;background:#fff;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s}.pagination-btn:hover:not(:disabled),.pag-btn:hover:not(:disabled){border-color:var(--navy-600);color:var(--navy-600);background:var(--navy-50)}.pagination-btn:disabled,.pag-btn:disabled{opacity:.5;cursor:not-allowed}.pag-info{color:var(--color-text-muted);font-size:.875rem}.pagination-pages{gap:.25rem;display:flex}.pagination-page{border:1px solid var(--color-border-strong);width:32px;height:32px;color:var(--neutral-800);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.pagination-page:hover{border-color:var(--navy-600);color:var(--navy-600);background:var(--navy-50)}.pagination-page.active{background:var(--navy-600);color:#fff;border-color:var(--navy-600)}.actions-cell{align-items:center;gap:.5rem;display:flex}.action-btn{border:1px solid var(--color-border-strong);cursor:pointer;width:32px;height:32px;color:var(--color-text-muted);background:#fff;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.action-btn:hover{border-color:var(--neutral-300);background:var(--neutral-50)}.btn-assign{border:1px solid var(--navy-200);color:var(--color-primary-hover);background:var(--navy-50);cursor:pointer;border-radius:7px;padding:6px 10px;font-size:12px;font-weight:700}.btn-assign:hover{background:var(--navy-100)}.class-unassigned{color:var(--color-warning-text);white-space:nowrap;font-size:12px;font-weight:600}.teacher-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#02356973;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.teacher-modal{background:#fff;border-radius:16px;width:min(520px,100%);max-height:88vh;padding:28px;position:relative;overflow-y:auto;box-shadow:0 24px 60px #0235693d}.teacher-modal h2{color:var(--navy-950);margin:0 36px 22px 0}.modal-close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;font-size:28px;position:absolute;top:15px;right:16px}.teacher-details{grid-template-columns:120px 1fr;gap:14px 18px;margin:0;display:grid}.teacher-details dt{color:var(--color-text-muted);font-weight:600}.teacher-details dd{color:var(--color-text);margin:0}.teacher-edit-form{grid-template-columns:1fr 1fr;gap:16px;display:grid}.teacher-edit-form h2,.teacher-edit-form .btn-primary{grid-column:1/-1}.teacher-edit-form label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}@media (width<=700px){.teacher-edit-form{grid-template-columns:1fr}.teacher-details{grid-template-columns:1fr;gap:5px}.teacher-details dd{margin-bottom:10px}}.form-success{border:1px solid var(--color-success-border);color:var(--color-success-text);background:var(--color-success-soft);border-radius:8px;margin-bottom:18px;padding:12px 14px}.school-cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-bottom:24px;display:grid}.school-card{border:1px solid var(--color-border-strong);background:#fff;border-radius:14px;align-items:center;gap:14px;padding:20px;display:flex;box-shadow:0 5px 18px #0235690d}.school-card-icon{color:#fff;background:linear-gradient(135deg, var(--color-primary), var(--navy-700));border-radius:12px;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.school-card-logo{border:1px solid var(--color-border-strong);object-fit:cover;background:#fff;border-radius:12px;flex-shrink:0;width:48px;height:48px}.school-logo-input{cursor:pointer;padding:8px}.school-card h3{color:var(--navy-950);margin:0 0 5px}.school-card p{color:var(--color-text-muted);margin:0 0 4px;font-size:13px}.school-card small{color:var(--color-primary);text-transform:capitalize;font-weight:700}.school-card-content{flex:1;min-width:0}.school-edit-btn{border:1px solid var(--navy-200);color:var(--color-primary-hover);background:var(--navy-50);cursor:pointer;border-radius:7px;align-self:flex-start;padding:6px 9px;font-size:11px;font-weight:700}.school-edit-modal{flex-direction:column;gap:15px;display:flex}.school-edit-modal label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.school-edit-preview{border:1px solid var(--color-border-strong);object-fit:cover;border-radius:14px;width:82px;height:82px}.subject-edit-btn,.subject-delete-btn{cursor:pointer;border-radius:7px;padding:6px 10px;font-size:12px;font-weight:700}.subject-edit-btn{border:1px solid var(--navy-200);color:var(--color-primary-hover);background:var(--navy-50)}.subject-delete-btn{border:1px solid var(--color-danger-border);color:var(--color-danger-text);background:var(--color-danger-soft)}.subject-form{flex-direction:column;gap:16px;display:flex}.subject-form label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.subject-description{resize:vertical;min-height:100px;font-family:inherit}.academic-year-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px;display:grid}.academic-year-card{border:1px solid var(--color-border-strong);background:#fff;border-radius:14px;padding:20px;box-shadow:0 5px 18px #0235690d}.academic-year-card.active{border-color:var(--green-300);box-shadow:0 5px 20px #0389731a}.academic-year-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.academic-year-heading h2{color:var(--navy-950);margin:0 0 4px;font-size:19px}.academic-year-heading span{color:var(--color-text-muted);font-size:12px}.academic-year-heading strong{color:var(--color-success-text);background:var(--green-100);border-radius:999px;padding:5px 8px;font-size:10px}.academic-year-card>p{color:var(--neutral-800);font-size:13px}.academic-session-list{flex-direction:column;gap:7px;margin:12px 0;display:flex}.academic-session-item{border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.academic-session-item.active{border-color:var(--green-300);background:var(--color-success-soft)}.academic-session-item.closed{opacity:.72;background:var(--neutral-100)}.academic-session-item>div:first-child{flex-direction:column;gap:3px;display:flex}.academic-session-item b{color:var(--neutral-900);font-size:12px}.academic-session-item .session-label{color:var(--color-primary-hover);background:var(--navy-100);border-radius:999px;margin-left:7px;padding:2px 6px;font-size:9px;display:inline-flex}.academic-session-item .session-label.final{color:#8a5a00;background:#fdf0d5}.academic-session-item small{color:var(--color-text-muted);font-size:10px}.academic-session-item small.session-classes{color:var(--color-primary-hover);font-weight:700}.academic-session-actions{align-items:center;gap:5px;display:flex}.academic-session-actions button{border:1px solid var(--navy-200);color:var(--color-primary-hover);background:#fff;padding:4px 7px;font-size:10px}.academic-session-actions button.close-session{color:var(--amber-700);border-color:var(--amber-200);background:var(--amber-50)}.academic-session-actions em{color:var(--color-success);font-size:10px;font-style:normal;font-weight:800}.academic-session-actions em.closed{color:var(--color-text-muted)}.year-close-btn{border:1px solid var(--amber-200);color:var(--amber-700);background:var(--amber-50);cursor:pointer;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:700}.year-reopen-btn{border:1px solid var(--neutral-200);color:var(--neutral-700);background:var(--neutral-50);cursor:pointer;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:700}.year-reopen-btn:hover{border-color:var(--neutral-300);color:var(--neutral-900)}.academic-year-actions{gap:8px;display:flex}.academic-year-form{grid-template-columns:1fr 1fr;gap:16px;display:grid}.academic-year-form h2,.academic-year-form .btn-primary,.academic-active-check{grid-column:1/-1}.academic-session-auto-active{color:var(--color-success-text);background:var(--color-success-soft);border-radius:8px;grid-column:1/-1;padding:9px}.academic-session-form{width:min(760px,92vw)}.academic-session-form.awaiting-answer>:not(h2):not(.modal-close):not(.academic-session-question){display:none}.academic-session-question{flex-direction:column;grid-column:1/-1;gap:8px;display:flex}.academic-session-question>b{color:var(--neutral-900);font-size:14px}.academic-session-question>small{color:var(--color-text-muted);line-height:1.45}.academic-session-question>div{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.academic-session-question button{border:1px solid var(--color-border);color:var(--neutral-900);text-align:left;background:#fff;border-radius:9px;flex-direction:column;gap:3px;padding:13px;font-size:13px;font-weight:700;display:flex}.academic-session-question button:hover{border-color:var(--navy-600);background:var(--navy-50)}.academic-session-question button.current{border-color:var(--navy-600);color:var(--color-primary-hover);background:var(--navy-50)}.academic-session-question button small{color:var(--color-text-muted);font-size:9px;font-weight:600}.academic-session-answer{color:var(--color-primary-hover);background:var(--navy-50);border-radius:8px;grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;font-size:12px;display:flex}.academic-session-answer button{border:1px solid var(--navy-200);color:var(--color-primary-hover);cursor:pointer;background:#fff;border-radius:7px;padding:4px 9px;font-size:10px;font-weight:700}@media (width<=650px){.academic-session-question>div{grid-template-columns:1fr}}.academic-session-class-picker{flex-direction:column;grid-column:1/-1;gap:8px;display:flex}.academic-session-class-picker>small{color:var(--color-text-muted)}.academic-session-class-picker>div{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;max-height:260px;display:grid;overflow:auto}.academic-session-class-picker button{border:1px solid var(--color-border);color:var(--neutral-900);text-align:left;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:9px;display:flex}.academic-session-class-picker button.selected{border-color:var(--navy-600);color:var(--color-primary-hover);background:var(--navy-50)}.academic-session-class-picker button.unavailable{opacity:.55;color:var(--color-text-muted);background:var(--neutral-100);cursor:not-allowed}.academic-session-class-picker button>span:last-child{flex-direction:column;flex:1;gap:2px;min-width:0;line-height:1.25;display:flex}.academic-session-class-picker button small{color:var(--amber-700);font-size:9px}.academic-session-class-picker button>span:first-child{border:1px solid var(--neutral-300);border-radius:4px;flex:0 0 18px;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.academic-session-class-picker button.selected>span:first-child{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}.academic-session-class-picker em{color:var(--color-primary-hover);font-size:12px;font-style:normal;font-weight:800}.academic-year-form label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.academic-year-form .academic-active-check{flex-direction:row;align-items:center}@media (width<=650px){.academic-year-form{grid-template-columns:1fr}}.dashboard-academic-banner{border:1px solid var(--navy-200);background:linear-gradient(110deg, var(--navy-50), var(--navy-50));border-radius:13px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:15px 18px;display:flex}.dashboard-academic-banner div{flex-direction:column;gap:3px;display:flex}.dashboard-academic-banner span{color:var(--color-text-muted);text-transform:uppercase;font-size:10px;font-weight:700}.dashboard-academic-banner strong{color:var(--navy-900);font-size:18px}.dashboard-academic-banner small{color:var(--neutral-800);font-weight:600}.page-context{color:var(--color-text-muted);margin:5px 0 0;font-size:13px}.enrollment-form{grid-template-columns:1fr 1fr;gap:16px;display:grid}.enrollment-form h2,.enrollment-form .btn-primary,.enrollment-address{grid-column:1/-1}.guardian-fields{border:1px solid var(--neutral-300);border-radius:10px;grid-column:1/-1;gap:14px;padding:16px;display:grid}.guardian-fields legend{color:var(--navy-900);padding:0 7px;font-weight:700}.guardian-phone-row{grid-template-columns:1fr auto;align-items:end;gap:12px;display:grid}.guardian-phone-row label{flex-direction:column;gap:7px;display:flex}.guardian-found{color:var(--color-success-text);background:var(--color-success-soft);border-radius:8px;flex-wrap:wrap;gap:8px 16px;padding:12px;display:flex}.guardian-manual-fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.guardian-manual-fields p{grid-column:1/-1;margin:0}@media (width<=700px){.guardian-phone-row,.guardian-manual-fields{grid-template-columns:1fr}}.enrollment-form-error{grid-column:1/-1;margin-bottom:0}.enrollment-form label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.enrollment-address textarea{resize:vertical;min-height:80px}.page-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.import-hint{color:var(--color-text-muted);margin:-8px 0 18px;font-size:13px}.form-error{white-space:pre-line}.class-modal{width:min(820px,100vw - 32px);max-height:90vh;overflow-y:auto}.class-subjects{border:1px solid var(--color-border-strong);border-radius:10px;padding:14px}.class-subjects legend{color:var(--neutral-900);padding:0 6px;font-weight:700}.class-subject-row{border-bottom:1px solid var(--neutral-100);padding:10px 0}.class-subject-row:last-child{border-bottom:0}.class-subject-check,.class-option{align-items:center;gap:7px;display:flex}.class-subject-check{color:var(--color-text);font-size:14px;font-weight:700;line-height:1.4}.class-subject-check input{flex:none}.class-subject-settings{grid-template-columns:1fr 1fr auto auto;align-items:end;gap:12px;margin:10px 0 0 24px;display:grid}.class-subject-settings>label{color:var(--neutral-800);font-size:12px}@media (width<=720px){.class-subject-settings{grid-template-columns:1fr 1fr;margin-left:0}}.teacher-unavailability-modal{width:min(900px,100vw - 32px)}.unavailability-row{border-bottom:1px solid var(--color-border-strong);align-items:center;gap:10px;padding:10px 0;display:flex}.unavailability-row .form-select{width:145px}.unavailability-row .form-input{width:125px}.teacher-unavailability-modal>.btn-primary{margin-top:16px}@media (width<=760px){.unavailability-row{flex-wrap:wrap}}.assignment-hours{color:var(--navy-900);background:var(--navy-50);border-radius:8px;padding:10px 12px}.teacher-assignment-modal{width:min(760px,100vw - 32px)}.teacher-class-assignment-list{flex-direction:column;gap:10px;max-height:55vh;display:flex;overflow-y:auto}.teacher-class-assignment{border:1px solid var(--color-border-strong);border-radius:10px;padding:12px}.assignment-subjects{gap:7px;margin:10px 0 0 25px;display:grid}.assignment-subject{color:var(--neutral-900);align-items:center;gap:8px;font-size:13px;display:flex}.assignment-subject.disabled{color:var(--color-danger-text)}.class-size-ok{color:var(--color-success)}.class-size-over{color:var(--color-danger)}.class-row-inactive{background:var(--color-surface-sunken);color:var(--neutral-400)}.class-status-toggle{cursor:pointer;white-space:nowrap;font:inherit;background:0 0;border:0;align-items:center;gap:8px;padding:3px;display:inline-flex}.class-status-track{background:var(--neutral-300);border-radius:999px;width:38px;height:22px;transition:background-color .2s;position:relative}.class-status-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #02356940}.class-status-toggle.is-active .class-status-track{background:var(--green-500)}.class-status-toggle.is-active .class-status-thumb{transform:translate(16px)}.class-status-toggle:focus-visible{outline-offset:2px;border-radius:8px;outline:3px solid #02356940}.class-status-toggle:disabled{opacity:.55;cursor:wait}.class-status-active{color:var(--color-success);font-weight:600}.class-status-inactive{color:var(--color-text-muted);font-weight:600}.classes-page{width:100%;min-width:0;max-width:1400px;margin-left:auto;margin-right:auto}.class-name-cell{white-space:nowrap;min-width:135px}.classes-table-wrap{overscroll-behavior-inline:contain;scrollbar-gutter:stable;width:100%;max-width:100%;overflow-x:auto}.classes-table{min-width:1080px}.classes-table th,.classes-table td{padding:13px 12px}.classes-table th:first-child{min-width:135px}.classes-table th:nth-child(6){min-width:105px}.classes-table th:nth-child(7){min-width:130px}.classes-table th:nth-child(9){min-width:120px}.classes-table th:last-child{min-width:205px}.classes-page .actions-cell{flex-wrap:wrap;gap:6px;min-width:205px}.classes-page .actions-cell button{min-height:32px}.classes-page .actions-cell button:disabled{opacity:.45;cursor:not-allowed}.classes-page .class-row-inactive:hover td{background:var(--neutral-100)}.students-page{width:100%;max-width:1400px;margin-left:auto;margin-right:auto}.enrollments-page{max-width:1400px}.enrollments-page .teachers-table-wrap{overflow-x:auto}.enrollments-page .teachers-table{min-width:1180px}.enrollments-page .teachers-table th:last-child,.enrollments-page .teachers-table td:last-child{z-index:2;background:#fff;padding-right:20px;position:sticky;right:0;box-shadow:-8px 0 12px -12px #02356973}.enrollments-page .teachers-table th:last-child{z-index:3}.enrollments-page .teachers-table tbody tr:hover td:last-child{background:var(--navy-50)}.student-filters{grid-template-columns:1.4fr repeat(5,1fr);gap:10px;margin-bottom:18px;display:grid}.student-profile-card{padding:24px;display:block}.students-page .teachers-table-wrap{overflow-x:auto}.students-page .teachers-table{min-width:1220px}.students-page .teachers-table th:last-child,.students-page .teachers-table td:last-child{z-index:2;background:#fff;min-width:230px;position:sticky;right:0;box-shadow:-8px 0 12px -12px #02356973}.students-page .teachers-table th:last-child{z-index:3}.students-page .actions-cell{white-space:nowrap;flex-wrap:nowrap}.students-page .action-btn{width:auto;min-width:58px;padding:0 9px}.students-page .teachers-table tbody tr:hover td:last-child{background:var(--navy-50)}.student-status-badge{white-space:nowrap;border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.student-status-nouveau{color:var(--color-success-text);background:var(--green-100)}.student-status-redoublant{color:var(--color-warning-text);background:var(--amber-100)}.student-status-abandon{color:var(--red-800);background:var(--red-100)}.student-status-bachelier{color:var(--navy-800);background:var(--navy-50)}.assignment-explanation{border:1px solid var(--navy-200);color:var(--navy-900);background:var(--navy-50);border-radius:10px;margin:-8px 0 20px;padding:14px 16px;line-height:1.5}.assignment-result{border:1px solid var(--color-success-border);color:var(--color-success-text);background:var(--color-success-soft);border-radius:10px;margin-bottom:16px;padding:14px 16px}.assignment-result p{color:var(--color-warning-text);margin:7px 0 0}.assignment-summary{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:18px;display:grid}.assignment-summary-card{border:1px solid var(--color-border-strong);background:#fff;border-radius:10px;flex-direction:column;gap:5px;padding:14px;display:flex}.assignment-summary-card span{color:var(--color-text-muted);font-size:13px}.assignment-summary-card ul{color:var(--neutral-900);margin:5px 0 0;padding-left:18px;font-size:13px}.unassigned-table-wrap{overflow-x:auto}.unassigned-table-wrap .teachers-table{min-width:900px}@media (width<=900px){.students-page{width:100%;margin-left:0}.student-filters{grid-template-columns:1fr 1fr}.classes-page{width:100%;margin-left:0}}.teacher-full-details{width:min(880px,100vw - 32px)}.teacher-detail-summary{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.teacher-detail-summary>div{background:var(--color-surface-sunken);border-radius:9px;padding:12px}.teacher-detail-summary span{color:var(--color-text-muted);margin-bottom:5px;font-size:11px;display:block}.teacher-detail-summary strong{color:var(--color-text);overflow-wrap:anywhere;font-size:13px}.teacher-detail-section{margin-top:20px}.teacher-detail-section h3{color:var(--navy-950);margin:0 0 9px;font-size:15px}.teacher-detail-section p,.teacher-detail-section li{color:var(--neutral-800);font-size:13px}.teacher-assigned-class-list{gap:8px;display:grid}.teacher-assigned-class{border:1px solid var(--color-border-strong);color:var(--neutral-800);border-radius:9px;grid-template-columns:130px 1fr 100px;gap:12px;padding:11px 13px;font-size:13px;display:grid}@media (width<=720px){.teacher-detail-summary{grid-template-columns:1fr 1fr}.teacher-assigned-class{grid-template-columns:1fr}}.level-badge{color:var(--color-primary-hover);background:var(--navy-50);border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-block}@media (width<=650px){.enrollment-form{grid-template-columns:1fr}}.school-panel{border:1px solid var(--color-border-strong);background:#fff;border-radius:14px;margin-top:20px;padding:24px}.school-panel h2{color:var(--navy-950);margin:0 0 20px;font-size:18px}.school-form{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.school-form label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.school-form .btn-primary{align-self:end}@media (width<=700px){.school-form{grid-template-columns:1fr}}.owners-empty{color:var(--color-text-muted);margin:0;font-size:14px}.owners-table{border-collapse:collapse;width:100%;font-size:14px}.owners-table th{border-bottom:1px solid var(--color-border-strong);color:var(--neutral-800);text-align:left;padding:10px 12px;font-size:13px}.owners-table td{border-bottom:1px solid var(--neutral-100);color:var(--navy-950);padding:12px}.owners-table tr:last-child td{border-bottom:none}.owners-actions{gap:8px;display:flex}.owner-archive-btn{border:1px solid var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger-text);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600}.owner-archive-btn:hover{background:var(--red-100)}@media (width<=700px){.owners-table{display:block;overflow-x:auto}}.parents-empty{color:var(--color-text-muted);margin:0;font-size:14px}.parents-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-top:20px;display:grid}.parents-stat{border:1px solid var(--color-border-strong);background:#fff;border-radius:14px;flex-direction:column;gap:6px;padding:18px;display:flex}.parents-stat-value{color:var(--navy-950);font-size:24px;font-weight:700}.parents-stat-label{color:var(--color-text-muted);font-size:13px}.parents-toolbar{margin-top:20px}.parents-toolbar .form-input{max-width:420px}.parents-table,.reportcards-table{border-collapse:collapse;width:100%;margin-top:16px;font-size:14px}.parents-table th,.reportcards-table th{border-bottom:1px solid var(--color-border-strong);color:var(--neutral-800);text-align:left;padding:10px 12px;font-size:13px}.parents-table td,.reportcards-table td{border-bottom:1px solid var(--neutral-100);color:var(--navy-950);padding:12px}.parents-table tr:last-child td,.reportcards-table tr:last-child td{border-bottom:none}.parents-details{grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0;display:grid}.parents-details dt{color:var(--color-text-muted);font-size:12px;font-weight:600}.parents-details dd{color:var(--navy-950);margin:2px 0 0;font-size:14px}.parents-children-title{color:var(--navy-950);margin:18px 0 0;font-size:15px}.timetable-badge{border-radius:999px;margin-left:12px;padding:4px 12px;font-size:12px;font-weight:600}.timetable-badge.is-draft{background:var(--amber-100);color:var(--color-warning-text)}.timetable-badge.is-validated{background:var(--green-100);color:var(--color-success-text)}.timetable-tabs{border-bottom:1px solid var(--color-border-strong);gap:8px;margin-top:18px;display:flex}.timetable-tab{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 18px;font-size:14px;font-weight:600}.timetable-tab.active{border-bottom-color:var(--color-primary);color:var(--navy-950)}.timetable-warning{border:1px solid var(--amber-200);background:var(--color-warning-soft);color:var(--color-warning-text);border-radius:10px;margin-top:14px;padding:12px 16px;font-size:14px}.timetable-options{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:16px;display:grid}.timetable-option{color:var(--navy-950);align-items:start;gap:10px;font-size:14px;display:flex}.timetable-option input{margin-top:3px}.timetable-option span{flex-direction:column;gap:2px;display:flex}.timetable-option small{color:var(--color-text-muted);font-size:12px}.timetable-days{max-width:200px;color:var(--neutral-800);flex-direction:column;gap:7px;margin-top:18px;font-size:13px;font-weight:600;display:flex}.timetable-subtitle{color:var(--navy-950);margin:24px 0 4px;font-size:15px}.timetable-diagnostic{opacity:.85;margin:8px 0 0;font-size:13px}.timetable-relaxed-list{margin:6px 0 0;padding-left:20px;font-size:13px;line-height:1.55}.timetable-relaxed-list li{margin-bottom:3px}.timetable-export{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:28px;display:grid}.timetable-export-block{min-width:0}.timetable-export-block .timetable-subtitle{margin-top:8px}.timetable-export-block .timetable-options{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px 12px;max-height:260px;margin-top:10px;padding-right:4px;overflow-y:auto}.timetable-export-block .timetable-option{align-items:center;font-size:13px}.timetable-export-block .timetable-option input{margin-top:0}.timetable-export-block .timetable-actions{margin-top:14px}.subject-filter{max-width:220px;margin-left:12px}.subject-category-row{align-items:center;gap:8px;display:flex}.subject-category-row .form-select{flex:1}.subject-category-row .subject-edit-btn{white-space:nowrap}.subject-modal-stacked{z-index:1100}.subject-category-modal{max-width:460px}.timetable-group-input{max-width:90px}.timetable-group-builder{border-top:1px solid var(--color-border-strong);margin-top:18px;padding-top:18px}.timetable-group-builder>label{max-width:320px;color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.timetable-group-builder .btn-primary{margin-top:14px}.timetable-option.is-blocked{opacity:.4}.timetable-shared{color:var(--navy-700);font-size:11px;font-weight:600}.timetable-break-row .timetable-time{background:var(--neutral-100)}.timetable-break-cell{background:var(--color-surface-sunken);color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.timetable-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-top:20px;display:flex}.timetable-toolbar label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.timetable-actions{flex-wrap:wrap;gap:8px;display:flex}.timetable-hint{color:var(--color-success-text);margin:14px 0 0;font-size:13px}.reportcard-issued-on{border:1px solid var(--color-border);background:var(--color-surface-muted,#f8fafc);border-radius:9px;grid-template-columns:auto 190px;align-items:center;gap:6px 12px;width:fit-content;margin:14px 0 0;padding:11px 13px;display:grid}.reportcard-issued-on>span{color:var(--neutral-900);font-size:13px;font-weight:700}.reportcard-issued-on>small{max-width:520px;color:var(--color-text-muted);grid-column:1/-1;font-size:11px;line-height:1.45}.reportcard-issued-on .form-input{margin:0}.year-end-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.year-end-panel .owners-table td{vertical-align:middle}.year-end-exam{width:110px;margin:0;padding:6px 9px}.year-end-pass{color:var(--color-success-text)}.year-end-fail{color:var(--amber-700)}.year-end-pending{color:var(--color-text-muted);font-size:11px;font-style:normal}.exam-status{margin-top:3px;font-size:10px;display:block}.exam-status.pending,.exam-status.saving{color:var(--color-text-muted)}.exam-status.saved{color:var(--color-success-text)}.exam-status.error{color:var(--amber-700);font-weight:700}.threshold-modal{width:min(720px,94vw);max-height:88vh;overflow:auto}.threshold-modal .grade-sheet-wrap{margin:14px 0}.threshold-modal .form-input{margin:0}.timetable-option .signatory-name{color:var(--color-primary-hover)}.timetable-option .signatory-vacant{color:var(--amber-700)}.timetable-grid-wrapper{margin-top:18px;overflow-x:auto}.timetable-grid{border-collapse:collapse;width:100%;min-width:720px;font-size:13px}.timetable-grid th,.timetable-grid td{border:1px solid var(--color-border-strong);text-align:center;vertical-align:middle;padding:8px}.timetable-grid thead th{background:var(--color-surface-sunken);color:var(--neutral-800);font-size:13px}.timetable-time{background:var(--color-surface-sunken);width:84px;color:var(--neutral-800);white-space:nowrap;font-weight:600}.timetable-slot{flex-direction:column;gap:2px;display:flex}.timetable-subject{color:var(--navy-950);font-weight:600}.timetable-teacher{color:var(--color-text-muted);font-size:12px}.timetable-free{color:var(--neutral-300)}.reportcards-toolbar{flex-wrap:wrap;align-items:end;gap:16px;display:flex}.reportcards-toolbar label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:600;display:flex}.reportcards-pass{color:var(--color-success-text);font-weight:600}.reportcards-fail{color:var(--color-danger-text);font-weight:600}.reportcard-modal{max-width:560px}.reportcard-meta{color:var(--color-text-muted);margin:0 0 12px;font-size:13px}.reportcards-table tfoot th{border-top:2px solid var(--color-border-strong);color:var(--navy-950);font-size:14px}@media (width<=700px){.parents-details{grid-template-columns:1fr}.parents-table,.reportcards-table{display:block;overflow-x:auto}}.view-btn:hover{color:var(--navy-600);border-color:var(--navy-600)}.edit-btn:hover{color:var(--green-500);border-color:var(--green-500)}.delete-btn:hover{color:var(--red-500);border-color:var(--red-500)}.teachers-table-wrap{border:1px solid var(--color-border-strong);background:#fff;border-radius:12px;overflow:hidden}.teachers-table{border-collapse:collapse;width:100%;font-size:14px}.teachers-table thead tr{border-bottom:1px solid var(--color-border-strong);background:#fff}.teachers-table th{text-align:left;color:var(--neutral-800);padding:14px 18px;font-size:13px;font-weight:600}.teachers-table td{color:var(--neutral-800);vertical-align:middle;padding:14px 18px}.teachers-table tr.row-alt td{background:var(--navy-50)}.teachers-table tbody tr:hover td{background:var(--navy-50);cursor:pointer;transition:background .15s}.teacher-name-cell{color:var(--color-text);align-items:center;gap:10px;font-weight:500;display:flex}.teacher-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:flex}.btn-back{color:var(--neutral-800);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:14px;font-weight:500;display:flex}.btn-back:hover{color:var(--color-text)}.detail-card{background:#fff;border-radius:16px;align-items:flex-start;gap:64px;margin-top:8px;padding:48px 56px;display:flex;box-shadow:0 1px 4px #0235690f,0 0 0 1px #0235690a}.detail-left{text-align:center;flex-direction:column;align-items:center;min-width:180px;display:flex}.detail-avatar-wrap{margin-bottom:20px}.detail-avatar{border-radius:50%;justify-content:center;align-items:center;width:140px;height:140px;font-size:36px;font-weight:800;display:flex}.detail-name{color:var(--color-text);margin:0 0 4px;font-size:18px;font-weight:700}.detail-designation{color:var(--color-text-muted);margin:0 0 24px;font-size:13px}.detail-actions{gap:12px;display:flex}.detail-icon-btn{border:1px solid var(--color-border-strong);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;transition:background .15s,border-color .15s;display:flex}.detail-icon-btn:hover{background:var(--neutral-100);border-color:var(--neutral-300)}.detail-right{flex:1}.detail-section-title{color:var(--color-text);margin:0 0 10px;font-size:15px;font-weight:600}.detail-about{color:var(--color-text-muted);margin:0 0 28px;font-size:14px;line-height:1.75}.detail-meta{gap:48px;margin-bottom:28px;display:flex}.detail-meta-label{color:var(--neutral-800);margin:0 0 4px;font-size:13px;font-weight:600}.detail-meta-value{color:var(--color-text-muted);margin:0;font-size:14px}.same-class-avatars{align-items:center;margin-top:10px;display:flex}.same-class-avatar{cursor:pointer;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:11px;font-weight:700;display:flex;position:relative}.same-class-more{color:var(--color-primary);margin-left:10px;font-size:13px;font-weight:500}.db-root{flex-direction:column;gap:24px;padding-bottom:32px;display:flex}.db-stats{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.db-stat-card{border-radius:16px;flex-direction:column;gap:8px;padding:20px 24px 24px;display:flex}.db-stat-top{justify-content:space-between;align-items:center;display:flex}.db-trend{background:#fff;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700}.db-trend.up{color:var(--green-600)}.db-trend.down{color:var(--red-500)}.db-dots{color:var(--neutral-400);cursor:pointer;letter-spacing:1px;font-size:18px}.db-stat-value{color:var(--color-text);letter-spacing:-1px;font-size:32px;font-weight:800}.db-stat-label{color:var(--color-text-muted);font-size:14px;font-weight:500}.db-middle{grid-template-columns:220px 1fr 280px;align-items:start;gap:16px;display:grid}.db-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 4px #0235690d}.db-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.db-card-title{color:var(--color-text);font-size:16px;font-weight:700}.db-students{flex-direction:column;align-items:center;display:flex}.db-donut-wrap{margin:8px 0}.db-donut-legend{justify-content:center;gap:20px;width:100%;margin-top:8px;display:flex}.db-legend-item{align-items:center;gap:8px;display:flex}.db-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.db-legend-val{color:var(--color-text);font-size:15px;font-weight:700}.db-legend-sub{color:var(--neutral-400);font-size:12px}.db-attendance .db-card-header{margin-bottom:8px}.db-legend-row{color:var(--color-text-muted);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.db-legend-text{margin-right:8px}.db-select{border:1px solid var(--color-border-strong);color:var(--neutral-800);cursor:pointer;background:#fff;border-radius:8px;outline:none;padding:5px 10px;font-size:13px}.db-right-col{flex-direction:column;gap:16px;display:flex}.db-calendar{padding:16px}.db-cal-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.db-cal-title{color:var(--color-text);font-size:15px;font-weight:700}.db-cal-nav{border:1px solid var(--color-border-strong);cursor:pointer;width:28px;height:28px;color:var(--neutral-800);background:#fff;border-radius:8px;justify-content:center;align-items:center;font-size:16px;transition:background .15s;display:flex}.db-cal-nav:hover{background:var(--neutral-100)}.db-cal-days-label{text-align:center;color:var(--neutral-400);grid-template-columns:repeat(7,1fr);margin-bottom:6px;font-size:11px;font-weight:600;display:grid}.db-cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.db-cal-day{color:var(--neutral-800);cursor:pointer;border-radius:6px;padding:5px 2px;font-size:12px;transition:background .15s}.db-cal-day:hover{background:var(--neutral-100)}.db-cal-day.today{background:var(--color-primary);color:#fff;border-radius:8px;font-weight:700}.db-agenda-list{flex-direction:column;gap:10px;display:flex}.db-agenda-item{border-radius:10px;align-items:flex-start;gap:14px;padding:12px 14px;display:flex}.db-agenda-time{color:var(--color-text-muted);white-space:nowrap;min-width:68px;padding-top:2px;font-size:12px}.db-agenda-grade{color:var(--neutral-400);margin-bottom:2px;font-size:11px}.db-agenda-title{color:var(--color-text);font-size:13px;font-weight:600}.db-messages{margin-top:0}.db-view-all{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:500}.db-msg-list{flex-direction:column;gap:16px;display:flex}.db-msg-item{align-items:flex-start;gap:14px;display:flex}.db-msg-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:700;display:flex}.db-msg-body{flex:1}.db-msg-top{justify-content:space-between;margin-bottom:3px;display:flex}.db-msg-name{color:var(--color-text);font-size:14px;font-weight:600}.db-msg-time{color:var(--neutral-400);font-size:12px}.db-msg-text{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.5}.reportcard-row-actions{flex-wrap:wrap;gap:6px;display:flex}.modal-backdrop{z-index:60;background:#02356973;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:14px;width:min(640px,100%);max-height:85vh;padding:22px;overflow-y:auto;box-shadow:0 20px 50px #02356940}.modal-card h2{color:var(--navy-950);margin:0 0 4px;font-size:18px}.modal-card .owners-table{margin-top:12px}.category-order-rule{border:1px solid var(--color-border);background:var(--color-surface-sunken);border-radius:10px;margin-top:14px;padding:14px}.category-order-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.category-order-head .form-input{max-width:220px}.category-order-head .form-select{max-width:200px}.category-order-classes{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px 10px;max-height:180px;margin-top:10px;overflow-y:auto}.category-order-list{flex-direction:column;gap:5px;margin:12px 0 0;padding-left:22px;display:flex}.category-order-list li{color:var(--navy-950);justify-content:space-between;align-items:center;gap:10px;font-size:13.5px;font-weight:600;display:flex}.category-order-actions{gap:4px;display:flex}.category-order-actions .school-edit-btn{padding:2px 9px;font-size:13px}.template-choices{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:16px;display:grid}.template-choice{border:2px solid var(--color-border);background:var(--color-surface-sunken);cursor:pointer;border-radius:12px;padding:14px;transition:border-color .15s,box-shadow .15s}.template-choice:hover{border-color:var(--navy-200)}.template-choice.active{border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 3px #0235691f}.template-choice-head{align-items:flex-start;gap:10px;display:flex}.template-choice-head input{margin-top:3px}.template-choice-head strong{color:var(--navy-950);font-size:15px;display:block}.template-choice-head small{color:var(--color-text-muted);margin-top:3px;font-size:12.5px;line-height:1.45;display:block}.template-choice-points{color:var(--neutral-800);margin:10px 0 0;padding-left:18px;font-size:12.5px;line-height:1.6}.template-preview{border:1px solid var(--color-border);color:var(--navy-950);pointer-events:none;-webkit-user-select:none;user-select:none;background:#fff;border-radius:8px;flex-direction:column;margin-top:12px;padding:10px;font-size:7px;line-height:1.35;display:flex}.template-preview>*{flex:none}.tp-head{align-items:flex-start;gap:8px;display:flex}.tp-head .tp-state{flex-direction:column;flex:1;align-items:center;gap:3px;display:flex}.tp-state span,.tp-state b{background:var(--neutral-300);border-radius:2px;width:82%;height:3px;display:block}.tp-state b{background:var(--neutral-400);height:5px}.tp-right span,.tp-right b{width:70%}.tp-logo{border:1px dashed var(--neutral-400);border-radius:50%;flex:none;width:22px;height:22px}.tp-head-official .tp-school{text-align:center;letter-spacing:.4px;flex:1;font-size:11px;font-weight:700}.tp-identity{gap:6px;margin:8px 0;display:flex}.tp-identity>div{border:1px solid var(--neutral-300);flex-direction:column;flex:1;gap:4px;padding:5px;display:flex}.tp-identity span{background:var(--color-border-strong);border-radius:2px;height:3px;display:block}.tp-title{text-align:center;letter-spacing:.3px;margin:6px 0;font-size:11px;font-weight:700}.tp-title small{letter-spacing:0;font-size:7px;font-style:italic;font-weight:600;display:block}.tp-title-row{align-items:center;gap:8px;margin:6px 0 4px;display:flex}.tp-title-row .tp-title{flex:1;margin:0;padding-left:26%}.tp-facts{flex-direction:column;flex:none;gap:2px;width:34%;display:flex}.tp-facts span{font-weight:600}.tp-facts b{border:1px solid var(--neutral-400);padding:1px 3px;font-weight:600}.tp-name{justify-content:space-between;padding:0 10px 4px;font-size:9px;display:flex}.tp-table{border-collapse:collapse;width:100%}.tp-table th,.tp-table td{border:1px solid var(--neutral-400);text-align:center;padding:2px 3px}.tp-table th{background:var(--color-border);font-size:6px;font-weight:700}.tp-table td:first-child,.tp-table th:first-child{text-align:left}.tp-table .tp-group td{background:var(--color-border);text-align:left;font-weight:700}.tp-table .tp-total td{background:var(--color-border);font-weight:700}.tp-table-dense th,.tp-table-dense td{padding:1.5px 2px;font-size:6px}.tp-summary{gap:6px;margin-top:8px;display:flex}.tp-summary>div{border:1px solid var(--neutral-400);flex:1;justify-content:space-between;padding:3px 5px;display:flex}.tp-recap{gap:6px;margin-top:6px;display:flex}.tp-recap>div{flex-direction:column;flex:1;display:flex}.tp-recap span{border:1px solid var(--neutral-400);margin-top:-1px;padding:2px 3px}.tp-decision{border:1px solid var(--neutral-400);text-align:center;margin-top:6px;padding:4px;font-weight:700}.tp-footer{justify-content:space-between;margin-top:8px;font-weight:600;display:flex}.tp-footer div{padding-top:6px}.reportcard-defaults-note{border:1px solid var(--amber-200);border-left:4px solid var(--color-warning);background:var(--color-warning-soft);color:var(--amber-900);border-radius:8px;margin:0 0 16px;padding:12px 14px;font-size:13px;line-height:1.55}.layout-choices{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px;display:grid}.layout-choice{border:2px solid var(--color-border);background:var(--color-surface-sunken);cursor:pointer;border-radius:10px;padding:12px;transition:border-color .15s,box-shadow .15s}.layout-choice:hover{border-color:var(--navy-200)}.layout-choice.active{border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 3px #0235691f}.layout-choice.disabled{opacity:.6;cursor:not-allowed}.layout-choice small{color:var(--color-text-muted);margin-top:8px;font-size:11.5px;line-height:1.5;display:block}.layout-choice-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.layout-choice-head input{accent-color:var(--color-primary);pointer-events:none;margin:0}.layout-choice-head strong{color:var(--navy-950);font-size:13.5px}.layout-preview{width:100%}.watermark-choices{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:16px;display:grid}.watermark-choice{border:2px solid var(--color-border);background:var(--color-surface-sunken);cursor:pointer;text-align:center;border-radius:10px;padding:10px;transition:border-color .15s,box-shadow .15s}.watermark-choice:hover{border-color:var(--navy-200)}.watermark-choice.active{border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 3px #0235691f}.watermark-choice.disabled{opacity:.55;cursor:not-allowed}.watermark-choice strong{color:var(--navy-950);font-size:13.5px}.watermark-choice small{color:var(--color-text-muted);margin-top:3px;font-size:11.5px;line-height:1.45;display:block}.watermark-choice-name{justify-content:center;align-items:center;gap:7px;margin-top:8px;display:flex}.watermark-choice-name input{accent-color:var(--color-primary);pointer-events:none;margin:0}.watermark-result{border-top:1px dashed var(--color-border-strong);max-width:260px;margin-top:18px;padding-top:14px}.watermark-result strong{color:var(--navy-950);margin-bottom:8px;font-size:13px;display:block}.watermark-result small{color:var(--color-text-muted);margin-top:6px;font-size:11.5px;line-height:1.45;display:block}.wm-preview{border:1px solid var(--color-border);background:#fff;border-radius:6px;height:104px;position:relative;overflow:hidden}.wm-sheet{flex-direction:column;gap:7px;padding:14px 12px;display:flex;position:relative}.wm-sheet span{background:var(--neutral-300);border-radius:2px;height:4px}.wm-sheet span:first-child{background:var(--neutral-400);width:62%;height:5px;margin:0 auto 4px}.wm-sheet span:nth-child(3){width:88%}.wm-sheet span:nth-child(4){width:70%}.wm-tiles{flex-direction:column;justify-content:space-between;padding:2px 0;display:flex;position:absolute;inset:0;overflow:hidden}.wm-tile-row{white-space:nowrap;color:#02356929;letter-spacing:.2px;gap:10px;font-size:5.5px;font-weight:700;display:flex}.wm-tile-row:nth-child(2n){transform:translate(-14%)}.wm-tiles-pleine .wm-tile-row{color:#02356924;gap:6px;font-size:4.4px}.wm-tiles-max .wm-tile-row{color:#0235691f;gap:3px;font-size:3.4px}.wm-band{white-space:nowrap;color:#02356924;letter-spacing:.5px;font-size:12px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-35deg)}.wm-logo-mark{border:3px dashed #02356929;border-radius:50%;width:62px;height:62px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.watermark-source{max-width:320px;color:var(--neutral-800);flex-direction:column;gap:6px;margin-top:18px;font-size:13px;font-weight:600;display:flex}.watermark-source small{color:var(--color-text-muted);font-size:12px;font-weight:500}.assignment-rules-card{width:min(680px,100%)}.assignment-rules-intro{color:var(--color-text-muted);margin:0 0 16px;font-size:13px}.assignment-rule{border-top:1px solid var(--color-border);align-items:flex-start;gap:10px;padding:11px 0;display:flex}.assignment-rule input{width:16px;height:16px;accent-color:var(--navy-800);flex:none;margin-top:3px}.assignment-rule span{color:var(--color-text-muted);flex-direction:column;gap:3px;font-size:12.5px;line-height:1.45;display:flex}.assignment-rule strong{color:var(--navy-950);font-size:13.5px}.assignment-rule input:disabled+span{opacity:.75}.assignment-rule-numbers{border-top:1px solid var(--color-border);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-top:16px;padding-top:16px;display:grid}.assignment-rule-numbers label{color:var(--navy-950);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.assignment-rule-numbers small{color:var(--color-text-muted);font-size:11.5px;font-weight:500;line-height:1.4}.assignment-rules-readonly{color:var(--color-text-muted);margin:12px 0 0;font-size:12.5px}.assignment-girls{color:var(--color-text-muted)}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.assignment-bands{border:1px solid var(--navy-200);background:var(--navy-50);border-radius:10px;margin:0 0 16px;padding:13px 15px}.assignment-bands p{color:var(--navy-900);margin:0 0 9px;font-size:13px}.assignment-bands-table{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;margin-bottom:11px;overflow:hidden}.assignment-bands-table th,.assignment-bands-table td{text-align:right;padding:6px 9px;font-size:12.5px}.assignment-bands-table th:first-child,.assignment-bands-table td:first-child{text-align:left}.assignment-bands-table thead th{color:var(--color-text-muted);border-bottom:1px solid var(--color-border);font-size:11px;font-weight:600}.assignment-bands-table tbody td{color:var(--navy-950);border-bottom:1px solid var(--color-border)}.assignment-bands-table tfoot td{color:var(--color-text-muted);font-size:11.5px;font-weight:600}.assignment-bands-table .band-empty{color:var(--neutral-400)}.assignment-bands-table tbody td>span{display:block}.band-limit{border:1px solid var(--color-border-strong);width:100%;max-width:58px;color:var(--navy-900);background:var(--navy-50);text-align:right;border-radius:5px;margin-top:3px;margin-left:auto;padding:2px 5px;font-size:11.5px}.band-limit:disabled{color:var(--neutral-500);background:var(--neutral-50)}.assignment-bands>small{margin-top:7px;display:block}.assignment-bands small{color:var(--color-text-muted);font-size:11.5px;line-height:1.45}.average-source{color:var(--color-text-muted);font-size:11px;font-weight:500;display:block}.sidebar{border-right:1px solid var(--color-border);background:#fff;flex-direction:column;flex-shrink:0;width:240px;height:100vh;display:flex;overflow:hidden}.sidebar-logo{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;padding:14px 16px;display:flex}.sidebar-logo-img{width:auto;max-width:100%;height:34px;display:block}.sidebar-school-switcher{border-bottom:1px solid var(--color-border);background:var(--color-surface-sunken);padding:10px 12px}.sidebar-school-switcher label{color:var(--neutral-400);letter-spacing:.5px;text-transform:uppercase;margin-bottom:3px;font-size:9px;font-weight:700;display:block}.sidebar-school-switcher .academic-year-label{margin-top:8px}.sidebar-school-switcher select{border:1px solid var(--color-border-strong);width:100%;color:var(--navy-900);text-overflow:ellipsis;background:#fff;border-radius:7px;max-width:100%;padding:6px 8px;font-size:12px;font-weight:600}.sidebar-school-switcher select:focus{border-color:var(--navy-300);outline:none;box-shadow:0 0 0 2px #0235691a}.sidebar-school-switcher span{color:var(--neutral-400);font-size:12px}.sidebar-scroll{scrollbar-width:none;flex:1;padding:10px 10px 20px;overflow-y:auto}.sidebar-scroll::-webkit-scrollbar{display:none}.sidebar-section-label{color:var(--neutral-400);letter-spacing:.9px;margin:0 0 5px 10px;font-size:9px;font-weight:700}.sidebar-section-label.is-spaced{margin-top:16px}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.nav-btn{cursor:pointer;width:100%;color:var(--color-text-muted);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;padding:7px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-btn:hover{background:var(--color-surface-sunken);color:var(--color-text)}.nav-btn.active{background:var(--navy-50);color:var(--color-primary-hover);font-weight:600}.nav-icon{opacity:.9;flex-shrink:0;justify-content:center;align-items:center;width:18px;display:flex}.nav-btn.active .nav-icon{opacity:1}.nav-icon svg{width:16px;height:16px}.nav-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.nav-chevron{flex-shrink:0;transition:transform .2s}.nav-chevron.open{transform:rotate(180deg)}.nav-submenu{border-left:1.5px solid var(--color-border);flex-direction:column;gap:1px;margin-top:2px;margin-bottom:2px;margin-left:19px;padding-left:10px;display:flex}.nav-sub-item{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:7px;padding:6px 9px;font-size:12.5px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;overflow:hidden}.nav-sub-item:hover{background:var(--color-surface-sunken);color:var(--color-text)}.nav-sub-item.active{color:var(--color-primary-hover);background:0 0;font-weight:600}.nav-logout{color:var(--red-500);border-top:1px solid var(--color-border);border-radius:0 0 8px 8px;margin-top:8px;padding-top:12px}.nav-logout:hover{background:var(--color-danger-soft);color:var(--color-danger)}.topbar{border-bottom:1px solid var(--color-border);background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:12px 28px;display:flex}.topbar-search{background:var(--color-surface-sunken);border:1px solid var(--color-border-strong);border-radius:20px;align-items:center;gap:10px;width:220px;padding:8px 16px;transition:border-color .15s;display:flex}.topbar-search:focus-within{border-color:var(--color-primary);background:#fff}.topbar-search-input{color:var(--neutral-800);background:0 0;border:none;outline:none;width:100%;font-size:13px}.topbar-search-input::placeholder{color:var(--neutral-400)}.topbar-right{align-items:center;gap:6px;display:flex}.school-selector{border:1px solid var(--color-border);max-width:210px;color:var(--navy-900);background:var(--color-surface-sunken);border-radius:9px;outline:none;padding:8px 30px 8px 11px;font-size:13px;font-weight:600}.topbar-academic-year{border:1px solid var(--navy-100);background:var(--navy-50);border-radius:9px;flex-direction:column;padding:6px 11px;line-height:1.15;display:flex}.topbar-academic-year span{color:var(--color-text-muted);text-transform:uppercase;font-size:9px;font-weight:700}.topbar-academic-year strong{color:var(--color-primary-hover);margin-top:3px;font-size:12px}.topbar-academic-session{border:1px solid var(--color-success-border);background:var(--color-success-soft);border-radius:9px;flex-direction:column;padding:6px 11px;line-height:1.15;display:flex}.topbar-academic-session span{color:var(--color-text-muted);text-transform:uppercase;font-size:9px;font-weight:700}.topbar-academic-session strong{color:var(--color-success);margin-top:3px;font-size:12px}.topbar-icon-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex;position:relative}.topbar-icon-btn:hover{background:var(--color-surface-sunken)}.topbar-bell-dot{background:var(--red-500);border:1.5px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.topbar-divider{background:var(--color-border-strong);width:1px;height:28px;margin:0 10px}.topbar-user{align-items:center;gap:12px;display:flex}.topbar-user-info{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.topbar-user-name{color:var(--color-text);white-space:nowrap;font-size:14px;font-weight:600}.topbar-user-role{color:var(--neutral-400);font-size:11px;font-weight:400}.topbar-avatar{background:linear-gradient(135deg, var(--navy-600), var(--navy-400));color:#fff;cursor:pointer;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:13px;font-weight:700;transition:transform .15s;display:flex;box-shadow:0 2px 8px #0235694d}.topbar-avatar:hover{transform:scale(1.06)}.att-filters{align-items:center;gap:10px;display:flex}.att-select-wrap{border:1px solid var(--color-border-strong);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;display:flex}.att-select{border:1px solid var(--color-border-strong);color:var(--neutral-800);-webkit-appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 10px center no-repeat;border-radius:8px;outline:none;padding:6px 28px 6px 10px;font-size:13px}.att-select-wrap .att-select{background:0 0;border:none;padding:0;font-size:13px}.att-table-wrap{border:1px solid var(--color-border-strong);background:#fff;border-radius:12px;overflow:hidden}.att-table{border-collapse:collapse;width:100%}.att-th-name{text-align:left;color:var(--neutral-800);background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border-strong);min-width:180px;padding:14px 20px;font-size:13px;font-weight:600}.att-th-day{text-align:center;color:var(--neutral-800);background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border-strong);min-width:44px;padding:14px 8px;font-size:13px;font-weight:600}.att-td-name{color:var(--color-text);border-bottom:1px solid var(--color-border);padding:14px 20px;font-size:14px;font-weight:500}.att-td-day{text-align:center;border-bottom:1px solid var(--color-border);vertical-align:middle;padding:10px 8px}.att-table tbody tr:last-child td{border-bottom:none}.att-table tbody tr:hover td{background:var(--color-surface-sunken)}.att-dash{color:var(--neutral-400);font-size:16px;font-weight:300}.att-table thead th:nth-child(7),.att-table thead th:nth-child(8),.att-table tbody td:nth-child(7),.att-table tbody td:nth-child(8){background:var(--color-surface-sunken)}.att-pagination{justify-content:space-between;align-items:center;padding:16px 4px 0;display:flex}.att-pages{align-items:center;gap:4px;display:flex}.att-page-btn{width:32px;height:32px;color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:13px;transition:background .15s}.att-page-btn:hover{background:var(--color-surface-sunken)}.att-page-btn.active{background:var(--color-primary);color:#fff;font-weight:600}.att-dots{color:var(--neutral-400);padding:0 4px;font-size:13px}.msg-root{background:var(--color-surface-sunken);grid-template-columns:280px 1fr 280px;gap:0;height:calc(100vh - 62px);display:grid;overflow:hidden}.msg-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.msg-icon-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s;display:flex}.msg-icon-btn:hover{background:var(--color-surface-sunken)}.msg-view-all{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:500}.msg-left{border-right:1px solid var(--color-border);background:#fff;flex-direction:column;display:flex;overflow:hidden}.msg-left-header{border-bottom:1px solid var(--color-border);align-items:center;gap:8px;padding:14px 14px 10px;display:flex}.msg-search-box{background:var(--color-surface-sunken);border:1px solid var(--color-border-strong);border-radius:20px;flex:1;align-items:center;gap:8px;padding:7px 12px;display:flex}.msg-search-input{color:var(--neutral-800);background:0 0;border:none;outline:none;width:100%;font-size:13px}.msg-search-input::placeholder{color:var(--neutral-400)}.msg-icon-add{background:var(--color-primary)!important;border-radius:50%!important;width:30px!important;height:30px!important}.msg-icon-add:hover{background:var(--color-primary-hover)!important}.msg-conv-list{scrollbar-width:none;flex:1;padding:6px 0;overflow-y:auto}.msg-conv-list::-webkit-scrollbar{display:none}.msg-conv-item{cursor:pointer;align-items:flex-start;gap:10px;padding:12px 14px;transition:background .15s;display:flex;position:relative}.msg-conv-item:hover{background:var(--color-surface-sunken)}.msg-conv-item.active{background:var(--navy-50)}.msg-conv-body{flex:1;min-width:0}.msg-conv-top{justify-content:space-between;align-items:center;margin-bottom:3px;display:flex}.msg-conv-name{color:var(--color-text);font-size:13px;font-weight:600}.msg-conv-time{color:var(--neutral-400);white-space:nowrap;font-size:11px}.msg-conv-preview{color:var(--neutral-400);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.msg-unread{background:var(--navy-600);color:#fff;text-align:center;border-radius:10px;min-width:18px;padding:2px 6px;font-size:10px;font-weight:700;position:absolute;top:12px;right:14px}.msg-center{border-right:1px solid var(--color-border);background:#fff;flex-direction:column;display:flex;overflow:hidden}.msg-chat-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.msg-chat-info{align-items:center;gap:12px;display:flex}.msg-chat-name{color:var(--color-text);font-size:15px;font-weight:700}.msg-chat-sub{color:var(--neutral-400);margin-top:1px;font-size:12px}.msg-chat-actions{gap:4px;display:flex}.msg-chat-body{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;flex-direction:column;flex:1;gap:20px;padding:20px 20px 12px;display:flex;overflow-y:auto}.msg-bubble-row{align-items:flex-start;gap:10px;display:flex}.msg-bubble-row.mine{flex-direction:row-reverse}.msg-bubble-wrap{flex-direction:column;max-width:68%;display:flex}.msg-bubble-row.mine .msg-bubble-wrap{align-items:flex-end}.msg-bubble-meta{align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.msg-bubble-sender{color:var(--navy-600);font-size:13px;font-weight:600}.msg-bubble-role{color:var(--neutral-400);font-size:11px}.msg-bubble{background:var(--color-surface-sunken);color:var(--neutral-800);border-radius:0 12px 12px;padding:12px 16px;font-size:13px;line-height:1.65}.msg-bubble.mine{background:var(--navy-50);color:var(--navy-900);border-radius:12px 0 12px 12px}.msg-bubble-time{color:var(--neutral-400);margin-top:5px;font-size:11px}.msg-input-bar{border-top:1px solid var(--color-border);background:#fff;flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.msg-input{border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);border-radius:20px;outline:none;flex:1;padding:10px 16px;font-size:13px;transition:border-color .15s}.msg-input:focus{border-color:var(--color-primary);background:#fff}.msg-send-btn{background:var(--color-primary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex}.msg-send-btn:hover{background:var(--color-primary-hover)}.msg-right{scrollbar-width:none;background:#fff;padding-bottom:20px;overflow-y:auto}.msg-right::-webkit-scrollbar{display:none}.msg-right-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 16px 12px;display:flex}.msg-right-title{color:var(--color-text);font-size:15px;font-weight:700}.msg-group-avatar-wrap{border-bottom:1px solid var(--color-border);flex-direction:column;align-items:center;padding:20px 16px 16px;display:flex}.msg-group-avatar{background:linear-gradient(135deg, var(--navy-600), var(--navy-400));color:#fff;border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:12px;font-size:22px;font-weight:800;display:flex;box-shadow:0 4px 16px #0235694d}.msg-group-name{color:var(--color-text);margin-bottom:3px;font-size:15px;font-weight:700}.msg-group-sub{color:var(--neutral-400);font-size:12px}.msg-info-section{border-bottom:1px solid var(--color-border);padding:14px 16px}.msg-info-label{color:var(--neutral-800);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.msg-info-row-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.msg-info-row-header .msg-info-label{margin-bottom:0}.msg-info-text{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.7}.msg-members-list{flex-direction:column;gap:10px;display:flex}.msg-member-item{align-items:center;gap:10px;display:flex}.msg-member-name{color:var(--color-text);font-size:13px;font-weight:600}.msg-member-role{color:var(--neutral-400);font-size:11px}.msg-attach-tabs{gap:8px;margin-bottom:10px;display:flex}.msg-attach-tab{background:var(--color-surface-sunken);color:var(--color-text-muted);cursor:pointer;border:none;border-radius:20px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .15s}.msg-attach-tab.active{background:var(--color-primary);color:#fff}.msg-attach-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.msg-attach-thumb{aspect-ratio:1;border-radius:8px}.cal-root{grid-template-columns:1fr 280px;align-items:start;gap:20px;height:calc(100vh - 62px);display:grid;overflow:hidden}.cal-main{border:1px solid var(--color-border-strong);background:#fff;border-radius:16px;flex-direction:column;height:100%;display:flex;overflow:hidden}.cal-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.cal-view-tabs{background:var(--neutral-100);border-radius:10px;gap:2px;padding:3px;display:flex}.cal-view-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 16px;font-size:13px;font-weight:500;transition:all .15s}.cal-view-btn.active{color:var(--color-text);background:#fff;font-weight:600;box-shadow:0 1px 4px #02356914}.cal-month-title{color:var(--color-text);margin:0;font-size:18px;font-weight:700}.cal-nav{align-items:center;gap:8px;display:flex}.cal-today-btn{color:var(--color-text-muted);cursor:pointer;padding:0 8px;font-size:13px;font-weight:500}.cal-today-btn:hover{color:var(--color-text)}.cal-nav-btn{border:1px solid var(--color-border-strong);cursor:pointer;width:28px;height:28px;color:var(--neutral-800);background:#fff;border-radius:8px;justify-content:center;align-items:center;font-size:16px;transition:background .15s;display:flex}.cal-nav-btn:hover{background:var(--color-surface-sunken)}.cal-grid-wrap{flex-direction:column;flex:1;display:flex;overflow:hidden}.cal-day-labels{border-bottom:1px solid var(--color-border-strong);grid-template-columns:repeat(7,1fr);display:grid}.cal-day-label{color:var(--neutral-400);text-align:left;letter-spacing:.5px;padding:10px 12px;font-size:12px;font-weight:700}.cal-cells{flex:1;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;display:grid;overflow:hidden}.cal-cell{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);cursor:pointer;flex-direction:column;gap:3px;min-height:90px;padding:8px 10px;transition:background .12s;display:flex;overflow:hidden}.cal-cell:hover{background:var(--color-surface-sunken)}.cal-cell.other{background:var(--neutral-50)}.cal-cell.selected{background:var(--navy-50)}.cal-cell-day{color:var(--neutral-800);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;font-weight:500;display:flex}.cal-cell-day.today{background:var(--color-primary);color:#fff;font-weight:700}.cal-cell.other .cal-cell-day{color:var(--neutral-300)}.cal-more{color:var(--color-text-muted);padding:0 4px;font-size:11px;font-weight:500}.cal-cell-events{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden}.cal-event-chip{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:500;overflow:hidden}.cal-sidebar{scrollbar-width:none;flex-direction:column;gap:16px;height:100%;display:flex;overflow-y:auto}.cal-sidebar::-webkit-scrollbar{display:none}.cal-sidebar-card{border:1px solid var(--color-border-strong);background:#fff;border-radius:14px;padding:16px}.cal-sidebar-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.cal-sidebar-title{color:var(--color-text);font-size:15px;font-weight:700}.cal-dots{color:var(--neutral-400);letter-spacing:1px;cursor:pointer;font-size:18px}.cal-agenda-list{flex-direction:column;gap:8px;display:flex}.cal-agenda-item{border-radius:8px;padding:9px 12px}.cal-day-events{flex-direction:column;gap:10px;display:flex}.cal-no-events{color:var(--neutral-400);text-align:center;padding:12px 0;font-size:13px}.cal-day-event-card{border-radius:10px;padding:12px}.cal-day-event-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cal-day-event-time{font-size:12px;font-weight:600}.cal-day-event-title{color:var(--color-text);margin-bottom:2px;font-size:14px;font-weight:700}.cal-day-event-group{color:var(--neutral-400);font-size:12px}.cal-lesson-count{background:var(--color-border);color:var(--neutral-700);border-radius:5px;align-self:flex-start;margin-top:2px;padding:1px 6px;font-size:10px;font-weight:700}.cal-lessons{border-bottom:1px solid var(--color-border);flex-direction:column;gap:8px;margin-bottom:4px;padding-bottom:12px;display:flex}.cal-lessons-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cal-lessons-title{color:var(--navy-950);letter-spacing:.3px;text-transform:uppercase;font-size:12px;font-weight:800}.cal-scope-btn{color:var(--color-primary-hover);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:11px;font-weight:700}.cal-scope-btn:hover{text-decoration:underline}.cal-lesson-row{background:var(--color-surface-sunken);border-left:3px solid var(--color-primary);border-radius:9px;gap:10px;padding:7px 9px;display:flex}.cal-lesson-time{width:42px;color:var(--color-primary-hover);flex-direction:column;flex-shrink:0;font-size:11.5px;font-weight:700;line-height:1.25;display:flex}.cal-lesson-time small{color:var(--neutral-400);font-size:10px;font-weight:600}.cal-lesson-body{flex-direction:column;gap:4px;min-width:0;display:flex}.cal-lesson-item{flex-direction:column;min-width:0;display:flex}.cal-lesson-item strong{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:700;overflow:hidden}.cal-lesson-item small{color:var(--neutral-600);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.notice-root{grid-template-columns:1fr 340px;gap:20px;height:calc(100vh - 62px);display:grid;overflow:hidden}.notice-left{flex-direction:column;gap:0;display:flex;overflow:hidden}.notice-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.notice-header-actions{align-items:center;gap:8px;display:flex}.notice-search-box{border:1px solid var(--color-border-strong);background:#fff;border-radius:20px;align-items:center;gap:8px;width:220px;padding:8px 14px;transition:border-color .15s;display:flex}.notice-search-box:focus-within{border-color:var(--color-primary)}.notice-search-input{color:var(--neutral-800);background:0 0;border:none;outline:none;width:100%;font-size:13px}.notice-search-input::placeholder{color:var(--neutral-400)}.notice-icon-btn{border:1px solid var(--color-border-strong);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;transition:background .15s;display:flex}.notice-icon-btn:hover{background:var(--color-surface-sunken)}.notice-add-btn{background:var(--color-primary)!important;border-color:var(--color-primary)!important}.notice-add-btn:hover{background:var(--color-primary-hover)!important}.notice-list{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;flex-direction:column;gap:12px;padding-right:4px;display:flex;overflow-y:auto}.notice-card{border:1px solid var(--color-border-strong);cursor:pointer;background:#fff;border-radius:14px;padding:18px 20px;transition:box-shadow .15s,border-color .15s}.notice-card:hover{box-shadow:0 4px 16px #0235690f}.notice-card.active{border-color:var(--color-primary);box-shadow:0 4px 16px #0235691a}.notice-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.notice-card-left{flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.notice-avatar{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:13px;font-weight:700;display:flex}.notice-title{color:var(--color-text);margin-bottom:2px;font-size:15px;font-weight:700}.notice-author{color:var(--neutral-400);font-size:12px}.notice-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.notice-date{color:var(--neutral-400);white-space:nowrap;font-size:12px}.notice-views{color:var(--neutral-400);align-items:center;gap:4px;font-size:12px;display:flex}.notice-preview{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.65;display:-webkit-box;overflow:hidden}.notice-detail{border:1px solid var(--color-border-strong);scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;background:#fff;border-radius:16px;flex-direction:column;padding:0;display:flex;overflow-y:auto}.notice-detail-img{object-fit:cover;border-radius:16px 16px 0 0;width:100%;height:180px;display:block}.notice-detail-title{color:var(--color-text);margin:16px 20px 4px;font-size:17px;font-weight:700}.notice-detail-author{color:var(--neutral-400);margin:0 20px 10px;font-size:12px}.notice-detail-meta{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:0 20px 14px;display:flex}.notice-detail-body{flex:1;padding:16px 20px}.notice-detail-body p{color:var(--color-text-muted);margin:0 0 12px;font-size:13px;line-height:1.75}.notice-detail-tags-section{padding:0 20px 16px}.notice-tags-label{color:var(--neutral-800);margin:0 0 10px;font-size:13px;font-weight:600}.notice-tags{flex-wrap:wrap;gap:8px;display:flex}.notice-tag{border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500}.notice-read-btn{background:var(--navy-50);color:var(--color-primary);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;margin:0 20px 20px;padding:12px;font-size:14px;font-weight:600;transition:background .15s;display:flex}.notice-read-btn:hover{background:var(--navy-100)}.lib-header-actions{align-items:center;gap:10px;display:flex}.lib-search-box{border:1px solid var(--color-border-strong);background:#fff;border-radius:20px;align-items:center;gap:8px;width:240px;padding:8px 16px;transition:border-color .15s;display:flex}.lib-search-box:focus-within{border-color:var(--color-primary)}.lib-search-input{color:var(--neutral-800);background:0 0;border:none;outline:none;width:100%;font-size:13px}.lib-search-input::placeholder{color:var(--neutral-400)}.lib-icon-btn{cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;transition:opacity .15s;display:flex}.lib-icon-btn:hover{opacity:.85}.lib-filter-btn,.lib-add-btn{background:var(--color-primary)}.lib-table-wrap{border:1px solid var(--color-border-strong);background:#fff;border-radius:14px;overflow:hidden}.lib-table{border-collapse:collapse;width:100%}.lib-table thead tr{background:var(--navy-50);border-bottom:1px solid var(--color-border-strong)}.lib-table th{text-align:left;color:var(--navy-600);white-space:nowrap;padding:13px 16px;font-size:13px;font-weight:600}.lib-table th:first-child{color:var(--neutral-800)}.lib-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:14px 16px}.lib-table tbody tr:last-child td{border-bottom:none}.lib-table tbody tr:hover td{background:var(--color-surface-sunken);transition:background .12s}.lib-book-name-cell{align-items:center;gap:12px;display:flex}.book-spine{border-radius:3px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:28px;height:38px;padding:4px;display:flex}.book-spine-line{background:#ffffff80;border-radius:1px;width:80%;height:2px}.book-spine-line.short{width:50%}.lib-book-title{color:var(--color-text);font-size:14px;font-weight:500}.lib-td-id{color:var(--color-text-muted);white-space:nowrap;font-family:monospace;font-size:13px}.lib-td{color:var(--neutral-800);font-size:13px}.lib-status{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.lib-status.available{color:var(--color-success-text);background:var(--color-success-soft)}.lib-status.checked-out{color:var(--color-warning-text);background:var(--color-warning-soft)}.fc-root{flex-direction:column;gap:20px;display:flex}.fc-top{grid-template-columns:1fr 320px;align-items:stretch;gap:16px;display:grid}.fc-chart-card{border:1px solid var(--color-border-strong);background:#fff;border-radius:16px;padding:20px}.fc-chart-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.fc-chart-title{color:var(--color-text);font-size:16px;font-weight:700}.fc-dots{color:var(--neutral-400);letter-spacing:1px;cursor:pointer;font-size:18px}.fc-tooltip{background:var(--navy-900);color:#fff;text-align:center;border-radius:10px;padding:10px 14px;font-size:13px;box-shadow:0 4px 16px #02356933}.fc-tooltip-val{font-size:15px;font-weight:700}.fc-tooltip-date{opacity:.75;margin-top:2px;font-size:11px}.fc-stats{grid-template-columns:1fr 1fr;gap:12px;display:grid}.fc-stat-card{background:var(--navy-100);border-radius:14px;flex-direction:column;gap:6px;padding:16px;display:flex}.fc-stat-card:nth-child(2),.fc-stat-card:nth-child(3),.fc-stat-card:nth-child(4){background:var(--navy-100)}.fc-stat-top{justify-content:space-between;align-items:center;display:flex}.fc-stat-trend{background:#fff;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700}.fc-stat-trend.up{color:var(--green-600)}.fc-stat-trend.down{color:var(--red-500)}.fc-stat-value{color:var(--color-text);letter-spacing:-.5px;font-size:22px;font-weight:800}.fc-stat-label{color:var(--color-text-muted);font-size:12px;font-weight:500}.fc-table-section{border:1px solid var(--color-border-strong);background:#fff;border-radius:16px;padding:20px}.fc-table-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.fc-table-controls{align-items:center;gap:10px;display:flex}.fc-search-box{border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);border-radius:20px;align-items:center;gap:8px;width:200px;padding:7px 14px;display:flex}.fc-search-input{color:var(--neutral-800);background:0 0;border:none;outline:none;width:100%;font-size:13px}.fc-search-input::placeholder{color:var(--neutral-400)}.fc-filter-btn{border:1px solid var(--color-border-strong);color:var(--neutral-800);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;display:flex}.fc-select{border:1px solid var(--color-border-strong);color:var(--neutral-800);-webkit-appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 8px center no-repeat;border-radius:8px;outline:none;padding:7px 28px 7px 10px;font-size:13px}.fc-table-wrap{border:1px solid var(--color-border-strong);border-radius:12px;overflow-x:auto}.fc-table{border-collapse:collapse;width:100%}.fc-table thead tr{background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border-strong)}.fc-table th{text-align:left;color:var(--neutral-800);white-space:nowrap;padding:12px 14px;font-size:13px;font-weight:600}.fc-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;color:var(--neutral-800);background:#fff;padding:13px 14px;font-size:13px}.fc-table td b{color:var(--color-text)}.fc-table tbody tr:last-child td{border-bottom:none}.fc-table tbody tr:hover td{background:var(--color-surface-sunken)}.fc-student-cell{align-items:center;gap:10px;display:flex}.fc-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:flex}.fc-student-name{color:var(--color-text);font-size:13px;font-weight:600}.fc-student-id{color:var(--neutral-400);font-family:monospace;font-size:11px}.fc-td{color:var(--neutral-800);font-size:13px}.fc-amount{color:var(--color-text);font-weight:600}.fc-status{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.fc-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.fc-actions{gap:6px;display:flex}.fc-action-btn{border:1px solid var(--color-border-strong);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s;display:flex}.fc-action-btn:hover{background:var(--color-surface-sunken)}.fc-page-head,.fc-summary,.fc-tabs,.fc-compliance-counts,.fc-config-title{justify-content:space-between;align-items:center;gap:16px;display:flex}.fc-page-head h1{color:var(--navy-950);margin:0 0 5px;font-size:25px}.fc-page-head p,.fc-help{color:var(--color-text-muted);margin:0;font-size:12px}.fc-summary{grid-template-columns:repeat(3,1fr);display:grid}.fc-summary>div{border:1px solid var(--navy-100);background:linear-gradient(135deg,var(--navy-50),#fff);border-radius:14px;padding:18px}.fc-summary span{color:var(--color-text-muted);margin-bottom:8px;font-size:12px;display:block}.fc-summary strong{color:var(--navy-950);font-size:20px}.fc-tabs{background:var(--color-border-strong);border-radius:11px;justify-content:flex-start;width:max-content;padding:5px}.fc-tabs button{color:var(--neutral-800);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px 14px;font-weight:700}.fc-tabs button.active{color:var(--color-primary-hover);background:#fff;box-shadow:0 2px 6px #02356933}.fc-block{color:var(--neutral-400);margin-top:3px;display:block}.fc-empty{text-align:center;color:var(--neutral-400);padding:30px}.fc-compliance-counts{justify-content:flex-start;margin-bottom:14px}.fc-compliance-counts span{border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.fc-compliance-counts .ok,.fc-status.is-ok{color:var(--color-success-text);background:var(--green-100)}.fc-compliance-counts .late,.fc-status.is-late{color:var(--color-danger-text);background:var(--red-100)}.fc-compliance-counts b{color:var(--neutral-900);margin-left:auto}.fc-plan-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:13px;display:grid}.fc-plan-card{border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);border-radius:12px;padding:15px}.fc-plan-card h3{color:var(--navy-900);margin:0 0 12px;font-size:14px}.fc-plan-card p{color:var(--color-text-muted);justify-content:space-between;margin:7px 0;font-size:12px;display:flex}.fc-plan-card small{color:var(--color-text-muted);margin:12px 0;display:block}.fc-plan-card button,.fc-config-title button,.fc-config-row button,.fc-rule-row button{border:1px solid var(--navy-200);color:var(--color-primary-hover);cursor:pointer;background:#fff;border-radius:7px;padding:6px 9px}.fc-plan-actions{gap:7px;display:flex}.fc-copy-modal{width:min(520px,90vw)}.fc-copy-modal label{color:var(--neutral-800);flex-direction:column;gap:7px;font-size:13px;font-weight:700;display:flex}.fc-copy-warning{color:var(--amber-800);background:var(--amber-50);border-radius:8px;padding:9px;font-size:12px}.fc-copy-class-grid{grid-template-columns:1fr 1fr;gap:8px;max-height:320px;display:grid;overflow:auto}.fc-copy-class-grid button{border:1px solid var(--color-border-strong);color:var(--neutral-900);text-align:left;cursor:pointer;background:#fff;border-radius:9px;grid-template-columns:24px 1fr;align-items:center;gap:3px 8px;padding:10px;display:grid}.fc-copy-class-grid button.selected{border-color:var(--navy-600);color:var(--color-primary-hover);background:var(--navy-50)}.fc-copy-class-grid small{color:var(--amber-700);grid-column:2}.fc-copy-check{border:1px solid var(--neutral-300);color:#fff;border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.fc-copy-class-grid button.selected .fc-copy-check{border-color:var(--color-primary);background:var(--color-primary)}.fc-copy-selection{color:var(--color-primary-hover);font-weight:800}.fc-muted{align-items:center;min-height:50px}.fc-modal{grid-template-columns:1fr 1fr;gap:14px;max-width:700px;display:grid}.fc-modal h2,.fc-full{grid-column:1/-1}.fc-payment-due{border:1px solid var(--navy-200);background:var(--navy-50);border-radius:10px;align-items:center;gap:14px;padding:13px;display:flex}.fc-payment-due span{color:var(--neutral-800);font-size:12px;font-weight:700}.fc-payment-due strong{color:var(--color-primary-hover);font-size:19px}.fc-payment-due small{color:var(--color-text-muted);margin-left:auto}.fc-searchable-select{position:relative}.fc-searchable-select .form-input{cursor:text;padding-right:34px}.fc-searchable-select.open .form-input{border-color:var(--navy-400);box-shadow:0 0 0 3px var(--navy-100)}.fc-select-chevron{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.fc-searchable-options{z-index:30;border:1px solid var(--neutral-300);background:#fff;border-radius:10px;max-height:250px;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow:auto;box-shadow:0 12px 28px #02356929}.fc-searchable-options button{border:0;border-bottom:1px solid var(--neutral-100);width:100%;color:var(--neutral-900);text-align:left;cursor:pointer;background:#fff;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.fc-searchable-options button:hover,.fc-searchable-options button.selected{color:var(--color-primary-hover);background:var(--navy-50)}.fc-searchable-options small{color:var(--color-text-muted);font-family:monospace}.fc-no-option{color:var(--neutral-400);text-align:center;padding:16px;display:block}.fc-expense-search,.fc-date-filter{border:1px solid var(--color-border-strong);color:var(--neutral-800);font:inherit;background:#fff;border-radius:8px;outline:none;padding:8px 10px}.fc-expense-search{width:230px}.fc-inline-create{gap:7px;display:flex}.fc-inline-create button{border:1px solid var(--navy-200);color:var(--color-primary-hover);background:var(--navy-50)}.fc-action-btn.danger{color:var(--color-danger);border-color:var(--color-danger-border)}.fc-modal label,.fc-plan-modal label{color:var(--neutral-800);flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}.fc-plan-modal{width:min(950px,92vw);max-height:90vh;overflow:auto}.fc-plan-base{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.fc-config-section{border:1px solid var(--color-border-strong);border-radius:12px;margin:18px 0;padding:15px}.fc-config-title{margin-bottom:11px}.fc-config-title h3{color:var(--neutral-900);margin:0;font-size:15px}.fc-config-row{grid-template-columns:2fr 1fr 1.2fr auto;gap:9px;margin-bottom:8px;display:grid}.fc-rule-row{grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:9px;margin-bottom:8px;display:grid}.fc-rule-row.fc-gender-rule{grid-template-columns:1fr 1fr 1fr auto}.fc-installment-number{color:var(--color-primary-hover);margin-top:8px;font-size:28px;display:block}.fc-gender-head,.fc-fee-module-row{grid-template-columns:2fr 1fr 1fr .8fr auto;align-items:center;gap:10px;display:grid}.fc-gender-head{color:var(--neutral-800);background:var(--navy-50);border-radius:9px;padding:9px 12px;font-size:12px}.fc-fee-module{border:1px solid var(--navy-100);border-radius:11px;margin-top:11px;padding:12px}.fc-inline-check{align-items:center;flex-direction:row!important}.fc-remove{border:1px solid var(--color-danger-border);width:34px;height:34px;color:var(--color-danger);cursor:pointer;background:#fff;border-radius:7px}.fc-module-installments{border-left:3px solid var(--navy-200);background:var(--color-surface-sunken);margin:12px 0 0 25px;padding:11px}.fc-add-module{border:1px dashed var(--navy-400);color:var(--color-primary-hover);background:var(--navy-50);cursor:pointer;border-radius:9px;margin:14px 0;padding:10px 14px;font-weight:700}.fc-composition-total{color:var(--neutral-900);background:var(--neutral-100);border-radius:9px;justify-content:flex-end;gap:24px;margin:12px 0;padding:12px;display:flex}@media (width<=800px){.fc-summary,.fc-plan-base,.fc-modal,.fc-config-row,.fc-rule-row,.fc-gender-head,.fc-fee-module-row{grid-template-columns:1fr}.fc-full{grid-column:auto}}.grades-page{flex-direction:column;gap:16px;display:flex}.grades-page .page-header p{color:var(--color-text-muted);margin:5px 0 0}.grades-tabs{background:var(--color-border-strong);border-radius:10px;gap:5px;width:max-content;padding:5px;display:flex}.grades-tabs button{color:var(--neutral-800);background:0 0}.grades-tabs button.active{color:var(--color-primary-hover);background:#fff;box-shadow:0 2px 7px #0235692e}.grades-context{border:1px solid var(--navy-100);background:var(--navy-50);border-radius:12px;flex-wrap:wrap;gap:12px;padding:15px;display:flex}.grades-context label{min-width:190px;color:var(--neutral-800);flex-direction:column;flex:1;gap:6px;font-size:12px;font-weight:700;display:flex}.grade-config-card,.grade-sheet-card{border:1px solid var(--color-border-strong);background:#fff;border-radius:14px;padding:20px}.grade-config-card h2,.grade-sheet-head h2{color:var(--navy-950);margin:0;font-size:18px}.grade-config-card>label{color:var(--neutral-800);flex-direction:column;gap:7px;margin:16px 0;font-size:13px;font-weight:700;display:flex}.grade-lines>div,.group-line{grid-template-columns:2fr 1fr 1fr auto;gap:8px;margin-bottom:8px;display:grid}.grade-lines button,.grade-groups button{border:1px solid var(--navy-200);color:var(--color-primary-hover);background:#fff}.grade-lines p.valid{color:var(--color-success)}.grade-lines p.invalid{color:var(--color-danger)}.grade-groups{flex-direction:column;gap:12px;margin-bottom:15px;display:flex}.grade-groups section{border:1px solid var(--navy-100);background:var(--color-surface-sunken);border-radius:10px;padding:14px}.grade-groups section>div:first-child{gap:8px;margin-bottom:10px;display:flex}.grade-groups .group-line{grid-template-columns:2fr 1fr auto}.grade-sheet-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.grade-student-search{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.grade-student-search label{max-width:420px;color:var(--neutral-800);flex-direction:column;flex:1;gap:6px;font-size:12px;font-weight:700;display:flex}.grade-student-search span{color:var(--color-text-muted);white-space:nowrap;font-size:13px}.grade-sheet-wrap{border:1px solid var(--color-border-strong);border-radius:10px;max-height:65vh;overflow:auto}.grade-sheet-wrap table{border-collapse:collapse;width:100%}.grade-sheet-wrap th{z-index:2;color:var(--neutral-900);background:var(--color-surface-sunken);white-space:nowrap;padding:10px;position:sticky;top:0}.grade-sheet-wrap th small{color:var(--color-text-muted);display:block}.grade-sheet-wrap td{border-top:1px solid var(--neutral-100);color:var(--neutral-800);white-space:nowrap;padding:8px 10px}.grade-sheet-wrap td:first-child,.grade-sheet-wrap td:nth-child(2){z-index:1;background:#fff;position:sticky}.grade-sheet-wrap td:first-child{left:0}.grade-sheet-wrap td:nth-child(2){left:120px}.grade-sheet-wrap input{border:1px solid var(--neutral-300);width:74px;color:var(--color-text);background:#fff;border-radius:7px;padding:7px}.grade-no-results{text-align:center;color:var(--color-text-muted)!important;padding:22px!important}@media (width<=700px){.grade-lines>div,.group-line,.grade-groups .group-line{grid-template-columns:1fr}.grade-sheet-head,.grade-student-search{flex-direction:column;align-items:flex-start}.grade-student-search label{width:100%;max-width:none}}.grade-save-state{white-space:nowrap;font-size:12px;font-weight:700}.grade-save-state.is-idle{color:var(--neutral-400);font-weight:600}.grade-save-state.is-pending{color:var(--amber-600)}.grade-save-state.is-saved{color:var(--color-success)}.grade-save-state.is-failed{color:var(--color-danger)}.grade-sheet-wrap input.is-invalid{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger-text)}.grade-sheet-wrap input.is-invalid:focus{outline:2px solid var(--red-300);outline-offset:1px}.grade-sheet-wrap input.is-locked{border-color:var(--color-border-strong);background:var(--color-surface-sunken);color:var(--color-text-muted);cursor:default;appearance:textfield}.grade-sheet-wrap input.is-locked:focus{border-color:var(--color-border-strong);outline:none}.grade-sheet-wrap input.is-locked::-webkit-outer-spin-button{appearance:none;margin:0}.grade-sheet-wrap input.is-locked::-webkit-inner-spin-button{appearance:none;margin:0}.grade-locked-note{border:1px solid var(--color-warning-border);background:var(--color-warning-soft);color:var(--color-warning-text);border-radius:8px;margin:0 0 14px;padding:10px 12px;font-size:13px}.grade-scope-note{border:1px solid var(--color-info-border);background:var(--color-info-soft);color:var(--color-info-text);border-radius:8px;margin:0 0 18px;padding:10px 12px;font-size:13px;line-height:1.5}.grade-copy-card{border:1px solid var(--color-info-border);background:var(--color-info-soft);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;display:flex}.grade-copy-card strong{color:var(--color-info-text);font-size:14px;display:block}.grade-copy-card p{max-width:52ch;color:var(--color-text-muted);margin:4px 0 0;font-size:13px;line-height:1.45}.grade-copy-controls{align-items:center;gap:10px;display:flex}.grade-copy-controls .form-select{min-width:150px}.grade-copy-controls .form-select+.form-select{min-width:220px}.grade-copy-controls .btn-secondary{white-space:nowrap}@media (width<=700px){.grade-copy-card,.grade-copy-controls{flex-direction:column;align-items:stretch}}.discipline-page{flex-direction:column;gap:16px;display:flex}.discipline-filters{border:1px solid var(--navy-100);background:var(--navy-50);border-radius:14px;flex-wrap:wrap;gap:12px;padding:16px;display:flex}.discipline-filters label{min-width:220px;color:var(--neutral-800);flex-direction:column;flex:1;gap:6px;font-size:12px;font-weight:700;display:flex}.discipline-student-select{position:relative}.discipline-student-options{z-index:20;border:1px solid var(--navy-100);background:#fff;border-radius:12px;max-height:260px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 18px 45px #02356929}.discipline-student-options button{width:100%;color:var(--navy-950);text-align:left;background:0 0;border:0;border-radius:9px;flex-direction:column;gap:2px;padding:9px 10px;display:flex}.discipline-student-options button:hover{background:var(--navy-50)}.discipline-student-options small,.discipline-student-options span{color:var(--color-text-muted)}.discipline-student-card{border:1px solid var(--color-success-border);color:var(--color-success-text);background:var(--color-success-soft);border-radius:13px;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;display:flex}.discipline-student-card strong{color:var(--green-900)}.discipline-student-card span{background:var(--green-100);border-radius:999px;padding:4px 9px;font-size:12px}.discipline-hint{border:1px solid var(--amber-200);color:var(--color-warning-text);background:var(--color-warning-soft);border-radius:12px;padding:13px 15px}.discipline-history{border:1px solid var(--color-border-strong);background:#fff;border-radius:14px;padding:20px}.discipline-records{flex-direction:column;gap:10px;display:flex}.discipline-record{border:1px solid var(--color-border-strong);background:#fff;border-left-width:5px;border-radius:12px;grid-template-columns:1fr;gap:8px;padding:14px;display:grid}.discipline-record.retard{border-left-color:var(--color-warning)}.discipline-record.absence{border-left-color:var(--navy-600)}.discipline-record.incident{border-left-color:var(--red-500)}.discipline-record>div{flex-direction:column;gap:3px;display:flex}.discipline-date{width:max-content;color:var(--neutral-800);background:var(--neutral-100);border-radius:999px;padding:3px 8px;font-size:12px}.discipline-record strong{color:var(--color-text)}.discipline-record small,.discipline-record footer{color:var(--color-text-muted);font-size:12px}.discipline-record p{color:var(--neutral-900);margin:0;line-height:1.45}@media (width<=700px){.discipline-filters{padding:12px}}.signature-page .school-panel{margin-top:16px}.signature-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.signature-pens{align-items:center;gap:8px;display:flex}.signature-pens>span{color:var(--color-text-muted);font-size:12px;font-weight:700}.signature-pens button.selected{border-color:var(--navy-600);color:var(--color-primary-hover);background:var(--navy-50)}.signature-pad{border:1px solid var(--color-border);background:#fff;border-radius:12px;position:relative;overflow:hidden}.signature-pad canvas{touch-action:none;cursor:crosshair;width:100%;height:auto;display:block}.signature-baseline{border-bottom:1px dashed var(--neutral-300);pointer-events:none;position:absolute;bottom:22%;left:8%;right:8%}.signature-placeholder{color:var(--neutral-300);letter-spacing:.04em;pointer-events:none;font-size:15px;font-style:normal;position:absolute;bottom:24%;left:9%}.signature-saved{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.signature-saved img{border:1px solid var(--color-border);background:#fff;border-radius:10px;max-width:320px;padding:10px}.journey-page .school-panel{margin-top:16px}.journey-search{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.journey-search .form-input{flex:1;min-width:260px;margin:0}.journey-lastyear{color:var(--color-text-muted)}.journey-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.journey-heading h2{margin:0 0 4px}.journey-heading p{color:var(--color-text-muted);margin:0;font-size:13px}.journey-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.journey-result{color:var(--color-primary-hover);background:var(--navy-50);border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700}.journey-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:16px;display:grid}.journey-stats>div{border:1px solid var(--color-border);background:#fff;border-radius:9px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.journey-stats small{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:10px}.journey-stats strong{color:var(--neutral-900);font-size:19px}.journey-stats em{color:var(--color-text-muted);font-size:10px;font-style:normal}.journey-stats>div.journey-owing{border-color:var(--amber-200);background:var(--amber-50)}.journey-stats>div.journey-owing strong{color:var(--amber-700)}.journey-year{border:1px solid var(--color-border);background:#fff;border-radius:14px;margin-top:16px;padding:20px}.journey-year>header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.journey-year h3{color:var(--neutral-900);margin:0 0 3px;font-size:16px}.journey-year>header p{color:var(--color-text-muted);margin:0;font-size:13px}.journey-matricule{margin-left:10px;font-size:11px}.journey-year-average{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.journey-year-average strong{color:var(--color-primary-hover);font-size:22px}.journey-year-average small,.journey-year-average em{color:var(--color-text-muted);font-size:10px;font-style:normal}.journey-sessions{margin-top:14px}.journey-final{color:#8a5a00;background:#fdf0d5;border-radius:999px;margin-left:7px;padding:2px 6px;font-size:9px;display:inline-flex}.journey-discipline{margin-top:14px}.journey-discipline table{margin-top:10px}
