:root{--font-sans:var(--font-inter),"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--text-4xl:48px;--leading:1.5;--tracking-tight:-0.02em;--tracking-caps:0.14em;--primary:#3d5ee1;--primary-dark:#2b4bc8;--primary-soft:#eef1fc;--primary-ink:#3d5ee1;--brand-grad-start:#2f6bff;--brand-grad-end:#8b6cff;--success:#1abe17;--success-soft:#e8f9e8;--success-ink:#148212;--warning:#ff9f43;--warning-soft:#fff4e8;--warning-ink:#a85b0f;--danger:#e82646;--danger-soft:#fde8ec;--danger-ink:#b91c34;--info:#0dcaf0;--info-soft:#e6f9fe;--info-ink:#087990;--purple:#6f42c1;--purple-soft:#f1ebfa;--purple-ink:#6f42c1;--teal:#20c997;--teal-soft:#e6f8f3;--teal-ink:#0c7d60;--pink:#e83e8c;--ink:#202c4b;--ink-2:#44506a;--muted:#666d80;--muted-soft:#f1f2f6;--muted-ink:#666d80;--line:#e8e9ed;--bg:#f5f6fa;--card:#ffffff;--surface-2:#fafbfd;--hover:#f7f8ff;--track:#eef1f6;--track-2:#d5d8e0;--radius-sm:6px;--radius:8px;--radius-lg:14px;--radius-pill:999px;--shadow:0 4px 14px rgba(32,44,75,0.06);--shadow-lg:0 18px 40px rgba(32,44,75,0.12);--sidebar:252px;--header:72px;--font:var(--font-sans);--nav-ink:#4B5568;--nav-icon:#7B8499;--primary-fill:var(--primary);--scroll-thumb:#d7dbe6;--boxed-bg:#e8ebf3;--demo-bg:#FFF9F0;--demo-bg-2:#FFF4E8;--demo-ink:#7A5A28;--demo-urgent-bg:#FFF5F6;--demo-urgent-bg-2:#FDE8EC;--demo-urgent-ink:#8B3A45}*{box-sizing:border-box}body,html{margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:5.5rem}body{font-family:var(--font);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5;min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark)}img{max-width:100%;display:block}button,input,select,textarea{font-family:inherit}.btn,button.btn{cursor:pointer}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--card);border-right:1px solid var(--line);z-index:1040;display:flex;flex-direction:column;transition:width .2s,transform .2s}.sidebar-logo{height:var(--header);display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--line);flex-shrink:0}.logo-mark{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,#3D5EE1,#6F7CFF);display:grid;place-items:center;color:#fff;font-weight:800;font-size:11px;letter-spacing:-.04em}.logo-text{font-weight:800;font-size:20px;letter-spacing:-.03em;color:var(--ink)}.logo-text span{color:var(--primary)}.sidebar-scroll{overflow:auto;flex:1 1;padding:12px 0 24px}.sidebar-scroll::-webkit-scrollbar{width:4px}.sidebar-scroll::-webkit-scrollbar-thumb{background:transparent;border-radius:4px;-webkit-transition:background .2s;transition:background .2s}.sidebar:hover .sidebar-scroll::-webkit-scrollbar-thumb{background:var(--scroll-thumb)}.school-switch{margin:0 14px 14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:10px;background:var(--card)}.school-switch .av,.school-switch img{width:32px;height:32px;border-radius:8px}.school-switch strong{display:block;font-size:13px}.menu-label,.school-switch small{color:var(--muted);font-size:11px}.menu-label{font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:10px 22px 4px}.menu,.submenu{list-style:none;margin:0;padding:0}.menu>li{padding:0 10px}.menu>li+li{margin-top:2px}.menu>li>a,.menu>li>button.menu-link{width:100%;display:flex;align-items:center;gap:10px;padding:9px 12px;color:var(--nav-ink);background:none;border:0;text-align:left;font-size:13.5px;font-weight:500;border-radius:10px;cursor:pointer;transition:background .15s ease,color .15s ease}.menu>li>a i,.menu>li>button.menu-link i{font-size:18px;width:22px;color:var(--nav-icon);transition:color .15s ease}.menu>li>a:hover,.menu>li>button.menu-link:hover{background:var(--primary-soft);color:var(--primary)}.menu>li>a:hover i,.menu>li>button.menu-link:hover i{color:var(--primary)}.menu>li>a.active{background:var(--primary-fill);color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(61,94,225,.26)}.menu>li>a.active i{color:#fff}.menu>li.open>button.menu-link{background:var(--primary-soft);color:var(--primary)}.menu>li.open>button.menu-link i{color:var(--primary)}.menu .chev{margin-left:auto;font-size:14px;transition:transform .2s}.menu>li.open>.menu-link .chev{transform:rotate(180deg)}.submenu{display:none;padding:2px 0 6px 10px;margin:3px 0 2px 32px;border-left:1.5px solid var(--line)}.menu>li.open>.submenu{display:block}.submenu a{display:flex;align-items:center;gap:8px;padding:7px 16px;color:var(--nav-ink);font-size:13px;border-radius:6px}.submenu a:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--nav-icon);flex-shrink:0}.submenu a.active,.submenu a:hover{color:var(--primary);background:var(--primary-soft)}.submenu a.active{font-weight:600}.submenu a.active:before{background:var(--primary-fill)}.submenu .submenu{padding-left:12px}.sub-toggle{width:100%;background:none;border:0;display:flex;align-items:center;justify-content:space-between;padding:7px 16px;color:var(--nav-ink);font-size:13px;cursor:pointer;border-radius:6px}.sub-toggle:hover{color:var(--primary);background:var(--primary-soft)}.main{margin-left:var(--sidebar);min-height:100vh;transition:margin .2s}.header{position:sticky;top:0;z-index:1030;height:var(--header);background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;gap:12px}.header-left,.header-right{display:flex;align-items:center;gap:8px}.icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid transparent;background:transparent;display:grid;place-items:center;color:var(--nav-ink);cursor:pointer;position:relative}.icon-btn:hover{background:var(--bg);color:var(--primary)}.icon-btn .dot{position:absolute;top:8px;right:8px;width:8px;height:8px;background:var(--danger);border-radius:50%;border:2px solid var(--card)}.lang-btn,.year-btn{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--card);height:40px;padding:0 12px;border-radius:10px;cursor:pointer;font-weight:600;font-size:13px;color:var(--ink)}.year-btn:disabled{cursor:default;opacity:.92;color:var(--muted)}.lang-btn img{width:18px;height:18px;border-radius:50%}.add-btn{height:40px;padding:0 14px;border-radius:10px;border:0;background:var(--primary-fill);color:#fff;font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer}.add-btn:hover{background:var(--primary-dark);color:#fff}.profile-btn{display:flex;align-items:center;gap:8px;color:var(--ink);background:none;border:0;cursor:pointer;padding:4px}.profile-btn .av,.profile-btn img{width:40px;height:40px;border-radius:50%;object-fit:cover}.profile-btn .meta{text-align:left;line-height:1.2}.profile-btn .meta b{display:block;font-size:13px}.profile-btn .meta small{color:var(--muted);font-size:11px}.page{padding:22px 24px 40px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-head h1{margin:0;font-size:24px;font-weight:700;letter-spacing:-.01em}.breadcrumb{display:flex;gap:6px;align-items:center;font-size:13px;margin-top:4px;flex-wrap:wrap}.breadcrumb,.breadcrumb a{color:var(--muted)}.breadcrumb a:hover{color:var(--primary)}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.card-h{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);gap:8px}.card-h h3,.card-h h4{margin:0;font-size:16px}.card-b{padding:16px}.grid{display:grid;gap:16px}.g-2{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:repeat(3,1fr)}.g-4{grid-template-columns:repeat(4,1fr)}.g-5{grid-template-columns:repeat(5,1fr)}.g-12{grid-template-columns:repeat(12,1fr)}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.welcome{background:linear-gradient(100deg,#3D5EE1,#5B7CFF 55%,#7C4DFF);color:#fff;border-radius:14px;padding:22px 24px;position:relative;overflow:hidden;min-height:118px}.welcome h2{margin:0 0 4px;font-size:26px;font-weight:700}.welcome p{margin:0;opacity:.9}.welcome .updated{margin-top:8px;font-size:12px;opacity:.8}.welcome .shapes span{position:absolute;border-radius:8px;opacity:.25}.welcome .s1{width:70px;height:70px;background:#FFD166;right:180px;top:-18px;transform:rotate(18deg)}.welcome .s2{width:46px;height:46px;background:#00CFE8;right:90px;bottom:-10px;border-radius:50%}.welcome .s3{width:54px;height:54px;background:#EA5455;right:30px;top:18px;transform:rotate(25deg);clip-path:polygon(50% 0,100% 100%,0 100%)}.welcome .s4{width:36px;height:36px;background:#28C76F;right:250px;bottom:8px;border-radius:6px}.stat{display:flex;gap:14px;align-items:flex-start;padding:16px;background:var(--card);border:1px solid var(--line)}.stat,.stat .ico{border-radius:12px}.stat .ico{width:48px;height:48px;display:grid;place-items:center;font-size:22px;flex-shrink:0}.stat .stat-value,.stat h3{margin:0;font-size:22px;font-weight:700;display:flex;align-items:center;gap:8px}.stat .up{color:var(--success-ink)}.stat .down,.stat .up{font-size:12px;font-weight:600}.stat .down{color:var(--danger)}.stat p{margin:2px 0 0;color:var(--muted);font-size:13px}.stat .split{display:flex;gap:12px;margin-top:8px;font-size:12px;color:var(--muted)}.bg-c{background:var(--info-soft);color:var(--info-ink)}.bg-o{background:var(--warning-soft);color:var(--warning-ink)}.bg-g{background:var(--success-soft);color:var(--success-ink)}.bg-b{background:var(--primary-soft);color:var(--primary-ink)}.bg-p{background:var(--purple-soft);color:var(--purple-ink)}.bg-r{background:var(--danger-soft);color:var(--danger-ink)}.bg-t{background:var(--teal-soft);color:var(--teal-ink)}.ok{color:var(--success)}.mid,.ok{font-weight:700}.mid{color:#E2A03F}.low{color:var(--danger);font-weight:700}.table-wrap{overflow:auto}table.data{width:100%;border-collapse:collapse;min-width:720px}table.data th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--nav-icon);background:var(--surface-2);white-space:nowrap}table.data td,table.data th{padding:12px;border-bottom:1px solid var(--line)}table.data td{vertical-align:middle}table.data tr:hover td{background:var(--hover)}.user{display:flex;align-items:center;gap:10px}.av,.user img{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--primary-soft);display:grid;place-items:center;font-weight:700;color:var(--primary);font-size:12px}.av.sq{border-radius:8px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge.success{background:var(--success-soft);color:var(--success-ink)}.badge.danger{background:var(--danger-soft);color:var(--danger-ink)}.badge.warning{background:var(--warning-soft);color:var(--warning-ink)}.badge.info{background:var(--info-soft);color:var(--info-ink)}.badge.primary{background:var(--primary-soft);color:var(--primary-ink)}.badge.muted{background:var(--muted-soft);color:var(--muted-ink)}.btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:8px;border:1px solid transparent;font-weight:600;font-size:13px;cursor:pointer;background:var(--card);color:var(--ink)}.btn-primary{background:var(--primary-fill);color:#fff}.btn-primary:hover{background:var(--primary-dark);color:#fff}.btn-outline{border-color:var(--line);background:var(--card)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-light{background:var(--muted-soft)}.btn-sm{height:32px;padding:0 10px;font-size:12px}.btn-icon{width:34px;height:34px;padding:0;justify-content:center}.toolbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--card);height:38px;min-width:220px}.search input{border:0;outline:0;width:100%;background:transparent}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}.form-row.g3{grid-template-columns:repeat(3,1fr)}.form-row.g1{grid-template-columns:1fr}label.lbl{display:block;font-weight:600;font-size:13px;margin-bottom:6px}.ctrl,.form-control,.form-select,select.ctrl,select.form-select,textarea.ctrl,textarea.form-control{width:100%;height:42px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--card);color:var(--ink);outline:0}textarea.ctrl,textarea.form-control{height:auto;min-height:110px;padding:10px 12px;resize:vertical}.ctrl:focus,.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(61,94,225,.15)}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.check{display:flex;align-items:center;gap:8px;font-size:13px}.switch{position:relative;width:42px;height:22px}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:var(--track-2);border-radius:20px;cursor:pointer;transition:.2s}.switch span:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+span{background:var(--primary-fill)}.switch input:checked+span:before{transform:translateX(20px)}.steps{margin-bottom:18px;flex-wrap:wrap}.step,.steps{display:flex;gap:8px}.step{flex:1 1;min-width:120px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;align-items:center;color:var(--muted)}.step.on{border-color:var(--primary);color:var(--primary);font-weight:600}.step .n,.step.on{background:var(--primary-soft)}.step .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700}.people-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.person{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;text-align:center;position:relative}.person img{width:72px;height:72px;border-radius:50%;margin:0 auto 10px;object-fit:cover}.person h4{margin:0 0 2px}.person p{margin:0;color:var(--muted);font-size:12px}.person .more{position:absolute;top:10px;right:10px}.app-split{display:grid;grid-template-columns:300px 1fr;gap:16px;min-height:620px}.list-pane{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.list-item{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}.list-item.on,.list-item:hover{background:var(--hover)}.thread{background:var(--card);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column}.thread-h{padding:14px 16px;border-bottom:1px solid var(--line);align-items:center}.thread-b,.thread-h{display:flex;gap:10px}.thread-b{flex:1 1;padding:16px;background:var(--surface-2);flex-direction:column}.bubble{max-width:70%;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line)}.bubble.me{margin-left:auto;background:var(--primary-fill);color:#fff;border-color:transparent}.composer{padding:12px;border-top:1px solid var(--line);display:flex;gap:8px}.drop{position:relative}.drop-menu{display:none;position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px rgba(32,44,75,.12);z-index:1100;padding:8px;max-height:70vh;overflow:auto}.drop-menu.left{left:0;right:auto}.drop.open .drop-menu{display:block}.drop-menu>a,.drop-menu>button:not(.btn):not([class*=btn-period]){display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;border-radius:8px;color:var(--ink);cursor:pointer;font-size:13px}.drop-menu>a:hover,.drop-menu>button:not(.btn):not([class*=btn-period]):hover{background:var(--bg)}.drop-menu .period-actions{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding-top:10px;border-top:1px solid var(--line)}.drop-menu .btn-period-apply{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:42px;padding:0 14px;border:0;border-radius:10px;background:var(--primary-fill);color:#fff;font-weight:700;font-size:13px;cursor:pointer;box-shadow:0 4px 14px rgba(43,75,200,.28)}.drop-menu .btn-period-apply:hover{background:var(--primary-dark);color:#fff}.drop-menu .btn-period-apply:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.drop-menu .btn-period-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-weight:600;font-size:12px;cursor:pointer}.drop-menu .btn-period-secondary:hover{background:var(--bg);border-color:var(--primary);color:var(--primary)}.drop-menu .btn-period-secondary:disabled{opacity:.65;cursor:wait}.notif{width:360px}.notif-item{display:flex;gap:10px;padding:10px;border-radius:8px}.overlay{display:none;position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:1200;align-items:center;justify-content:center;padding:20px}.overlay.show{display:flex}.modal{background:var(--card);border-radius:14px;width:min(560px,100%);max-height:90vh;overflow:auto}.modal.lg{width:min(820px,100%)}.modal-h{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-b{padding:18px}.modal-f{padding:14px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.legend{display:flex;flex-wrap:wrap;gap:10px 16px;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.progress{height:8px;background:var(--track);border-radius:8px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--primary-fill)}.notice{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.notice:last-child{border:0}.tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.auth-cover{background:linear-gradient(160deg,#2B4BC8,#3D5EE1 40%,#6F7CFF);color:#fff;padding:40px;display:flex;flex-direction:column}.auth-cover h3{font-size:28px;margin:0 0 20px}.news{background:rgba(255,255,255,.12);border-radius:12px;padding:14px;margin-bottom:10px}.auth-form{display:grid;place-items:center;padding:32px;background:var(--card)}.auth-card{width:min(420px,100%)}.auth-card h2{margin:8px 0 4px}.socials{display:flex;gap:8px;margin:14px 0}.socials a{flex:1 1;height:40px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:var(--ink)}.auth.center{display:grid;grid-template-columns:1fr;place-items:center;background:var(--bg)}.auth.illus .auth-cover{background:var(--primary-soft);color:var(--ink)}.settings-wrap{display:grid;grid-template-columns:240px 1fr;gap:16px}.set-nav a{display:block;padding:9px 12px;border-radius:8px;color:var(--nav-ink)}.set-nav a.active,.set-nav a:hover{background:var(--primary-soft);color:var(--primary)}.set-nav .grp{font-size:11px;font-weight:700;color:#9AA1B2;padding:12px 12px 4px;text-transform:uppercase}.swatch{height:72px;border-radius:10px;display:flex;align-items:flex-end;padding:8px;color:#fff;font-weight:600}.alert{padding:12px 14px;border-radius:8px;margin-bottom:10px;display:flex;gap:8px;align-items:flex-start}.alert.info{background:var(--info-soft);color:var(--info-ink)}.alert.success{background:var(--success-soft);color:var(--success-ink)}.alert.warning{background:var(--warning-soft);color:var(--warning-ink)}.alert.danger{background:var(--danger-soft);color:var(--danger-ink)}.acc{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:8px}.acc-h{background:var(--surface-2);cursor:pointer;font-weight:600;display:flex;justify-content:space-between}.acc-b,.acc-h{padding:12px 14px}.acc-b{display:none}.acc.open .acc-b{display:block}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal .d{min-height:88px;border:1px solid var(--line);border-radius:8px;padding:6px;background:var(--card);font-size:12px}.cal .d b{display:block;margin-bottom:4px}.evt{background:var(--primary-soft);color:var(--primary);border-radius:4px;padding:2px 4px;margin-top:3px;font-size:11px}.file-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.file{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--card)}.file .ico{font-size:28px;margin-bottom:8px}.footer{padding:8px 24px 20px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between}body.mini-sidebar{--sidebar:78px}.sidebar-logo .mk-logo-img{height:36px;width:auto;max-width:140px;object-fit:contain;display:block}body.mini-sidebar .sidebar-logo .mk-logo-img{height:30px;max-width:32px;object-fit:cover;object-position:left center}body.mini-sidebar .chev,body.mini-sidebar .logo-text,body.mini-sidebar .menu span.txt,body.mini-sidebar .menu-label,body.mini-sidebar .school-switch .meta,body.mini-sidebar .submenu{display:none}body.mini-sidebar .menu>li{padding:0 8px}body.mini-sidebar .menu>li>a,body.mini-sidebar .menu>li>button.menu-link{justify-content:center;padding:12px 0}body.boxed-layout .main,body.boxed-layout .sidebar{max-width:1400px}body.boxed-layout .sidebar{left:50%;transform:translateX(calc(-700px))}body.boxed-layout .main{margin-left:auto;margin-right:auto;padding-left:var(--sidebar);max-width:1400px}html[dir=rtl] .sidebar{left:auto;right:0;border-right:0;border-left:1px solid var(--line)}html[dir=rtl] .main{margin-left:0;margin-right:var(--sidebar)}html[dir=rtl] .menu>li>a.active{box-shadow:inset -3px 0 0 var(--primary)}body.dark{--bg:#12151C;--card:#1B2030;--ink:#E8EBF4;--muted:#9AA3B8;--line:#2A3144;--nav-ink:#C7CEE0;--nav-icon:#8892A8;--primary:#A5B4FC;--primary-fill:#3D5EE1;--success-soft:#1A3E19;--success-ink:#5CD85A;--danger-soft:#5B252E;--danger-ink:#EDB1BA;--warning-soft:#45301C;--warning-ink:#E3B487;--info-soft:#1B3B41;--info-ink:#73CCDE;--purple-soft:#3F2965;--purple-ink:#C7B6E7;--teal-soft:#183A30;--teal-ink:#41D2A7;--primary-soft:#26325E;--primary-ink:#B1BDED;--muted-soft:#32363E;--muted-ink:#BAC0CF;--surface-2:#272D3A;--hover:#2F3246;--track:#333D4C;--track-2:#414758;--scroll-thumb:#47516B;--boxed-bg:#12151C;--ink-2:#9CA7BF;--demo-bg:#483923;--demo-bg-2:#483623;--demo-ink:#C7A36B;--demo-urgent-bg:#592C30;--demo-urgent-bg-2:#592C34;--demo-urgent-ink:#D59AA2}body.dark .auth-form,body.dark .cal .d,body.dark .card,body.dark .drop-menu,body.dark .file,body.dark .header,body.dark .list-pane,body.dark .modal,body.dark .person,body.dark .sidebar,body.dark .stat,body.dark .thread{background:#1B2030;color:var(--ink)}body.dark .btn-outline,body.dark .btn-period-secondary,body.dark .ctrl,body.dark .form-control,body.dark .form-select,body.dark .lang-btn,body.dark .search,body.dark .year-btn,body.dark select.ctrl,body.dark textarea.ctrl{background:#161B27;color:var(--ink);border-color:var(--line)}body.dark .btn-period-apply:disabled{opacity:.55}.pager{display:flex;justify-content:space-between;align-items:center;padding:12px 4px;gap:8px;flex-wrap:wrap}.pager .pages{display:flex;gap:4px}.pager a{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);color:var(--ink)}.pager a.on{background:var(--primary-fill);color:#fff;border-color:var(--primary)}.ql{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ql a{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:600}.ql a:hover{border-color:var(--primary);color:var(--primary)}.performer{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;background:linear-gradient(180deg,var(--primary-soft),var(--card));border:1px solid var(--line);border-radius:12px;padding:14px;overflow:hidden}.routine{align-items:center}.routine,.todo-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.todo-item{align-items:flex-start}.donut-wrap{display:flex;align-items:center;gap:18px}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:14px}.tabs a,.tabs button{padding:8px 12px;border:0;background:none;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;font-weight:600}.tabs a.on,.tabs button.on{color:var(--primary);border-bottom-color:var(--primary)}.error-page{min-height:100vh;display:grid;place-items:center;text-align:center;padding:40px}.error-page h1{font-size:96px;margin:0;color:var(--primary)}@media (max-width:1200px){.g-4,.people-grid{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:1fr 1fr}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 1}.grid.dash{grid-template-columns:1fr!important}.app-split,.auth,.settings-wrap{grid-template-columns:1fr}.auth-cover{display:none}}@media (max-width:992px){.sidebar{transform:translateX(-110%)}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.form-row,.form-row.g3,.g-2{grid-template-columns:1fr}.file-grid,.people-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.file-grid,.g-3,.g-4,.people-grid,.ql{grid-template-columns:1fr}.page{padding:14px}.header{padding:0 10px}}.hidden{display:none!important}.mb-0{margin-bottom:0}.mt-12{margin-top:12px}.mb-16{margin-bottom:16px}.text-muted{color:var(--muted)}.text-end{text-align:right}.between,.flex{display:flex;align-items:center;gap:8px}.between{justify-content:space-between}.grow{flex:1 1}.chart-box{position:relative;height:260px}.chart-sm{position:relative;height:180px}#pageActions:empty{display:none}form[data-demo]>div{margin-bottom:12px}.auth-card .lbl{margin-top:4px}.auth-card form>div{margin-bottom:12px}.news p{margin:6px 0 0;opacity:.9;font-size:13px}body.mini-sidebar .main{margin-left:78px}.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(16,24,40,.4);z-index:1035}@media (max-width:992px){.sidebar-backdrop.show{display:block}}body.boxed-layout{background:var(--boxed-bg)}body.boxed-layout .sidebar{left:max(0px,calc(50vw - 700px))}.demo-req-link-warn{margin:6px 0 0;font-size:12px;color:var(--warning-ink);font-weight:600}.demo-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding:14px 16px;border-radius:12px;border:1px solid #f0d4a8;background:linear-gradient(135deg,var(--demo-bg),var(--demo-bg-2))}.demo-banner.is-urgent{border-color:#E8A0A8;background:linear-gradient(135deg,var(--demo-urgent-bg),var(--demo-urgent-bg-2))}.demo-banner-main{display:flex;gap:12px;align-items:flex-start;min-width:0;flex:1 1}.demo-banner-badge{flex-shrink:0;align-self:flex-start;padding:4px 8px;border-radius:6px;background:var(--warning);color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em}.demo-banner.is-urgent .demo-banner-badge{background:var(--danger)}.demo-banner-main strong{display:block;font-size:14px;color:var(--ink)}.demo-banner-main p{margin:2px 0 0;font-size:12px;color:var(--demo-ink);line-height:1.45}.demo-banner.is-urgent .demo-banner-main p{color:var(--demo-urgent-ink)}.demo-banner-timer{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--card);border:1px solid #e8d4b0;font-size:12px;color:var(--ink);white-space:nowrap}.demo-banner.is-urgent .demo-banner-timer{border-color:#E8B0B6;color:var(--danger)}.page.demo-watermark{position:relative}.page.demo-watermark:before{content:"SIMULATION";pointer-events:none;position:fixed;left:50%;top:45%;transform:translate(-50%,-50%) rotate(-18deg);font-size:clamp(48px,12vw,120px);font-weight:900;letter-spacing:.12em;color:rgba(61,94,225,.045);z-index:0;white-space:nowrap}.page.demo-watermark>*{position:relative;z-index:1}.main.is-demo .school-switch .av{background:var(--demo-bg-2);color:var(--warning-ink)}.demo-req-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.demo-req-stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.demo-req-stat span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.demo-req-stat strong{display:block;margin-top:4px;font-size:18px;color:var(--ink)}.demo-req-notes{display:flex;flex-direction:column;gap:8px;margin-top:4px}.demo-req-notes .ctrl{font-size:13px}.demo-exp{border:1px solid #e8d4b0;background:linear-gradient(135deg,var(--demo-bg),var(--demo-bg-2));border-radius:14px;padding:14px 16px}.demo-exp-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}.demo-exp-head strong{display:block;font-size:14px}.demo-exp-head p{margin:2px 0 0;font-size:12px;color:var(--demo-ink)}.demo-exp-actions{display:flex;flex-wrap:wrap;gap:8px}.demo-exp-msg{margin:8px 0 0;font-size:12px;color:var(--success);font-weight:600}.demo-exp-scenarios{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.demo-exp-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--card);border:1px solid #e8d4b0;font-size:12px;font-weight:600;color:var(--ink);text-decoration:none}.demo-exp-chip:hover{border-color:var(--primary);color:var(--primary)}.demo-modal-backdrop{position:fixed;inset:0;z-index:1200;background:rgba(20,28,48,.28);display:grid;place-items:center;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.demo-modal{width:min(440px,100%);background:var(--card);border-radius:16px;padding:22px 22px 18px;box-shadow:0 20px 48px rgba(16,24,40,.18);border:1px solid var(--line);position:relative;z-index:1}.demo-modal h2{margin:10px 0 8px;font-size:20px}.demo-modal p{margin:0;font-size:14px;color:var(--ink-2);line-height:1.5}.demo-modal-list{margin:12px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2);line-height:1.55}.demo-modal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.demo-tour-progress{font-size:12px;font-weight:700;color:var(--primary);margin:0 0 4px!important}.demo-feedback{display:flex;flex-direction:column;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}.demo-feedback.is-done{text-align:center;align-items:center}.demo-feedback-stars{display:flex;gap:6px}.demo-star{border:0;background:transparent;font-size:28px;color:#C5CAD6;cursor:pointer;padding:0}.demo-star.is-on{color:#E6A817}@media (max-width:700px){.demo-req-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.demo-req{display:flex;flex-direction:column;gap:16px}.demo-req-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.demo-req-filters{display:flex;flex-wrap:wrap;gap:6px;padding:4px;background:var(--bg);border-radius:12px;border:1px solid var(--line)}.demo-req-filter{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:600;font-size:13px;cursor:pointer}.demo-req-filter:hover{color:var(--ink);background:var(--card)}.demo-req-filter.is-active{background:var(--card);color:var(--primary);box-shadow:var(--shadow)}.demo-req-filter-count{min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;font-size:11px;font-weight:700;background:var(--muted-soft);color:var(--muted)}.demo-req-filter.is-active .demo-req-filter-count{background:var(--primary-soft);color:var(--primary)}.demo-req-link-card{border:1px solid #b8c4f5;background:linear-gradient(135deg,var(--surface-2) 0,var(--primary-soft) 100%);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.demo-req-link-head{display:flex;align-items:flex-start;gap:12px}.demo-req-link-ico{width:40px;height:40px;border-radius:10px;background:var(--card);color:var(--primary);display:grid;place-items:center;font-size:18px;border:1px solid var(--line);flex-shrink:0}.demo-req-link-head strong{display:block;font-size:14px}.demo-req-link-head p{margin:2px 0 0;font-size:12px;color:var(--muted)}.demo-req-link-url{display:block;padding:10px 12px;border-radius:8px;background:var(--card);border:1px solid var(--line);font-size:12px;word-break:break-all;color:var(--ink);line-height:1.45}.demo-req-link-actions{display:flex;flex-wrap:wrap;gap:8px}.demo-req-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.demo-req-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:0;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden;box-shadow:0 1px 0 rgba(32,44,75,.03)}.demo-req-card.status-pending{border-left:3px solid var(--warning)}.demo-req-card.status-approved{border-left:3px solid var(--success)}.demo-req-card.status-rejected{border-left:3px solid var(--danger);opacity:.92}.demo-req-card-main{padding:16px 18px;display:flex;flex-direction:column;gap:14px;min-width:0}.demo-req-who{display:flex;align-items:center;gap:12px}.demo-req-name{font-weight:700;font-size:15px;color:var(--ink)}.demo-req-email{font-size:12px;color:var(--muted)}.demo-req-email:hover{color:var(--primary)}.demo-req-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.demo-req-meta-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}.demo-req-meta-value{font-size:13px;color:var(--ink);font-weight:500}.demo-req-approved-role{display:inline-block;margin-left:8px;font-size:12px;color:var(--muted);font-weight:500}.demo-req-message{margin:0;padding:10px 12px;border-radius:8px;background:var(--bg);border:1px solid var(--line);font-size:13px;color:var(--ink-2);display:flex;gap:8px;align-items:flex-start;line-height:1.45}.demo-req-message i{color:var(--primary);margin-top:2px;flex-shrink:0}.demo-req-actions{padding:16px;background:var(--surface-2);border-left:1px solid var(--line);justify-content:center}.demo-req-action-btns,.demo-req-actions{display:flex;flex-direction:column;gap:8px}.demo-req-action-btns{margin-top:4px}.demo-req-action-btns .btn{width:100%;justify-content:center}.demo-req-btn-danger{color:var(--danger)!important;border-color:#F0C4C8!important}.demo-req-btn-danger:hover{background:var(--demo-urgent-bg)!important;border-color:var(--danger)!important}.demo-req-empty{padding:36px 16px}.demo-req-empty i{font-size:32px;color:var(--primary);display:block;margin-bottom:8px;opacity:.85}.demo-req-empty strong{display:block;margin-bottom:6px;font-size:15px}.demo-req-empty span{font-size:13px;color:var(--muted)}@media (max-width:900px){.demo-req-card{grid-template-columns:1fr}.demo-req-actions{border-left:0;border-top:1px solid var(--line)}.demo-req-meta{grid-template-columns:1fr}}.honneur-root{position:relative}.honneur-demo-mark{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%) rotate(-22deg);font-size:clamp(28px,6vw,56px);font-weight:900;letter-spacing:.08em;color:rgba(180,40,40,.12);pointer-events:none;z-index:2;white-space:nowrap}.honneur-root.is-demo-print .honneur-board,.honneur-root.is-demo-print .honneur-cert{position:relative}@media print{.honneur-demo-mark{color:rgba(120,20,20,.18);-webkit-print-color-adjust:exact;print-color-adjust:exact}}.print-shell{min-height:100vh;background:#f5f6fa;padding:20px}.honneur-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.honneur-board,.honneur-cert{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px 32px;max-width:900px;margin:0 auto 24px;box-shadow:0 8px 24px rgba(16,24,40,.06)}.honneur-head{text-align:center;margin-bottom:22px}.honneur-school{font-size:18px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--dark)}.honneur-city{font-size:13px;color:var(--muted);margin-top:2px}.honneur-cert h2,.honneur-head h1{margin:14px 0 8px;font-size:22px;color:var(--primary)}.honneur-sub{font-size:13px;color:var(--muted);line-height:1.5}.honneur-table{width:100%;border-collapse:collapse;font-size:14px}.honneur-table td,.honneur-table th{padding:10px 12px;border-bottom:1px solid #e8ebf2;text-align:left}.honneur-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6A7285;background:#f8f9fc}.honneur-ex{font-size:11px;color:var(--muted);font-weight:500}.honneur-foot{margin-top:28px;font-size:13px;color:var(--muted)}.honneur-signs{display:flex;justify-content:space-between;gap:24px;margin-top:36px}.honneur-signs>div{flex:1 1;text-align:center;font-size:12px}.sig-line{height:1px;background:#c5cad6;margin:48px 16px 8px}.honneur-certs{display:flex;flex-direction:column;gap:0}.honneur-cert{page-break-after:always;break-after:page}.honneur-cert:last-child{page-break-after:auto;break-after:auto}.cert-border{border:3px double #c5a46e;padding:28px 24px;border-radius:4px;text-align:center}.cert-lead{margin:18px 0 8px;font-size:15px;color:var(--muted)}.cert-name{display:inline-block;margin-top:6px;font-size:26px;color:var(--dark);font-weight:800}.cert-body{font-size:14px;line-height:1.65;max-width:560px;margin:14px auto;color:#334}.cert-award{margin-top:18px;font-size:13px;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.06em}@media print{.footer,.header,.no-print,.period-banner,.sidebar,.sidebar-backdrop{display:none!important}.print-shell{padding:0;background:#fff}.main{margin:0!important}.page{padding:0!important}.honneur-board,.honneur-cert{box-shadow:none;border:none;max-width:none;margin:0 0 12px;padding:12px}.cert-border{border-color:#888}body{background:#fff}}.kx-plat-alert{padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:14px}.kx-plat-alert.err{background:var(--danger-soft);color:var(--danger-ink)}.kx-plat-alert.ok{background:var(--success-soft);color:var(--success-ink)}.kx-plat-hint{font-size:12px;color:var(--muted);margin:10px 0 0;line-height:1.45}.kx-plat-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px}.kx-plat-settings{display:grid;gap:16px;max-width:560px}.kx-plat-block{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--card)}.kx-plat-block h3{margin:0 0 4px;font-size:15px;font-weight:700}.kx-plat-block>p{margin:0 0 14px;font-size:12px;color:var(--muted);line-height:1.4}.kx-plat-status{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}.kx-plat-packs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width:900px){.kx-plat-packs{grid-template-columns:1fr}}.kx-plat-pack{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--surface-2);display:flex;flex-direction:column;gap:12px}.kx-plat-pack.is-featured{border-color:color-mix(in srgb,var(--primary) 35%,var(--line));background:color-mix(in srgb,var(--primary-soft) 55%,var(--card))}.kx-plat-pack-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.kx-plat-pack-top h3{margin:0;font-size:16px}.kx-plat-pack-top .base{font-size:12px;color:var(--muted);margin-top:2px}.kx-plat-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kx-plat-fields .span-2{grid-column:1/-1}.kx-plat-fields label{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.kx-plat-check{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:6px;color:var(--dark)}.kx-plat-check input{margin:0}.kx-plat-schools{display:flex;flex-direction:column;gap:10px}.kx-plat-school{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--card);display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(72px,1fr)) auto;gap:12px 16px;align-items:center}@media (max-width:1100px){.kx-plat-school{grid-template-columns:1fr 1fr;align-items:start}.kx-plat-school .kx-plat-actions{grid-column:1/-1}}.kx-plat-school-name{min-width:0}.kx-plat-school-name strong{display:block;font-size:14px;line-height:1.3}.kx-plat-school-name .meta{font-size:12px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kx-plat-metric{min-width:0}.kx-plat-metric .lbl{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}.kx-plat-metric .val{font-size:13px;font-weight:600;color:var(--dark)}.kx-plat-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.kx-plat-actions .btn{font-size:12px;padding:5px 10px}.kx-plat-actions select.form-select{width:auto;min-width:132px;font-size:12px;padding:5px 28px 5px 10px}.kx-plat-pay-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.kx-plat-pay-list{display:flex;flex-direction:column;gap:10px}.kx-plat-pay-row{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--card);display:grid;grid-template-columns:minmax(160px,1.3fr) minmax(140px,1.2fr) repeat(3,minmax(72px,.7fr)) minmax(120px,1fr) auto;gap:12px 14px;align-items:center}@media (max-width:1100px){.kx-plat-pay-row{grid-template-columns:1fr 1fr}.kx-plat-pay-row .kx-plat-actions{grid-column:1/-1}}.kx-plat-pay-modal{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:20px}.kx-plat-pay-modal-card{width:min(560px,100%);max-height:min(90vh,720px);overflow:auto;background:var(--card);border-radius:14px;border:1px solid var(--line);padding:20px 22px;box-shadow:0 24px 48px rgba(15,23,42,.18)}.kx-plat-pay-modal-card h2{margin:0 0 6px;font-size:1.2rem}.kx-plat-pay-modes{display:grid;gap:8px;margin-top:8px}.kx-plat-pay-secret{margin-bottom:14px;border-color:color-mix(in srgb,var(--success-ink) 25%,var(--line))}.kx-plat-pay-pwd{font-size:14px;margin:8px 0 12px}.kx-plat-pay-pwd code{font-size:13px;padding:4px 8px;border-radius:6px;background:var(--surface-2)}:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--card);outline-offset:0;box-shadow:0 0 0 3px var(--primary),var(--shadow)}:where(input,select,textarea):focus-visible{border-color:var(--primary)}.skip-link{position:fixed;top:8px;left:8px;z-index:1100;transform:translateY(-200%);padding:10px 16px;border-radius:8px;background:var(--primary-fill);color:#fff;font-weight:600;font-size:13px;text-decoration:none}.skip-link:focus{transform:translateY(0)}.form-control-sm,.form-select-sm{height:34px;padding:0 10px;font-size:13px}textarea.form-control-sm{height:auto;min-height:80px;padding:8px 10px}.period-help{margin-top:2px}.period-help>summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--primary);list-style:none;display:inline-flex;align-items:center;gap:5px}.period-help>summary::-webkit-details-marker{display:none}.period-help>summary:after{content:"\25B8";font-size:10px;transition:transform .15s ease}.period-help[open]>summary:after{transform:rotate(90deg)}.period-help>div{margin-top:4px}.file-cell{display:inline-block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.d-flex{display:flex}.d-block{display:block}.d-none{display:none}.d-grid{display:grid}.align-items-center{align-items:center}.align-items-start{align-items:flex-start}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}.justify-content-end{justify-content:flex-end}.flex-wrap{flex-wrap:wrap}.flex-column{flex-direction:column}.w-100{width:100%}.ms-auto{margin-left:auto}.text-center{text-align:center}.fw-bold,.todo-count{font-weight:700}.todo-count{min-width:26px;padding:2px 8px;border-radius:999px;text-align:center;font-size:12px;background:var(--muted-soft);color:var(--muted-ink)}.todo-count.has{background:var(--danger-soft);color:var(--danger-ink)}.section-label{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.nav-count{margin-left:auto;min-width:20px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;text-align:center;background:var(--danger-soft);color:var(--danger-ink)}.menu>li>a.active .nav-count{background:rgba(255,255,255,.22);color:#fff}.school-switch.is-link{text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease}.school-switch.is-link:hover{border-color:var(--primary);background:var(--primary-soft)}.school-switch-chev{margin-left:auto;color:var(--nav-icon);font-size:18px;flex-shrink:0}.school-switch.is-link:hover .school-switch-chev{color:var(--primary)}.sidebar-foot{border-top:1px solid var(--line);padding:10px}.sidebar-foot-btn{width:100%;display:flex;align-items:center;gap:10px;padding:9px 12px;background:none;border:0;border-radius:10px;cursor:pointer;color:var(--nav-ink);font-size:13.5px;font-weight:500;text-align:left;transition:background .15s ease,color .15s ease}.sidebar-foot-btn i{font-size:18px;width:22px;color:var(--nav-icon);transition:color .15s ease}.sidebar-foot-btn:hover{background:var(--danger-soft);color:var(--danger-ink)}.sidebar-foot-btn:hover i{color:var(--danger-ink)}body.mini-sidebar .sidebar-foot-btn{justify-content:center;padding:12px 0}body.mini-sidebar .sidebar-foot-btn .txt{display:none}body.mini-sidebar .nav-count{position:absolute;top:4px;right:6px;margin:0}body.mini-sidebar .menu>li>a,body.mini-sidebar .menu>li>button.menu-link,body.mini-sidebar .sidebar-foot-btn{position:relative}.dropzone{border:2px dashed var(--line);border-radius:12px;background:var(--bg);padding:36px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone.drag,.dropzone:hover{border-color:var(--primary);background:var(--primary-soft)}.dropzone .ico{font-size:32px;color:var(--primary);margin-bottom:8px}.dropzone .main-txt{font-weight:700;font-size:15px}.dropzone .sub-txt{color:var(--muted);font-size:13px;margin-top:4px}input[type=file].hidden-file{display:none}.file-field{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:10px 12px;border:1.5px dashed var(--line);border-radius:10px;background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;text-align:left;color:inherit;font:inherit}.file-field:hover{border-color:var(--primary);background:var(--primary-soft)}.file-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(61,94,225,.15)}.file-field.has-file{border-style:solid;border-color:var(--primary);background:var(--card)}.file-field .file-field-ico{flex-shrink:0;width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary);font-size:18px}.file-field.has-file .file-field-ico{background:var(--success-soft);color:var(--success-ink)}.file-field .file-field-meta{flex:1 1;min-width:0;line-height:1.25}.file-field .file-field-meta b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-field .file-field-meta small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.file-field .file-field-action{flex-shrink:0;font-size:12.5px;font-weight:600;color:var(--primary);padding:6px 10px;border-radius:8px;background:var(--card);border:1px solid var(--line)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;max-height:140px;overflow-y:auto;padding:2px}.chip{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;cursor:pointer;color:var(--muted);flex-shrink:0}.chip.filled{background:var(--success-soft);border-color:var(--success);color:var(--success-ink)}.chip.skipped{background:var(--warning-soft);border-color:var(--warning);color:var(--warning-ink)}.chip.current{border-color:var(--primary);border-width:2.5px;color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.grade-ctrl.ok{border-color:var(--success);background:var(--success-soft)}.grade-ctrl.mid{border-color:var(--primary);background:var(--primary-soft)}.grade-ctrl.low{border-color:var(--danger);background:var(--danger-soft)}.impersonate-bar{background:#1B2030;color:#fff;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.impersonate-bar b{font-weight:700}.impersonate-bar .btn{height:32px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width:900px){.module-grid{grid-template-columns:1fr}}.module-card{display:block;border:1px solid var(--line);background:var(--card);padding:22px 20px;border-radius:12px;color:var(--ink);transition:border-color .15s,transform .1s,box-shadow .15s}.module-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px);color:var(--ink)}.module-card .ico{font-size:28px;color:var(--primary);margin-bottom:10px}.module-card h3{margin:0 0 6px;font-size:17px}.module-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.stat-empty{margin:4px 0 0;font-size:11px;color:var(--muted);line-height:1.35;font-weight:500}.dash-module-groups{display:flex;flex-direction:column;gap:22px}.dash-module-group .section-label{margin-bottom:10px}.dash-setup{border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));background:color-mix(in srgb,var(--primary-soft,#eef2ff) 70%,var(--card));border-radius:14px;padding:16px 18px}.dash-setup-done{border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success-soft) 55%,var(--card))}.dash-setup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.dash-setup-head h2{margin:0;font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}.dash-setup-head h2 i{color:var(--primary);font-size:20px}.dash-setup-done .dash-setup-head h2 i{color:var(--success-ink)}.dash-setup-lead{margin:6px 0 0;font-size:13px;color:var(--muted);line-height:1.45}.dash-setup-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.dash-setup-list li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;background:var(--card);border:1px solid var(--line)}.dash-setup-list li.is-done{opacity:.78}.dash-setup-check{font-size:20px;color:var(--muted);line-height:1}.dash-setup-list li.is-done .dash-setup-check{color:var(--success-ink)}.dash-setup-body strong{display:block;font-size:14px}.dash-setup-body p{margin:2px 0 0;font-size:12px;color:var(--muted);line-height:1.4}.dash-setup-opt{font-weight:500;color:var(--muted);font-size:12px}.dash-setup-ok{font-size:12px;font-weight:700;color:var(--success-ink)}.dash-setup-hint{margin:12px 0 0;font-size:12px;color:var(--muted)}.dash-setup-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.dash-todos-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.dash-todo{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card)}.dash-todo.is-warn{border-color:color-mix(in srgb,#f0ad4e 45%,var(--line));background:#fffbf0}body.dark .dash-todo.is-warn{background:color-mix(in srgb,#f0ad4e 12%,var(--card))}.dash-todo-ico{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 12%,#fff);color:var(--primary);font-size:18px}body.dark .dash-todo-ico{background:color-mix(in srgb,var(--primary) 22%,var(--card))}.dash-todo.is-warn .dash-todo-ico{background:#fff3cd;color:#b78103}body.dark .dash-todo.is-warn .dash-todo-ico{background:color-mix(in srgb,#f0ad4e 18%,var(--card));color:#e0b84a}.dash-todo-copy strong{display:block;font-size:13px}.dash-todo-copy p{margin:2px 0 0;font-size:12px;color:var(--muted);line-height:1.35}@media (max-width:640px){.dash-todo{grid-template-columns:36px 1fr}.dash-todo .btn{grid-column:2}}.dash-quota-chip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px;padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-size:13px}.dash-quota-chip.is-warn{border-color:color-mix(in srgb,#f0ad4e 40%,var(--line));background:#fffbf0}body.dark .dash-quota-chip.is-warn{background:color-mix(in srgb,#f0ad4e 12%,var(--card))}.dash-quota-chip-text{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-quota-chip-text strong{font-size:13px}.dash-quota-chip-text span{font-size:12px;color:var(--muted)}.dash-quota-chip-warn{color:#9a6b00;font-size:12px;font-weight:600}.dash-metrics-panel{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:14px 16px 16px}.dash-metrics-panel .section-label{margin-bottom:12px}.dash-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}@media (max-width:900px){.dash-gauges{grid-template-columns:1fr 1fr}}@media (max-width:560px){.dash-gauges{grid-template-columns:1fr}}.dash-gauge{position:relative;border:none;background:transparent;border-radius:12px;padding:8px 6px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.dash-kpi-row .stat .ico.bg-primary-soft,.stat .ico.bg-primary-soft{background:color-mix(in srgb,var(--primary) 14%,#fff)!important;color:var(--primary)!important}.welcome.welcome-compact{padding:18px 20px 16px;min-height:0;margin-bottom:12px}.welcome.welcome-compact h2{font-size:22px;margin-bottom:2px}.welcome.welcome-compact p{font-size:14px;line-height:1.45}.welcome.welcome-compact .updated{margin-top:6px;font-size:12px}.welcome.welcome-compact .shapes{display:none}.product-tour{position:fixed;inset:0;z-index:90;background:rgba(15,23,42,.42);display:flex;align-items:flex-end;justify-content:center;padding:20px}@media (min-width:720px){.product-tour{align-items:center}}.product-tour-card{width:min(440px,100%);background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;box-shadow:0 22px 48px rgba(15,23,42,.2)}.product-tour-step{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.product-tour-card h2{margin:0 0 8px;font-size:1.15rem}.product-tour-card p{margin:0;font-size:14px;color:var(--muted);line-height:1.5}.product-tour-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:16px}.dash-gauge-ring,.dash-gauge-svg{width:88px;height:88px}.dash-gauge-ring{position:relative}.dash-gauge-track{fill:none;stroke:var(--line);stroke-width:8}.dash-gauge-fill{fill:none;stroke:var(--primary);stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .35s ease}.dash-gauge.tone-success .dash-gauge-fill{stroke:var(--success,#28C76F)}.dash-gauge.tone-warn .dash-gauge-fill{stroke:#f0ad4e}.dash-gauge.tone-muted .dash-gauge-fill{stroke:var(--muted)}.dash-gauge-pct{position:absolute;inset:0;display:grid;place-items:center;font-size:18px;font-weight:800;color:var(--dark);pointer-events:none}.dash-gauge-label{margin-top:4px;font-size:13px;font-weight:700;color:var(--dark)}.dash-gauge-hint{font-size:11px;color:var(--muted);line-height:1.35;max-width:160px}.dash-bar{margin-bottom:10px}.dash-bar-top{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:4px}.dash-bar-top strong{font-weight:700;color:var(--dark)}.dash-bar-track{height:8px;border-radius:999px;background:var(--surface-2,#f1f2f5);overflow:hidden}.dash-bar-track>span{display:block;height:100%;border-radius:999px;background:var(--primary);transition:width .3s ease}.dash-bar.is-done .dash-bar-track>span{background:var(--success,#28C76F)}.dash-role-widget .section-label{margin-bottom:10px}.dash-role-card{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:16px 18px}.dash-role-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.dash-role-cta-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px}@media (max-width:800px){.dash-role-cta-row{grid-template-columns:1fr}}.dash-role-cta{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2,#fafbfc);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .1s}.dash-role-cta:hover{border-color:var(--primary);transform:translateY(-1px);color:var(--ink)}.dash-role-cta i{font-size:22px;color:var(--primary)}.dash-role-cta strong{display:block;font-size:14px}.dash-role-cta em{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:2px}.dash-class-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.dash-class-chip{display:flex;flex-direction:column;min-width:100px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none}.dash-class-chip:hover{border-color:var(--primary);color:var(--ink)}.dash-class-chip strong{font-size:14px}.dash-class-chip span{font-size:11px;color:var(--muted);margin-top:2px}.dash-empty{border:1px dashed color-mix(in srgb,var(--primary) 30%,var(--line));background:color-mix(in srgb,var(--primary-soft,#eef2ff) 45%,var(--card));border-radius:14px;padding:28px 20px;text-align:center}.dash-empty>i{font-size:36px;color:var(--primary);display:block;margin-bottom:8px}.dash-empty h3{margin:0 0 6px;font-size:17px}.dash-empty p{font-size:13px;color:var(--muted);line-height:1.45;max-width:360px;margin:0 auto 14px}.dash-empty-inline{margin-bottom:12px;padding:18px 16px}.dash-empty-focus{border-style:solid}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.class-card{border:1px solid var(--line);background:var(--card);padding:16px 14px;border-radius:12px;text-align:center;color:var(--ink);display:block;transition:border-color .15s,transform .1s}.class-card:hover{border-color:var(--primary);transform:translateY(-1px);color:var(--ink)}.class-card.complete{border-color:var(--success);background:var(--success-soft)}.class-card .cname{font-weight:700;font-size:16px}.class-card .cmeta{font-size:12px;color:var(--muted);margin-top:4px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;font-weight:600;opacity:0;pointer-events:none;transition:.2s;z-index:2000}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast-stack{position:fixed;top:18px;left:18px;z-index:4000;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 36px));pointer-events:none}.toast-item{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;padding:14px 14px 14px 12px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 40px rgba(20,28,55,.14),0 2px 8px rgba(20,28,55,.06);animation:toast-in .38s cubic-bezier(.2,.9,.2,1) both}.toast-item.toast-out{animation:toast-out .25s ease forwards}.toast-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;font-size:18px}.toast-success .toast-ico{background:var(--success-soft);color:var(--success-ink)}.toast-error .toast-ico{background:var(--danger-soft);color:var(--danger-ink)}.toast-info .toast-ico{background:var(--primary-soft);color:var(--primary-ink)}.toast-body{flex:1 1;min-width:0;padding-top:2px}.toast-title{font-weight:700;font-size:13.5px;line-height:1.3;color:var(--ink)}.toast-msg{margin-top:3px;font-size:12.5px;line-height:1.4;color:var(--muted)}.toast-close{border:0;background:transparent;color:var(--muted);cursor:pointer;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.toast-close:hover{background:var(--muted-soft);color:var(--ink)}@keyframes toast-in{0%{opacity:0;transform:translateX(-16px) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes toast-out{to{opacity:0;transform:translateX(-12px) scale(.96)}}.period-banner{margin:0 0 14px;padding:11px 14px;border-radius:12px;border:1px solid rgba(61,94,225,.22);background:linear-gradient(135deg,var(--primary-soft),var(--surface-2));display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.45;color:var(--ink);animation:period-in .45s ease both}.period-banner.archive{border-color:rgba(212,148,20,.35);background:linear-gradient(135deg,var(--demo-bg-2),var(--demo-bg))}.period-banner .period-ico{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;background:var(--card);border:1px solid var(--line);color:var(--primary);font-size:16px}.period-banner.archive .period-ico{color:var(--demo-ink)}.period-banner b{font-weight:700}@keyframes period-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.preview-table{width:100%;border-collapse:collapse;font-size:12px;min-width:640px}.preview-table td,.preview-table th{border:1px solid var(--line);padding:6px 8px;text-align:left}.preview-table th{background:var(--surface-2);position:sticky;top:0}.preview-table tr.kind-changed td{background:var(--warning-soft)}.preview-table tr.kind-skipped td{background:var(--muted-soft);color:var(--muted-ink)}.mb-8{margin-bottom:8px}.gap-8{gap:8px}.flex.gap-8{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.demo-box{background:var(--primary-soft);border:1px solid rgba(61,94,225,.25);border-radius:10px;padding:12px 14px;font-size:12.5px;margin-top:16px;color:var(--ink)}.demo-box code{font-family:ui-monospace,monospace;font-size:12px}.empty-note{color:var(--muted);text-align:center;padding:28px 12px}.alert.ok{color:var(--success-ink)}.alert.ok,table.data tr.kind-new td{background:var(--success-soft)}.att-row{padding:10px 0;border-bottom:1px solid var(--line);gap:12px;flex-wrap:wrap}.att-row:last-child{border:0}.att-btn.present.on{background:var(--success);color:#fff;border-color:var(--success)}.att-btn.absent.on{background:var(--danger);color:#fff;border-color:var(--danger)}.att-btn.late.on{background:var(--warning);color:#211;border-color:var(--warning)}.profile-page{max-width:920px}.profile-hero{overflow:hidden}.profile-hero-inner{display:flex;align-items:center;gap:18px;padding:20px 22px}.profile-avatar{width:64px;height:64px;border-radius:16px;flex-shrink:0;display:grid;place-items:center;font-weight:800;font-size:20px;letter-spacing:-.02em;color:#fff;background:linear-gradient(135deg,#3D5EE1,#6F7CFF);box-shadow:0 8px 20px -10px rgba(61,94,225,.65)}.profile-hero-meta h2{margin:0 0 4px;font-size:20px;font-weight:700;line-height:1.2}.profile-hero-meta p{margin:0 0 10px;color:var(--muted);font-size:13.5px}.profile-badges{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.profile-badges .badge{gap:4px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.profile-hint{font-size:12.5px;line-height:1.5;margin:0}.mt-16{margin-top:16px}@media (max-width:900px){.profile-grid{grid-template-columns:1fr}.profile-hero-inner{padding:16px}.profile-avatar{width:56px;height:56px;font-size:18px;border-radius:14px}}.perm-matrix th.perm-role{font-size:12px;text-align:center;white-space:nowrap}.perm-matrix td.perm-cell{text-align:center;color:var(--track-2);font-size:18px}.perm-matrix td.perm-cell.on{color:var(--success)}.perm-matrix .perm-key{font-size:11px;font-family:var(--font-mono)}.perm-off{opacity:.6}.role-chips{display:flex;flex-wrap:wrap;gap:6px}.role-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.role-chip.on,.role-chip:hover{border-color:var(--primary);color:var(--primary)}.role-chip.on{background:var(--primary-soft)}.role-chip i{font-size:14px}.student-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;text-align:left;margin:16px 0 0;font-size:13px}.student-facts dt{color:var(--muted);font-weight:600}.student-facts dd{margin:0;overflow-wrap:anywhere}.students-table code{font-size:12px;background:var(--paper);padding:2px 6px;border-radius:6px}@media (max-width:900px){.student-file-grid{grid-template-columns:1fr!important}}@media (max-width:768px){.students-table thead{display:none}.students-table tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:10px 12px;border-bottom:1px solid var(--line)}.students-table td{display:block;padding:2px 0;border:0}.students-table td[data-label]:before{content:attr(data-label);display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.students-table td[data-label="Élève"]{grid-column:1/-1}}.student-doc-page{background:#fff;color:#111;max-width:794px;margin:0 auto;padding:56px 64px;min-height:1000px;box-shadow:0 2px 16px rgba(0,0,0,.08);font-size:15px;line-height:1.7}.student-doc-head{display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid #111;padding-bottom:14px;margin-bottom:24px}.student-doc-school{display:flex;gap:14px;align-items:flex-start}.student-doc-logo{width:64px;height:64px;object-fit:contain}.student-doc-school-name{font-weight:800;font-size:16px;text-transform:uppercase}.student-doc-school-meta{font-size:12px;color:#333;line-height:1.5}.student-doc-republic{text-align:right;font-weight:700;font-size:13px;text-transform:uppercase;line-height:1.5}.student-doc-republic em,.student-doc-republic small{font-weight:500;text-transform:none;font-size:11px}.student-doc-ref{font-size:12px;color:#444;margin-bottom:28px}.student-doc-title{text-align:center;font-size:24px;letter-spacing:.08em;margin:0 0 32px;text-decoration:underline;text-underline-offset:8px}.student-doc-body{text-align:justify;margin:0 0 18px}.student-doc-sign{display:flex;justify-content:flex-end;margin-top:48px;text-align:center}.student-doc-sign-title{font-weight:700;margin-top:8px}.student-doc-sign-box{height:90px;display:flex;align-items:flex-end;justify-content:center;font-weight:600}.student-doc-foot{margin-top:60px;font-size:11px;color:#666;text-align:center;border-top:1px solid #ddd;padding-top:8px}@media print{.student-doc-page{box-shadow:none;padding:24px 32px;min-height:0;max-width:none}.student-doc-title{page-break-after:avoid}}.students-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.students-filters .ctrl{width:auto;min-width:150px}.students-filters label.btn input{margin:0}