.portal-shell{color:#172638;background:#f5f7fb;min-height:100vh}.portal-header{background:#fff;border-bottom:1px solid #dfe5ee;justify-content:space-between;align-items:center;gap:20px;padding:20px max(24px,50% - 550px);display:flex}.portal-header a{font-weight:650}.portal-header p{color:#526174;margin:6px 0 0}.portal-header nav{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.portal-content{max-width:1150px;margin:auto;padding:32px 24px}.portal-footer{text-align:center;color:#526174;padding:24px}.portal-login{background:#edf3f8;place-items:center;min-height:100vh;padding:24px;display:grid}.portal-login-card{width:min(100%,480px)}.portal-login-card h1{font-size:28px}.portal-login label,.portal-password label{gap:8px;display:grid}.portal-password{max-width:560px;margin:auto}.portal-students{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;display:grid}.portal-student{color:inherit;border-top:4px solid #137f78;text-decoration:none;display:block}.portal-student h2{margin:16px 0}.portal-tabs{flex-wrap:wrap;gap:8px;display:flex}.portal-record{border-bottom:1px solid #e5eaf1;padding:16px 0}.portal-record:last-child{border-bottom:0}.portal-record h3{margin:0 0 8px}.portal-message{white-space:pre-wrap;overflow-wrap:anywhere}.portal-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;display:grid}.portal-summary>div{gap:8px;display:grid}.portal-summary strong{font-size:24px}@media (width<=700px){.portal-header{flex-direction:column;align-items:flex-start}.portal-content{padding:24px 16px}.portal-header nav{gap:12px}}:root{color:var(--ink-strong);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink-strong:#1c2c29;--ink:#17302b;--ink-2:#3d5751;--muted:#5f726c;--muted-2:#7d8f88;--surface:#f4f7f6;--panel:#fff;--surface-2:#f7faf9;--surface-3:#f1f5f4;--soft:#edf6f3;--line-soft:#e8efed;--line:#dfe8e5;--line-strong:#cddbd6;--line-brand:#a9c8c1;--input-bg:#fff;--input-border:#dce6e3;--focus-border:#6da89b;--focus-ring:#eaf4f1;--brand:#0f4c43;--brand-2:#167260;--brand-hover:#0c4038;--brand-text:#0f4c43;--danger:#b43f42;--warning:#a26c16;--brand-deep:#0a2a25;--brand-ink:#0b3530;--accent:#e2a72e;--accent-strong:#8a5f0a;--accent-soft:#fdf5e1;--shell-bg:#eef3f1;--explorer-bg:#f3f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink-strong:#edf4f2;--ink:#e2ebe8;--ink-2:#b9c9c4;--muted:#92a5a0;--muted-2:#798c86;--surface:#0d1513;--panel:#141f1c;--surface-2:#192622;--surface-3:#1d2b27;--soft:#16261f;--line-soft:#1e2d28;--line:#24352f;--line-strong:#30453e;--line-brand:#38584f;--input-bg:#101a17;--input-border:#2c413a;--focus-border:#3f7a6c;--focus-ring:#2d695c59;--brand:#15655a;--brand-2:#1d8a74;--brand-hover:#1a7566;--brand-text:#58bca3;--danger:#e08587;--warning:#d9a14c;--accent-strong:#e5b65c;--accent-soft:#2e2510;--brand-ink:#dcebe6;--shell-bg:#0b1311;--explorer-bg:#101a17}*{box-sizing:border-box}body{background:var(--surface);min-width:320px;min-height:100vh;color:var(--ink-strong);margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.screen-loader{place-items:center;height:100vh;display:grid}.spinner{border:4px solid var(--line);border-top-color:var(--brand-text);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{color:var(--muted);align-items:center;gap:10px;display:flex}.spinner.small{border-width:3px;width:18px;height:18px}.empty-state-card{text-align:center;border:1px dashed var(--line-strong);background:var(--surface-2);border-radius:13px;justify-items:center;gap:6px;padding:34px 18px;display:grid}.empty-state-card .empty-state-icon{background:var(--soft);width:44px;height:44px;color:var(--brand-text);border-radius:12px;place-items:center;margin-bottom:2px;display:grid}.empty-state-card b{color:var(--ink-2);font-size:13.5px}.empty-state-card p{color:var(--muted);max-width:420px;margin:0;font-size:12px}.empty-state-card .btn{margin-top:8px}.brand{align-items:center;gap:12px;padding:0 4px 22px;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#1e8a73,#125b4e);border-radius:13px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 8px 20px #00000026}.brand-mark.large{border-radius:16px;width:54px;height:54px}.brand b{letter-spacing:.04em;font-size:18px;display:block}.brand span{color:var(--line-brand);margin-top:2px;font-size:12px;display:block}.content{max-width:1600px;margin:0 auto;padding:22px 26px 44px}.page-stack{grid-template-columns:minmax(0,1fr);gap:22px;display:grid}.page-title-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.page-title-row h2{color:var(--ink);margin:3px 0 8px;font-size:28px;line-height:1.1}.page-title-row p:not(.eyebrow){color:var(--muted);margin:0;font-size:13px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;margin:0;font-weight:800;color:#468075!important;font-size:10px!important}.date-chip{border:1px solid var(--line);background:var(--panel);color:var(--ink-2);text-transform:capitalize;border-radius:12px;align-items:center;gap:8px;padding:10px 13px;font-size:12px;display:flex}.page-title-main{align-items:flex-start;gap:14px;min-width:0;display:flex}.page-title-icon{width:46px;height:46px;color:var(--brand-text);background:var(--panel);border:1px solid var(--line);border-radius:13px;flex:none;place-items:center;display:grid;box-shadow:0 2px 6px #0c28220f}.page-title-text{min-width:0}.page-title-row .page-breadcrumb{text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:4px;margin:0 0 2px;font-weight:800;display:flex;color:var(--accent-strong)!important;font-size:10.5px!important}.page-breadcrumb .link-btn{text-transform:none;letter-spacing:0;align-items:center;gap:4px;font-size:12px;display:inline-flex}.page-breadcrumb .crumb-module{color:var(--muted-2)}.page-title-row .page-title-text h2{margin:0 0 4px;font-size:24px}.erp-shell{background:var(--shell-bg);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.erp-body{flex:1;min-height:0;display:flex;overflow:hidden}.erp-main{background:var(--shell-bg);outline:none;flex:1;min-width:0;overflow-y:auto}.erp-main>.content{animation:.18s ease-out page-in}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.erp-main>.content{animation:none}}.skip-link{z-index:200;background:var(--accent);color:var(--brand-deep);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;position:absolute;top:-60px;left:12px}.skip-link:focus{top:10px}.icon-btn{width:34px;height:34px;color:inherit;opacity:.8;background:0 0;border:0;border-radius:8px;place-items:center;display:inline-grid}.icon-btn:hover{opacity:1;background:#ffffff1a}.mobile-only{display:none!important}.erp-topbar{background:var(--brand-deep);color:#fff;z-index:40;flex:none;justify-content:space-between;align-items:center;gap:12px;height:50px;padding:0 12px;display:flex;position:relative}.erp-topbar-start,.erp-topbar-end{align-items:center;gap:6px;min-width:0;display:flex}.erp-topbar-divider{background:#ffffff26;width:1px;height:24px;margin:0 6px}.erp-brand{color:#fff;align-items:center;gap:9px;padding:0 4px;display:flex}.erp-brand-mark{background:linear-gradient(145deg, var(--brand-2), var(--brand));width:30px;height:30px;color:var(--accent);border-radius:9px;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #ffffff2e}.erp-brand-text b{letter-spacing:.02em;font-size:13px;display:block}.erp-brand-text small{text-transform:uppercase;letter-spacing:.15em;color:#ffffff80;font-size:9px;font-weight:700;display:block}.erp-context{gap:6px;min-width:0;display:flex}.erp-context-chip{white-space:nowrap;text-overflow:ellipsis;background:#ffffff12;border:1px solid #ffffff1f;border-radius:7px;align-items:center;gap:6px;max-width:260px;height:28px;padding:0 10px;font-size:11.5px;font-weight:600;display:inline-flex;overflow:hidden}.erp-context-chip svg{color:var(--accent);flex:none}.erp-context-chip.muted-chip{color:#ffffffbf}.erp-search-btn{color:#ffffffbf;background:#ffffff0f;border:1px solid #ffffff24;border-radius:8px;align-items:center;gap:8px;min-width:210px;height:32px;padding:0 10px;font-size:11.5px;display:flex}.erp-search-btn span{text-align:left;flex:1}.erp-search-btn:hover{color:#fff;background:#ffffff1f}kbd{opacity:.6;border:1px solid;border-radius:5px;padding:2px 6px;font-family:inherit;font-size:9.5px;font-weight:700}.erp-profile{position:relative}.erp-profile-btn{color:#fff;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;height:38px;padding:0 6px;display:flex}.erp-profile-btn:hover{background:#ffffff1a}.erp-profile-btn svg{opacity:.6;transition:transform .15s}.erp-profile-btn svg.rotated{transform:rotate(180deg)}.erp-profile-text{text-align:left;line-height:1.2}.erp-profile-text b{white-space:nowrap;text-overflow:ellipsis;max-width:150px;font-size:11.5px;display:block;overflow:hidden}.erp-profile-text small{color:#ffffff8c;font-size:9.5px}.erp-avatar{background:var(--accent);width:30px;height:30px;color:var(--brand-deep);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.erp-avatar.large{width:42px;height:42px;font-size:17px}.erp-profile-menu{background:var(--panel);width:290px;color:var(--ink);border:1px solid var(--line);border-radius:12px;animation:.14s ease-out page-in;position:absolute;top:46px;right:0;overflow:hidden;box-shadow:0 18px 50px #081e1a40}.erp-profile-card{background:linear-gradient(135deg, var(--brand-deep), var(--brand-2));color:#fff;align-items:center;gap:12px;padding:16px;display:flex}.erp-profile-card b,.erp-profile-card small,.erp-profile-card span{display:block}.erp-profile-card b{font-size:13.5px}.erp-profile-card small{color:#ffffffb3;font-size:11px}.erp-profile-card span{color:var(--accent);margin-top:4px;font-size:10.5px}.erp-menu-item{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:11px 16px;font-size:13px;font-weight:600;display:flex}.erp-menu-item:hover{background:var(--soft)}.erp-menu-item.danger{color:var(--danger);border-top:1px solid var(--line)}.erp-menu-item.danger:hover{background:#fbeeee}.module-bar{background:linear-gradient(90deg, var(--brand), var(--brand-2));border-bottom:1px solid var(--brand-deep);flex:none;align-items:stretch;height:48px;display:flex;box-shadow:inset 0 1px #ffffff14}.module-bar-arrow{color:#fff;background:#0000001f;border:0;flex:none;place-items:center;width:34px;display:grid}.module-bar-arrow:disabled{opacity:.2;cursor:default}.module-strip{scrollbar-width:none;flex:1;min-width:0;padding:0 4px;display:flex;overflow-x:auto}.module-strip::-webkit-scrollbar{display:none}.module-tab{color:#ffffffd9;border-inline:1px solid #0000;flex:none;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:flex;position:relative}.module-tab:hover{color:#fff;background:#ffffff1a}.module-tab-icon{background:#ffffff12;border-radius:7px;place-items:center;width:28px;height:28px;display:grid}.module-tab.active{background:var(--panel);color:var(--brand-ink);box-shadow:0 -2px 12px #041e1933}.module-tab.active .module-tab-icon{background:var(--soft);color:var(--brand-text)}.module-tab.active:after{content:"";background:var(--accent);height:3px;position:absolute;inset:auto 0 0}.ribbon{background:var(--panel);border-bottom:1px solid var(--line);z-index:5;flex:none;height:98px;display:flex;position:relative;box-shadow:0 3px 10px #0c28220f}.ribbon-module{border-right:1px solid var(--line);background:linear-gradient(135deg, var(--surface-2), var(--soft));flex:none;align-items:center;gap:11px;width:230px;padding:0 16px;display:flex;position:relative;overflow:hidden}.ribbon-module:after{content:"";background:#0f4c430f;border-radius:50%;width:96px;height:96px;position:absolute;bottom:-40px;right:-34px}.ribbon-module-icon{color:#fff;background:linear-gradient(145deg, var(--brand-2), var(--brand-deep));border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 6px 14px #0a2a2533}.ribbon-module-text{z-index:1;min-width:0;position:relative}.ribbon-module-text small{letter-spacing:.16em;text-transform:uppercase;color:var(--accent-strong);font-size:8.5px;font-weight:800;display:block}.ribbon-module-text b{color:var(--brand-ink);margin-top:2px;font-size:14px;display:block}.ribbon-module-text span{-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;margin-top:3px;font-size:10px;line-height:1.25;display:-webkit-box;overflow:hidden}.ribbon-groups{flex:1;min-width:0;padding:6px;display:flex;overflow-x:auto}.ribbon-group{border-right:1px solid var(--line);flex-direction:column;flex:none;justify-content:space-between;align-items:center;padding:0 6px 1px;display:flex}.ribbon-group:last-child{border-right:0}.ribbon-commands{gap:2px;display:flex}.ribbon-command{background:0 0;border:0;border-radius:9px;flex-direction:column;align-items:center;width:78px;height:66px;padding:6px 3px 0;display:flex}.ribbon-command:hover{background:var(--soft)}.ribbon-command-icon{width:40px;height:32px;color:var(--brand-2);border:1px solid #0000;border-radius:8px;place-items:center;display:grid;position:relative}.ribbon-command:hover .ribbon-command-icon{background:var(--panel);border-color:var(--line);box-shadow:0 1px 3px #0c282214}.ribbon-command-label{color:var(--ink-2);-webkit-line-clamp:2;text-align:center;-webkit-box-orient:vertical;margin-top:3px;font-size:10.5px;font-weight:600;line-height:1.12;display:-webkit-box;overflow:hidden}.ribbon-group-label{text-align:center;text-transform:uppercase;letter-spacing:.09em;color:var(--muted-2);white-space:nowrap;text-overflow:ellipsis;padding:0 4px;font-size:9px;font-weight:800;display:block;overflow:hidden}.ribbon-side{border-left:1px solid var(--line);background:var(--surface-2);flex-direction:column;flex:none;justify-content:space-between;align-items:stretch;width:112px;padding:8px;display:flex}.ribbon-side small{text-align:center;color:var(--muted-2);font-size:9px}.ribbon-search{border:1px solid var(--line);background:var(--panel);color:var(--ink-2);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:11px;font-weight:700;display:flex}.ribbon-search:hover{border-color:var(--line-brand);color:var(--brand-text);background:var(--soft)}.ribbon-link{color:var(--muted-2);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:4px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.ribbon-link:hover{background:var(--soft);color:var(--brand-text)}.ribbon-folded{justify-content:space-between;align-items:center;height:32px;padding:0 14px}.ribbon-folded-title{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.ribbon-folded-title svg{color:var(--brand-2)}.ribbon-folded-title b{text-transform:uppercase;letter-spacing:.1em;color:var(--brand-ink)}.planned-dot{background:var(--accent);border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:-1px;right:-1px}.workspace-tabs{background:var(--line-soft);border-bottom:1px solid var(--line-strong);scrollbar-width:thin;flex:none;align-items:flex-end;gap:3px;height:37px;padding:4px 6px 0;display:flex;overflow-x:auto}.workspace-tab{min-width:128px;max-width:230px;height:32px;color:var(--ink-2);background:#ffffff73;border:1px solid #0000;border-radius:8px 8px 0 0;flex:none;align-items:center;display:flex}.workspace-tab:hover{background:#fffc}.workspace-tab.active{background:var(--panel);border-color:var(--line-strong);border-bottom-color:var(--panel);color:var(--brand-ink);height:33px;box-shadow:inset 0 2px 0 var(--accent);margin-bottom:-1px}.workspace-tab-open{min-width:0;height:100%;color:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:0 4px 0 11px;font-size:11.5px;font-weight:600;display:flex}.workspace-tab-open svg{color:var(--brand-2);flex:none}.workspace-tab-open span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.workspace-tab-close{width:22px;height:22px;color:var(--muted-2);opacity:.6;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;margin-right:5px;display:grid}.workspace-tab:hover .workspace-tab-close,.workspace-tab.active .workspace-tab-close{opacity:1}.workspace-tab-close:hover{background:var(--line-soft);color:var(--ink)}.workspace-close-others{height:24px;color:var(--muted);background:0 0;border:0;border-radius:6px;flex:none;align-items:center;gap:5px;margin:0 0 4px auto;padding:0 9px;font-size:10.5px;font-weight:600;display:inline-flex}.workspace-close-others:hover{color:var(--ink);background:#ffffffb3}.explorer{background:var(--explorer-bg);border-right:1px solid var(--line);z-index:20;flex-direction:column;flex:none;width:290px;transition:width .18s;display:flex;position:relative}.explorer.collapsed{width:66px}.explorer-head{color:#fff;background:linear-gradient(135deg, var(--brand-deep), var(--brand) 60%, var(--brand-2));flex:none;align-items:center;gap:10px;height:60px;padding:0 14px;display:flex;position:relative}.explorer-head-icon{width:36px;height:36px;color:var(--accent);background:#ffffff1f;border-radius:10px;flex:none;place-items:center;display:grid}.explorer-head-text{min-width:0}.explorer-head-text small{letter-spacing:.15em;text-transform:uppercase;color:#ffffff8c;font-size:9px;font-weight:800;display:block}.explorer-head-text b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.explorer.collapsed .explorer-head{justify-content:center;padding:0}.explorer.collapsed .explorer-head-text{display:none}.explorer-toggle{border:1px solid var(--line-strong);background:var(--panel);width:24px;height:24px;color:var(--brand-text);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;right:-12px;transform:translateY(-50%);box-shadow:0 2px 6px #0c282226}.explorer-toggle:hover{background:var(--soft)}.explorer-close{color:#fff;background:0 0;border:0;margin-left:auto}.explorer-search{background:var(--panel);border-bottom:1px solid var(--line);flex:none;padding:12px}.explorer-search p{color:var(--muted);margin:0 0 9px;font-size:11px;line-height:1.35}.explorer-search label{display:block;position:relative}.explorer-search svg{color:var(--muted-2);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.explorer-search input{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;outline:none;width:100%;height:34px;padding:0 38px 0 31px;font-size:12px}.explorer-search input:focus{border-color:var(--brand-2);background:var(--panel);box-shadow:0 0 0 3px #1672601f}.explorer-search label>span{color:var(--muted-2);font-size:10px;font-weight:700;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.explorer-nav{flex:1;min-height:0;padding:8px;overflow-y:auto}.explorer-group{margin-bottom:6px}.explorer-group-title{text-transform:uppercase;letter-spacing:.11em;width:100%;height:30px;color:var(--muted);background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;padding:0 8px;font-size:9.5px;font-weight:800;display:flex}.explorer-group-title:hover{background:var(--panel);color:var(--brand-ink)}.explorer-group-title i{background:var(--line-soft);letter-spacing:0;border-radius:99px;margin-left:6px;padding:1px 6px;font-size:9px;font-style:normal}.explorer-group-title svg{transition:transform .15s}.explorer-group-title svg.folded{transform:rotate(-90deg)}.explorer-item{border-left:3px solid #0000;border-radius:0 10px 10px 0;align-items:center;min-height:44px;margin-bottom:2px;display:flex}.explorer-item:hover{background:var(--panel);border-left-color:var(--line-brand);box-shadow:0 1px 3px #0c28220f}.explorer-item.active{background:linear-gradient(90deg, var(--soft), var(--soft));border-left-color:var(--accent);box-shadow:0 1px 3px #0c282214}.explorer-link{min-width:0;color:var(--ink-2);flex:1;align-items:center;gap:10px;padding:6px 8px;display:flex}.explorer-item.active .explorer-link{color:var(--brand-ink)}.explorer-item-icon{width:30px;height:30px;color:var(--muted-2);border-radius:8px;flex:none;place-items:center;display:grid}.explorer-item:hover .explorer-item-icon{background:var(--soft);color:var(--brand-2)}.explorer-item.active .explorer-item-icon{background:var(--panel);color:var(--brand-text);box-shadow:0 1px 3px #0c28221a}.explorer-item-text{flex:1;min-width:0}.explorer-item-text b{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;display:block;overflow:hidden}.explorer-item.active .explorer-item-text b{font-weight:800}.explorer-item-text small{color:var(--muted-2);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:10px;display:block;overflow:hidden}.explorer-star{width:28px;height:28px;color:var(--line-strong);opacity:0;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;margin-right:4px;display:grid}.explorer-item:hover .explorer-star,.explorer-star:focus-visible,.explorer-star.on{opacity:1}.explorer-star.on{color:var(--accent-strong)}.explorer-star:hover{background:var(--accent-soft);color:var(--accent-strong)}.explorer-favourites{background:linear-gradient(135deg, var(--accent-soft), #fff);border:1px solid #f0dfb3;border-radius:12px;margin-bottom:8px;padding:6px}.explorer-favourites h4{text-transform:uppercase;letter-spacing:.11em;color:var(--accent-strong);align-items:center;gap:6px;margin:2px 4px 6px;font-size:9.5px;font-weight:800;display:flex}.explorer-favourites h4 span{background:#f6e7bf;border-radius:99px;margin-left:auto;padding:1px 6px;font-size:9px}.explorer-rail-item{height:44px;color:var(--muted-2);border-left:3px solid #0000;border-radius:0 10px 10px 0;place-items:center;margin-bottom:3px;display:grid;position:relative}.explorer-rail-item:hover{background:var(--panel);color:var(--brand-2)}.explorer-rail-item.active{background:var(--soft);border-left-color:var(--accent);color:var(--brand-ink)}.explorer-rail-item .planned-dot{top:8px;right:10px}.explorer-empty{text-align:center;color:var(--muted);padding:40px 12px;font-size:12px}.explorer-foot{border-top:1px solid var(--line);background:var(--panel);color:var(--muted);flex:none;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-size:10.5px;display:flex}.explorer:not(.collapsed) .explorer-foot{justify-content:flex-start}.online-dot{background:#1fa56f;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #1fa56f26}.explorer-overlay{display:none}.soon-badge{background:var(--accent-soft);color:var(--accent-strong);text-transform:uppercase;letter-spacing:.05em;vertical-align:middle;border-radius:5px;flex:none;margin-left:6px;padding:2px 6px;font-size:8.5px;font-weight:800}.status-bar{background:var(--brand-deep);color:#ffffffb8;flex:none;justify-content:space-between;align-items:center;gap:12px;height:28px;padding:0 14px;font-size:10.5px;display:flex}.status-group{align-items:center;gap:16px;min-width:0;display:flex;overflow:hidden}.status-group span{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.status-group span svg{color:var(--accent)}.status-group b{color:#fff;font-weight:600}.status-online{color:#7fe0b7;font-weight:700}.status-online svg,.status-offline svg{color:inherit!important}.status-offline{color:#f3c46b;font-weight:700}.palette-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#061a1680;justify-content:center;align-items:flex-start;padding:9vh 12px 0;display:flex;position:fixed;inset:0}.palette{background:var(--panel);border-radius:16px;width:100%;max-width:660px;animation:.14s ease-out page-in;overflow:hidden;box-shadow:0 30px 80px #04181459}.palette-input{border-bottom:1px solid var(--line);color:var(--brand-2);align-items:center;gap:10px;padding:0 14px;display:flex}.palette-input input{min-width:0;height:56px;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:15px}.palette-input .icon-btn{color:var(--muted-2)}.palette-input .icon-btn:hover{background:var(--soft)}.palette-results{max-height:58vh;padding:8px;overflow-y:auto}.palette-item{text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:9px 12px;display:flex}.palette-item.selected{background:var(--soft);box-shadow:inset 3px 0 0 var(--accent)}.palette-item-icon{background:var(--soft);width:36px;height:36px;color:var(--brand-2);border-radius:10px;flex:none;place-items:center;display:grid}.palette-item.selected .palette-item-icon{background:var(--panel)}.palette-item-text{flex:1;min-width:0}.palette-item-text b{color:var(--ink);font-size:13.5px;display:block}.palette-item-text small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;display:block;overflow:hidden}.palette-enter{color:var(--muted-2);flex:none}.palette-empty{text-align:center;color:var(--muted);padding:48px 16px;font-size:13px}.palette-foot{border-top:1px solid var(--line);background:var(--surface-2);color:var(--muted);justify-content:space-between;gap:12px;padding:9px 16px;font-size:10.5px;display:flex}.palette-foot kbd{margin-right:3px}.planned-panel{background:linear-gradient(135deg,#fffdf6,#fff);border:1px dashed #e3cf95;align-items:flex-start;gap:22px;display:flex}.planned-icon{background:var(--accent-soft);width:60px;height:60px;color:var(--accent-strong);border-radius:16px;flex:none;place-items:center;display:grid}.planned-panel h3{margin:0 0 6px}.planned-panel h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 6px;font-size:12px}.planned-panel p{color:var(--muted);max-width:640px;margin:0;font-size:13.5px}.planned-panel ul{margin:0 0 20px;padding-left:18px;font-size:13.5px;line-height:1.7}.planned-panel .btn{align-items:center;gap:8px;display:inline-flex}@media (width<=1280px){.ribbon-module{width:180px}.ribbon-module-text span{display:none}.ribbon-command{width:70px}.erp-context .muted-chip{display:none}}@media (width<=1060px){.erp-context,.erp-topbar .erp-topbar-divider{display:none}.erp-search-btn{min-width:0}.erp-search-btn span,.erp-search-btn kbd,.erp-profile-text{display:none}}@media (width<=900px){.mobile-only{display:inline-grid!important}.desktop-only,.ribbon{display:none!important}.explorer,.explorer.collapsed{z-index:60;width:300px;max-width:86vw;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-102%);box-shadow:12px 0 40px #04181440}.explorer.open{transform:none}.explorer.collapsed .explorer-head-text{display:block}.explorer-overlay{z-index:55;background:#061a1673;border:0;display:block;position:fixed;inset:0}.hide-small{display:none!important}}.palette-input input:focus-visible{outline:none}.erp-theme-btn{color:#ffffffbf;background:#ffffff0f;border:1px solid #ffffff24;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.erp-theme-btn:hover{color:#fff;background:#ffffff1f}@media (width>=901px) and (height<=820px){.erp-topbar{height:44px}.module-bar{height:42px}.ribbon{height:86px}.ribbon-command{width:74px;height:60px}.ribbon-command-icon{transform:scale(.88)}.workspace-tabs{height:33px}.workspace-tab{height:28px}.page-title-row{margin-bottom:10px}.page-title-row h2{font-size:19px}}:root[data-theme=dark] .workspace-tab{background:#ffffff0d}:root[data-theme=dark] .workspace-tab:hover{background:#ffffff1c}.erp-brand-mark.has-logo{background:#fff;overflow:hidden}.erp-brand-mark.has-logo img{object-fit:contain;width:100%;height:100%;padding:2px}@media (width>=901px){.explorer,.explorer-overlay{display:none!important}}.btn{border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex}.btn.primary{background:var(--brand);color:#fff;box-shadow:0 7px 16px #0f4c4324}.btn.primary:hover{background:var(--brand-hover)}.btn.primary:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:var(--panel);border-color:var(--line);color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-2)}.btn.wide{width:100%;height:46px}.button-row{flex-wrap:wrap;gap:8px;display:flex}.link-btn{color:var(--brand-text);background:0 0;border:0;font-size:12px;font-weight:800}.panel{background:var(--panel);border:1px solid var(--line-soft);border-radius:17px;padding:20px;box-shadow:0 8px 30px #1c373209}.panel-head{justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:14px;display:flex}.panel-head h3{margin:2px 0 0;font-size:16px}.panel-head p{color:var(--muted);margin:4px 0 0;font-size:12px}.panel-kicker{text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-size:9px;font-weight:800}.skeleton-panel{color:var(--muted)}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stat-card{background:var(--panel);border:1px solid var(--line-soft);border-radius:16px;align-items:flex-start;gap:13px;padding:17px;display:flex}.stat-icon{background:var(--soft);color:#256f61;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.stat-card span{color:var(--muted);font-size:11px;display:block}.stat-card strong{color:var(--ink-2);margin-top:5px;font-size:21px;display:block}.stat-card small{color:var(--muted-2);margin-top:5px;font-size:10px;display:block}.dashboard-grid{grid-template-columns:1.1fr .9fr;gap:16px;display:grid}.dashboard-grid.single{grid-template-columns:1fr}.list-clean{display:grid}.list-row{border-top:1px solid var(--surface-3);align-items:center;gap:10px;padding:11px 0;display:flex}.list-row:first-child{border-top:0}.round-icon{background:var(--soft);color:#276b5f;border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}.round-icon.big{border-radius:13px;width:42px;height:42px}.grow{flex:1;min-width:0}.list-row b{font-size:12px;display:block}.list-row span{color:var(--muted);margin-top:3px;font-size:10px;display:block}.empty-mini{color:var(--muted-2);text-align:center;padding:28px 8px;font-size:12px}.alert-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.attention-card{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:14px;align-items:center;gap:10px;padding:15px;display:flex}.attention-card b{color:var(--ink-2);font-size:12px;display:block}.attention-card span{color:var(--muted-2);margin-top:3px;font-size:10px;display:block}.launcher{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.launcher-head{border-bottom:1px solid var(--line);background:linear-gradient(90deg, var(--surface-2), #fff);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 18px;display:flex}.launcher-head h3{margin:0;font-size:14px}.launcher-head span{color:var(--muted);font-size:11.5px}.launcher-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.launcher-card{background:var(--panel);box-shadow:inset -1px 0 0 var(--line), inset 0 -1px 0 var(--line);padding:14px 16px 16px;transition:background .15s}.launcher-card:hover{background:var(--surface-2)}.launcher-card-head{align-items:center;gap:12px;display:flex}.launcher-card-head b{color:var(--ink);font-size:14px;display:block}.launcher-card-head small{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.launcher-icon{color:#fff;background:linear-gradient(145deg, var(--brand-2), var(--brand-deep));border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 6px 14px #0a2a2529}.launcher-arrow{color:var(--line-strong);flex:none;margin-left:auto;transition:transform .15s,color .15s}.launcher-card-head:hover .launcher-arrow{color:var(--accent-strong);transform:translate(3px)}.launcher-links{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.launcher-links a{background:var(--soft);color:var(--brand-text);border-radius:99px;padding:5px 10px;font-size:11.5px;font-weight:600}.launcher-links a:hover{background:var(--brand);color:#fff}.badge{background:var(--surface-3);text-transform:capitalize;border-radius:999px;width:max-content;font-weight:800;color:var(--muted)!important;align-items:center!important;padding:5px 8px!important;font-size:9px!important;display:inline-flex!important}.badge.success{background:var(--soft);color:#34714a!important}.badge.warning{background:#fff3dc;color:var(--accent-strong)!important}.badge.danger{background:#fbeeee;color:#a23f42!important}.toolbar{align-items:center;gap:10px;margin-bottom:15px;display:flex}.searchbox{border:1px solid var(--line);background:var(--panel);max-width:520px;color:var(--muted-2);border-radius:11px;flex:1;align-items:center;gap:8px;padding:0 11px;display:flex}.searchbox input{background:0 0;border:0;outline:0;flex:1;height:41px}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th{text-transform:uppercase;letter-spacing:.1em;text-align:left;color:var(--muted);border-bottom:1px solid var(--line-soft);padding:10px 12px;font-size:9px}td{color:var(--ink-2);border-bottom:1px solid var(--surface-3);vertical-align:middle;padding:13px 12px;font-size:12px}tbody tr:hover{background:var(--surface-2)}.person-cell{align-items:center;gap:9px;display:flex}.person-cell>span{background:var(--soft);color:#286c5f;border-radius:9px;place-items:center;width:30px;height:30px;display:grid}.cell-sub{color:var(--muted-2);margin-top:3px;font-size:9px;display:block}.empty-state{text-align:center;min-height:170px;color:var(--muted-2);flex-direction:column;justify-content:center;align-items:center;gap:7px;display:flex}.empty-state b{color:var(--ink-2);font-size:13px}.empty-state span{max-width:330px;font-size:11px}.cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.class-card{background:var(--panel);border:1px solid var(--line-soft);border-radius:16px;padding:18px}.class-card-top{justify-content:space-between;align-items:center;display:flex}.class-card h3{margin:15px 0 5px;font-size:16px}.class-card p{color:var(--muted);margin:0;font-size:11px}.class-meta{border-top:1px solid var(--surface-3);gap:16px;margin-top:15px;padding-top:12px;display:flex}.class-meta span{color:var(--muted);align-items:center;gap:5px;font-size:10px;display:flex}.class-card small{color:var(--muted-2);margin-top:12px;display:block}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a1c1894;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-card{background:var(--panel);border-radius:19px;width:min(560px,100%);max-height:92vh;overflow:hidden;box-shadow:0 25px 80px #0000003d}.modal-wide{width:min(780px,100%)}.modal-head{border-bottom:1px solid var(--surface-3);justify-content:space-between;align-items:flex-start;padding:20px 22px 15px;display:flex}.modal-head h2{margin:2px 0 0;font-size:20px}.modal-body{max-height:calc(92vh - 80px);padding:20px 22px 24px;overflow:auto}.icon-btn{background:var(--surface-3);width:34px;height:34px;color:var(--muted);border:0;border-radius:9px;place-items:center;display:grid}.icon-btn.danger{color:#a83f41}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-grid label,.filter-row label,.login-card label{color:var(--ink-2);gap:6px;font-size:11px;font-weight:700;display:grid}.form-grid input,.form-grid select,.form-grid textarea,.filter-row input,.filter-row select{border:1px solid var(--input-border);background:var(--panel);width:100%;color:var(--ink-2);border-radius:10px;outline:none;padding:10px 11px}.form-grid input:focus,.form-grid select:focus,.filter-row input:focus,.filter-row select:focus{border-color:var(--focus-border);box-shadow:0 0 0 3px var(--focus-ring)}.span-2,.form-grid>.alert,.form-grid>.info-box{grid-column:1/-1}.form-section{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding-top:14px;display:flex}.form-section b{font-size:12px}.form-section span{color:var(--muted);font-size:10px}.form-actions{justify-content:flex-end;gap:8px;padding-top:8px;display:flex}.alert{border-radius:10px;padding:10px 12px;font-size:11px}.alert.error{color:#92383a;background:#fff0f0;border:1px solid #f2cccc}.success-alert{color:#387349;background:#edf8f1;border:1px solid #cee7d6}.info-box{background:var(--surface-3);color:var(--muted);border-radius:10px;padding:11px;font-size:10px}.line-item{grid-template-columns:1.8fr 1fr 1fr auto;gap:8px;display:grid}.filter-row{align-items:end;gap:12px;margin-bottom:18px;display:flex}.filter-row label{min-width:230px}.form-grid input[type=date],.filter-row input[type=date]{min-height:41px;color:var(--ink-2)}input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}.settings-scope{gap:8px;display:grid}.settings-scope label{gap:6px;max-width:380px;font-size:12.5px;font-weight:600;display:grid}.settings-scope select{border:1px solid var(--input-border);background:var(--input-bg);color:var(--ink-2);border-radius:10px;padding:10px 11px}.account-panel .form-grid{margin-top:12px}.inherit-tag{color:var(--muted-2);font-size:10px;font-weight:600}.logo-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.logo-preview{border:1px dashed var(--line-strong);background:var(--surface-2);width:72px;height:72px;color:var(--muted-2);border-radius:12px;place-items:center;display:grid;overflow:hidden}.logo-preview img{object-fit:contain;max-width:100%;max-height:100%}.logo-upload{cursor:pointer}.choice-grid{border:1px solid var(--line-soft);border-radius:12px;flex-wrap:wrap;gap:10px 18px;margin:0;padding:12px 14px;display:flex}.choice-grid legend{color:var(--ink-2);padding:0 4px;font-size:11px;font-weight:700}.choice{color:var(--ink-2);align-items:center;gap:7px;font-size:12.5px;font-weight:600;display:inline-flex!important}.choice input{width:auto!important}.audit-action{background:var(--surface-3);border-radius:6px;padding:2px 7px;font-size:11px}.decision-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.decision-grid .account-panel{max-width:none;margin-bottom:0}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{filter:brightness(1.08)}.mini-stats{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mini-stats>div{color:#fff;background:#163d36;border-radius:14px;grid-template-columns:28px 1fr;align-items:center;column-gap:8px;padding:16px;display:grid}.mini-stats svg{color:var(--line-brand);grid-row:1/3}.mini-stats span{color:var(--line-brand);font-size:9px}.mini-stats b{margin-top:2px;font-size:16px}.tabs{border-bottom:1px solid var(--line-soft);gap:6px;margin:-4px 0 12px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 12px;font-size:11px;font-weight:800}.tabs button.active{color:var(--brand-text);border-color:var(--brand-text)}.plain-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.plain-list li{color:var(--ink-2);font-size:11px}.checkbox-line{align-items:flex-start;gap:10px;font-size:13px;display:flex}.checkbox-line input{flex:none;width:18px;height:18px;margin-top:2px}.attendance-list{display:grid}.attendance-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;padding:10px 0 13px;display:flex}.attendance-head span{color:var(--muted);font-size:10px}.attendance-row{border-bottom:1px solid var(--surface-3);align-items:center;gap:10px;padding:10px 0;display:flex}.attendance-row small{color:var(--muted-2);margin-top:2px;font-size:9px;display:block}.row-number{background:var(--surface-3);width:26px;height:26px;color:var(--muted);border-radius:8px;place-items:center;font-size:10px;display:grid}.segmented{background:var(--surface-3);border-radius:10px;gap:2px;padding:3px;display:flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:7px 9px;font-size:9px;font-weight:700}.segmented button.selected{background:var(--panel);color:var(--ink-2);box-shadow:0 1px 5px #00000012}.segmented button.selected.absent{color:#a23f42}.segmented button.selected.late{color:var(--accent-strong)}.segmented button.selected.present{color:#2b7450}.grades-layout{grid-template-columns:310px minmax(0,1fr);align-items:start;gap:15px;display:grid}.assessment-list{padding:13px}.assessment-item{background:var(--panel);text-align:left;border:0;border-radius:10px;justify-content:space-between;gap:8px;width:100%;margin-bottom:4px;padding:11px;display:flex}.assessment-item:hover,.assessment-item.active{background:var(--soft)}.assessment-item b{font-size:11px;display:block}.assessment-item span:not(.badge){color:var(--muted);margin-top:3px;font-size:9px;display:block}.grade-table{display:grid}.grade-header,.grade-row{border-bottom:1px solid var(--surface-3);grid-template-columns:minmax(180px,1fr) 140px 110px;align-items:center;gap:10px;padding:9px 0;display:grid}.grade-header{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:9px}.grade-row b{font-size:11px;display:block}.grade-row small{color:var(--muted-2);font-size:9px}.grade-row input,.grade-row select{border:1px solid var(--input-border);border-radius:8px;width:100%;padding:8px;font-size:10px}.grade-row input:disabled{background:var(--surface-3);color:var(--muted-2)}.login-page{background:var(--panel);grid-template-columns:1.08fr .92fr;min-height:100vh;display:grid}.login-visual{color:#fff;background:linear-gradient(145deg,#0b332c,#0f594b);flex-direction:column;padding:48px;display:flex;position:relative;overflow:hidden}.visual-grid{background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(to bottom right,#000,#0000);mask-image:linear-gradient(to bottom right,#000,#0000)}.login-visual:after{content:"";filter:blur(110px);opacity:.17;background:#1aa583;border-radius:50%;width:420px;height:420px;position:absolute;bottom:-120px;right:-80px}.login-brand{z-index:1;align-items:center;gap:14px;display:flex;position:relative}.login-brand b{font-size:20px;display:block}.login-brand span{color:#a9c8c1;font-size:11px}.visual-copy{z-index:1;max-width:650px;margin:auto 0;position:relative}.visual-copy h1{letter-spacing:-.035em;margin:18px 0;font-size:47px;line-height:1.04}.visual-copy p{color:#cddbd6;max-width:560px;font-size:14px;line-height:1.7}.pill-light{background:#ffffff17;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:10px;display:inline-flex}.feature-row{flex-wrap:wrap;gap:8px;margin-top:30px;display:flex}.feature-row span{color:#cddbd6;border:1px solid #ffffff26;border-radius:9px;padding:7px 9px;font-size:9px}.login-form-wrap{place-items:center;padding:30px;display:grid}.login-card{width:min(420px,100%)}.login-card h2{margin:4px 0 8px;font-size:28px}.muted{color:var(--muted);margin:0 0 22px;font-size:12px}.login-card label{margin-bottom:14px}.input-icon{border:1px solid var(--line);color:var(--muted-2);border-radius:11px;align-items:center;padding:0 11px;display:flex}.input-icon input{border:0;outline:0;flex:1;min-width:0;height:44px;padding:0 9px}.input-icon button{color:var(--muted);background:0 0;border:0}.login-note{color:var(--muted-2);margin-top:13px;line-height:1.5;display:block}.login-note>a,.login-note>.link-button{width:fit-content;color:var(--brand-text);margin-bottom:6px;font-weight:700;display:block}.login-note>a:hover,.login-note>.link-button:hover{text-decoration:underline}.mobile-logo{align-items:center;gap:9px;margin-bottom:35px;display:none}.mobile-logo b{font-size:15px}.account-panel{max-width:640px;margin-bottom:16px}.account-panel h3{align-items:center;gap:8px;margin:0 0 8px;font-size:16px;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:14px;display:flex}.inline-form label{gap:6px;font-size:12.5px;font-weight:600;display:grid}.mfa-secret{background:var(--surface-3);border:1px solid var(--line);letter-spacing:.12em;word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:9px;padding:8px 12px;font-size:15px;display:inline-block}.recovery-codes{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.recovery-codes code{background:var(--surface-3);border:1px dashed var(--line-strong);text-align:center;letter-spacing:.08em;border-radius:8px;padding:7px 10px;display:block}.link-button{color:var(--primary,#0f594b);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.verify-page{background:radial-gradient(700px 360px at 85% -10%,#e2a72e24,#0000 60%),linear-gradient(160deg,#0b332c,#0f594b);place-items:center;min-height:100vh;padding:20px;display:grid}.verify-card{background:var(--panel);border-radius:20px;justify-items:start;gap:12px;width:min(480px,100%);padding:30px 28px;display:grid;box-shadow:0 30px 80px #00000059}.verify-brand{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-text);align-items:center;gap:8px;font-size:12px;font-weight:800;display:inline-flex}.verify-icon{border-radius:16px;place-items:center;width:54px;height:54px;display:grid}.verify-icon.good{background:var(--soft);color:#2b7450}.verify-icon.bad{color:#a23f42;background:#fbeeee}.verify-card h1{color:var(--ink);margin:0;font-size:24px}.verify-card dl{gap:8px;width:100%;margin:4px 0 0;display:grid}.verify-card dl div{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:14px;padding-bottom:7px;display:flex}.verify-card dt{color:var(--muted);font-size:12.5px}.verify-card dd{color:var(--ink-2);text-align:right;margin:0;font-size:13.5px;font-weight:700}.admission-card{width:min(680px,100%)}.admission-form{gap:14px;width:100%;display:grid}.admission-form label,.admission-grid label{color:var(--ink-2);gap:5px;font-size:12.5px;font-weight:600;display:grid}.admission-form input,.admission-form select,.admission-form textarea{border:1px solid var(--input-border);background:var(--input-bg);border-radius:10px;padding:10px 11px;font-weight:400}.admission-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.admission-code{justify-items:start;gap:4px;display:grid}.admission-code span{color:var(--muted);font-size:12px}.admission-code code{letter-spacing:.12em;background:var(--soft);border:1px dashed var(--line-brand);color:var(--brand-text);border-radius:12px;padding:10px 16px;font-size:26px;font-weight:800}.verify-icon.wait{background:var(--accent-soft);color:var(--accent-strong)}@media (width<=640px){.admission-grid{grid-template-columns:1fr}}@media (width<=1180px){.stats-grid,.cards-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.grades-layout{grid-template-columns:1fr}.assessment-list{max-height:360px;overflow:auto}}@media (width<=900px){.content{padding:18px 16px 36px}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-wrap{min-height:100vh}.mobile-logo{display:flex}}@media (width<=680px){.page-title-row{display:grid}.page-title-row>.button-row,.page-title-row>button{width:100%}.page-title-row>.button-row .btn{flex:1}.stats-grid,.mini-stats,.cards-grid,.alert-grid,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.line-item{grid-template-columns:1fr}.filter-row{display:grid}.filter-row label{min-width:0}.attendance-row{flex-wrap:wrap;align-items:flex-start}.segmented{width:100%;overflow:auto}.segmented button{flex:1}.grade-header,.grade-row{grid-template-columns:minmax(120px,1fr) 100px 80px}.content{padding:18px 12px}.panel{padding:14px}.toolbar{align-items:stretch}.searchbox{max-width:none}.visual-copy h1{font-size:38px}}.filter-panel{border-bottom:1px solid var(--line);gap:12px;margin-bottom:16px;padding-bottom:14px;display:grid}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-toggle .filter-chevron{transition:transform .15s}.filter-toggle.is-open .filter-chevron{transform:rotate(180deg)}.filter-toggle.is-open{background:var(--surface-3)}.filter-count{background:var(--brand);color:#fff;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10.5px;font-weight:800;display:grid}.filter-body{border:1px solid var(--line-soft);background:var(--surface-2);border-radius:13px;gap:12px;padding:14px;display:grid}.list-export{margin:18px 0}.list-export .button-row,.record-actions{flex-wrap:wrap}.form-fields{border:0;min-width:0;margin:0;padding:0}.detail-panel{gap:24px;display:grid}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0 0 24px;display:grid}.detail-grid dt{color:var(--muted);margin-bottom:6px;font-size:12px}.detail-grid dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:18px;font-size:12px;display:flex}.pagination .button-row{align-items:center}.loading-state{color:var(--muted);text-align:center;padding:32px}.error-screen{max-width:620px;margin:10vh auto}.field-hint{color:var(--muted);font-weight:400}.action-confirmation{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;max-width:480px;padding:16px}.action-confirmation p{margin:0 0 12px;font-size:13px}.toolbar>input{border:1px solid var(--line);border-radius:10px;flex:1;min-width:0;padding:10px}.form-grid input[type=checkbox]{width:20px;height:20px}.sidebar nav{min-height:0;margin-bottom:16px;overflow-y:auto}.attendance-row select{border:1px solid var(--line);border-radius:8px;padding:10px}button:disabled{cursor:not-allowed;opacity:.55}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #468075}@media (width<=680px){.detail-grid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.toolbar>input{flex-basis:100%}}.student-form-section{border:1px solid var(--line);border-radius:12px;min-width:0;padding:20px}.student-form-section legend{padding:0 8px;font-weight:700}.student-heading{border-bottom:1px solid var(--line);align-items:center;gap:18px;padding-bottom:20px;display:flex}.student-heading h2{overflow-wrap:anywhere;margin:0 0 6px}.student-heading p{color:var(--muted);margin:0}.student-avatar{background:var(--soft);height:64px;color:var(--ink-2);border-radius:18px;flex:0 0 64px;place-items:center;font-size:28px;font-weight:700;display:grid}.guardian-card{border:1px solid var(--line);border-radius:12px;margin-bottom:18px;padding:20px}.guardian-card h4{margin:0 0 6px;font-size:16px}.guardian-card>.button-row{margin-bottom:20px}.guardian-card>div:has(>button){margin-right:10px;display:inline-block}.guardian-editor{background:var(--surface-2);border-radius:12px;margin:16px 0;padding:20px}.field-error{color:#a12727;font-weight:500}.student-financial-history{border-top:1px solid var(--line);margin-top:28px;padding-top:20px}.student-financial-history caption{text-align:left;color:var(--muted);padding:10px 0}.student-fee-line+.student-fee-line{margin-top:10px}.student-document{overflow-wrap:anywhere;margin-top:16px}.student-create-intro{color:var(--ink-2);background:linear-gradient(115deg, var(--soft), #f5f5e9);border:1px solid var(--line-strong);border-radius:18px;padding:30px}.student-create-eyebrow{letter-spacing:.12em;font-size:11px;font-weight:800}.student-create-intro h2{margin:12px 0;font-size:clamp(22px,3vw,30px)}.student-create-steps{flex-wrap:wrap;gap:20px;margin-top:24px;display:flex}.student-create-steps span{align-items:center;gap:8px;font-size:13px;display:flex}.student-create-steps b{background:var(--panel);border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.student-draft-status{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;justify-content:space-between;gap:20px;margin-bottom:24px;padding:18px;display:flex}.student-draft-status p{color:var(--muted);margin-bottom:0}.student-create-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding-top:22px;display:flex}.student-create-footer .button-row{flex-wrap:wrap}@media (width<=680px){.student-create-intro{padding:20px}.student-draft-status{flex-direction:column}.student-create-footer .button-row,.student-create-footer button{width:100%}}.student-document .button-row{flex-wrap:wrap}@media (width<=680px){.student-form-section,.guardian-card,.guardian-editor{padding:14px}.student-heading{align-items:flex-start}.student-avatar{flex-basis:44px;height:44px;font-size:22px}}.issued-document{background:var(--panel);border:1px solid var(--line);border-radius:12px;max-width:720px;margin:8px auto 0;padding:28px 30px;font-size:14.5px;line-height:1.75}.issued-document.is-voided{opacity:.55;position:relative}.issued-document.is-voided:after{content:"ANULADO";text-align:center;letter-spacing:.2em;color:#a43f424d;font-size:54px;font-weight:900;position:absolute;inset:40% 0 auto;transform:rotate(-14deg)}.issued-document-verify{border:1px dashed var(--line-strong);background:var(--surface-2);border-radius:12px;align-items:center;gap:14px;max-width:720px;margin:14px auto 0;padding:12px 14px;display:flex}.issued-document-verify canvas{background:#fff;border-radius:8px;flex:none}.issued-document-verify b{color:var(--ink-2);font-size:13px}.issued-document-verify p{color:var(--muted);word-break:break-all;margin:3px 0;font-size:12px}.issued-document-verify a{color:var(--brand-text);font-weight:700}.issued-document-verify small{color:var(--muted-2);font-size:11px}@media print{.issued-document{border:0;max-width:none;padding:0}.issued-document-verify{background:#fff}.issued-document-page .print-doc-title{display:none}}.issued-document-verify .verify-code{letter-spacing:.08em}@media print{.issued-document-page .issued-document-verify{display:none}}.schedule-picker.form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,420px));gap:12px}.schedule-picker .span-2{grid-column:auto}.schedule-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.schedule-heading h3{margin:0 0 4px}.schedule-heading p{margin:0;font-size:13px}.schedule-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px;display:grid}.schedule-hint{margin:12px 0 0;font-size:12px}.schedule-title{justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;display:flex}.schedule-title span{color:var(--muted);font-size:12px;font-weight:600}.schedule-grid{border-collapse:separate;border-spacing:4px;table-layout:fixed;width:100%;min-width:640px}.schedule-grid th,.schedule-grid td{border:0;padding:0}.schedule-grid thead th{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center;padding:6px 4px;font-size:11px}.schedule-grid .schedule-slot-head,.schedule-grid tbody th{width:92px}.schedule-grid tbody th{text-align:left;vertical-align:middle;background:var(--surface);border-radius:8px;padding:6px 8px}.schedule-grid tbody th b{color:var(--ink);font-size:11.5px;display:block}.schedule-grid tbody th small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px;display:block}.schedule-grid td{height:62px;vertical-align:stretch}.schedule-grid.compact td{height:46px}.schedule-free{background:var(--surface-2);border-radius:9px;border:1px dashed var(--line)!important}.schedule-lesson{background:var(--tone-bg,var(--soft));box-shadow:inset 3px 0 0 var(--tone-edge,var(--brand-2));border-radius:9px}.schedule-cell-btn{width:100%;height:100%;min-height:inherit;text-align:left;background:0 0;border:0;border-radius:9px;padding:0;display:flex}.schedule-cell-btn:hover{background:#0f4c430d}.schedule-cell-btn:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.schedule-lesson-body{width:100%;color:var(--ink);padding:7px 9px;display:block;overflow:hidden}.schedule-lesson-body b{white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.2;display:block;overflow:hidden}.schedule-lesson-body small{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10.5px;display:block;overflow:hidden}.schedule-room{font-weight:700}.schedule-add{width:26px;height:26px;color:var(--line-strong);border-radius:50%;place-items:center;margin:auto;display:grid}.schedule-cell-btn:hover .schedule-add{background:var(--panel);color:var(--brand-text);box-shadow:0 1px 4px #0c28221f}.schedule-break th,.schedule-break td{height:26px!important}.schedule-break td{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-strong);background:repeating-linear-gradient(-45deg, var(--accent-soft), var(--accent-soft) 8px, #fff 8px, #fff 16px);border-radius:8px;font-size:10.5px;font-weight:800}.tone-0{--tone-bg:var(--soft);--tone-edge:#167260}.tone-1{--tone-bg:#e8effb;--tone-edge:#3563b8}.tone-2{--tone-bg:#fcf1dc;--tone-edge:#b67d13}.tone-3{--tone-bg:#f6e8f1;--tone-edge:#9b3d78}.tone-4{--tone-bg:#eaf5e1;--tone-edge:#4f8a2b}.tone-5{--tone-bg:#f9e7e4;--tone-edge:#b2493a}.tone-6{--tone-bg:#e6f2f7;--tone-edge:#237a9b}.tone-7{--tone-bg:#efebf8;--tone-edge:#6450a8}a.schedule-lesson-body[class*=tone-]{background:var(--tone-bg);height:100%;box-shadow:inset 3px 0 0 var(--tone-edge);border-radius:9px}.weekly-load h3{justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 14px;font-size:14px;display:flex}.weekly-load h3 span{color:var(--muted);font-size:11.5px;font-weight:600}.weekly-load>ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.weekly-load-row{grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;font-size:12.5px;display:grid}.weekly-load-row span{color:var(--muted);grid-column:1;font-size:11px}.weekly-load-row strong{font-variant-numeric:tabular-nums;color:var(--muted);grid-area:1/2/span 2;align-self:center}.weekly-load-row strong.done{color:#1f8a5d}.weekly-load-row strong.over{color:var(--accent-strong)}.weekly-load-bar{background:var(--line-soft);border-radius:99px;height:6px;margin-top:6px;overflow:hidden}.weekly-load-bar i{border-radius:inherit;background:var(--brand-2);height:100%;display:block}.weekly-load-bar i.done{background:#1f9a66}.weekly-load-bar i.over{background:var(--accent)}.weekly-load-warnings{background:var(--accent-soft);border-radius:10px;margin-top:16px;padding:12px;font-size:12px}.weekly-load-warnings b{color:var(--accent-strong)}.weekly-load-warnings ul{margin:6px 0 0;padding-left:16px;line-height:1.5}.danger-text{margin-right:auto;color:var(--danger)!important}@media (width<=1180px){.schedule-layout{grid-template-columns:minmax(0,1fr)}}@media print{.schedule-grid{min-width:0}.schedule-free{border-color:var(--line-strong)!important}.schedule-layout{grid-template-columns:1fr}}.section-title{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.section-title span{color:var(--muted);font-size:12px;font-weight:600}.section-links{flex-wrap:wrap;align-items:center;margin-top:10px}.link-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.link-list li{background:var(--surface-2);border-radius:9px;justify-content:space-between;gap:12px;padding:9px 12px;font-size:13px;display:flex}.link-list li span{color:var(--muted);white-space:nowrap;font-size:12px}.text-warning{color:var(--accent-strong);font-weight:700}.today-lessons{gap:12px;display:grid}.today-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.today-head h3{margin:0}.today-head span{color:var(--muted);font-size:12px}.today-lessons ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.today-lesson{border:1px solid var(--line);background:var(--panel);border-radius:11px;align-items:center;gap:12px;padding:8px 10px;display:flex}.today-lesson.past{opacity:.55}.today-lesson.now{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.today-time{font-variant-numeric:tabular-nums;width:52px;color:var(--ink);flex:none;font-size:13px;font-weight:800}.today-time small{color:var(--muted);font-size:10.5px;font-weight:600;display:block}.today-subject{background:var(--tone-bg);min-width:0;box-shadow:inset 3px 0 0 var(--tone-edge);border-radius:8px;flex:1;padding:4px 10px}.today-subject b{font-size:13px;display:block}.today-subject small{color:var(--ink-2);font-size:11.5px;display:block}.today-now{background:var(--accent-soft);color:var(--accent-strong);text-transform:uppercase;letter-spacing:.06em;border-radius:99px;flex:none;padding:3px 8px;font-size:10.5px;font-weight:800}.academic-record h4{margin:18px 0 8px;font-size:13px}.academic-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.academic-cards article{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;align-content:start;gap:4px;padding:14px;display:grid}.academic-cards small{text-transform:uppercase;letter-spacing:.1em;color:var(--accent-strong);font-size:10.5px;font-weight:800}.academic-cards b{font-size:16px}.academic-cards span{color:var(--muted);font-size:12.5px}.academic-cards .link-btn{align-items:center;gap:5px;margin-top:4px;font-size:12.5px;display:inline-flex}.rate{font-size:26px!important}.rate.good,.mean.good{color:#1f8a5d}.rate.pass,.mean.pass{color:var(--ink)}.rate.low,.mean.low{color:var(--danger)}.academic-absences{gap:8px;margin-top:12px;font-size:12.5px;display:grid}.absence-chip{color:var(--danger);background:#fbeeee;border-radius:99px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.absence-chip.late{background:var(--accent-soft);color:var(--accent-strong)}.grade-chips{flex-wrap:wrap;gap:5px;display:flex}.grade-chips a{background:var(--soft);color:var(--brand-text);font-variant-numeric:tabular-nums;border-radius:7px;padding:3px 9px;font-size:12px;font-weight:700}.grade-chips a:hover{background:var(--brand);color:#fff}.mean{font-variant-numeric:tabular-nums;font-size:15px}.academic-note{margin:8px 0 0;font-size:11.5px}@page{margin:12mm}.print-frame,.print-frame>tbody,.print-frame>tbody>tr,.print-frame>tbody>tr>td{font:inherit;color:inherit;letter-spacing:inherit;text-transform:none;text-align:inherit;white-space:inherit;display:contents}.print-frame>tfoot{display:none}@media print{:root,html,body{background:#fff!important}.printable .print-frame{border-collapse:collapse;width:100%;font-size:inherit;display:table}.printable .print-frame>tbody{display:table-row-group}.printable .print-frame>tfoot{display:table-footer-group}.printable .print-frame>tbody>tr,.printable .print-frame>tfoot>tr{display:table-row;break-inside:auto!important;background:0 0!important}.printable .print-frame>tbody>tr>td,.printable .print-frame>tfoot>tr>td{display:table-cell;background:0 0!important;border:0!important;padding:0!important}.print-footer-space{height:16mm}body:has(.print-footer.has-document) .print-footer-space{height:27mm}:is(body:has(.printable) .erp-shell,body:has(.printable) .erp-body,body:has(.printable) .erp-main){background:#fff;height:auto;display:block;overflow:visible}body:has(.printable){background:#fff}.printable button,.printable form,.printable .record-actions,.printable .no-print,.printable .page-title-row{display:none!important}body:has(.printable) .erp-topbar{display:none!important}body:has(.printable) .module-bar{display:none!important}body:has(.printable) .ribbon{display:none!important}body:has(.printable) .workspace-tabs{display:none!important}body:has(.printable) .explorer{display:none!important}body:has(.printable) .explorer-overlay{display:none!important}body:has(.printable) .status-bar{display:none!important}body:has(.printable) .skip-link{display:none!important}body:has(.printable) .content{max-width:none;padding:0;animation:none}.printable .panel{box-shadow:none;border:0;padding:0}.printable .detail-panel,.printable section{break-inside:auto}.printable .guardian-card,.printable .detail-grid,.printable .academic-cards{break-inside:avoid}.printable h2,.printable h3,.printable h4{break-after:avoid}.printable a{color:inherit;text-decoration:none}.printable .student-financial-history{break-inside:auto}.printable .student-financial-history tr,.printable table tr{break-inside:avoid}.printable section>h3{color:var(--brand);margin:18px 0 7px;font-size:14px}.printable .detail-grid,.printable dl{background:#f3f4f6;border-radius:5px;padding:10px 14px}.printable table{border-collapse:collapse;width:100%;font-size:11.5px}.printable table th,.printable table td{border:1px solid #ccc!important;padding:4px 6px!important}.printable table th{font-weight:600;background:#e5e7eb!important}.printable .badge{border:1px solid #ccc}.printable .detail-panel{font-size:11px}.printable .detail-grid{gap:6px 18px;margin:0 0 8px;padding:8px 12px}.printable .detail-grid dt{text-transform:uppercase;letter-spacing:.04em;margin-bottom:1px;font-size:8.5px}.printable .detail-grid dd{font-size:11.5px}.printable section>h3,.printable .detail-panel h3{margin:10px 0 5px;font-size:12.5px}.printable .detail-panel h2{font-size:15px}.printable .student-heading{gap:10px;margin-bottom:4px;padding-bottom:6px}.printable .student-avatar{width:34px;height:34px;font-size:15px}.printable .guardian-card{margin-bottom:6px;padding:8px 12px}.printable .guardian-card h4,.printable .guardian-card b{font-size:12px}.printable .academic-cards>*{padding:8px 10px}.printable .empty-state,.printable .empty-state-card{text-align:left;background:0 0;border:0;place-items:flex-start start;padding:4px 0;font-size:10.5px;min-height:0!important}.printable .empty-state-card .empty-state-icon{display:none}.printable aside.info-box,.printable .student-financial-history .info-box,.printable .pagination,.printable section[aria-label="Acesso ao portal"],.printable .academic-note,.printable caption{display:none!important}}.print-header,.print-footer{display:none}@media print{.print-header{margin-bottom:12px;display:block}.print-header-box{border:1px solid #d1d5db;border-radius:4px;align-items:center;gap:12px;padding:12px;display:flex}.print-logo-box{background:#f9fafb;border:1px solid #d1d5db;flex:none;place-items:center;width:88px;height:78px;display:grid}.print-logo-box img{object-fit:contain;max-width:76px;max-height:68px}.print-logo-box b{color:var(--brand);font-size:22px}.print-inst{text-align:center;flex:1}.print-inst h1{letter-spacing:.02em;text-transform:uppercase;color:var(--brand);margin:0 0 3px;font-size:16px}.print-inst p{color:#4b5563;margin:2px 0;font-size:10px}.print-inst .print-sigla{font-weight:700}.print-header-spacer{flex:none;width:88px}.print-doc-title{text-align:center;text-transform:uppercase;letter-spacing:1px;color:#111827;margin:14px 0 10px;font-size:15px;font-weight:700}.print-footer{color:#6b7280;background:#fff;font-size:9px;display:block;position:fixed;bottom:0;left:0;right:0}.print-footer-document{color:#374151;align-items:center;gap:8px;margin-bottom:3px;font-size:9.5px;line-height:1.45;display:flex}.print-footer-document img{flex:none;width:52px;height:52px}.print-footer-code{letter-spacing:.06em;color:#111827}.print-footer-line{border-top:1.5px solid var(--brand);flex-wrap:wrap;justify-content:space-between;gap:14px;padding:5px 2px 0;display:flex}.print-footer-left{color:#374151;font-weight:700}.print-footer-note{color:#9ca3af;flex-basis:100%}}
