:root{--bg:#f5f6f8;--panel:#fff;--panel-2:#fff;--line:#e2e4ea;--txt:#171b24;--muted:#8a909d;--accent:#3b82f6;--accent-2:#4f46e5;--danger:#b3413e}*{box-sizing:border-box}body{background:var(--bg);color:var(--txt);margin:0;font-family:Inter,Segoe UI,Tahoma,sans-serif}:root{--auth-ink:#1f2937;--auth-paper:#eff6ff;--auth-border:#e5e7eb;--auth-muted:#6b7280;--auth-brand:#3b82f6;--auth-brand-dark:#4f46e5;--auth-brand-soft:#dbeafe}.login-scene{background:linear-gradient(135deg,#eff6ff 0%,#e0e7ff 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:16px;display:flex;position:relative}html[data-theme=dark] .login-scene{background:#000}html[data-theme=dark] .login-card{background:#0a0a0a;box-shadow:0 25px 50px -12px #000000e6}html[data-theme=dark] .login-panel{background:#0a0a0a}html[data-theme=dark] .login-title,html[data-theme=dark] .login-label{color:#f5f5f5}html[data-theme=dark] .login-subtitle,html[data-theme=dark] .login-footer{color:#a3a3a3}html[data-theme=dark] .login-input{color:#f5f5f5;background:#000;border-color:#1a1a1a}html[data-theme=dark] .login-input:focus{background:#000;border-color:#404040}html[data-theme=dark] .login-visual-bg{background:linear-gradient(135deg,#000 0%,#0a0a0a 100%)}html[data-theme=dark] .login-visual-sub{color:#a3a3a3}html[data-theme=dark] .login-footer a{color:#e5e5e5}.theme-toggle-btn{border:1px solid var(--border,#e5e7eb);background:var(--surface,#fff);color:var(--text-primary,#1f2937);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-family:inherit;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.theme-toggle-btn svg{flex-shrink:0;width:16px;height:16px}.theme-toggle-btn:hover{border-color:color-mix(in srgb, var(--accent-blue,#3b82f6) 40%, transparent);transform:translateY(-1px)}.theme-toggle-btn--auth{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;position:absolute;top:16px;right:16px}html[data-theme=dark] .theme-toggle-btn--auth{color:#f5f5f5;background:#000000e6;border-color:#1a1a1a}.theme-toggle-btn--topbar{width:36px;height:36px}.login-card{background:#fff;border-radius:16px;width:min(960px,100%);min-height:600px;animation:.5s both login-card-in;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #2563eb2e}@keyframes login-card-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.login-card{animation:none}.login-submit-shine{display:none!important}}.login-visual{border-right:1px solid #f3f4f6;width:50%;min-height:600px;display:none;position:relative;overflow:hidden}@media (width>=768px){.login-visual{display:block}}.login-visual-bg{background:linear-gradient(135deg,#eff6ff 0%,#e0e7ff 100%);position:absolute;inset:0}.login-dotmap{width:100%;height:100%;display:block;position:absolute;inset:0}.login-visual-overlay{z-index:2;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex;position:absolute;inset:0}.login-visual-logo{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#4f46e5 100%);border-radius:999px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:24px;font-family:Sora,Inter,sans-serif;font-size:14px;font-weight:700;animation:.5s .35s both login-fade-up;display:flex;overflow:hidden;box-shadow:0 10px 25px #3b82f659}.login-visual-logo img{object-fit:cover;width:100%;height:100%}.login-visual-logo .login-icon{width:22px;height:22px}.login-visual-title{background:linear-gradient(90deg,#2563eb,#4f46e5);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 8px;font-family:Sora,Inter,sans-serif;font-size:clamp(1.6rem,2.5vw,1.9rem);font-weight:700;animation:.5s .45s both login-fade-up}.login-visual-sub{color:#4b5563;max-width:28ch;margin:0;font-size:13.5px;line-height:1.55;animation:.5s .55s both login-fade-up}.login-visual-sub strong{color:#1f2937;font-weight:600}@keyframes login-fade-up{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}.login-panel{background:#fff;flex-direction:column;justify-content:center;width:100%;padding:32px 28px;display:flex}@media (width>=768px){.login-panel{width:50%;padding:40px 44px}}.login-panel-inner{width:100%;max-width:380px;margin:0 auto;animation:.5s .15s both login-fade-up}.login-title{color:#1f2937;margin:0 0 4px;font-family:Sora,Inter,sans-serif;font-size:clamp(1.5rem,3vw,1.85rem);font-weight:700}.login-subtitle{color:#6b7280;margin:0 0 28px;font-size:14px}.login-form{flex-direction:column;gap:18px;display:flex}.login-field{display:block}.login-label{color:#374151;margin-bottom:6px;font-size:13px;font-weight:500;display:block}.login-req{color:#3b82f6}.login-input{color:#1f2937;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;outline:none;width:100%;min-width:0;height:42px;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.login-input::placeholder{color:#9ca3af}.login-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.login-input[readonly]{color:#6b7280;background:#f3f4f6}.login-input--select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg,#0000 50%,#9ca3af 50%),linear-gradient(135deg,#9ca3af 50%,#0000 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px;padding-right:34px}.login-password-wrap{position:relative}.login-input--password{padding-right:42px}.login-password-toggle{inset-block:0;color:#6b7280;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:42px;padding:0;display:flex;position:absolute;right:0}.login-password-toggle:hover{color:#374151}.login-password-toggle svg{width:18px;height:18px}.login-submit{background:linear-gradient(90deg, var(--auth-btn-bg,#3b82f6) 0%, var(--auth-btn-hover,#4f46e5) 100%);width:100%;height:44px;color:var(--auth-btn-text,#fff);cursor:pointer;border:none;border-radius:8px;margin-top:4px;font-family:inherit;font-size:14.5px;font-weight:600;transition:transform .15s,box-shadow .2s,filter .2s;position:relative;overflow:hidden}.login-submit:hover,.login-submit.is-hovered{filter:brightness(1.05);box-shadow:0 10px 24px color-mix(in srgb, var(--auth-btn-bg,#3b82f6) 35%, transparent);transform:scale(1.01)}.login-submit:active{transform:scale(.98)}.login-submit-label{z-index:1;justify-content:center;align-items:center;gap:8px;display:inline-flex;position:relative}.login-submit-label .login-icon{width:16px;height:16px}.login-submit-shine{filter:blur(8px);pointer-events:none;opacity:0;background:linear-gradient(90deg,#0000,#ffffff59,#0000);width:80px;position:absolute;top:0;bottom:0;left:-100%}.login-submit.is-hovered .login-submit-shine{opacity:1;animation:1s ease-in-out login-shine}@keyframes login-shine{0%{left:-100%}to{left:100%}}.login-note{margin:0;font-size:13px}.login-note--error{color:#b3261e}.login-note--ok{color:#1e7a4f}.login-footer{text-align:center;color:#6b7280;margin:24px 0 0;font-size:13.5px}.login-footer a{color:#2563eb;font-weight:600;text-decoration:none}.login-footer a:hover{color:#1d4ed8;text-underline-offset:3px;text-decoration:underline}.login-scene.tenant-locked .login-visual-logo{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);box-shadow:0 10px 25px color-mix(in srgb, var(--accent) 35%, transparent)}.login-scene.tenant-locked .login-visual-title{background:linear-gradient(90deg, var(--accent), var(--accent-2));-webkit-background-clip:text;background-clip:text}.login-scene.tenant-locked .login-req{color:var(--accent)}.login-scene.tenant-locked .login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}.login-scene.tenant-locked .login-submit{background:linear-gradient(90deg, var(--auth-btn-bg,var(--accent)) 0%, var(--auth-btn-hover,var(--accent-2)) 100%);color:var(--auth-btn-text,#fff)}.login-scene.tenant-locked .login-submit.is-hovered{box-shadow:0 10px 24px color-mix(in srgb, var(--accent) 35%, transparent)}.login-scene.tenant-locked .login-footer a{color:var(--accent)}@media (width<=767px){.login-card{flex-direction:column;min-height:auto}.login-panel{padding:28px 22px 32px}}.signup-card{width:min(1040px,100%);min-height:640px}.signup-visual{min-height:640px}.signup-visual-overlay{pointer-events:none}.signup-steps{text-align:left;flex-direction:column;gap:12px;width:min(260px,100%);margin:28px 0 0;padding:0;list-style:none;animation:.5s .65s both login-fade-up;display:flex}.signup-steps li{color:#4b5563;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.signup-step-num{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#4f46e5 100%);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:inline-flex}.signup-panel{justify-content:flex-start;max-height:min(90vh,720px);padding-top:36px;padding-bottom:36px;overflow-y:auto}.signup-panel-inner{max-width:520px}.signup-form{gap:14px}.signup-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.signup-colors{flex-wrap:wrap;gap:18px;margin-top:2px;display:flex}.signup-color-field{color:#374151;cursor:pointer;align-items:center;gap:10px;font-size:13px;font-weight:500;display:inline-flex}.signup-color-field input[type=color]{cursor:pointer;background:0 0;border:1px solid #e5e7eb;border-radius:8px;width:32px;min-width:32px;height:32px;padding:0}@media (width<=767px){.signup-card,.signup-visual{min-height:auto}.signup-panel{max-height:none;padding-top:28px}.signup-grid{grid-template-columns:1fr}.signup-steps{display:none}}.auth-scene{background:linear-gradient(135deg,#eff6ff 0%,#e0e7ff 100%);justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.auth-card{border:1px solid var(--auth-border);background:#fff;border-radius:16px;width:min(880px,100%);min-height:560px;animation:.45s both login-card-in;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #2563eb26}.auth-card-lg{min-height:660px}@media (prefers-reduced-motion:reduce){.auth-card{animation:none}}.auth-brand{color:#f2f7f5;background:linear-gradient(165deg,#3b82f6 0%,#4f46e5 100%);flex-direction:column;flex-shrink:0;justify-content:space-between;width:36%;padding:36px 32px;display:flex}.auth-mark{letter-spacing:.01em;color:#fff;background:#ffffff24;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-family:Sora,Inter,sans-serif;font-size:16px;font-weight:700;display:flex;overflow:hidden}.auth-mark img{object-fit:cover;width:100%;height:100%}.auth-brand-body{margin-top:22px}.auth-brand-title{color:#fff;margin:0 0 10px;font-family:Sora,Inter,sans-serif;font-size:21px;font-weight:700;line-height:1.25}.auth-brand-tagline{color:#f2f7f5d1;max-width:30ch;margin:0;font-size:13.5px;line-height:1.6}.auth-brand-tagline strong{color:#fff;font-weight:600}.auth-brand-list{flex-direction:column;gap:10px;margin:26px 0 0;padding:0;list-style:none;display:flex}.auth-brand-list li{color:#f2f7f5d9;padding-left:16px;font-size:12.5px;position:relative}.auth-brand-list li:before{content:"";background:#f2f7f5a6;border-radius:50%;width:5px;height:5px;position:absolute;top:7px;left:0}.auth-brand-steps{flex-direction:column;gap:14px;margin:26px 0 0;padding:0;list-style:none;display:flex}.auth-brand-steps li{color:#f2f7f5d9;align-items:baseline;gap:10px;font-size:12.5px;display:flex}.auth-brand-steps li b{color:#fff;flex-shrink:0;font-size:12px;font-weight:700}.auth-brand-foot{color:#f2f7f5bf;border-top:1px solid #ffffff29;margin-top:18px;padding-top:18px;font-size:12.5px}.auth-brand-foot a{color:#fff;text-underline-offset:3px;font-weight:600;text-decoration:underline}.auth-brand-foot a:hover{color:#fffc}.auth-panel{flex-direction:column;flex:1;justify-content:center;padding:44px 48px;display:flex}.auth-panel-scroll{justify-content:flex-start;padding-top:40px;padding-bottom:40px;overflow-y:auto}.auth-panel-inner{max-width:360px}.auth-card-lg .auth-panel-inner{max-width:520px}.auth-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--auth-brand);margin:0 0 8px;font-size:12px;font-weight:600}.auth-panel-title{color:var(--auth-ink);margin:0 0 6px;font-family:Sora,Inter,sans-serif;font-size:26px;font-weight:700}.auth-panel-sub{color:var(--auth-muted);margin:0 0 26px;font-size:13.5px}.auth-form{flex-direction:column;display:flex}.auth-field{margin-bottom:16px;display:block}.auth-field-label{color:#374151;margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.auth-input{border:1px solid var(--auth-border);width:100%;min-width:0;color:var(--auth-ink);background:#f9fafb;border-radius:8px;outline:none;padding:11px 13px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.auth-input::placeholder{color:#9ca3af}.auth-input:focus{border-color:var(--auth-brand);background:#fff;box-shadow:0 0 0 3px #3b82f633}.auth-input[readonly]{color:var(--auth-muted);background:#f3f4f6}.auth-input--select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg,#0000 50%,#9ca3af 50%),linear-gradient(135deg,#9ca3af 50%,#0000 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px;padding-right:34px}.auth-grid-2{grid-template-columns:1fr 1fr;gap:0 20px;display:grid}.auth-colors{gap:22px;margin-bottom:16px;display:flex}.auth-color-field{align-items:center;gap:9px;display:inline-flex}.auth-color-field span{color:#374151;font-size:12.5px;font-weight:600}.auth-color-field input[type=color]{border:1px solid var(--auth-border);cursor:pointer;background:0 0;border-radius:8px;width:28px;min-width:28px;height:28px;padding:0}.auth-submit{color:#fff;cursor:pointer;background:linear-gradient(90deg,#3b82f6 0%,#4f46e5 100%);border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-family:inherit;font-size:14.5px;font-weight:600;transition:filter .15s,transform .1s,box-shadow .15s}.auth-submit:hover{filter:brightness(1.05);box-shadow:0 10px 24px #3b82f64d}.auth-submit:active{transform:translateY(1px)}.auth-note{margin:2px 0 4px;font-size:13px}.auth-note--error{color:#b3261e}.auth-note--ok{color:#1e7a4f}.auth-scene.tenant-locked .auth-brand{background:linear-gradient(165deg, var(--accent) 0%, var(--accent-2) 100%)}.auth-scene.tenant-locked .auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent)}.auth-scene.tenant-locked .auth-submit{background:linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 100%)}.auth-scene.tenant-locked .auth-submit:hover{box-shadow:0 6px 16px color-mix(in srgb, var(--accent) 30%, transparent)}.auth-scene.tenant-locked .auth-kicker{color:var(--accent)}@media (width<=820px){.auth-card,.auth-card-lg{flex-direction:column;min-height:auto}.auth-brand{width:100%;padding:28px 28px 24px}.auth-brand-list,.auth-brand-steps{flex-flow:wrap;gap:12px 20px;margin-top:18px}.auth-panel{padding:32px 28px}.auth-panel-inner,.auth-card-lg .auth-panel-inner{max-width:none}.auth-grid-2{grid-template-columns:1fr}.auth-brand-foot{display:none}}.app-shell{grid-template-columns:240px 1fr;gap:16px;max-width:1240px;margin:32px auto;padding:0 16px;display:grid}.card{background:linear-gradient(170deg, var(--panel) 0%, var(--panel-2) 100%);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 12px 30px #554e7f1a}.workspace{min-width:0}.sidebar{height:fit-content;position:sticky;top:16px}.brand-title{margin:0;font-size:1.25rem}.brand-logo{object-fit:cover;border:1px solid var(--line);border-radius:12px;width:52px;height:52px;margin-bottom:10px}.brand-subtitle{color:var(--muted);margin:4px 0 0;font-size:.9rem}.side-nav{gap:10px;margin-top:16px;display:grid}.nav-item{color:#fff;background:#111;border:1px solid #111;justify-content:flex-start;width:calc(100% - 18px);margin-left:auto}.nav-item:hover{background:#000}.nav-item.active{color:#fff;background:#000;border:1px solid #000}.side-note{margin-top:14px;font-size:.85rem}.header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.title{color:#322e52;margin:0;font-size:1.4rem}.subtitle{color:var(--muted);margin:6px 0 0;font-size:.95rem}.hero{justify-content:space-between;align-items:center;display:flex}.hero-badge{text-align:center;border:1px solid var(--line);background:linear-gradient(135deg,#f3f1ff,#ece9ff);border-radius:14px;min-width:140px;padding:12px}.badge-label{color:var(--muted);font-size:.8rem}.badge-value{margin-top:6px;font-weight:700}.grid{gap:14px;display:grid}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{border:1px solid var(--line);background:#f8f7ff;border-radius:12px;padding:14px}.metric .label{color:var(--muted);font-size:.85rem}.metric .value{margin-top:7px;font-size:1.2rem;font-weight:700}.row{flex-wrap:wrap;gap:10px;display:flex}.color-field{color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.color-field input[type=color]{background:0 0;border:0;width:36px;min-width:36px;height:28px;padding:0}input,button,select{border:1px solid var(--line);color:var(--txt);background:#fff;border-radius:10px;padding:10px 12px;font-size:.95rem}input{min-width:180px}input[type=checkbox]{width:auto;min-width:auto;padding:0}button{cursor:pointer;background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border:none;font-weight:700}button.ghost{border:1px solid var(--line);color:var(--txt);background:#fff}.section-title{margin:0 0 12px;font-size:1.06rem}table{border-collapse:collapse;border-radius:12px;width:100%;overflow:hidden}th,td{border-bottom:1px solid var(--line);text-align:left;padding:10px;font-size:.93rem}th{color:var(--muted);font-weight:600}.error{color:var(--danger)}.ok{color:#65d6b5}.muted{color:var(--muted)}.tabs{flex-wrap:wrap;gap:10px;display:flex}button.active{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border:none}@media (width<=920px){.app-shell{grid-template-columns:1fr}.grid.cols-4,.grid.cols-3{grid-template-columns:1fr 1fr}}@media (width<=620px){.grid.cols-4,.grid.cols-3{grid-template-columns:1fr}}#app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.school-exact{--sidebar-w:240px;--sidebar-collapsed:68px;--bg:#f5f6f8;--surface:#fff;--border:#e2e4ea;--text-primary:#171b24;--text-secondary:#565e6c;--text-muted:#8a909d;--accent-blue:#1b5fae;--accent-green:#1e8e5a;--accent-rose:#b3413e;--accent-amber:#9a6b12;--accent-purple:#5b4b8a;--accent-teal:#1e7a72;--btn-bg:#1b5fae;--btn-text:#fff;--btn-hover:#4f46e5;--sidebar-bg:#fff;--sidebar-text:#565e6c;--topbar-bg:#fff;--link-color:#1b5fae;--shadow-sm:0 1px 2px #171b240d;--shadow-md:0 2px 10px #171b2412;--radius:10px;--radius-sm:6px;--transition:all .16s ease;background:var(--bg);height:100dvh;color:var(--text-primary);font-size:14px;display:flex;position:relative;overflow:hidden}.school-exact[data-density=compact]{font-size:13px}.school-exact[data-density=compact] .topbar{height:52px}.school-exact[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.school-exact[data-theme=dark] .card,.school-exact[data-theme=dark] .form-card,.school-exact[data-theme=dark] .mini-stat{box-shadow:none;background:#0a0a0a;border-color:#1a1a1a}.school-exact[data-theme=dark] .nav-badge{color:#d4d4d4;background:#1a1a1a}.school-exact[data-theme=dark] .nav-item:hover,.school-exact[data-theme=dark] .nav-item.active{background:#141414}.school-exact[data-theme=dark] .table-wrap table thead th{background:#000}.school-exact[data-theme=dark] .search-wrap input,.school-exact[data-theme=dark] .search-wrap select,.school-exact[data-theme=dark] .form-group input,.school-exact[data-theme=dark] .form-group select,.school-exact[data-theme=dark] .form-group textarea{color:#f5f5f5;background:#000;border-color:#1a1a1a}.school-exact[data-theme=dark] .theme-toggle-btn{color:#f5f5f5;background:#0a0a0a;border-color:#1a1a1a}.school-exact #sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--sidebar-bg);border-right:1px solid var(--border);transition:var(--transition);z-index:40;flex-direction:column;display:flex;position:relative;overflow:hidden}.school-exact #sidebar.collapsed{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed)}.school-exact .sidebar-logo{flex-shrink:0;align-items:center;gap:8px;padding:50px 16px 24px;display:flex}.school-exact .logo-text{letter-spacing:-.2px;color:var(--text-primary);white-space:nowrap;font-family:Sora,Inter,sans-serif;font-size:21px;font-weight:700;transition:opacity .2s,width .28s;overflow:hidden}.school-exact #sidebar.collapsed .logo-text{opacity:0;width:0}.school-exact .sd-toggle-btn{left:calc(var(--sidebar-w) - 20px);cursor:pointer;z-index:50;width:40px;height:40px;transition:var(--transition);background:#1a1a1a;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:22px;box-shadow:0 4px 12px #00000040}.school-exact .sd-toggle-btn:hover{background:#2d2d2d;transform:scale(1.1)}.school-exact .sd-toggle-btn svg{transition:transform .28s cubic-bezier(.4,0,.2,1)}.school-exact #sidebar.collapsed~.sd-toggle-btn{left:calc(var(--sidebar-collapsed) - 20px)}.school-exact #sidebar.collapsed~.sd-toggle-btn svg{transform:rotate(180deg)}.school-exact .nav-section{flex:1;padding:16px 10px;overflow:hidden auto}.school-exact .nav-section::-webkit-scrollbar{width:6px}.school-exact .nav-section::-webkit-scrollbar-track{background:0 0}.school-exact .nav-section::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:3px}.school-exact .nav-label{letter-spacing:.08em;color:#999;text-transform:uppercase;white-space:nowrap;padding:12px 12px 8px;font-size:11px;font-weight:600;transition:opacity .2s;overflow:hidden}.school-exact #sidebar.collapsed .nav-label{opacity:0}.school-exact .nav-item{width:100%;color:var(--sidebar-text);border-radius:var(--radius-sm);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:12px;margin-bottom:0;padding:12px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s;display:flex}.school-exact .nav-item:hover,.school-exact .nav-item.active{background:color-mix(in srgb, var(--accent-blue) 12%, transparent);color:var(--text-primary)}.school-exact .nav-icon{color:currentColor;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.school-exact .nav-icon svg{stroke:currentColor;fill:none;stroke-width:2px;width:18px;height:18px}.school-exact .nav-text{color:currentColor;opacity:1;font-size:14px;font-weight:500;transition:opacity .2s;overflow:hidden}.school-exact #sidebar.collapsed .nav-text{opacity:0}.school-exact .nav-badge{color:#666;background:#e5e5e5;border-radius:20px;flex-shrink:0;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:600;transition:opacity .2s}.school-exact #sidebar.collapsed .nav-badge{opacity:0}.school-exact .sidebar-footer{border-top:1px solid var(--border);align-items:center;gap:10px;padding:12px 10px;display:flex;overflow:hidden}.school-exact .avatar-sm{background:var(--accent-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:600;display:flex}.school-exact .footer-info{transition:opacity .2s;overflow:hidden}.school-exact #sidebar.collapsed .footer-info{opacity:0}.school-exact .footer-name{white-space:nowrap;color:var(--text-primary);font-size:13px;font-weight:600}.school-exact .footer-role{color:var(--text-muted);white-space:nowrap;font-size:11px}.school-exact .sd-logo-img{object-fit:cover;border-radius:8px;flex-shrink:0;width:30px;height:30px}.school-exact #main{min-width:0;transition:var(--transition);flex-direction:column;flex:1;display:flex;overflow:hidden}.school-exact .topbar{background:var(--topbar-bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:64px;padding:0 28px;display:flex}.school-exact .topbar-title{letter-spacing:-.3px;font-size:18px;font-weight:600}.school-exact .topbar-sub{color:var(--text-muted);margin-top:1px;font-size:13px}.school-exact .topbar-actions{align-items:center;gap:10px;display:flex}.school-exact .search-bar{flex:1;max-width:320px;margin-left:auto;position:relative}.school-exact .search-bar input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:24px;outline:none;min-width:0;padding:8px 14px 8px 38px;font-family:Inter,sans-serif;font-size:13px}.school-exact .search-bar input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #1b5fae1f}.school-exact .search-icon{color:var(--text-muted);display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.school-exact .global-search-results{background:var(--surface);border:1px solid var(--border);z-index:210;border-radius:14px;max-height:320px;padding:6px;display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto;box-shadow:0 10px 28px #171b2424}.school-exact .global-search-results.open{display:block}.school-exact .global-search-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:9px 10px;display:grid}.school-exact .global-search-item:hover{background:var(--bg)}.school-exact .global-search-type{color:var(--accent-blue);background:#1b5fae14;border:1px solid #1b5fae33;border-radius:999px;grid-area:1/1/span 2;padding:2px 8px;font-size:10px;font-weight:600}.school-exact .global-search-main{grid-column:2;font-size:13px;font-weight:600}.school-exact .global-search-sub{color:var(--text-muted);grid-column:2;font-size:11px}.school-exact .global-search-empty{color:var(--text-muted);text-align:center;padding:12px;font-size:12px}.school-exact .icon-btn{background:var(--bg);border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);transition:var(--transition);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.school-exact .icon-btn:hover{background:var(--border)}.school-exact .notif-dot{background:var(--accent-rose);border:1.5px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.school-exact .notif-wrap{position:relative}.school-exact .notifications-dropdown{border:1px solid var(--border);background:var(--surface);z-index:220;opacity:0;pointer-events:none;border-radius:14px;width:min(420px,86vw);max-height:420px;transition:opacity .18s,transform .18s;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;transform:translateY(-6px)scale(.98);box-shadow:0 12px 32px #171b2429}.school-exact .notifications-dropdown.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.school-exact .notifications-header{border-bottom:1px solid var(--border);padding:12px 14px;font-size:13px;font-weight:600}.school-exact .notifications-list{flex-direction:column;gap:4px;max-height:360px;padding:6px;display:flex;overflow:auto}.school-exact .notif-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;gap:4px;width:100%;padding:10px;display:flex}.school-exact .notif-item:hover{background:var(--bg)}.school-exact .notif-pill{text-transform:uppercase;border-radius:999px;align-self:flex-start;padding:2px 7px;font-size:10px;font-weight:600}.school-exact .notif-pill-absence{color:#92400e;background:#d9770629}.school-exact .notif-pill-paiement_due{color:#9f1239;background:#f43f5e24}.school-exact .notif-pill-event{color:#1d4ed8;background:#3b82f624}.school-exact .notif-title{color:var(--text-primary);font-size:12px;font-weight:600}.school-exact .notif-message{color:var(--text-secondary);font-size:12px;line-height:1.45}.school-exact .notif-time{color:var(--text-muted);font-size:11px}.school-exact .notif-empty{text-align:center;color:var(--text-muted);padding:18px 10px;font-size:12px}.school-exact .avatar-top{background:var(--accent-blue);color:#fff;cursor:pointer;width:34px;height:34px;transition:var(--transition);border:2px solid #0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:600;display:flex}.school-exact .avatar-top:hover{transform:scale(1.06);box-shadow:0 4px 14px #1b5fae59}.school-exact .user-menu-wrap{position:relative}.school-exact .user-dropdown{border:1px solid var(--border);z-index:200;opacity:0;pointer-events:none;background:#fff;border-radius:14px;width:220px;transition:opacity .18s,transform .18s;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;transform:translateY(-6px)scale(.97);box-shadow:0 8px 32px #171b2424}.school-exact .user-dropdown.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.school-exact .user-dropdown-header{background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px;display:flex}.school-exact .user-dropdown-avatar{background:var(--accent-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:700;display:flex}.school-exact .user-dropdown-name{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.2}.school-exact .user-dropdown-role{color:var(--text-muted);margin-top:2px;font-size:11px}.school-exact .user-dropdown-divider{background:var(--border);height:1px;margin:0}.school-exact .user-dropdown-item{width:100%;color:var(--accent-rose);cursor:pointer;text-align:left;background:#fff;border:none;border-radius:0;align-items:center;gap:10px;padding:13px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s;display:flex}.school-exact .user-dropdown-item:hover{background:#fff5f5}.school-exact .content{flex:1;grid-template-columns:minmax(0,1fr) minmax(240px,300px);align-content:start;gap:20px;padding:24px 28px;display:grid;overflow:hidden auto}.school-exact .content.content-full{grid-template-columns:1fr}.school-exact .content.content-full .col-main{grid-row:auto;min-width:0}.school-exact .content::-webkit-scrollbar{width:5px}.school-exact .content::-webkit-scrollbar-track{background:0 0}.school-exact .content::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.school-exact .col-main,.school-exact .col-side{flex-direction:column;grid-row:1/3;gap:20px;min-width:0;display:flex}.school-exact .card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:20px}.school-exact .card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.school-exact .card-title{color:var(--text-primary);align-items:center;gap:7px;font-size:14px;font-weight:600;display:flex}.school-exact .card-count{color:var(--text-muted);background:var(--bg);border-radius:20px;padding:2px 8px;font-size:12px;font-weight:500}.school-exact .card-action{color:var(--text-muted);cursor:pointer;transition:var(--transition);align-items:center;gap:6px;display:flex}.school-exact .card-action:hover{color:var(--text-primary)}.school-exact .stats-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.school-exact .stat-card{transition:var(--transition);border:1px solid var(--border);color:var(--text-primary);border-radius:16px;min-width:0;padding:18px 18px 16px;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000008}.school-exact .stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f,0 8px 24px #0000000a}.school-exact .stat-card-plain{background:var(--surface)}.school-exact .stat-card-mint{background:color-mix(in srgb, #0f766e 10%, var(--surface));color:#0f766e}.school-exact .stat-card-rose{background:color-mix(in srgb, #1d4ed8 10%, var(--surface));color:#1d4ed8}.school-exact .stat-card-cream{background:color-mix(in srgb, #b45309 10%, var(--surface));color:#b45309}.school-exact .stat-card-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.school-exact .stat-val{letter-spacing:-.6px;color:inherit;font-size:26px;font-weight:700;line-height:1.1}.school-exact .stat-label{color:var(--text-muted);margin-top:6px;font-size:12px;font-weight:500}.school-exact .stat-week{color:var(--text-muted);margin-top:10px;font-size:12px}.school-exact .stat-icon-new{background:color-mix(in srgb, currentColor 12%, var(--surface));width:40px;height:40px;color:inherit;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.school-exact .stat-bar-wrap{align-items:center;gap:8px;display:flex}.school-exact .stat-bar-track{background:color-mix(in srgb, var(--text-primary) 10%, transparent);border-radius:99px;flex:1;height:6px;overflow:hidden}.school-exact .stat-bar-fill{background:var(--text-primary);border-radius:99px;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1);animation:1s forwards barGrow}.school-exact .stat-bar-pct{color:var(--text-secondary);white-space:nowrap;font-size:11px;font-weight:600}.school-exact .stat-circ{color:inherit;margin-top:8px}.school-exact .circ-bg{fill:none;stroke:color-mix(in srgb, currentColor 18%, transparent);stroke-width:4px}.school-exact .circ-fill{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset 1s}.school-exact[data-theme=dark] .stat-card-mint{color:#5eead4}.school-exact[data-theme=dark] .stat-card-rose{color:#93c5fd}.school-exact[data-theme=dark] .stat-card-cream{color:#fcd34d}.school-exact[data-theme=dark] .stat-label,.school-exact[data-theme=dark] .stat-week,.school-exact[data-theme=dark] .stat-bar-pct{color:var(--text-secondary)}.school-exact .progress-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.school-exact .dashboard-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.school-exact .dashboard-quick-links{flex-direction:column;gap:8px;display:flex}.school-exact .dashboard-quick-link{width:100%;justify-content:flex-start!important}.school-exact .overview-donut{align-items:center;gap:16px;min-width:0;display:flex}.school-exact .overview-donut-chart{flex-shrink:0;transform:rotate(-90deg)}.school-exact .overview-donut-meta{flex:1;min-width:0}.school-exact .overview-donut-value{letter-spacing:-.5px;font-size:22px;font-weight:700}.school-exact .overview-donut-label{color:var(--text-muted);margin-bottom:10px;font-size:11px}.school-exact .prog-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.school-exact .prog-card-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.school-exact .prog-subject{font-size:13px;font-weight:600}.school-exact .prog-rank{font-size:11px;font-weight:500}.school-exact .prog-ring{justify-content:center;align-items:center;margin:8px 0;display:flex}.school-exact .prog-pct{text-align:center;margin-top:6px;font-size:12px;font-weight:600}.school-exact .donut-svg{transform:rotate(-90deg)}.school-exact .activity-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.school-exact .activity-item:last-child{border-bottom:none}.school-exact .activity-avatar{background:var(--accent-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:600;display:flex}.school-exact .activity-info{flex:1;min-width:0}.school-exact .activity-name{font-size:13px;font-weight:500}.school-exact .activity-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;overflow:hidden}.school-exact .activity-meta{text-align:right;flex-shrink:0}.school-exact .activity-date{color:var(--text-muted);font-size:11px}.school-exact .activity-type{border-radius:6px;margin-top:3px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-block}.school-exact .course-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:11px 0;display:flex}.school-exact .course-item:last-child{border-bottom:none}.school-exact .course-thumb{border-radius:var(--radius-sm);background:var(--bg);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.school-exact .course-info{flex:1;min-width:0}.school-exact .course-name{font-size:13px;font-weight:600}.school-exact .course-teacher{color:var(--text-muted);margin-top:1px;font-size:11px}.school-exact .course-section{color:var(--text-muted);font-size:10px}.school-exact .course-avatars{display:flex}.school-exact .course-av{background:var(--accent-blue);color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-left:-6px;font-size:9px;font-weight:600;display:flex}.school-exact .course-av:first-child{margin-left:0}.school-exact .legend{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.school-exact .legend-item{color:var(--text-muted);align-items:center;gap:5px;font-size:11px;display:flex}.school-exact .legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.school-exact .cal-month{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.school-exact .cal-month-label{font-size:13px;font-weight:600}.school-exact .cal-nav{gap:4px;display:flex}.school-exact .cal-nav button{border:1px solid var(--border);background:var(--bg);cursor:pointer;width:24px;height:24px;color:var(--text-secondary);transition:var(--transition);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.school-exact .cal-nav button:hover{background:var(--border)}.school-exact .cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.school-exact .cal-day-label{color:var(--text-muted);text-transform:uppercase;padding:4px 0;font-size:10px;font-weight:600}.school-exact .cal-day{cursor:pointer;width:30px;height:30px;transition:var(--transition);color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;margin:auto;font-size:12px;display:flex}.school-exact .cal-day:hover{background:var(--bg)}.school-exact .cal-day.today{background:var(--text-primary);color:#fff;font-weight:600}.school-exact .cal-day.has-event{position:relative}.school-exact .cal-day.has-event:after{content:"";background:var(--accent-blue);border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.school-exact .cal-day.today.has-event:after{background:#fff}.school-exact .cal-day.muted{color:var(--text-muted);opacity:.4}.school-exact .event-item{border-bottom:1px solid var(--border);gap:10px;padding:10px 0;display:flex}.school-exact .event-item:last-child{border-bottom:none}.school-exact .event-time{color:var(--text-muted);flex-shrink:0;width:36px;padding-top:2px;font-size:11px}.school-exact .event-bar{border-radius:2px;flex-shrink:0;align-self:stretch;width:3px;min-height:36px}.school-exact .event-content{background:var(--bg);border-radius:6px;flex:1;padding:8px 10px}.school-exact .event-name{font-size:12px;font-weight:600}.school-exact .event-sub{color:var(--text-muted);margin-top:2px;font-size:10px}.school-exact .filter-wrap{margin-bottom:12px;position:relative}.school-exact .filter-icon{color:var(--text-muted);display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.school-exact .filter-input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:20px;outline:none;min-width:0;padding:7px 12px 7px 34px;font-family:Inter,sans-serif;font-size:12px}.school-exact .filter-input:focus{border-color:var(--accent-blue)}.school-exact .form-stack{gap:12px;display:grid}.school-exact .table-wrap{overflow:auto}.school-exact input,.school-exact select{background:var(--bg);border:1px solid var(--border);width:100%;min-width:0;color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;padding:9px 13px;font-family:inherit;font-size:13px;transition:border-color .18s,box-shadow .18s,background .18s}.school-exact input::placeholder{color:var(--text-muted)}.school-exact input:focus,.school-exact select:focus{border-color:var(--accent-blue);background:#fff;box-shadow:0 0 0 3px #1b5fae1f}.school-exact select{cursor:pointer}.school-exact select.table-inline-select{width:auto;max-width:150px;padding:6px 10px;font-size:12px}.school-exact input[type=color]{cursor:pointer;border-radius:6px;width:36px;min-width:36px;height:32px;padding:2px}.school-exact input[type=file]{cursor:pointer;padding:7px 12px;font-size:12px}.school-exact input[type=checkbox]{width:16px;min-width:16px;height:16px;accent-color:var(--accent-blue);cursor:pointer;padding:0}.school-exact button:not(.nav-item):not(.sd-toggle-btn):not(.cal-nav button):not(.icon-btn):not(.avatar-top):not(.ghost):not(.classe-tab):not(.inscription-mode-btn):not(.btn-table-action):not(.flash-close):not([data-review]):not(.notif-item):not(.topbar-menu-btn):not(.mobile-menu-item):not(.mobile-menu-close):not(#btnCancelAddEleve):not(#btnCancelAddEleve2):not(#btnCancelAddClasse):not(#btnCancelAddClasse2){background:var(--btn-bg);color:var(--btn-text);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:background .18s,transform .15s,box-shadow .18s,filter .18s;display:inline-flex}.school-exact button:not(.nav-item):not(.sd-toggle-btn):not(.cal-nav button):not(.icon-btn):not(.avatar-top):not(.ghost):not(.classe-tab):not(.inscription-mode-btn):not(.btn-table-action):not(.flash-close):not([data-review]):not(.notif-item):not(.topbar-menu-btn):not(.mobile-menu-item):not(.mobile-menu-close):not(#btnCancelAddEleve):not(#btnCancelAddEleve2):not(#btnCancelAddClasse):not(#btnCancelAddClasse2):hover{background:var(--btn-hover);filter:brightness(1.05);box-shadow:0 4px 12px color-mix(in srgb, var(--btn-bg) 35%, transparent);transform:translateY(-1px)}.school-exact button.ghost{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:background .18s,border-color .18s;display:inline-flex}.school-exact button.ghost:hover{background:var(--bg);border-color:color-mix(in srgb, var(--border) 70%, var(--text-muted))}.school-exact .segmented-toggle{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;width:fit-content;margin-bottom:16px;padding:3px;display:inline-flex}.school-exact .segmented-toggle button{color:var(--text-secondary)!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:5px!important;padding:7px 16px!important;font-size:13px!important;font-weight:500!important;transform:none!important}.school-exact .segmented-toggle button:not(.ghost){background:var(--surface)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-sm)!important;font-weight:600!important}.school-exact .table-wrap{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.school-exact table{border-collapse:collapse;width:100%;font-size:13px}.school-exact thead th{background:var(--bg);text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 14px;font-size:11px;font-weight:700}.school-exact thead th:first-child{border-radius:10px 0 0}.school-exact thead th:last-child{border-radius:0 10px 0 0}.school-exact tbody td{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;padding:12px 14px}.school-exact tbody tr:last-child td{border-bottom:none}.school-exact tbody tr{transition:background .12s}.school-exact tbody tr:hover td{background:#1b5fae0a}.school-exact code{background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);border-radius:5px;padding:2px 7px;font-family:Fira Mono,Consolas,monospace;font-size:11px}.school-exact .page-header{align-items:center;gap:14px;margin-bottom:20px;display:flex}.school-exact .page-header-icon{border-radius:var(--radius-sm);background:var(--accent-blue);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.school-exact .page-header-title{letter-spacing:-.3px;font-family:Sora,Inter,sans-serif;font-size:20px;font-weight:700;line-height:1.2}.school-exact .page-header-sub{color:var(--text-muted);margin-top:2px;font-size:12px}.school-exact .mini-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 18px}.school-exact .mini-stat-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:500}.school-exact .mini-stat-value{letter-spacing:-.6px;font-family:Sora,Inter,sans-serif;font-size:28px;font-weight:700;line-height:1}.school-exact .mini-stat-sub{color:var(--text-muted);margin-top:6px;font-size:11px}.school-exact .mini-stats-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.school-exact .mini-stats-row--4{grid-template-columns:repeat(4,minmax(0,1fr))}.school-exact .prog-bar-track{background:var(--border);border-radius:99px;height:5px;margin-top:10px;overflow:hidden}.school-exact .prog-bar-fill{border-radius:99px;height:100%;transition:width .8s cubic-bezier(.4,0,.2,1)}.school-exact .badge{border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.school-exact .badge-green{color:var(--accent-green);background:#1e8e5a1f}.school-exact .badge-rose{color:var(--accent-rose);background:#b3413e1f}.school-exact .badge-amber{color:var(--accent-amber);background:#9a6b121f}.school-exact .badge-blue{color:var(--accent-blue);background:#1b5fae1a}.school-exact .badge-gray{background:var(--bg);color:var(--text-muted)}.school-exact .form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:20px}.school-exact .form-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.school-exact .form-card-title{color:var(--text-primary);font-size:14px;font-weight:700}.school-exact .form-close-btn{cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;display:flex;border:1px solid var(--border)!important;background:var(--bg)!important;color:var(--text-muted)!important;padding:0!important;transition:background .15s!important}.school-exact .form-close-btn:hover{background:var(--border)!important;color:var(--text-primary)!important;box-shadow:none!important;transform:none!important}.school-exact .form-grid{gap:12px;display:grid}.school-exact .form-grid-3{grid-template-columns:1fr 1fr 1fr}.school-exact .form-grid-2{grid-template-columns:1fr 1fr}.school-exact .form-group label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:5px;font-size:11px;font-weight:600;display:block}.school-exact .form-actions{align-items:center;gap:10px;margin-top:16px;display:flex}.school-exact .inscription-mode-toggle{background:var(--bg);border:1px solid var(--border);border-radius:10px;gap:4px;margin-bottom:12px;padding:4px;display:inline-flex}.school-exact .inscription-mode-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600}.school-exact .inscription-mode-btn.active{background:var(--surface);color:var(--text-primary);box-shadow:0 1px 2px #171b2414}.school-exact .form-error{color:var(--accent-rose);align-items:center;gap:5px;margin-top:8px;font-size:12px;display:flex}.school-exact .bulk-sheet{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-top:16px;overflow:hidden}.school-exact .bulk-sheet-caption{color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);padding:12px 14px;font-size:12px;line-height:1.45}.school-exact .bulk-table{border-collapse:collapse;width:100%}.school-exact .bulk-table th{z-index:1;background:var(--bg);color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:12px;font-weight:600;position:sticky;top:0}.school-exact .bulk-table td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-primary);padding:10px 12px}.school-exact .bulk-table tr:last-child td{border-bottom:none}.school-exact .bulk-cell-input,.school-exact .bulk-cell-select{width:100%;min-width:88px;max-width:140px;border:1px solid var(--border)!important;background:var(--bg)!important;color:var(--text-primary)!important;box-shadow:none!important;border-radius:8px!important;padding:8px 9px!important;font-size:13px!important}.school-exact .bulk-cell-input:focus,.school-exact .bulk-cell-select:focus{border-color:var(--accent-blue)!important;background:var(--surface)!important}.school-exact .bulk-total-cell{text-align:right;color:var(--accent-blue);font-weight:700}.school-exact .search-wrap{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.school-exact .search-input-wrap{flex:1;min-width:200px;position:relative}.school-exact .search-input-wrap svg{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.school-exact .search-input-wrap input{border-radius:8px;padding-left:34px!important}.school-exact .muted{color:var(--text-muted)}.school-exact .empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.school-exact .empty-state-icon{background:var(--bg);border:1px solid var(--border);border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:4px;display:flex}.school-exact .empty-state-title{color:var(--text-primary);font-size:15px;font-weight:600}.school-exact .empty-state-sub{color:var(--text-muted);max-width:340px;font-size:13px;line-height:1.6}.school-exact .alert{border-radius:10px;align-items:center;gap:10px;margin-bottom:14px;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.school-exact .alert-warn{color:var(--accent-amber);background:#9a6b121a;border:1px solid #9a6b124d}.school-exact .alert-info{color:var(--accent-blue);background:#1b5fae12;border:1px solid #1b5fae38}.school-exact .alert-ok{color:var(--accent-green);background:#1e8e5a14;border:1px solid #1e8e5a42}.school-exact .alert-info-text{padding:2px 0}.school-exact .alert-info-title{color:var(--accent-blue);letter-spacing:-.02em;margin-bottom:6px;font-size:13px;font-weight:600}.school-exact .alert-info-desc{color:var(--text-muted);max-width:560px;font-size:12px;line-height:1.55}.school-exact .rollcall-head{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.school-exact .rollcall-title{letter-spacing:-.2px;color:var(--text-primary);font-family:Sora,Inter,sans-serif;font-size:17px;font-weight:700}.school-exact .rollcall-detected{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.school-exact .rollcall-detected-none{color:var(--text-muted);font-size:13px}.school-exact .rollcall-picker{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px;padding-bottom:16px;display:grid}.school-exact .rollcall-caption{color:var(--text-muted);margin-bottom:10px;font-size:12.5px}.school-exact .rollcall-list{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;max-height:520px;display:flex;overflow-y:auto}.school-exact .rollcall-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:9px 12px;display:flex}.school-exact .rollcall-row:last-child{border-bottom:none}.school-exact .rollcall-name{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;overflow:hidden}.school-exact .rollcall-matricule{color:var(--text-muted);margin-top:1px;font-size:11px;font-weight:400;display:block}.school-exact .rollcall-chips{flex-shrink:0;gap:4px;display:flex}.school-exact .rollcall-chip{border-radius:var(--radius-sm)!important;border:1px solid var(--border)!important;background:var(--surface)!important;width:30px!important;min-width:0!important;height:30px!important;color:var(--text-muted)!important;box-shadow:none!important;padding:0!important;font-size:12px!important;font-weight:700!important;transform:none!important}.school-exact .rollcall-chip[data-active=true][data-statut-btn=present]{background:var(--accent-green)!important;border-color:var(--accent-green)!important;color:#fff!important}.school-exact .rollcall-chip[data-active=true][data-statut-btn=absent]{background:var(--accent-rose)!important;border-color:var(--accent-rose)!important;color:#fff!important}.school-exact .rollcall-chip[data-active=true][data-statut-btn=retard]{background:var(--accent-amber)!important;border-color:var(--accent-amber)!important;color:#fff!important}.school-exact .rollcall-chip[data-active=true][data-statut-btn=excuse]{background:var(--accent-purple)!important;border-color:var(--accent-purple)!important;color:#fff!important}.school-exact .rollcall-justification{flex-shrink:0;width:160px!important;padding:6px 9px!important;font-size:12px!important}.school-exact .rollcall-footer{border-top:1px solid var(--border);align-items:center;gap:14px;margin-top:16px;padding-top:14px;display:flex}.school-exact .collapsible-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.school-exact .collapsible-section summary{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;padding:14px 20px;font-size:13px;font-weight:600;list-style:none;display:flex}.school-exact .collapsible-section summary::-webkit-details-marker{display:none}.school-exact .collapsible-section summary:before{content:"";border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);flex-shrink:0;width:7px;height:7px;transition:transform .15s;transform:rotate(-45deg)}.school-exact .collapsible-section[open] summary:before{transform:rotate(45deg)}.school-exact .collapsible-section[open] summary{border-bottom:1px solid var(--border)}.school-exact .collapsible-section>:not(summary){margin:0 20px 20px}.school-exact .collapsible-section .card{box-shadow:none;margin:0!important}.school-exact .nfc-live-banner,.school-exact .nfc-session-banner{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;font-size:12.5px;display:flex}.school-exact .nfc-session-banner{align-items:flex-start;padding:12px 16px;font-size:13px}.school-exact .nfc-session-banner .nfc-live-dot{margin-top:5px}.school-exact .nfc-live-banner.is-active,.school-exact .nfc-session-banner.is-active{color:var(--text-primary);border-color:var(--accent-green);background:#1e8e5a0f}.school-exact .nfc-live-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.school-exact .nfc-live-banner.is-active .nfc-live-dot,.school-exact .nfc-session-banner.is-active .nfc-live-dot{background:var(--accent-green);animation:1.4s ease-in-out infinite nfcPulse}@keyframes nfcPulse{0%,to{box-shadow:0 0 #1e8e5a59}50%{box-shadow:0 0 0 4px #1e8e5a00}}.school-exact .nfc-attendance-status{color:var(--text-muted);flex-shrink:0;font-size:12px;font-weight:600}.school-exact .nfc-attendance-status.is-present{color:var(--accent-green)}.school-exact .guide-jump{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.school-exact .guide-jump-pill{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);align-items:center;padding:6px 14px;font-size:12px;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.school-exact .guide-jump-pill:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.school-exact .guide-section{margin-bottom:16px;padding:24px}.school-exact .guide-section-head{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;margin-bottom:18px;padding-bottom:18px;display:flex}.school-exact .guide-section-icon{border-radius:var(--radius-sm);background:var(--accent-blue);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.school-exact .guide-section-title{letter-spacing:-.2px;color:var(--text-primary);font-family:Sora,Inter,sans-serif;font-size:16px;font-weight:700}.school-exact .guide-section-intro{color:var(--text-muted);max-width:62ch;margin-top:4px;font-size:13px;line-height:1.55}.school-exact .guide-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.school-exact .guide-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:14px;display:flex}.school-exact .guide-item-icon{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);width:32px;height:32px;color:var(--accent-blue);flex-shrink:0;justify-content:center;align-items:center;display:flex}.school-exact .guide-item-q{color:var(--text-primary);margin-bottom:3px;font-size:13px;font-weight:600;line-height:1.4}.school-exact .guide-item-a{color:var(--text-muted);font-size:12.5px;line-height:1.55}@media (width<=720px){.school-exact .guide-grid{grid-template-columns:1fr}}.school-exact .coming-soon-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px 26px}.school-exact .coming-soon-body{flex-direction:column;gap:0;max-width:560px;display:flex}.school-exact .coming-soon-icon{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;display:flex}.school-exact .coming-soon-title{letter-spacing:-.03em;margin:0 0 10px;font-size:16px;font-weight:700}.school-exact .coming-soon-desc{color:var(--text-muted);margin:0 0 16px;font-size:13px;line-height:1.65}.school-exact .coming-soon-pill{background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);letter-spacing:.03em;text-transform:uppercase;border-radius:6px;align-self:flex-start;align-items:center;margin-top:0;padding:6px 12px;font-size:11px;font-weight:600;display:inline-flex}.school-exact .flash-wrap{flex-shrink:0;padding:10px 28px 0}.school-exact .flash{border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;font-weight:500;line-height:1.4;display:flex}.school-exact .flash-error{color:#9b2f2f;background:#f0a3a324;border:1px solid #f0a3a373}.school-exact .flash-ok{color:#1e7a4f;background:#7ec8a424;border:1px solid #7ec8a473}.school-exact .flash-text{word-break:break-word;flex:1;min-width:0}.school-exact .flash-close{opacity:.65;color:currentColor!important;width:24px!important;height:24px!important;box-shadow:none!important;background:0 0!important;border:1px solid!important;border-radius:50%!important;padding:0!important;font-size:16px!important;line-height:1!important;transform:none!important}.school-exact .flash-close:hover{opacity:1}.school-exact .users-layout{grid-template-columns:1fr minmax(260px,300px);align-items:start;gap:16px;display:grid}.school-exact .users-main-col,.school-exact .users-aside-col{min-width:0}.school-exact .btn-table-action{justify-content:center;align-items:center;background:var(--surface)!important;color:var(--accent-blue)!important;border:1px solid var(--border)!important;box-shadow:none!important;border-radius:8px!important;padding:6px 12px!important;font-size:12px!important;font-weight:600!important;display:inline-flex!important;transform:none!important}.school-exact .btn-table-action:hover{border-color:var(--accent-blue)!important;background:#6e8ef714!important}.school-exact .btn-table-action.is-danger{color:var(--accent-rose)!important}.school-exact .btn-table-action.is-danger:hover{border-color:var(--accent-rose)!important;background:#b3413e14!important}.school-exact .table-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.school-exact .modal-backdrop{z-index:300;background:#171b2473;justify-content:center;align-items:center;padding:24px;animation:.2s fadeIn;position:fixed;inset:0}.school-exact .modal-dialog{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:440px;max-height:min(90vh,640px);padding:22px 24px;overflow-y:auto;box-shadow:0 20px 50px #171b2433}.school-exact .modal-dialog-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.receipt{font-family:inherit}.receipt-header{border-bottom:2px solid var(--text-primary);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;padding-bottom:18px;display:flex}.receipt-brand{align-items:center;gap:12px;min-width:0;display:flex}.receipt-logo{object-fit:cover;background:var(--accent-blue);border-radius:10px;flex-shrink:0;width:44px;height:44px}.receipt-logo-fallback{background:var(--accent-blue);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:16px;font-weight:700;display:flex}.receipt-school-name{color:var(--text-primary);overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:1.25}.receipt-school-code{color:var(--text-muted);margin-top:1px;font-size:11px}.receipt-title-block{text-align:right;flex-shrink:0}.receipt-title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary);font-size:15px;font-weight:800}.receipt-meta{color:var(--text-muted);margin-top:4px;font-size:11.5px;line-height:1.6}.receipt-parties{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;display:grid}.receipt-party-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:5px;font-size:10.5px;font-weight:700}.receipt-party-name{color:var(--text-primary);font-size:14px;font-weight:600}.receipt-party-sub{color:var(--text-muted);margin-top:2px;font-size:12px;line-height:1.5}.receipt-table{border-collapse:collapse;width:100%;margin-bottom:4px}.receipt-table th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);border-bottom:1.5px solid var(--text-primary);padding:0 0 8px;font-size:10.5px;font-weight:700}.receipt-table th:last-child,.receipt-table td:last-child{text-align:right}.receipt-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:12px 0}.receipt-item-title{color:var(--text-primary);font-size:13.5px;font-weight:600}.receipt-item-sub{color:var(--text-muted);margin-top:2px;font-size:11.5px}.receipt-item-amount{white-space:nowrap;font-size:13.5px;font-weight:600}.receipt-totals{width:62%;min-width:220px;margin:14px 0 0 auto}.receipt-totals-row{color:var(--text-muted);justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.receipt-totals-row strong{color:var(--text-primary);font-weight:600}.receipt-totals-row.is-grand{border-top:2px solid var(--text-primary);margin-top:4px;padding-top:12px;font-size:15px}.receipt-totals-row.is-grand span:first-child{color:var(--text-primary);font-weight:700}.receipt-totals-row.is-grand span:last-child{font-weight:800}.receipt-footer{border-top:1px dashed var(--border);margin-top:26px;padding-top:16px}.receipt-thanks{color:var(--text-muted);margin-bottom:24px;font-size:12.5px;font-style:italic}.receipt-signature{justify-content:flex-end;display:flex}.receipt-signature-box{text-align:center;width:210px}.receipt-signature-line{border-bottom:1px solid var(--text-muted);height:40px}.receipt-signature-label{color:var(--text-muted);letter-spacing:.03em;margin-top:6px;font-size:10.5px}.receipt-brandline{text-align:center;color:var(--text-muted);letter-spacing:.04em;margin-top:18px;font-size:10px}@media print{body *{visibility:hidden}.bordereau-print,.bordereau-print *,.bulletin-print,.bulletin-print *{visibility:visible}.bordereau-print,.bulletin-print{position:fixed;inset:0;box-shadow:none!important;border:none!important;max-width:none!important}.bordereau-print #btnPrintBordereau,.bordereau-print #btnCloseBordereau,.bordereau-print #btnCloseBordereau2,.bordereau-print [data-download-bordereau-pdf],.bulletin-print .no-print{display:none!important}.bulletin-print{padding:12px!important;overflow:visible!important}.bulletin-officiel .table-wrap{overflow:visible!important}}.bulletin-officiel{font-size:12px}.bulletin-header{text-align:center;text-transform:uppercase;letter-spacing:.02em;margin-bottom:14px;font-weight:700;line-height:1.5}.bulletin-header div:first-child{font-size:14px}.bulletin-meta-grid{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:4px 24px;margin-bottom:14px;padding-bottom:12px;display:grid}.bulletin-meta-col div{gap:6px;padding:2px 0;display:flex}.bulletin-meta-col span{color:var(--text-muted);min-width:150px}.bulletin-meta-col strong{font-weight:600}.bulletin-title{text-align:center;text-transform:uppercase;margin-bottom:12px;font-size:13px;font-weight:700}.bulletin-table{border-collapse:collapse;width:100%;font-size:11px}.bulletin-table th,.bulletin-table td{border:1px solid var(--border);text-align:center;padding:4px 6px}.bulletin-table thead th{background:var(--bg);font-weight:600}.bulletin-table .bulletin-domaine-cell,.bulletin-table .bulletin-sousdomaine-cell{writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap;background:var(--bg);font-weight:600}.bulletin-table .bulletin-branche-name{text-align:left;white-space:nowrap;font-weight:500}.bulletin-table .num{text-align:right;font-variant-numeric:tabular-nums}.bulletin-table .num.strong{font-weight:700}.bulletin-table .bulletin-soustotal-row{background:var(--bg);font-weight:700}.bulletin-table .bulletin-soustotal-row td:first-child{text-align:left}.bulletin-table .empty-cell{color:var(--text-muted);padding:20px;font-style:italic}.bulletin-footer-grid{grid-template-columns:repeat(5,1fr);gap:10px;margin-top:16px;display:grid}.bulletin-appreciation-print{border-top:1px solid var(--border);gap:32px;margin-top:14px;padding-top:10px;display:flex}.bulletin-appreciation-print div{gap:6px;display:flex}.bulletin-appreciation-print span{color:var(--text-muted)}.bulletin-signatures{color:var(--text-muted);text-align:center;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px;font-size:11px;display:grid}.bulletin-signature-line{border-top:1px solid var(--border);margin-top:32px}@media (width<=900px){.school-exact .users-layout{grid-template-columns:1fr}}.school-exact .schedule-header-cell{text-align:center;letter-spacing:.06em;text-transform:uppercase;background:var(--bg);color:var(--text-muted);border-radius:8px;padding:10px 6px;font-size:11px;font-weight:700}.school-exact .schedule-slot{flex-direction:column;gap:4px;min-height:80px;padding:4px;display:flex}.school-exact .schedule-course-block{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:8px;padding:8px 10px}.school-exact .schedule-course-name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.school-exact .schedule-course-teacher{color:var(--text-muted);margin-top:2px;font-size:10px}.school-exact .settings-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.school-exact .settings-info-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:9px 0;font-size:13px;display:flex}.school-exact .settings-info-row:last-child{border-bottom:none}.school-exact .settings-info-key{color:var(--text-muted);font-weight:500}.school-exact .role-chip{color:var(--accent-blue);background:#1b5fae1a;border-radius:6px;align-items:center;margin-right:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.school-exact .classe-tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.school-exact .classe-tab{border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text-secondary);border-radius:8px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .18s}.school-exact .classe-tab:hover{background:var(--bg);color:var(--text-primary)}.school-exact .classe-tab.active,.school-exact .classe-tab[style*="var(--text-primary)"]{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.schedule-shell{background:color-mix(in srgb, var(--accent-blue) 8%, var(--surface));border:1px solid var(--border);border-radius:14px;margin-bottom:14px;padding:14px}.schedule-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.schedule-kicker{color:var(--text-primary);font-size:13px;font-weight:700}.schedule-sub{color:var(--text-muted);margin-top:2px;font-size:12px}.schedule-pills{align-items:center;gap:8px;display:flex}.schedule-pill{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:999px;align-items:center;gap:5px;padding:6px 10px;font-size:12px;display:inline-flex}.schedule-scroll{-webkit-overflow-scrolling:touch;width:100%;margin-bottom:12px;overflow-x:auto}.schedule-grid-pro{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:760px;padding:8px}.schedule-header-cell{text-align:center;letter-spacing:.06em;text-transform:uppercase;background:var(--bg);color:var(--text-muted);border-radius:8px;padding:10px 6px;font-size:11px;font-weight:700}.schedule-slot{flex-direction:column;gap:6px;min-height:88px;padding:4px;display:flex}.schedule-course-block{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;padding:9px 10px}.schedule-course-name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.schedule-course-teacher{color:var(--text-muted);margin-top:2px;font-size:10px}.schedule-course-chip{background:var(--bg);border:1px solid var(--border);max-width:100%;box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;color:var(--text-primary);border-radius:999px;align-items:center;gap:7px;padding:4px 9px 4px 7px;font-family:inherit;display:inline-flex}.schedule-course-chip:hover{transform:translateY(-1px)}.schedule-course-chip-index{color:#fff;background:var(--text-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.schedule-course-chip-text{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.schedule-more-chip{color:var(--text-muted);background:var(--bg);border:1px dashed var(--border);cursor:pointer;border-radius:999px;align-items:center;margin-top:2px;padding:3px 8px;font-family:inherit;font-size:10px;font-weight:700;display:inline-flex}.classe-tabs{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.classe-tab{border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text-secondary);border-radius:8px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .18s}.classe-tab:hover{background:var(--bg);color:var(--text-primary)}.classe-tab.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}@keyframes barGrow{0%{width:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.school-exact .stat-card{animation:.4s both fadeUp}.school-exact .stat-card:first-child{animation-delay:50ms}.school-exact .stat-card:nth-child(2){animation-delay:.1s}.school-exact .stat-card:nth-child(3){animation-delay:.15s}.school-exact .stat-card:nth-child(4){animation-delay:.2s}.school-exact .topbar-greeting{flex-shrink:1;min-width:0}.school-exact .topbar-menu-btn,.school-exact .mobile-menu-backdrop,.school-exact .mobile-menu-sheet{display:none}@media (width<=1100px){.school-exact .content{grid-template-columns:minmax(0,1fr)}.school-exact .col-main,.school-exact .col-side{grid-row:auto;min-width:0}.school-exact .stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.school-exact .dashboard-split{grid-template-columns:minmax(0,1fr)}.school-exact .mini-stats-row,.school-exact .mini-stats-row--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=980px){.school-exact .progress-row{grid-template-columns:repeat(2,minmax(0,1fr))}.school-exact .settings-grid{grid-template-columns:1fr}.school-exact .form-grid-3{grid-template-columns:1fr 1fr}}@media (width<=1024px){.school-exact{overscroll-behavior:none;overflow:hidden}.school-exact #sidebar,.school-exact .sd-toggle-btn{display:none!important}.school-exact #main{width:100%;min-width:0;padding-bottom:0}.school-exact .topbar-menu-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;transition:background .15s,border-color .15s;display:inline-flex}.school-exact .topbar-menu-btn:hover,.school-exact .topbar-menu-btn:focus-visible{background:color-mix(in srgb, var(--accent-blue) 8%, var(--surface));border-color:color-mix(in srgb, var(--accent-blue) 28%, var(--border));outline:none}.school-exact .topbar-menu-btn.is-open{background:color-mix(in srgb, var(--accent-blue) 12%, var(--surface));border-color:color-mix(in srgb, var(--accent-blue) 35%, var(--border));color:var(--accent-blue)}.school-exact .topbar-menu-icon{width:18px;height:14px;display:block;position:relative}.school-exact .topbar-menu-icon span{background:currentColor;border-radius:2px;height:2px;transition:transform .22s,top .22s,opacity .18s;position:absolute;left:0;right:0}.school-exact .topbar-menu-icon span:first-child{top:0}.school-exact .topbar-menu-icon span:nth-child(2){top:6px}.school-exact .topbar-menu-icon span:nth-child(3){top:12px}.school-exact .topbar-menu-btn.is-open .topbar-menu-icon span:first-child{top:6px;transform:rotate(45deg)}.school-exact .topbar-menu-btn.is-open .topbar-menu-icon span:nth-child(2){opacity:0}.school-exact .topbar-menu-btn.is-open .topbar-menu-icon span:nth-child(3){top:6px;transform:rotate(-45deg)}.school-exact .mobile-menu-backdrop{z-index:140;opacity:0;pointer-events:none;background:#0f141e6b;transition:opacity .2s;display:block;position:fixed;inset:0}.school-exact .mobile-menu-backdrop.visible{opacity:1;pointer-events:auto}.school-exact .mobile-menu-sheet{z-index:150;background:var(--bg);border-right:1px solid var(--border);width:min(320px,88vw);max-height:none;padding-bottom:env(safe-area-inset-bottom,0px);padding-top:env(safe-area-inset-top,0px);border-radius:0;flex-direction:column;transition:transform .28s cubic-bezier(.32,.72,0,1);position:fixed;top:0;bottom:0;left:0;overflow:hidden;transform:translate(-105%);box-shadow:8px 0 28px #171b2424;display:flex!important}.school-exact .mobile-menu-sheet.open{transform:translate(0)}.school-exact .mobile-menu-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 14px;display:flex}.school-exact .mobile-menu-brand{align-items:center;gap:12px;min-width:0;display:flex}.school-exact .mobile-menu-logo,.school-exact .mobile-menu-logo-fallback{object-fit:cover;border-radius:10px;flex-shrink:0;width:40px;height:40px}.school-exact .mobile-menu-logo-fallback{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border);justify-content:center;align-items:center;font-family:Sora,Inter,sans-serif;font-size:16px;font-weight:700;display:inline-flex}.school-exact .mobile-menu-brand-text{flex-direction:column;gap:1px;min-width:0;display:flex}.school-exact .mobile-menu-brand-text #mobileMenuTitle,.school-exact .mobile-menu-header #mobileMenuTitle{letter-spacing:-.02em;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-family:Sora,Inter,sans-serif;font-size:16px;font-weight:700;overflow:hidden}.school-exact .mobile-menu-brand-sub{color:var(--text-muted);font-size:12px;font-weight:500}.school-exact .mobile-menu-close{background:var(--bg);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.school-exact .mobile-menu-close:active{background:var(--border);color:var(--text-primary)}.school-exact .mobile-menu-list{-webkit-overflow-scrolling:touch;flex-direction:column;gap:16px;padding:14px 14px 8px;display:flex;overflow-y:auto}.school-exact .mobile-menu-section{flex-direction:column;gap:8px;display:flex}.school-exact .mobile-menu-section-label{letter-spacing:.02em;text-transform:none;color:var(--text-muted);padding:0 4px;font-size:12px;font-weight:600}.school-exact .mobile-menu-group{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.school-exact .mobile-menu-item{border:none;border-bottom:1px solid var(--border);width:100%;min-height:56px;color:var(--text-primary);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:none;background:0 0;border-radius:0;flex-direction:row;justify-content:flex-start;align-items:center;gap:14px;padding:12px 14px;font-family:inherit;font-size:15px;font-weight:560;transition:background .12s;display:flex;position:relative}.school-exact .mobile-menu-item:last-child{border-bottom:none}.school-exact .mobile-menu-item:active{background:var(--bg);transform:none}.school-exact .mobile-menu-item.active{background:var(--bg);color:var(--text-primary);border-color:var(--border);box-shadow:none}.school-exact .mobile-menu-item.active .mobile-menu-label{color:var(--text-primary);font-weight:650}.school-exact .mobile-menu-icon{background:var(--bg);width:36px;height:36px;color:var(--text-secondary);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.school-exact .mobile-menu-item.active .mobile-menu-icon{background:var(--border);color:var(--text-primary)}.school-exact .mobile-menu-icon svg{width:18px;height:18px}.school-exact .mobile-menu-label{-webkit-line-clamp:unset;text-overflow:ellipsis;white-space:nowrap;flex:auto;width:auto;min-width:0;line-height:1.3;display:block;overflow:hidden}.school-exact .mobile-menu-badge{background:var(--bg);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:11px;font-weight:600;position:static}.school-exact .mobile-menu-chevron{color:var(--text-muted);opacity:.55;flex-shrink:0;align-items:center;display:flex}.school-exact .mobile-menu-item.active .mobile-menu-chevron{color:var(--text-secondary);opacity:.8}body.mobile-menu-open{overflow:hidden}.school-exact .content{gap:12px;min-width:0;padding:14px 12px 20px;grid-template-columns:minmax(0,1fr)!important}.school-exact .col-main,.school-exact .col-side{grid-row:auto;min-width:0}.school-exact .stats-row{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))!important}.school-exact .dashboard-split,.school-exact .progress-row{gap:12px;grid-template-columns:minmax(0,1fr)!important}.school-exact .topbar{height:auto;min-height:52px;padding:8px 12px;padding-top:max(8px, env(safe-area-inset-top,0px));flex-wrap:wrap;align-items:center;gap:10px}.school-exact .topbar-greeting{flex:auto;min-width:0}.school-exact .topbar-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.school-exact .topbar-sub{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.school-exact .search-bar{flex:100%;order:3;max-width:none;min-height:40px;margin-left:0}.school-exact .topbar-actions{flex-shrink:0;gap:6px;margin-left:auto}.school-exact .topbar-actions .icon-btn,.school-exact .topbar-actions .avatar-top{width:40px;height:40px}.school-exact .flash-wrap{padding:8px 12px 0}.school-exact .page-header{flex-wrap:wrap;align-items:flex-start;gap:10px;margin-bottom:14px}.school-exact .page-header>button,.school-exact .page-header .form-actions{width:100%;margin-left:0}.school-exact .page-header>button{min-height:44px}.school-exact .card,.school-exact .form-card{border-radius:14px;padding:14px}.school-exact .card-header{flex-wrap:wrap;align-items:flex-start;gap:8px}.school-exact .table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin:0}.school-exact .table-wrap table{min-width:520px;font-size:12.5px}.school-exact .table-wrap th,.school-exact .table-wrap td{padding:10px 12px}.school-exact .users-layout{grid-template-columns:1fr}.school-exact .search-wrap{flex-direction:column;align-items:stretch;gap:8px}.school-exact .search-input-wrap{width:100%;min-width:0}.school-exact .search-wrap select,.school-exact .search-wrap button{width:100%;min-height:44px}.school-exact .segmented-toggle{width:100%;display:flex}.school-exact .segmented-toggle button{flex:1;min-height:40px;padding:8px 10px!important}.school-exact .bulk-sheet{-webkit-overflow-scrolling:touch;overflow-x:auto}.school-exact .bulk-table{min-width:480px}.school-exact .bulk-cell-input,.school-exact .bulk-cell-select{max-width:none;min-height:40px}.school-exact .form-actions{flex-wrap:wrap;gap:8px}.school-exact .form-actions>button,.school-exact .form-actions>*{flex:calc(50% - 4px);min-height:44px}.school-exact input:not([type=checkbox]):not([type=radio]):not([type=color]),.school-exact select,.school-exact textarea{min-height:44px;font-size:16px!important}.school-exact textarea{min-height:88px}.schedule-shell{-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px;overflow-x:auto}.schedule-grid-pro{min-width:640px}.school-exact .classe-tabs,.school-exact .tabs-row{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.school-exact .classe-tabs::-webkit-scrollbar{display:none}.school-exact .tabs-row::-webkit-scrollbar{display:none}.school-exact .classe-tab{flex-shrink:0;min-height:40px}.school-exact .notifications-dropdown{width:min(100vw - 20px,400px);max-height:min(70vh,480px);right:0}}@media (width<=640px){.school-exact .stats-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}.school-exact .mini-stats-row,.school-exact .mini-stats-row--4{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.school-exact .mini-stat{padding:12px 14px}.school-exact .mini-stat-value{font-size:22px}.school-exact .progress-row,.school-exact .dashboard-split{grid-template-columns:minmax(0,1fr)!important}.school-exact .form-grid-3,.school-exact .form-grid-2,.school-exact .form-grid{grid-template-columns:1fr!important}.school-exact .stat-val{font-size:22px}.school-exact .page-header-title{font-size:17px}.school-exact .page-header-icon{width:38px;height:38px}.school-exact .topbar-sub{display:none}.school-exact .overview-donut{flex-wrap:wrap;justify-content:center;gap:12px}.school-exact .overview-donut-chart{width:72px;height:72px}.school-exact .content{padding:12px 10px 18px}.school-exact .card,.school-exact .form-card{padding:12px}.school-exact .form-actions>button,.school-exact .form-actions>*{flex:100%}.school-exact .page-header>button{width:100%}}@media (width<=420px){.school-exact .stats-row{grid-template-columns:minmax(0,1fr)!important}.school-exact .mini-stats-row,.school-exact .mini-stats-row--4{grid-template-columns:minmax(0,1fr)}.school-exact .topbar-title{max-width:48vw}.school-exact .sidebar-logo{padding-top:28px}}@media (width<=767px){.login-scene,.signup-scene{padding:max(12px, env(safe-area-inset-top,0px)) 12px max(12px, env(safe-area-inset-bottom,0px));align-items:stretch;min-height:100dvh}.login-card,.signup-card{border-radius:16px;width:100%;min-height:auto;overflow:hidden}.login-visual,.signup-visual{min-height:180px;max-height:220px}.login-visual-title,.signup-visual-title{font-size:clamp(26px,7.5vw,36px)}.signup-steps{display:none}.signup-grid{grid-template-columns:1fr}.login-panel input,.signup-panel input,.login-panel select,.signup-panel select{min-height:44px;font-size:16px}}@media (width<=480px){.login-panel,.signup-panel{padding:20px 14px 24px}.login-submit,.signup-submit,.auth-submit{width:100%;min-height:48px}.login-visual,.signup-visual{min-height:140px;max-height:180px}}.school-exact .branding-card .card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.school-exact .branding-presets{flex-wrap:wrap;gap:8px;display:flex}.school-exact .branding-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:22px;display:grid}.school-exact .branding-section-title{letter-spacing:.02em;color:var(--text-primary);margin:20px 0 10px;font-size:13px;font-weight:700}.school-exact .branding-fields .branding-section-title:first-child{margin-top:0}.school-exact .color-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.school-exact .color-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.school-exact .color-field input[type=color]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;width:100%;height:38px;padding:3px}.school-exact .branding-advanced{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg) 70%, var(--surface));margin-top:18px;padding:10px 14px 14px}.school-exact .branding-advanced>summary{cursor:pointer;color:var(--text-primary);padding:6px 0;font-size:13px;font-weight:700}.school-exact .branding-advanced-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.school-exact .branding-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.school-exact .branding-hint{color:var(--text-muted);max-width:42ch;font-size:12px;line-height:1.4}.school-exact .branding-live-preview{position:sticky;top:12px}.school-exact .branding-preview-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);box-shadow:var(--shadow-md);overflow:hidden}.school-exact .branding-preview-top{background:var(--topbar-bg);border-bottom:1px solid var(--border);color:var(--text-muted);padding:10px 14px;font-size:12px;font-weight:700}.school-exact .branding-preview-body{background:var(--surface);padding:16px}.school-exact .branding-preview-body p{color:var(--text-muted);margin:6px 0 14px;font-size:12.5px;line-height:1.45}.school-exact .branding-preview-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.school-exact .branding-preview-body a{color:var(--link-color);font-size:13px;font-weight:600}.school-exact .theme-preview-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.school-exact .theme-chip{border:1px solid var(--border);color:var(--text-secondary);background:var(--bg);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.school-exact .theme-chip--light{color:#0f172a;background:#f8fafc}.school-exact .theme-chip--dark{color:#f5f5f5;background:#000;border-color:#1a1a1a}.school-exact a{color:var(--link-color)}@media (width<=980px){.school-exact .branding-layout{grid-template-columns:1fr}.school-exact .branding-live-preview{position:static}.school-exact .branding-advanced-grid{grid-template-columns:1fr}}.field-error{color:var(--danger);margin-top:4px;font-size:11px;display:block}.advanced-kpi-head{color:var(--text-muted);margin-bottom:10px;font-size:12px}.advanced-kpi-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.advanced-kpi-label{color:var(--text-muted);font-size:12px}.advanced-kpi-values{align-items:center;gap:8px;font-size:12px;display:flex}.mini-chip-row{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.mini-chip{border:1px solid var(--border);color:var(--text-muted);background:var(--bg);border-radius:999px;align-items:center;padding:3px 8px;font-size:11px;display:inline-flex}.trend-up{color:var(--accent-green);font-weight:600}.trend-down{color:var(--accent-rose);font-weight:600}.global-loading-overlay{z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0b111a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.global-loading-box{background:var(--surface);border:1px solid var(--border);color:var(--text-primary);border-radius:12px;align-items:center;gap:10px;padding:14px 18px;font-size:13px;display:inline-flex;box-shadow:0 10px 30px #0000002e}.global-loading-spinner{border:2px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skip-link{z-index:3000;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12px;text-decoration:none;position:absolute;top:-44px;left:12px}.skip-link:focus{top:10px}:where(button,[role=button],input,select,textarea,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.global-search-item.is-keyboard-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--panel))}
