@import"https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";.save-progress-backdrop{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:20px;background:#16223859;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:wait}.save-progress-card{display:flex;flex-direction:column;align-items:center;gap:22px;width:min(320px,90vw);padding:36px 26px;border:1px solid #e3e8f5;border-radius:20px;background:#fff;color:#273e64;box-shadow:0 20px 65px #142a5430;text-align:center;font-family:Sarabun,sans-serif;outline:none}.save-progress-card strong{font-size:20px}.save-progress-card p{margin:10px 0 0;color:#71809a;font-size:15px}.save-progress-spinner{display:block;width:64px;height:64px;flex-shrink:0}.teacher-grade-groups{display:grid;gap:16px}.teacher-grade-card{border:1px solid #e0e6f1;border-radius:16px;background:#fff;overflow:hidden}.teacher-grade-toggle{display:flex;align-items:center;gap:16px;width:100%;padding:20px 24px;border:0;background:#f7f9ff;color:#243c65;text-align:left;font:inherit;cursor:pointer}.teacher-grade-toggle:hover{background:#eef2ff}.teacher-grade-toggle:focus-visible{outline:3px solid #7889ff;outline-offset:-3px}.teacher-grade-symbol{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:12px;background:#e8edff;color:#5265d9;font-size:25px}.teacher-grade-symbol img{width:32px;height:32px;object-fit:contain}.teacher-grade-title{display:grid;gap:5px;flex:1;min-width:0}.teacher-grade-title strong{font-size:16px}.teacher-grade-title small{color:#677890;font-size:13px}.teacher-grade-chevron{font-size:25px;transition:transform .25s}.is-open .teacher-grade-chevron{transform:rotate(180deg)}.teacher-grade-reveal{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .3s ease,visibility .3s}.is-open .teacher-grade-reveal{grid-template-rows:1fr;visibility:visible}.teacher-grade-inner{min-height:0;overflow:hidden}.teacher-grade-inner .teacher-progress{padding:0 24px}.dashboard-shell.dark .teacher-grade-card{background:#182432;border-color:#2a3c50}.dashboard-shell.dark .teacher-grade-toggle{background:#203044;color:#e4edf5}.dashboard-shell.dark .teacher-grade-title small{color:#a6b7cb}.dashboard-shell.dark .teacher-grade-symbol{background:#2b4160;color:#b0c5ff}@media(max-width:600px){.teacher-grade-toggle{padding:16px;gap:12px}.teacher-grade-inner .teacher-progress{padding:0 16px}}@media(prefers-reduced-motion:reduce){.teacher-grade-reveal,.teacher-grade-chevron{transition:none}}.pdf-preview-pages{height:68vh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#e9edf3;padding:12px;border-radius:8px;text-align:center}.pdf-preview-page{min-height:300px;aspect-ratio:210/297;margin:0 auto 14px;background:#fff;color:#53627a;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px #18243a25}.pdf-preview-page:has(canvas){aspect-ratio:auto;min-height:0}.pdf-preview-page canvas{display:block;width:100%;height:auto}.pdf-document-dialog .swal2-html-container{margin:1em 12px 0;overflow:visible}.pdf-preview-open{display:inline-block;margin-top:16px}@media(max-width:600px){.pdf-preview-pages{height:65vh;padding:6px}.pdf-document-dialog{padding:0 0 12px!important}}.cv-form{text-align:left;font-family:Sarabun,sans-serif}.cv-info,.cv-summary{padding:20px;border:1px solid #d7e1fb;border-radius:14px;background:#f6f8ff;margin-bottom:20px}.cv-form h3{font-size:18px;color:#243b65}.cv-fields{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:16px}.cv-form label{display:flex;flex-direction:column;gap:8px;color:#344767}.cv-form input:not([type=radio]),.cv-form select,.cv-form textarea{font:inherit;box-sizing:border-box;width:100%;border:1px solid #ced8ef;border-radius:9px;padding:10px;background:#fff}.cv-table{max-height:55vh;overflow:auto;border:1px solid #d7e1fb;border-radius:12px}.cv-table table{width:100%;border-collapse:collapse;font-size:15px}.cv-table th{position:sticky;top:0;background:#eff4ff;padding:12px}.cv-table td{border-bottom:1px solid #edf1fa;padding:14px 10px}.cv-table td:nth-child(n+3):nth-child(-n+6){text-align:center}.cv-table td:last-child{width:30%}.cv-table input[type=radio]{width:19px;height:19px;accent-color:#496cce}.cv-summary{text-align:center;margin-top:20px}.cv-summary strong{display:block;font-size:34px;color:#3e64bd}.cv-form textarea{min-height:85px}.cv-table tr[hidden]{display:none}@media(max-width:700px){.cv-fields{grid-template-columns:1fr 1fr}.cv-teacher{grid-column:1/-1}.cv-table table{min-width:760px}}.swal2-popup .cv-form{color:#243b53;color-scheme:light}.swal2-popup .cv-form input:not([type=radio]),.swal2-popup .cv-form select,.swal2-popup .cv-form textarea{background:#fff!important;color:#243b53!important;-webkit-text-fill-color:#243b53!important;opacity:1!important;color-scheme:light}.swal2-popup .cv-form select option{background:#fff;color:#243b53}.swal2-popup .cv-form input[readonly],.swal2-popup .cv-form select:disabled{background:#edf2f8!important;color:#344767!important;-webkit-text-fill-color:#344767!important;opacity:1!important}.swal2-popup .cv-form input::placeholder,.swal2-popup .cv-form textarea::placeholder{color:#687990!important;-webkit-text-fill-color:#687990!important;opacity:1}.cv-date-control{position:relative;display:flex;align-items:center}.cv-date-control input{min-height:44px;padding-right:42px!important;min-width:0}.cv-date-control button{position:absolute;right:4px;top:4px;bottom:4px;width:34px;padding:0;border:0;border-radius:6px;background:#e6edff;color:#3156ae;font-size:24px;cursor:pointer}.cv-date-control input::-webkit-calendar-picker-indicator{opacity:0;width:0;margin:0;padding:0}.obs-info{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;margin-bottom:16px}.obs-info label:nth-child(n+4){grid-column:span 1}.obs-info label:nth-child(4){grid-column:span 2}.obs-table{max-height:55vh;margin-top:16px}.obs-table th:first-child{width:76%;text-align:left}.obs-table th:not(:first-child){width:4.8%}.obs-table td:not(:first-child){text-align:center!important;width:auto!important;border-left:1px solid #e3e9f5}.obs-table .obs-section th{position:static;background:#eff4ff;color:#2b426c;text-align:left;padding:16px 10px}.obs-summary{display:grid;grid-template-columns:1fr 1fr 2fr;gap:14px;margin:20px 0}.obs-summary>div{text-align:center;background:#f7f9ff;border:1px solid #d8e3ff;border-radius:10px;padding:16px;color:#697b95;font-size:14px}.obs-summary strong{display:block;color:#476ffe;font-size:24px;margin-top:6px}.obs-legend{font-size:13px;color:#667c96}.observation-form input[type=date]{color-scheme:light}@media(max-width:700px){.obs-info,.obs-summary{grid-template-columns:1fr}.obs-info label:nth-child(4){grid-column:auto}.obs-table table{min-width:760px}}.peer-form section{border:1px solid #dce3ef;border-radius:10px;background:#fafbff;padding:18px;margin:0 0 18px}.peer-form h3{color:#4c72e9;margin:0 0 16px;font-size:17px}.peer-form label{margin-bottom:16px}.peer-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.peer-four{display:grid;grid-template-columns:1.5fr 1.1fr 1.1fr .7fr;gap:18px}.peer-students{display:grid;grid-template-columns:1fr 3fr;gap:18px}.peer-summary{grid-template-columns:1fr 1fr;margin:0}.peer-form textarea{min-height:80px}.peer-form input[readonly]{background:#edf2f8}.peer-form .cv-table{max-height:none}@media(max-width:700px){.peer-two,.peer-four,.peer-students{grid-template-columns:1fr}}.internal-info{display:grid;grid-template-columns:2fr 1.2fr 1fr;gap:18px;margin-bottom:16px}.internal-section{border:1px solid #dce1eb;border-radius:10px;overflow:hidden;margin:24px 0}.internal-section header,.internal-summary{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#f7f8fa;color:#4d70ff}.internal-section header span{font-size:14px;color:#6d7d95}.internal-form .cv-table{max-height:none;border:0;border-radius:0;overflow-x:auto}.internal-form table{table-layout:fixed}.internal-form th{position:static}.internal-form th:first-child{width:40px}.internal-form th:nth-child(2){width:62%;text-align:left}.internal-form th small{display:block;font-weight:400;color:#6d7d95;font-size:12px;margin-top:6px}.internal-form .cv-table td:not(:nth-child(2)){text-align:center;width:auto}.internal-form .cv-table td:nth-child(2){text-align:left}.internal-form .cv-table input[type=radio]{width:17px;height:17px}.internal-note{padding:20px;border-top:1px solid #e4e9f2}.internal-summary{border:1px solid #dce1eb;border-radius:10px;color:#293b59}.internal-summary strong:last-child{font-size:24px;color:#4d70ff}@media(max-width:700px){.internal-info{grid-template-columns:1fr}.internal-form table{min-width:950px}}.internal-form .cv-table thead th:nth-child(n+3){text-align:center!important;vertical-align:middle}.internal-form .cv-table thead th:nth-child(n+3) small{text-align:center}.primary-teaching-record{text-align:left;font-family:DM Sans,Sarabun,sans-serif;font-size:15px}.primary-teaching-record h3{font-size:16px;color:#344767;margin:18px 0 10px}.primary-record-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0;color:#344767}.primary-record-field input,.primary-record-field textarea,.primary-record-field select{width:100%;box-sizing:border-box;border:1px solid #cbd5ef;border-radius:8px;padding:10px 12px;font:inherit;color:#2a3547;background:#fff}.primary-record-field textarea{min-height:76px;resize:vertical}.primary-record-grid{display:grid;gap:16px}.primary-record-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.primary-record-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.primary-record-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.primary-record-grid.checks{margin:12px 0 16px}.checks label{display:flex;gap:8px;align-items:flex-start}.checks input{accent-color:#5d87ff;margin-top:5px}@media(max-width:650px){.primary-record-grid.two,.primary-record-grid.three,.primary-record-grid.four{grid-template-columns:1fr}}.school-login{min-height:100dvh;padding:48px 28px 24px;background:#e9eef8;color:#172c4b;display:flex;flex-direction:column;justify-content:center;font-family:Sarabun,sans-serif}.school-login-shell{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:1.08fr 1fr;border:1px solid #ced8e8;border-radius:20px;overflow:hidden;background:#fff}.school-story{background:#e0f3ff;color:#173e59;padding:44px;display:flex;flex-direction:column;position:relative;overflow:hidden;border-top:5px solid #38b5ed}.school-brand{display:flex;align-items:center;gap:16px}.school-logo{width:72px;height:72px;padding:10px;background:#fff;border-radius:12px;flex-shrink:0}.school-logo img{width:100%;height:100%;object-fit:contain}.school-brand strong{display:block;font-size:21px}.school-brand span{display:block;font-size:10px;letter-spacing:2px;color:#b5c8e8;margin-top:6px}.school-story-copy{margin:54px 0 30px}.school-eyebrow{font-size:13px;color:#d4e0f5;border-left:3px solid #f735a5;padding-left:12px}.school-story h1{color:#fff;font-size:clamp(30px,3vw,42px);line-height:1.5;margin:18px 0;font-weight:700;letter-spacing:-.7px}.school-story h1 em{font-style:normal;color:#ff99d3}.school-story-copy p{color:#c2cfe4;font-size:15px;line-height:1.9;margin:0}.school-features{display:grid;grid-template-columns:1fr 1fr;gap:12px}.school-features article{display:flex;gap:12px;align-items:flex-start;padding:18px 14px;border:1px solid #41547b;background:#213963;border-radius:8px}.school-features article>span{font-size:12px;font-weight:700;color:#ffaddd;padding-top:3px}.school-features h2{font-size:15px;margin:0 0 5px;color:#fff}.school-features p{font-size:12px;line-height:1.65;margin:0;color:#c2cfe4}.school-story-footer{margin-top:40px;padding-top:22px;border-top:1px solid #41547b;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#b5c8e8}.school-access-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e4e9f1;padding:18px 28px;font-size:11px;color:#596b83}.school-dots{display:flex;gap:7px}.school-dots i{height:8px;width:8px;border-radius:50%;background:#e75d85}.school-dots i:nth-child(2){background:#ecc264}.school-dots i:nth-child(3){background:#71bda6}.school-access-body{padding:40px 46px}.school-tag{background:#edf2fc;color:#315fba;padding:6px 11px;border-radius:4px;font-size:12px}.school-access h2{font-size:32px;line-height:1.5;margin:18px 0 8px;color:#172c4b}.school-intro{color:#66768b;font-size:14px;margin:0 0 30px}.school-access form label{display:block;font-size:14px;font-weight:600;margin:20px 0 9px}.school-access input{width:100%;height:50px;border:1px solid #c8d2e0;background:#fff;border-radius:6px;padding:12px 14px;color:#172c4b;font:inherit;font-size:14px}.school-access input::placeholder{color:#8592a5}.school-access small{display:block;font-size:11px;color:#6b7a90;margin-top:7px}.school-password{position:relative}.school-password input{padding-right:68px}.school-password button{position:absolute;right:4px;top:4px;height:42px;padding:0 12px;background:transparent;border:0;color:#315fba;font:inherit;font-size:12px;cursor:pointer}.school-submit{margin-top:28px;min-height:50px;width:100%;display:flex;align-items:center;justify-content:center;gap:18px;border:0;border-radius:6px;background:#285ac7;color:#fff;font:inherit;font-weight:600;cursor:pointer}.school-submit:hover{background:#204ba8}.school-submit:disabled{opacity:.6;cursor:wait}.school-submit span{font-size:22px}.school-login-error{background:#fff0f2;border-left:3px solid #bd3151;padding:12px;color:#94223d;font-size:13px}.school-help{border:1px solid #dce3ef;border-radius:6px;margin-top:20px;padding:14px;font-size:13px;background:#f8faff}.school-help summary{cursor:pointer;color:#31517a}.school-help p{line-height:1.8;color:#596b83;margin:12px 0 0}.school-access-note{text-align:center;margin-top:28px;font-size:12px;line-height:1.8;color:#52657f}.school-access-note span{font-size:11px;color:#758397}.school-login-footer{width:min(1180px,100%);margin:18px auto 0;display:flex;justify-content:space-between;gap:12px;color:#61738d;font-size:11px}.school-login{background:#f2faff;color:#173e59}.school-login-shell{border-color:#cce6f4}.school-brand span,.school-eyebrow,.school-story-copy p,.school-features p,.school-story-footer{color:#41657e}.school-eyebrow{border-color:#179bd5}.school-story h1,.school-features h2{color:#173e59}.school-story h1 em{color:#0879af}.school-features article{background:#fff;border-color:#c5e3f3}.school-features article>span{color:#0879af}.school-story-footer{border-color:#b9ddef}.school-dots i{background:#159dd8}.school-dots i:nth-child(2){background:#83d2f3}.school-dots i:nth-child(3){background:#d9f2fd}.school-tag{background:#e5f6ff;color:#0875a7}.school-access h2{color:#173e59}.school-password button{color:#0875a7}.school-submit{background:#087eb5}.school-submit:hover{background:#066794}.school-help{background:#f4fbff;border-color:#cce6f4}.school-help summary{color:#17648a}.school-login :is(button,input,summary):focus-visible{outline:3px solid #1688be;outline-offset:3px}.school-login{background:radial-gradient(ellipse at 12% 15%,#d9f2ff 0,transparent 48%),radial-gradient(ellipse at 90% 85%,#e2efff 0,transparent 48%),#f5faff;padding:48px 32px 28px}.school-login-shell{border:1px solid #fff;border-radius:28px;box-shadow:0 24px 80px #234d7812,0 2px 8px #234d7808}.school-story{padding:48px;background:linear-gradient(145deg,#e8f7ff,#d9effc);border-top:0}.school-story:before{content:"";position:absolute;pointer-events:none;width:430px;height:430px;border:1px solid #ffffffa8;border-radius:50%;right:-270px;top:110px;box-shadow:0 0 0 48px #ffffff20,0 0 0 96px #ffffff14}.school-story>*{position:relative}.school-logo{width:80px;height:80px;padding:13px;border-radius:20px;box-shadow:0 6px 20px #4683b010}.school-brand strong{font-size:21px;letter-spacing:-.3px}.school-brand span{font-size:9px;letter-spacing:2.3px;color:#5e7e95}.school-story-copy{margin:52px 0 34px}.school-eyebrow{border:0;padding:0;color:#477995;font-size:12px;letter-spacing:.4px}.school-eyebrow:before{content:"";display:inline-block;width:22px;height:2px;background:#55b1dd;margin-right:10px;vertical-align:middle}.school-story h1{font-size:clamp(32px,3vw,44px);line-height:1.55;letter-spacing:-1px;margin:18px 0}.school-story h1 em{color:#2284b4}.school-story-copy p{font-size:14px;line-height:2;color:#527189}.school-features{gap:12px}.school-features article{padding:19px 16px;background:#ffffffb8;border:1px solid #fff;border-radius:14px;gap:12px}.school-features article>span{width:28px;height:28px;display:grid;place-items:center;background:#e8f5fc;border-radius:8px;flex-shrink:0;padding:0;font-size:10px;color:#3984ac}.school-features h2{font-size:14px;font-weight:600}.school-features p{font-size:11px;color:#5d788c}.school-story-footer{margin-top:36px;border-color:#bedcec;color:#6b879c;font-size:10px}.school-access-top{padding:22px 34px;border-color:#f0f4f8;color:#7a8d9f;letter-spacing:.2px}.school-dots i{width:6px;height:6px}.school-access-body{padding:42px 48px}.school-tag{font-size:11px;padding:7px 12px;border-radius:20px;background:#f0f8fd;color:#5286a2}.school-access h2{font-size:34px;letter-spacing:-.8px;margin-top:22px}.school-intro{font-size:13px;color:#79899c;margin-bottom:34px}.school-access form label{font-size:13px;margin-top:22px;color:#39536c}.school-access input{height:54px;border-color:#dce5ed;border-radius:10px;background:#fcfdff;padding:14px 16px;transition:border-color .18s,background .18s}.school-access input:focus{background:#fff;border-color:#67afd6}.school-access input::placeholder{color:#94a3b3;font-size:13px}.school-access small{font-size:10px;color:#7d91a3;margin-top:9px}.school-password button{top:6px;right:6px;color:#5085a3}.school-submit{min-height:54px;margin-top:30px;border-radius:10px;background:#1985bd;box-shadow:0 6px 16px #1686bd20;transition:background .18s,box-shadow .18s}.school-submit:hover{background:#0874ab;box-shadow:0 8px 20px #1686bd30}.school-help{background:#fff;border-color:#e4edf4;border-radius:10px;padding:16px;margin-top:22px;font-size:12px}.school-help summary{color:#618199}.school-access-note{font-size:11px;color:#668298;margin-top:30px}.school-access-note span{font-size:10px;color:#8495a6}.school-login-footer{padding:0 6px;margin-top:22px;color:#7d92a5;font-size:10px}.school-login{background:radial-gradient(ellipse at 12% 15%,#b5e3fc 0,transparent 48%),radial-gradient(ellipse at 90% 85%,#c6e2fa 0,transparent 48%),#e4f3fd}.school-story{background:linear-gradient(145deg,#a5daf7,#77c2ed)}.school-story h1{color:#103958}.school-story h1 em{color:#075783}.school-brand span,.school-eyebrow,.school-story-copy p,.school-story-footer{color:#30556e}.school-eyebrow:before{background:#147db5}.school-features article{background:#f4fbff;border-color:#e4f5ff}.school-features article>span{background:#d6edfc;color:#086494}.school-story-footer{border-color:#479bc44d}.school-tag{background:#dcedfb;color:#17668e}.school-submit{background:#087cb9;box-shadow:0 6px 16px #087cb92b}.school-submit:hover{background:#066394}.school-story{background:linear-gradient(145deg,#103f78,#082b56);color:#fff}.school-brand strong,.school-story h1{color:#fff}.school-brand span,.school-eyebrow{color:#b9def9}.school-eyebrow:before{background:#64c8ff}.school-story h1 em{color:#76d1ff}.school-story-copy p{color:#d0e3f4}.school-story:before{border-color:#74caff24;box-shadow:0 0 0 48px #74caff06,0 0 0 96px #74caff04}.school-features article{background:#174777;border-color:#37678f}.school-features h2{color:#fff}.school-features p{color:#c9dff0}.school-features article>span{background:#235b8b;color:#b3e6ff}.school-story-footer{color:#b5d3ea;border-color:#43739a}.school-submit{background:#086bb0;box-shadow:0 6px 16px #086bb028}.school-submit:hover{background:#07558c}@media(prefers-reduced-motion:reduce){.school-access input,.school-submit{transition:none}}@media(max-width:1000px){.school-story{padding:30px}.school-access-body{padding:32px}.school-features{grid-template-columns:1fr}.school-story-copy{margin-top:36px}.school-story-footer{flex-direction:column}}@media(max-width:700px){.school-login{padding:20px 14px}.school-login-shell{grid-template-columns:1fr;border-radius:12px}.school-story{padding:24px}.school-brand strong{font-size:18px}.school-logo{width:58px;height:58px}.school-story-copy{margin:24px 0 0}.school-story h1{font-size:28px;margin:12px 0}.school-story-copy p{font-size:13px}.school-features,.school-story-footer,.desktop-break{display:none}.school-access-top{padding:14px 24px}.school-access-body{padding:28px 24px}.school-access h2{font-size:28px}.school-intro{margin-bottom:24px}.school-login-footer{font-size:10px;flex-wrap:wrap}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:fixed;z-index:1000;top:8px;left:8px;padding:10px 16px;border-radius:6px;background:#111827;color:#fff;font-weight:600;transform:translateY(-150%);transition:transform .15s ease}.skip-link:focus{transform:translateY(0)}#main-content:focus{outline:none}:where(button,a,input,select,textarea):focus-visible{outline:3px solid #5d87ff;outline-offset:3px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.fatal-error{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f4f7fb;color:#2a3547}.fatal-error section{width:min(520px,100%);padding:32px;text-align:center;background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:#919eab1f 0 12px 24px -4px}.fatal-error section>div{width:54px;height:54px;margin:0 auto 16px;display:grid;place-items:center;border-radius:50%;background:#fff1f2;color:#dc2626;font-size:30px;font-weight:700}.fatal-error h1{margin:0 0 10px}.fatal-error p{color:#5a6a85}.fatal-error small{display:block;margin:14px 0;color:#737373;overflow-wrap:anywhere}.fatal-error button{border:0;border-radius:6px;padding:10px 18px;background:#5d87ff;color:#fff;font:inherit;font-weight:600;cursor:pointer}:root{font-family:Sarabun,sans-serif;color:#17345f;background:#f4f8ff;--blue:#0d6efd;--deep:#0645a5;--line:#dbe8fa}*{box-sizing:border-box}body{margin:0}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;background:linear-gradient(180deg,#075ac9,#063d91);color:#fff;padding:20px;display:flex;flex-direction:column;z-index:5}.brand,.identity{display:flex;flex-direction:column;align-items:center;text-align:center}.crest,.login-crest{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#075ac9;font-weight:700;font-size:22px;margin-bottom:10px}.brand small,.identity small{opacity:.8}.identity{border-block:1px solid #ffffff33;margin:20px -4px;padding:14px 4px}.sidebar nav{display:grid;gap:5px;overflow:auto}.sidebar button{border:0;background:transparent;color:#fff;text-align:left;padding:10px 12px;border-radius:9px;font:inherit;cursor:pointer}.sidebar button.active,.sidebar button:hover{background:#ffffff25}.sidebar .logout{margin-top:auto;color:#ffe1e1}main{margin-left:280px;padding:28px;min-height:100vh}header{display:flex;justify-content:space-between;align-items:start;margin-bottom:25px}h1{font-size:25px;margin:0;color:#083d8c}header p{margin:4px 0;color:#6a7d99}.role{background:#e7f0ff;color:#0a55bc;border-radius:30px;padding:8px 15px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:20px}.stats article,.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 18px #154b9210}.stats article{padding:20px;display:flex;justify-content:space-between;align-items:center}.stats strong{font-size:32px;color:var(--blue)}.panel{padding:22px}.panel h2{margin-top:0}.toolbar{display:flex;justify-content:space-between;margin-bottom:18px}.toolbar button,.login button{border:0;background:var(--blue);color:#fff;padding:10px 20px;border-radius:8px;font:inherit}.search{padding:10px 14px;border:1px solid #cbdcf2;border-radius:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid #e6eef9;text-align:left}th{background:#f4f8ff;color:#345778}.status{display:inline-block;padding:4px 10px;border-radius:20px}.status.pending{background:#fff3cd;color:#866300}.status.reviewed{background:#cff4fc;color:#075b6a}.status.approved{background:#d1e7dd;color:#0f5132}.status.revision{background:#f8d7da;color:#842029}.empty{text-align:center;color:#7c8ea7;padding:45px}.loading{position:fixed;right:25px;top:25px;background:#0d6efd;color:#fff;padding:10px 16px;border-radius:10px;z-index:20}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#e6f1ff,#f8fbff)}.login form{width:min(420px,92vw);background:#fff;padding:38px;border-radius:20px;box-shadow:0 18px 50px #0d4f9f28;text-align:center}.login-crest{background:#0d6efd;color:#fff;margin:0 auto}.login h1{margin:15px 0 3px}.login p{color:#6d7f99}.login label{display:block;text-align:left;margin-top:16px}.login input{width:100%;padding:12px;margin-top:6px;border:1px solid #c7d9f1;border-radius:8px}.login button{width:100%;margin-top:22px}.profile dl{display:grid;grid-template-columns:180px 1fr;gap:12px}.profile dt{font-weight:600}.bottom-nav{display:none}@media(max-width:900px){.sidebar{display:none}main{margin-left:0;padding:18px 14px 80px}.stats{grid-template-columns:repeat(2,1fr)}header{display:block}.role{display:inline-block;margin-top:8px}.bottom-nav{display:flex;position:fixed;bottom:0;inset-inline:0;background:#fff;border-top:1px solid var(--line);z-index:9;overflow:auto}.bottom-nav button{min-width:95px;flex:1;border:0;background:#fff;padding:12px 6px;color:#526c90}.bottom-nav button.active{color:#0d6efd;font-weight:700}.profile dl{grid-template-columns:1fr}}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.profile-form label{display:block;margin:14px 0}.profile-form input{width:100%;padding:11px;margin-top:5px;border:1px solid #cbdcf2;border-radius:8px}.profile-form button{border:0;background:#0d6efd;color:#fff;padding:10px 20px;border-radius:8px;font:inherit}.backup-panel,.session-panel{grid-column:1/-1}.backup-panel p{margin:9px 0;color:#5a6a85}.backup-panel .backup-status{font-size:16px;color:#2a3547}.backup-panel .backup-error{color:#b42318}.backup-panel .backup-note{max-width:760px;padding:12px;border-radius:8px;background:#f3f6ff;color:#52647d}.backup-panel button:disabled{cursor:wait;opacity:.65}.backup-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.backup-validate{display:inline-flex!important;align-items:center;margin:0!important;padding:10px 20px;border:1px solid var(--primary);border-radius:8px;color:var(--primary);font-weight:600;cursor:pointer}.backup-validate.disabled{cursor:wait;opacity:.65}.restore-report{margin-top:20px;padding:18px;border:1px solid #13deb94d;border-radius:10px;background:#13deb90c}.restore-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.restore-report-head span{display:inline-block;padding:4px 8px;border-radius:999px;background:#13deb91f;color:#12806d;font-size:11px;font-weight:700}.restore-report-head h3{margin:7px 0 2px;font-size:16px}.restore-report-head p{margin:0}.restore-report-head>strong{color:#12806d;font-size:28px;text-align:right}.restore-report-head>strong small{display:block;font-size:11px;font-weight:500}.restore-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px;margin-top:16px}.restore-counts>div{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:7px;background:var(--card);font-size:12px}.restore-checksum{display:flex;gap:8px;overflow:hidden}.restore-checksum code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.restore-safe-note{padding:10px;border-left:3px solid #13deb9;background:var(--card)}.restore-warning{color:#a16800!important}.session-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.session-heading h2{margin:0}.session-heading p{margin:4px 0 0;color:var(--muted-foreground);font-size:13px}.session-heading>span{padding:5px 10px;border-radius:999px;background:var(--accent);color:var(--primary);font-size:11px;font-weight:700}.session-list{margin:18px 0}.session-list>div{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--border)}.session-list>div:first-child{border-top:1px solid var(--border)}.session-list>div>div{display:flex;min-width:0;flex-direction:column}.session-list strong{font-size:14px}.session-list small{margin-top:2px;color:var(--muted-foreground);font-size:11px}.session-list b{padding:4px 8px;border-radius:999px;background:#13deb91c;color:#15977f;font-size:10px}.session-device{color:var(--muted-foreground);font-size:18px}.session-device.current{color:#13deb9}.session-revoke{border:1px solid #ef444466!important;background:#fff1f2!important;color:#c53333!important}.dark .session-revoke{background:#42272b!important;color:#ffb4ba!important}.session-revoke:disabled{border-color:var(--border)!important;background:var(--accent)!important;color:var(--muted-foreground)!important}@media(max-width:900px){.profile-grid{grid-template-columns:1fr}}@media(max-width:600px){.session-heading,.restore-report-head{flex-direction:column}.session-list>div{grid-template-columns:20px minmax(0,1fr)}.session-list b{grid-column:2;justify-self:start}.restore-report-head>strong{text-align:left}}.presentation-form{margin-top:1rem}.presentation-form>label{display:flex;flex-direction:column;gap:.35rem;margin:.75rem 0;color:#344054}.presentation-form input[type=text],.presentation-form input:not([type]),.presentation-form textarea{padding:.7rem;border:1px solid #d0d5dd;border-radius:.5rem;font:inherit}.presentation-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:1rem 0}.presentation-options label{display:flex;align-items:center;gap:.45rem}.presentation-options input{width:1.1rem;height:1.1rem}.presentation-form button{border:0;background:#0d6efd;color:#fff;padding:10px 20px;border-radius:8px;font:inherit}@media(max-width:600px){.presentation-options{grid-template-columns:1fr}}.teacher-headline{margin:.45rem 0 .15rem;color:#175cd3;font-weight:600}.teacher-detail{margin:.15rem 0 .65rem;color:#667085;font-size:.9rem;line-height:1.45}.security-overview{grid-column:1/-1}.security-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px}.security-summary h2{margin:2px 0 4px}.security-summary p{margin:0;color:var(--muted-foreground)}.security-summary>button{border:1px solid var(--border);background:var(--card);color:var(--card-foreground);padding:8px 14px;border-radius:6px}.security-score{display:flex;width:76px;height:76px;align-items:baseline;justify-content:center;border-radius:50%;background:conic-gradient(var(--primary) 0 90%,var(--accent) 90% 100%);box-shadow:inset 0 0 0 8px var(--card);padding-top:25px}.security-score strong{font-size:22px}.security-score span{font-size:10px;color:var(--muted-foreground)}.security-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.security-metrics>div{display:flex;flex-direction:column;padding:14px;border:1px solid var(--border);border-radius:7px;background:var(--accent)}.security-metrics strong{font-size:22px;color:var(--primary)}.security-metrics span{font-size:11px;color:var(--muted-foreground)}.security-activity h3{margin:0 0 10px}.security-activity ul{list-style:none;margin:0;padding:0}.security-activity li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border)}.security-activity li>span{width:9px;height:9px;border-radius:50%;background:#ef4444}.security-activity li>span.ok{background:#13deb9}.security-activity li>div{display:flex;flex-direction:column}.security-activity li small{color:var(--muted-foreground)}@media(max-width:600px){.security-summary{grid-template-columns:auto 1fr}.security-summary>button{grid-column:1/-1}.security-score{width:64px;height:64px;padding-top:20px}.security-metrics{grid-template-columns:1fr}}.toolbar-actions{display:flex;gap:10px;align-items:center}.import-button{display:inline-flex;align-items:center;background:#fff;color:#0d6efd;border:1px solid #0d6efd;padding:9px 15px;border-radius:8px;cursor:pointer;font-weight:600}@media(max-width:600px){.toolbar{gap:10px;align-items:stretch;flex-direction:column}.toolbar-actions{justify-content:flex-end}.search{width:100%}}.import-preview-scroll{max-height:360px;overflow:auto;text-align:left}.import-preview-table{width:100%;border-collapse:collapse;font-size:14px}.import-preview-table th,.import-preview-table td{padding:12px;border-bottom:1px solid #e5e5e5;text-align:left;overflow-wrap:anywhere}.import-preview-table th{position:sticky;top:0;background:var(--card,#fff)}.import-preview-table td:first-child{white-space:nowrap}.row-actions{display:flex;gap:.45rem;align-items:center;white-space:nowrap}.row-action{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d0d5dd;border-radius:.5rem;background:#fff;color:#344054;padding:.42rem .65rem;font:inherit;font-size:.82rem;text-decoration:none;cursor:pointer}.row-action:hover{background:#f9fafb}.row-action.danger{border-color:#fecdca;color:#b42318}.row-action.danger:hover{background:#fef3f2}.primary-action{background:#155eef!important;color:#fff!important;border-color:#155eef!important}.swal-field{display:block;text-align:left;margin:.65rem 0;color:#344054;font-size:.9rem}.swal-field .swal2-input,.swal-field .swal2-select,.swal-field .swal2-file{box-sizing:border-box;width:100%;margin:.3rem 0 0;height:auto;min-height:2.7rem;font-size:.95rem}.swal-field .swal2-select{padding:.55rem}.swal-field .swal2-file{padding:.55rem;border:1px solid #d0d5dd;border-radius:.35rem}.score-list{max-height:46vh;overflow:auto;margin:1rem 0;border:1px solid #e4e7ec;border-radius:.55rem}.score-row{display:grid;grid-template-columns:1fr 95px;gap:.75rem;align-items:center;padding:.6rem .75rem;text-align:left;border-bottom:1px solid #eaecf0}.score-row:last-child{border-bottom:0}.score-row .swal2-select{width:80px;margin:0;padding:.35rem;font-size:.9rem}.row-action.review{border-color:#b2ccff;color:#175cd3;background:#eff4ff}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;text-align:left}.detail-grid div{padding:.7rem;background:#f9fafb;border-radius:.45rem}.detail-grid span{display:block;color:#667085;font-size:.8rem}.detail-grid strong{display:block;margin-top:.2rem;color:#101828}.detail-scores{width:100%;border-collapse:collapse}.detail-scores td{padding:.55rem .7rem;text-align:left;border-bottom:1px solid #eaecf0}.detail-scores td:last-child{text-align:center;width:90px}.row-action.record{border-color:#a6f4c5;color:#067647;background:#ecfdf3}.record-form{max-height:62vh;overflow:auto;padding-right:.35rem}.record-form .swal2-textarea{box-sizing:border-box;width:100%;margin:.3rem 0 0;min-height:75px;font-size:.92rem}.record-activity{margin:0 0 1rem;padding:.75rem;border:1px solid #d0d5dd;border-radius:.55rem}.record-activity legend{padding:0 .35rem;color:#175cd3;font-weight:700;font-size:.95rem}.project-activities{width:100%;border-collapse:collapse}.project-activities th,.project-activities td{padding:.6rem;text-align:left;border-bottom:1px solid #eaecf0}.project-activities th{background:#f9fafb;font-size:.82rem}.project-activities td:nth-child(n+3):nth-child(-n+5){text-align:right}.check-field{display:flex;align-items:center;gap:.55rem;margin:.85rem 0;text-align:left;color:#344054}.check-field input{width:1.1rem;height:1.1rem}.list-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.list-toolbar>select{min-height:2.5rem;border:1px solid #d0d5dd;border-radius:.45rem;background:#fff;padding:.45rem .65rem;color:#344054}.list-toolbar .toolbar-actions{margin-left:auto}.result-count{margin:.2rem 0 .8rem;color:#667085;font-size:.85rem}@media(max-width:760px){.list-toolbar>*{width:100%}.list-toolbar .toolbar-actions{margin-left:0;display:flex;flex-wrap:wrap}.list-toolbar .toolbar-actions>*{flex:1}.detail-grid{grid-template-columns:1fr}}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.table-pagination label,.table-pagination>div,.pagination-pages{display:flex;align-items:center;gap:8px;color:var(--muted-foreground);font-size:12px}.table-pagination select,.table-pagination button{min-width:34px;min-height:34px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--card-foreground);padding:5px 9px;font:inherit}.table-pagination button{cursor:pointer}.table-pagination button:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--accent)}.table-pagination button:disabled{cursor:not-allowed;opacity:.45}.pagination-pages{gap:4px}.pagination-pages button{padding:5px}.pagination-pages button.current{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:var(--shadow-btn-shadow)}.pagination-pages span{padding:0 2px}.pagination-status{display:none}@media(max-width:760px){.table-pagination{align-items:stretch;flex-direction:column}.table-pagination>div{justify-content:space-between}.pagination-pages{display:none}.pagination-status{display:inline;white-space:nowrap}.table-pagination>div>button{font-size:18px}}.form-section{text-align:left;margin:1.2rem 0 .5rem;color:#175cd3;font-size:1rem}.record-form .swal-field .swal2-textarea{width:100%;box-sizing:border-box;margin:.3rem 0 0;min-height:72px;font-size:.92rem}.visit-edit-row{display:grid;grid-template-columns:minmax(240px,1fr) 80px minmax(150px,.6fr);gap:.55rem;align-items:center;padding:.55rem .7rem;border-bottom:1px solid #eaecf0;text-align:left}.visit-edit-row .swal2-select,.visit-edit-row .swal2-input{width:100%;box-sizing:border-box;margin:0;padding:.4rem;font-size:.88rem}@media(max-width:700px){.visit-edit-row{grid-template-columns:1fr 70px}.visit-edit-row .swal2-input{grid-column:1/-1}}.file-hint{text-align:left;margin:-.35rem 0 .75rem;color:#667085;font-size:.82rem}.clear-filters{display:inline-flex;align-items:center;gap:6px;min-height:40px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--muted);padding:7px 10px;font:inherit;cursor:pointer}.clear-filters:hover{border-color:var(--primary);color:var(--primary);background:var(--accent)}.clear-filters span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-size:11px;font-weight:700}.saved-view-note{color:var(--primary);font-weight:600}.export-table{display:inline-flex;align-items:center;gap:6px}.export-table span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:var(--accent);color:var(--primary);font-size:11px;font-weight:700}.export-table:disabled{cursor:not-allowed;opacity:.5}.export-table.selected{border-color:var(--primary)!important;background:var(--accent)!important;color:var(--primary)!important}.selection-bar{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));border-radius:8px;background:var(--accent);color:var(--accent-foreground);font-size:12px}.selection-bar strong{font-size:13px}.selection-bar span{color:var(--muted-foreground)}.selection-bar button{margin-left:auto;border:0;background:transparent;color:var(--primary);font:inherit;font-weight:600;cursor:pointer}.row-selection-panel{position:relative;margin:0 0 10px}.row-selection-panel>summary{display:inline-flex;align-items:center;gap:8px;min-height:36px;box-sizing:border-box;border:1px solid var(--border);border-radius:7px;background:var(--card);color:var(--card-foreground);padding:6px 10px;list-style:none;font-size:12px;cursor:pointer}.row-selection-panel>summary::-webkit-details-marker{display:none}.row-selection-panel>summary b{color:var(--primary);font-size:11px}.row-selection-panel>div{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:min(360px,calc(100vw - 48px));max-height:360px;overflow:auto;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--popover);box-shadow:var(--shadow-md)}.row-selection-panel label{display:flex;align-items:center;gap:9px;padding:8px;border-radius:6px;color:var(--popover-foreground);font-size:13px;cursor:pointer}.row-selection-panel label:hover{background:var(--accent)}.row-selection-panel input{width:17px;height:17px;flex:0 0 auto;accent-color:var(--primary)}.row-selection-panel .select-results{position:sticky;top:-8px;z-index:2;border-bottom:1px solid var(--border);border-radius:0;background:var(--popover)}.row-selection-panel .select-results span{display:grid;gap:2px}.row-selection-panel .select-results strong{color:var(--primary)}.row-selection-panel .select-results small{color:var(--muted-foreground);font-size:11px}.row-selection-panel .select-page{border-bottom:1px solid var(--border);border-radius:0;font-weight:700}.selection-options{display:grid}.selection-options span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:767px){.selection-bar{align-items:flex-start;flex-wrap:wrap}.selection-bar span{width:100%;order:3}.selection-bar button{margin-left:auto}.row-selection-panel>summary{width:100%;justify-content:space-between;min-height:42px}.row-selection-panel>div{position:static;width:auto;max-height:300px;margin-top:6px;box-shadow:var(--shadow-sm)}}.export-excel{display:inline-flex;align-items:center;gap:6px;border-color:#12b76a!important;background:#ecfdf3!important;color:#067647!important}.export-excel span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#d1fadf;color:#067647;font-size:11px;font-weight:700}.export-excel.selected{border-color:#039855!important;background:#d1fadf!important}.export-excel:disabled{cursor:not-allowed;opacity:.55}.dark .export-excel{border-color:#039855!important;background:#16382a!important;color:#6ce9a6!important}.dark .export-excel span{background:#075d3b;color:#a6f4c5}.bulk-print{display:inline-flex;align-items:center;gap:6px;border-color:#7f56d9!important;background:#f4f3ff!important;color:#6941c6!important}.bulk-print span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#e9d7fe;color:#6941c6;font-size:11px;font-weight:700}.dark .bulk-print{border-color:#7f56d9!important;background:#2d2341!important;color:#d6bbfb!important}.copy-selected{display:inline-flex;align-items:center;gap:6px;border-color:#6ce9a6!important;background:#ecfdf3!important;color:#067647!important}.copy-selected span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#d1fadf;color:#067647;font-size:11px;font-weight:700}.dark .copy-selected{border-color:#039855!important;background:#16382a!important;color:#6ce9a6!important}.selection-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0 0 12px}.selection-summary>div{display:grid;gap:3px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card);box-shadow:var(--shadow-sm)}.selection-summary span{overflow:hidden;color:var(--muted-foreground);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.selection-summary strong{color:var(--card-foreground);font-size:14px;overflow-wrap:anywhere}.selection-summary>div:first-child{border-color:color-mix(in srgb,var(--primary) 30%,var(--border));background:var(--accent)}.selection-summary>div:first-child strong{color:var(--primary)}@media(max-width:600px){.selection-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.selection-summary>div{padding:9px 10px}}.summary-section-label{margin:10px 0 7px;color:var(--muted-foreground);font-size:11px;font-weight:700;letter-spacing:.03em}.filtered-summary{margin-bottom:14px}.filtered-summary>div{box-shadow:none}.filtered-summary>div:first-child{border-left:3px solid var(--primary)}.date-range-filter{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--card)}.date-range-filter label{display:flex;align-items:center;gap:5px;color:var(--muted-foreground);font-size:11px}.date-range-filter input{width:120px;min-height:30px;border:0;background:transparent;color:var(--card-foreground);font:inherit}.date-range-filter span{color:var(--muted-foreground)}@media(max-width:760px){.date-range-filter{width:100%;justify-content:space-between}.date-range-filter label{flex:1}.date-range-filter input{width:100%}}.date-preset-filter{min-height:40px;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--border))!important;background:var(--accent)!important;color:var(--accent-foreground)!important;font-weight:600}@media(max-width:767px){.table-panel .list-toolbar>.date-preset-filter{grid-column:1/-1;width:100%;min-height:44px}}.academic-period-filter{display:flex;align-items:center;gap:6px;min-height:40px;padding:3px 6px 3px 10px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--muted-foreground);font-size:11px}.academic-period-filter select{width:auto;min-height:32px;border:0!important;background:transparent!important;color:var(--card-foreground)!important;padding:4px 22px 4px 4px;font:inherit;font-weight:600}.academic-period-filter b{color:var(--primary);font-size:14px}.academic-period-filter button{min-height:30px;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--border));border-radius:6px;background:var(--accent);color:var(--primary);padding:4px 8px;font:inherit;font-size:10px;font-weight:700;cursor:pointer}.academic-period-filter button:disabled{cursor:not-allowed;opacity:.48}.academic-period-filter button.active{border-color:#6ce9a6;background:#ecfdf3;color:#067647;opacity:1}@media(max-width:767px){.table-panel .list-toolbar>.academic-period-filter{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto 1.3fr auto;width:100%;min-height:44px;box-sizing:border-box}.academic-period-filter select{width:100%;min-width:0}.academic-period-filter button{min-height:36px}}.search-table-control{position:relative;display:flex;align-items:center;min-width:min(300px,100%)}.search-table-control>span{position:absolute;left:12px;color:var(--muted-foreground);font-size:18px;pointer-events:none}.search-table-control .search{width:100%;min-height:40px;padding-left:36px;padding-right:38px}.search-table-control>button{position:absolute;right:8px;display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:50%;background:var(--accent);color:var(--primary);font:inherit;font-size:18px;cursor:pointer}.search-table-control>small{position:absolute;right:40px;color:var(--muted-foreground);font-size:10px}.search-table-control.pending .search{border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}@media(max-width:767px){.table-panel .list-toolbar>.search-table-control{grid-column:1/-1;width:100%;min-height:46px}.search-table-control .search{min-height:46px;font-size:16px}}.search-table-control>kbd{position:absolute;right:10px;display:grid;place-items:center;min-width:22px;height:22px;border:1px solid var(--border);border-radius:5px;background:var(--card);color:var(--muted-foreground);font:inherit;font-size:11px;box-shadow:var(--shadow-sm);pointer-events:none}.search-table-control .search:focus~kbd{border-color:var(--primary);color:var(--primary)}::highlight(table-search){background:#fef08a;color:#713f12;text-decoration:underline;text-decoration-color:#eab308;text-decoration-thickness:2px}.dark ::highlight(table-search){background:#854d0e;color:#fef9c3;text-decoration-color:#facc15}.active-filter-bar{display:flex;align-items:center;gap:8px;margin:12px 0 4px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--primary) 3%,var(--card))}.active-filter-title{flex:0 0 auto;color:var(--muted-foreground);font-size:11px;font-weight:700}.active-filter-bar>div{display:flex;flex:1;flex-wrap:wrap;gap:6px}.active-filter-bar>div button{display:inline-flex;align-items:center;gap:6px;max-width:280px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--border));border-radius:999px;background:var(--accent);color:var(--accent-foreground);padding:5px 8px;font:inherit;cursor:pointer}.active-filter-bar>div button:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.active-filter-bar small{color:var(--muted-foreground);font-size:10px}.active-filter-bar strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.active-filter-bar i{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:color-mix(in srgb,var(--primary) 12%,transparent);font-size:14px;font-style:normal}.clear-all-filter-chips{flex:0 0 auto;border:0;background:transparent;color:var(--primary);font:inherit;font-size:11px;font-weight:700;cursor:pointer}@media(max-width:767px){.active-filter-bar{align-items:flex-start;flex-wrap:wrap}.active-filter-title{width:100%}.active-filter-bar>div{width:100%}.active-filter-bar>div button{max-width:100%}.clear-all-filter-chips{margin-left:auto}}.sort-heading{display:inline-flex;align-items:center;gap:6px;width:100%;border:0;background:transparent;color:inherit;padding:0;text-align:left;font:inherit;font-weight:inherit;cursor:pointer}.sort-heading span{color:var(--muted-foreground);font-size:12px}.sort-heading:hover,.sort-heading:focus-visible{color:var(--primary)}th[aria-sort=ascending] .sort-heading span,th[aria-sort=descending] .sort-heading span{color:var(--primary)}.column-chooser{position:relative}.column-chooser summary{display:inline-flex;align-items:center;gap:6px;min-height:40px;box-sizing:border-box;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--card-foreground);padding:7px 10px;list-style:none;cursor:pointer}.column-chooser summary::-webkit-details-marker{display:none}.column-chooser summary span{color:var(--primary);font-size:11px;font-weight:700}.column-chooser>div{position:absolute;z-index:40;right:0;top:calc(100% + 6px);display:grid;min-width:220px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--popover);box-shadow:var(--shadow-md)}.column-chooser label{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;color:var(--popover-foreground);font-size:13px;cursor:pointer}.column-chooser label:hover{background:var(--accent);color:var(--accent-foreground)}.column-chooser input{width:16px;height:16px;accent-color:var(--primary)}.density-toggle{white-space:nowrap}.table-panel .table-wrap thead th{position:sticky;top:0;z-index:1;background:var(--card);box-shadow:0 1px 0 var(--border)}.table-panel.density-compact .table-wrap th,.table-panel.density-compact .table-wrap td{padding-top:7px;padding-bottom:7px}.table-panel.density-comfortable .table-wrap th,.table-panel.density-comfortable .table-wrap td{padding-top:11px;padding-bottom:11px}.table-panel.density-spacious .table-wrap th,.table-panel.density-spacious .table-wrap td{padding-top:16px;padding-bottom:16px}@media(max-width:767px){.responsive-table{overflow:visible}.responsive-table table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%;box-sizing:border-box}.responsive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.responsive-table tbody{display:grid;gap:12px}.responsive-table tr{overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--card);box-shadow:var(--shadow-sm)}.responsive-table td{display:grid;grid-template-columns:minmax(105px,38%) minmax(0,1fr);gap:12px;align-items:start;padding:10px 12px!important;border:0;border-bottom:1px solid var(--border);text-align:right;overflow-wrap:anywhere}.responsive-table td:last-child{border-bottom:0}.responsive-table td:before{content:attr(data-label);color:var(--muted-foreground);font-size:12px;font-weight:600;text-align:left}.responsive-table .employee-name{justify-content:flex-end}.responsive-table .actions-cell{display:block;text-align:left}.responsive-table .actions-cell:before{display:block;margin-bottom:8px}.responsive-table .row-actions{display:flex;flex-wrap:wrap;white-space:normal}.responsive-table .row-actions>*{flex:1 1 auto;min-height:40px}.responsive-table .status{display:inline-flex}.table-panel.density-compact .responsive-table tbody,.table-panel.density-comfortable .responsive-table tbody,.table-panel.density-spacious .responsive-table tbody{gap:12px}}@media(max-width:767px){.table-panel{padding:16px}.table-panel .list-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}.table-panel .list-toolbar>*{width:auto;min-width:0;box-sizing:border-box}.table-panel .list-toolbar>.search{grid-column:1/-1;min-height:46px;font-size:16px}.table-panel .list-toolbar>select{width:100%;min-height:44px}.table-panel .list-toolbar>.date-range-filter,.table-panel .list-toolbar>.clear-filters,.table-panel .list-toolbar>.toolbar-actions{grid-column:1/-1}.table-panel .date-range-filter{min-height:44px;padding:6px 10px}.table-panel .date-range-filter input{min-height:34px;font-size:14px}.table-panel .clear-filters{justify-content:center;min-height:44px}.table-panel .toolbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-left:0;padding-top:10px;border-top:1px solid var(--border)}.table-panel .toolbar-actions>*{width:100%;min-width:0;min-height:44px;box-sizing:border-box;justify-content:center}.table-panel .toolbar-actions .column-chooser{position:relative}.table-panel .column-chooser summary{width:100%;justify-content:center}.table-panel .column-chooser>div{right:auto;left:0;width:min(260px,calc(100vw - 48px));min-width:0}.table-panel .result-count{margin-top:12px;line-height:1.6}.table-panel .responsive-table{margin-top:4px}}@media(max-width:420px){.table-panel{padding:12px}.table-panel .list-toolbar{grid-template-columns:1fr}.table-panel .list-toolbar>*{grid-column:1}.table-panel .toolbar-actions{grid-template-columns:1fr 1fr}.table-panel .date-range-filter{display:grid;grid-template-columns:1fr auto 1fr}.table-panel .date-range-filter label{display:grid;gap:2px}.table-panel .column-chooser>div{width:min(260px,calc(100vw - 32px))}}@media(max-width:767px){.swal2-container{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important}.swal2-popup:not(.swal2-toast){width:min(100%,560px)!important;max-height:calc(100dvh - 24px);padding:20px 16px 16px!important;border-radius:12px!important;overflow:hidden}.swal2-popup:not(.swal2-toast) .swal2-title{padding:0 8px!important;font-size:1.35rem!important;line-height:1.35}.swal2-popup:not(.swal2-toast) .swal2-html-container{max-height:calc(100dvh - 190px);margin:12px 0 0!important;padding:0 4px!important;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.swal2-popup:not(.swal2-toast) .swal2-actions{position:sticky;bottom:0;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;margin:14px 0 0!important;padding-top:12px;border-top:1px solid var(--border);background:var(--card)}.swal2-popup:not(.swal2-toast) .swal2-actions:has(.swal2-confirm:only-child){grid-template-columns:1fr}.swal2-popup:not(.swal2-toast) .swal2-actions button{width:100%;min-height:44px;margin:0!important}.swal2-popup:not(.swal2-toast) .swal-field{margin:10px 0;font-size:14px}.swal2-popup:not(.swal2-toast) .swal2-input,.swal2-popup:not(.swal2-toast) .swal2-select,.swal2-popup:not(.swal2-toast) .swal2-file,.swal2-popup:not(.swal2-toast) .swal2-textarea{min-height:44px;font-size:16px!important}.swal2-popup:not(.swal2-toast) .score-list,.swal2-popup:not(.swal2-toast) .record-form{max-height:none}.swal2-popup:not(.swal2-toast) .score-row{grid-template-columns:minmax(0,1fr) 82px;gap:8px;padding:10px 6px}.swal2-popup:not(.swal2-toast) .visit-edit-row{grid-template-columns:minmax(0,1fr) 76px;gap:8px;padding:10px 4px}.swal2-popup:not(.swal2-toast) .visit-edit-row .swal2-input{grid-column:1/-1}.swal2-popup:not(.swal2-toast) .detail-grid{grid-template-columns:1fr}.swal2-popup:not(.swal2-toast) .project-activities{display:block;width:100%;overflow-x:auto}}@media(max-width:380px){.swal2-popup:not(.swal2-toast){padding:16px 12px 12px!important}.swal2-popup:not(.swal2-toast) .swal2-title{font-size:1.2rem!important}.swal2-popup:not(.swal2-toast) .swal2-actions{grid-template-columns:1fr}.swal2-popup:not(.swal2-toast) .score-row{grid-template-columns:1fr}.swal2-popup:not(.swal2-toast) .score-row .swal2-select{width:100%}}.table-panel>.empty{display:grid;justify-items:center;gap:8px;min-height:260px;box-sizing:border-box;margin:8px 0 0;padding:56px 24px;border:1px dashed color-mix(in srgb,var(--primary) 28%,var(--border));border-radius:10px;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 5%,var(--card)),var(--card));color:var(--muted-foreground);text-align:center}.table-panel>.empty:before{content:"⌕";display:grid;place-items:center;width:56px;height:56px;margin-bottom:4px;border-radius:50%;background:var(--accent);color:var(--primary);font-size:28px;font-weight:400;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 12%,transparent)}.table-panel>.empty:after{content:"ลองปรับคำค้นหาหรือตัวกรอง หรือเพิ่มข้อมูลรายการใหม่";display:block;max-width:360px;color:var(--muted-foreground);font-size:12px;line-height:1.6}.dark .table-panel>.empty{background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 8%,var(--card)),var(--card))}@media(max-width:767px){.table-panel>.empty{min-height:220px;padding:42px 16px}.table-panel>.empty:before{width:52px;height:52px}}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.dashboard-actions,.grade-summary,.teacher-progress{display:grid;gap:.65rem}.dashboard-actions>button,.grade-summary>div,.teacher-progress>div{padding:.75rem;border:1px solid #eaecf0;border-radius:.55rem;background:#fff}.dashboard-actions>button{text-align:left;font:inherit;cursor:pointer}.dashboard-actions>button:hover{border-color:#84adff;background:#f5f8ff}.dashboard-actions span,.dashboard-actions small,.grade-summary span,.grade-summary small,.teacher-progress small{display:block;color:#667085;margin-top:.2rem}.dashboard-actions small{color:#b54708}.grade-summary>div{display:grid;grid-template-columns:1fr auto}.grade-summary small{grid-column:1/-1}.more-actions{display:block;width:100%;margin-top:.65rem;text-align:center;color:#175cd3;background:#fff;border:1px solid #b2ccff;border-radius:.45rem;padding:.55rem;cursor:pointer}.teacher-progress-head{display:flex;justify-content:space-between;gap:1rem}.progress-track{height:8px;margin:.5rem 0;background:#eaecf0;border-radius:10px;overflow:hidden}.progress-track span{display:block;height:100%;background:#1570ef;border-radius:10px}@media(max-width:850px){.dashboard-grid{grid-template-columns:1fr}}:root{--blue:#1764c0;--deep:#124d91;--line:#dce2e9;color:#243449;background:#f3f5f7}.sidebar{background:#163b65;border-right:1px solid #163b65;padding:24px 18px}.sidebar button{border-radius:4px;min-height:44px}.sidebar button.active{background:#fff;color:#163b65;font-weight:700}.sidebar button:hover:not(.active){background:#245180}.identity{border-color:#ffffff30;padding:18px 4px}.crest,.login-crest{border-radius:6px}h1{color:#163b65;line-height:1.45}header p{color:#596a7d;line-height:1.7}.panel,.stats article{border:1px solid var(--line);border-radius:6px;box-shadow:none}.stats article{border-top:3px solid var(--blue);gap:16px}.stats strong{font-variant-numeric:tabular-nums}.role,.status{border-radius:4px;font-size:14px;font-weight:600}.role{background:#e6eef8;color:#164f91;white-space:nowrap}.toolbar{flex-wrap:wrap;gap:12px;align-items:center}.toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}button,input,select,textarea{font:inherit}.app button,.login button,.import-button{border-radius:4px;box-shadow:none;min-height:40px;cursor:pointer}.toolbar button,.login button,.profile-form button{background:var(--blue);color:#fff;border:1px solid var(--blue)}.toolbar button:hover,.login button:hover,.profile-form button:hover{background:var(--deep)}.app input,.app select,.app textarea,.login input{border:1px solid #aebdcb;border-radius:4px;box-shadow:none;background:#fff;color:#243449;padding:10px 12px;max-width:100%}.app input:disabled{background:#edf0f3;color:#657487}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e5a626;outline-offset:3px}button:disabled{opacity:.55;cursor:not-allowed}th{background:#edf2f7;color:#354b63;font-weight:600}td,th{border-color:var(--line);padding:14px 12px}tbody tr:hover{background:#f5f8fc}.result-count,.empty{color:#596a7d}.login{background:#edf2f7;padding:32px 16px;min-height:100dvh}.login form{width:min(440px,100%);padding:36px;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:6px;box-shadow:none;text-align:left}.login-crest{background:var(--blue);margin:0 0 24px}.login h1{font-size:24px}.login p{color:#596a7d}.login label{font-weight:600}.login input{min-height:48px;font-weight:400}.login button{min-height:48px;font-weight:600}.loading{border-radius:4px;background:#163b65;box-shadow:none}.swal2-popup{border:1px solid var(--line);border-radius:6px;box-shadow:none;font-family:Sarabun,sans-serif}.swal2-popup .swal2-styled{border-radius:4px;box-shadow:none!important}.swal2-popup .swal2-confirm{background:#1764c0}.swal2-popup .swal2-input,.swal2-popup .swal2-textarea,.swal2-popup .swal2-select{border:1px solid #aebdcb;border-radius:4px;box-shadow:none}.swal2-popup .swal2-title{color:#163b65}@media(max-width:900px){main{padding:24px 16px 96px}.panel{padding:18px}.stats{gap:12px}.stats article{padding:16px;flex-wrap:wrap}.bottom-nav{padding-bottom:env(safe-area-inset-bottom);box-shadow:none}.bottom-nav button{border-radius:0;min-height:56px}.bottom-nav button.active{background:#e6eef8;border-top:3px solid var(--blue)}}@media(max-width:480px){.login form{padding:28px 22px}.login h1{font-size:22px}.toolbar>.search,.toolbar>select{width:100%}h1{font-size:22px}.stats strong{font-size:28px}}.dashboard-shell{--sidebar-width:272px;--navy:#102f57;--navy-2:#174578;--sky:#2388d8;--sky-soft:#eaf5ff;--surface:#fff;--muted:#718096;--dashboard-line:#e7edf4;background:#f6f8fb;color:#1d2b3d}.dashboard-shell .sidebar{width:var(--sidebar-width);padding:22px 16px 18px;background:linear-gradient(180deg,#102f57,#123a68 58%,#0d294b);border:0;box-shadow:8px 0 28px #0f2c4e14}.dashboard-shell .brand{flex-direction:row;align-items:center;text-align:left;gap:12px;padding:2px 8px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.dashboard-shell .brand .crest{width:46px;height:46px;flex:0 0 46px;margin:0;border-radius:12px;color:#174b82;font-size:15px;box-shadow:0 8px 22px #00000024}.dashboard-shell .brand b{display:block;font-size:15px;line-height:1.35}.dashboard-shell .brand small{display:block;margin-top:3px;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.dashboard-shell .identity{flex-direction:row;align-items:center;text-align:left;gap:11px;margin:16px 0;padding:13px 10px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#ffffff0f}.dashboard-shell .identity .avatar,.header-avatar{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#fff;color:#17568e;font-weight:800}.dashboard-shell .identity b,.dashboard-shell .identity small{display:block;max-width:168px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-shell .identity b{font-size:13px}.dashboard-shell .identity small{margin-top:3px;font-size:11px;color:#b9d4ec}.dashboard-shell .sidebar nav{gap:4px;padding-right:2px}.dashboard-shell .sidebar nav button{position:relative;display:flex;align-items:center;gap:12px;min-height:43px;padding:10px 12px;border-radius:9px;color:#ccdef0;font-size:13px;transition:background .18s,color .18s,transform .18s}.dashboard-shell .sidebar nav button:hover:not(.active){background:#ffffff14;color:#fff;transform:translate(2px)}.dashboard-shell .sidebar nav button.active{background:#fff;color:#123d6d;box-shadow:0 8px 22px #01122433}.nav-mark{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#6fa9d9;box-shadow:0 0 0 4px #6fa9d91a}.sidebar button.active .nav-mark{background:#2388d8;box-shadow:0 0 0 4px #dff1ff}.dashboard-shell .sidebar .logout{display:flex;align-items:center;gap:10px;margin-top:auto;padding:11px 12px;border-radius:9px;color:#ffd7d7;font-size:13px}.dashboard-shell .sidebar .logout:hover{background:#ff6b6b1f}.dashboard-shell main{margin-left:var(--sidebar-width);padding:0 32px 36px;min-width:0}.top-header{min-height:112px;align-items:center;margin:0 -32px 28px;padding:22px 32px;background:#ffffffe0;border-bottom:1px solid var(--dashboard-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.page-heading{min-width:0}.page-heading .eyebrow,.section-kicker{display:block;margin-bottom:5px;color:#2783c9;font-size:10px;font-weight:800;letter-spacing:.14em}.page-heading h1{font-size:25px;color:#183656;letter-spacing:-.02em}.page-heading p{margin:4px 0 0;font-size:13px;color:#77869a}.header-profile{display:flex;align-items:center;gap:11px;margin-left:24px;padding:8px 11px;border:1px solid var(--dashboard-line);border-radius:12px;background:#fff}.header-profile .header-avatar{background:#eaf5ff}.header-profile b,.header-profile small{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-profile b{font-size:13px;color:#24364b}.header-profile small{margin-top:2px;font-size:10px;color:#7d8ca0}.menu-toggle{display:none}.header-tools{display:flex;align-items:center;gap:10px;margin-left:24px}.header-tools .header-profile{margin-left:0}.theme-toggle{display:flex;align-items:center;gap:8px;min-height:42px;padding:7px 11px;border:1px solid var(--dashboard-line);border-radius:12px;background:#fff;color:#456078}.theme-toggle:hover{background:#f4f8fc;border-color:#cddce9}.theme-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#edf5fc;color:#246fa7;font-size:17px}.theme-label{font-size:11px;font-weight:700}.dashboard-page{display:grid;gap:20px}.dashboard-page .stats{gap:16px;margin:0}.dashboard-page .stat-card{position:relative;justify-content:flex-start;gap:14px;min-height:128px;padding:20px;border:1px solid var(--dashboard-line);border-radius:15px;background:#fff;box-shadow:0 8px 28px #1a3a5e0e;overflow:hidden}.dashboard-page .stat-card:after{content:"";position:absolute;right:-30px;bottom:-42px;width:100px;height:100px;border-radius:50%;background:var(--card-soft,#eef6ff)}.stat-icon{position:relative;display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:13px;background:var(--card-soft,#eaf5ff)}.stat-icon span{display:block;width:18px;height:18px;border:3px solid var(--card-accent,#2783c9);border-radius:6px}.stat-card.people{--card-accent:#2783c9;--card-soft:#e8f5ff}.stat-card.plans{--card-accent:#6959cf;--card-soft:#f0edff}.stat-card.pending{--card-accent:#e5922a;--card-soft:#fff4e5}.stat-card.approved{--card-accent:#1e9b72;--card-soft:#e7f8f1}.stat-copy{position:relative;z-index:1;display:grid}.stat-copy>span{font-size:12px;font-weight:700;color:#69798d}.dashboard-page .stat-copy strong{margin:2px 0 0;color:#1b334f;font-size:30px;line-height:1.05}.stat-copy small{margin-top:8px;color:#93a0af;font-size:10px}.dashboard-page .dashboard-grid{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:20px}.dashboard-page .dashboard-panel{padding:22px;border:1px solid var(--dashboard-line);border-radius:15px;box-shadow:0 8px 28px #1a3a5e0b}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.panel-heading h2{margin:0;color:#1c3858;font-size:17px}.panel-heading p{margin:5px 0 0;color:#7c8a9d;font-size:11px}.count-badge{padding:6px 10px;border-radius:8px;background:#fff2dd;color:#b36b0d;font-size:11px;font-weight:700;white-space:nowrap}.count-badge.neutral{background:#edf5fc;color:#3374a9}.dashboard-page .dashboard-actions{gap:8px}.dashboard-page .dashboard-actions>button{display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 13px;border-color:#edf1f5;border-radius:11px;transition:border .18s,background .18s,transform .18s}.dashboard-page .dashboard-actions>button:hover{border-color:#b8d9f1;background:#f8fbfe;transform:translateY(-1px)}.action-status{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#e99c31;box-shadow:0 0 0 5px #fff3df}.action-status.revision{background:#df6170;box-shadow:0 0 0 5px #fdecef}.action-body{min-width:0;flex:1}.dashboard-actions .action-body strong,.dashboard-actions .action-body span,.dashboard-actions .action-body small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-actions .action-body strong{font-size:13px;color:#293e56}.dashboard-actions .action-body span{margin-top:3px;font-size:11px}.dashboard-actions .action-body small{font-size:10px}.action-arrow{color:#6b9dc5;font-size:17px}.more-actions{margin-top:12px;border-color:#dbe8f3;border-radius:9px;color:#236da8;background:#f8fbfe}.more-actions span{display:inline;margin-left:8px}.dashboard-empty{min-height:185px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#91a0b0}.dashboard-empty>span{display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border-radius:50%;background:#edf8f3;color:#26956e;font-size:18px}.dashboard-empty b{color:#526478;font-size:13px}.dashboard-empty small{margin-top:4px;font-size:11px}.dashboard-page .grade-summary{gap:12px}.dashboard-page .grade-summary>div{padding:13px 14px;border-color:#edf1f5;border-radius:11px}.grade-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.grade-title strong{font-size:12px;color:#31465e}.grade-title span{font-size:11px;color:#6f8092}.grade-bar{height:5px;margin:10px 0;background:#edf1f5;border-radius:10px;overflow:hidden}.grade-bar span{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#2388d8,#54b4e9)}.dashboard-page .grade-summary small{display:flex;gap:12px;flex-wrap:wrap;margin:0;font-size:9px}.progress-panel{overflow:hidden}.dashboard-page .teacher-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-page .teacher-card{display:flex;gap:12px;padding:14px;border-color:#edf1f5;border-radius:11px}.teacher-avatar{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#eaf5ff;color:#247bb9;font-weight:800}.teacher-info{min-width:0;flex:1}.dashboard-page .teacher-progress-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2a4057;font-size:12px}.dashboard-page .teacher-progress-head span{font-size:10px;color:#507ca1;white-space:nowrap}.dashboard-page .teacher-headline,.dashboard-page .teacher-detail{margin:5px 0;color:#67788b;font-size:10px}.dashboard-page .progress-track{height:5px;margin:9px 0 7px;background:#edf1f5}.dashboard-page .progress-track span{background:linear-gradient(90deg,#2388d8,#5db8e8)}.dashboard-page .teacher-info>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8a98a8;font-size:9px}.dashboard-shell .loading{right:32px;top:94px;display:flex;align-items:center;gap:9px;border-radius:9px;background:#173e69;box-shadow:0 8px 25px #102f572e;font-size:12px}.dashboard-shell .loading span{width:12px;height:12px;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:dashboard-spin .7s linear infinite}@keyframes dashboard-spin{to{transform:rotate(360deg)}}.nav-backdrop{display:none}.dashboard-shell.dark{--dashboard-line:#293b51;background:#111a26;color:#dce6f1;color-scheme:dark}.dashboard-shell.dark main{background:#111a26}.dashboard-shell.dark .sidebar{background:linear-gradient(180deg,#0a2039,#0c2948 58%,#081a2e)}.dashboard-shell.dark .top-header{background:#111a26e6;border-bottom-color:#293b51}.dashboard-shell.dark .page-heading h1,.dashboard-shell.dark .panel-heading h2{color:#edf5fc}.dashboard-shell.dark .page-heading p,.dashboard-shell.dark .panel-heading p{color:#91a2b5}.dashboard-shell.dark .header-profile,.dashboard-shell.dark .theme-toggle,.dashboard-shell.dark .panel,.dashboard-shell.dark .stat-card{background:#182432;border-color:#293b51;box-shadow:0 10px 30px #0000001f}.dashboard-shell.dark .header-profile b{color:#e9f1f8}.dashboard-shell.dark .header-profile small{color:#9cacbd}.dashboard-shell.dark .header-avatar,.dashboard-shell.dark .theme-icon{background:#22364b;color:#75bceb}.dashboard-shell.dark .theme-toggle{color:#bfd0df}.dashboard-shell.dark .theme-toggle:hover{background:#203044;border-color:#3a5068}.dashboard-shell.dark .stat-copy>span{color:#a7b5c4}.dashboard-shell.dark .stat-copy strong{color:#f3f7fb}.dashboard-shell.dark .stat-copy small{color:#7f91a4}.dashboard-shell.dark .stat-card:after{opacity:.08}.dashboard-shell.dark .dashboard-actions>button,.dashboard-shell.dark .grade-summary>div,.dashboard-shell.dark .teacher-card{background:#1b2939;border-color:#2a3c50}.dashboard-shell.dark .dashboard-actions>button:hover{background:#203247;border-color:#3a5975}.dashboard-shell.dark .dashboard-actions .action-body strong,.dashboard-shell.dark .grade-title strong,.dashboard-shell.dark .teacher-progress-head strong{color:#e4edf5}.dashboard-shell.dark .dashboard-actions span,.dashboard-shell.dark .dashboard-actions small,.dashboard-shell.dark .grade-title span,.dashboard-shell.dark .teacher-info>small{color:#94a6b9}.dashboard-shell.dark .grade-bar,.dashboard-shell.dark .progress-track{background:#2a3b4d}.dashboard-shell.dark .more-actions{background:#1b2b3c;border-color:#2d465e;color:#7fc3f0}.dashboard-shell.dark .count-badge{background:#382f24;color:#f0b45f}.dashboard-shell.dark .count-badge.neutral{background:#20364a;color:#7dc0ec}.dashboard-shell.dark .dashboard-empty b{color:#b7c6d5}.dashboard-shell.dark .dashboard-empty small{color:#8192a4}.dashboard-shell.dark .panel:not(.dashboard-panel),.dashboard-shell.dark .profile-form{background:#182432;border-color:#293b51}.dashboard-shell.dark table{color:#d7e2ed}.dashboard-shell.dark th{background:#202f40;color:#bacadb}.dashboard-shell.dark td,.dashboard-shell.dark th{border-color:#2b3d50}.dashboard-shell.dark tbody tr:hover{background:#1d2c3d}.dashboard-shell.dark input,.dashboard-shell.dark select,.dashboard-shell.dark textarea{background:#111c28;color:#dce7f2;border-color:#394c60}.dashboard-shell.dark .result-count,.dashboard-shell.dark .empty{color:#94a5b7}@media(max-width:1100px){.dashboard-page .stats{grid-template-columns:repeat(2,1fr)}.dashboard-page .dashboard-grid,.dashboard-page .teacher-progress{grid-template-columns:1fr}}@media(max-width:900px){.dashboard-shell .sidebar{display:flex;transform:translate(-105%);transition:transform .22s ease;box-shadow:16px 0 45px #081f3947}.dashboard-shell.nav-open .sidebar{transform:translate(0)}.nav-backdrop{display:block;position:fixed;inset:0;z-index:4;border:0;background:#0b1f357a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dashboard-shell main{margin-left:0;padding:0 16px 28px}.top-header{min-height:94px;margin:0 -16px 20px;padding:16px;gap:12px}.menu-toggle{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border:1px solid #dce7f0;border-radius:10px;background:#fff;color:#224b73}.dashboard-shell.dark .menu-toggle{background:#182432;border-color:#34495f;color:#d9e7f3}.page-heading .eyebrow{display:none}.page-heading h1{font-size:19px}.page-heading p{max-width:480px;font-size:11px}.header-tools{margin-left:auto}.header-profile{padding:5px;border:0;background:transparent}.header-profile>div{display:none}.header-profile .header-avatar{border:1px solid #dce7f0;background:#fff}.dashboard-shell.dark .header-profile{background:transparent;box-shadow:none}.theme-label{display:none}.theme-toggle{width:40px;padding:6px;justify-content:center}.dashboard-shell .bottom-nav{display:none}}@media(max-width:560px){.dashboard-page .stats{grid-template-columns:1fr 1fr;gap:10px}.dashboard-page .stat-card{display:block;min-height:128px;padding:15px}.stat-icon{width:35px;height:35px;margin-bottom:12px;border-radius:10px}.stat-icon span{width:14px;height:14px;border-width:2px}.dashboard-page .stat-copy strong{font-size:25px}.stat-copy small{display:none}.dashboard-page .dashboard-panel{padding:17px}.panel-heading{margin-bottom:14px}.dashboard-page .grade-summary small{gap:8px}.dashboard-page .teacher-card{padding:12px}.page-heading p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62vw}}.tailwind-shell{--sidebar-width:270px;--ta-primary:#635bff;--ta-bg:#f7f8fc;--ta-card:#fff;--ta-text:#111827;--ta-muted:#7c8497;--ta-border:#e7e9f1;background:var(--ta-bg);color:var(--ta-text)}.tailwind-shell .sidebar{width:var(--sidebar-width);padding:22px 22px 18px;background:#fff;border-right:1px solid var(--ta-border);box-shadow:none;color:#5f6678}.tailwind-shell .brand{min-height:55px;padding:0 2px 20px;gap:11px;border-bottom:0;color:#111827}.brand-orbit{position:relative;width:34px;height:34px;flex:0 0 34px;border:8px solid #6d78f7;border-right-color:#35c3d9;border-radius:50%;transform:rotate(-30deg)}.brand-orbit span{position:absolute;inset:2px;border-radius:50%;background:#fff}.tailwind-shell .brand b{font-size:21px;letter-spacing:-.06em}.tailwind-shell .brand b span{font-weight:400}.tailwind-shell .brand small{margin-top:1px;color:#9ca3af;font-size:8px;letter-spacing:.16em}.tailwind-shell .sidebar nav{gap:4px;padding:8px 0;scrollbar-width:thin}.nav-section{display:block;padding:14px 10px 6px;color:#a1a8b5;font-size:10px;font-weight:700;letter-spacing:.08em}.tailwind-shell .sidebar nav button{min-height:45px;padding:10px 12px;gap:13px;border-radius:7px;color:#6f778a;font-size:13px}.tailwind-shell .sidebar nav button:hover:not(.active){transform:none;background:#f5f6fa;color:#242b3a}.tailwind-shell .sidebar nav button.active{background:#6877f5;color:#fff;box-shadow:0 7px 16px #6877f540}.nav-icon{width:19px;height:19px;flex:0 0 19px}.active-pip{width:5px;height:5px;margin-left:auto;border-radius:50%;background:#fff;opacity:.85}.tailwind-shell .nav-mark{display:none}.sidebar-user{display:flex;align-items:center;gap:10px;margin-top:auto;padding:11px;border-radius:7px;background:#f0f3fa}.sidebar-user .avatar{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:#dbe4ff;color:#5965d8;font-weight:800}.sidebar-user>div{min-width:0;flex:1}.sidebar-user b,.sidebar-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user b{color:#242b3a;font-size:12px}.sidebar-user small{margin-top:2px;color:#8d95a6;font-size:9px}.tailwind-shell .sidebar-user .logout{display:grid;place-items:center;width:30px;min-height:30px;margin:0;padding:0;color:#6671dd;border-radius:50%;font-size:16px}.tailwind-shell .sidebar-user .logout:hover{background:#e3e8f4}.tailwind-shell main{margin-left:var(--sidebar-width);padding:0 28px 36px;background:var(--ta-bg)}.tailwind-shell .top-header{min-height:78px;margin:0 -28px 26px;padding:14px 28px;background:#fff;border-bottom:1px solid var(--ta-border);-webkit-backdrop-filter:none;backdrop-filter:none}.header-search{display:flex;align-items:center;gap:10px;width:220px;min-height:42px;padding:0 12px;border:0;background:transparent;color:#8c94a5}.header-search>span:first-child{font-size:25px;line-height:1}.header-search>span:last-child{font-size:11px}.header-links{display:flex;gap:4px;margin-left:12px}.header-links button{min-height:36px;padding:7px 10px;border:0;background:transparent;color:#6f7788;font-size:11px}.header-links button:hover{color:#5e6be6}.tailwind-shell .header-tools{gap:8px;margin-left:auto}.tailwind-shell .theme-toggle,.notification-button{display:grid;place-items:center;width:38px;min-height:38px;padding:0;border:0;border-radius:50%;background:transparent;color:#677085}.tailwind-shell .theme-toggle:hover,.notification-button:hover{background:#f2f4f8}.tailwind-shell .theme-icon{width:auto;height:auto;background:transparent;color:inherit;font-size:18px}.notification-button{position:relative;font-size:19px}.notification-button i{position:absolute;right:7px;top:6px;width:6px;height:6px;border:2px solid #fff;border-radius:50%;background:#6877f5}.tailwind-shell .header-profile{margin-left:5px;padding:3px 0 3px 5px;border:0;background:transparent;box-shadow:none}.tailwind-shell .header-avatar{width:38px;height:38px;border-radius:50%;background:#e6e9ff;color:#5865d8}.tailwind-shell .header-profile b{font-size:11px;color:#262d3c}.tailwind-shell .header-profile small{font-size:9px;color:#929aaa}.content-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.content-heading .eyebrow{margin-bottom:5px;color:#6b75e8;font-size:9px;font-weight:800;letter-spacing:.14em}.content-heading h1{margin:0;color:#1e2533;font-size:22px;line-height:1.3}.content-heading p{margin:4px 0 0;color:#8a92a3;font-size:11px}.breadcrumb{display:flex;align-items:center;gap:8px;color:#9ca3b0;font-size:10px}.breadcrumb b{font-weight:400}.breadcrumb strong{color:#6874e6}.tailwind-shell .dashboard-page{gap:18px}.tailwind-shell .dashboard-page .stats{grid-template-columns:repeat(4,1fr);gap:15px}.tailwind-shell .dashboard-page .stat-card{display:block;min-height:139px;padding:19px;border-color:var(--ta-border);border-radius:7px;box-shadow:none}.tailwind-shell .dashboard-page .stat-card:after{display:none}.tailwind-shell .stat-icon{width:43px;height:43px;margin-bottom:18px;border-radius:50%}.tailwind-shell .stat-icon span{width:16px;height:16px;border-width:2px;border-radius:5px}.tailwind-shell .stat-copy{display:grid;grid-template-columns:1fr auto;align-items:end}.tailwind-shell .stat-copy>span{grid-column:1/-1;margin-bottom:4px;color:#767f91;font-size:11px}.tailwind-shell .stat-copy strong{font-size:22px;color:#202737}.tailwind-shell .stat-copy small{align-self:center;margin:0;color:#9ba2b0;font-size:8px;text-align:right}.tailwind-shell .dashboard-page .dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:18px}.tailwind-shell .dashboard-page .dashboard-panel{padding:21px;border-color:var(--ta-border);border-radius:7px;box-shadow:none}.tailwind-shell .panel-heading h2{font-size:15px;color:#202737}.tailwind-shell .section-kicker{display:none}.tailwind-shell .count-badge{padding:5px 8px;border-radius:5px;background:#f1efff;color:#655fd6;font-size:9px}.tailwind-shell .dashboard-actions>button,.tailwind-shell .grade-summary>div,.tailwind-shell .teacher-card{border-radius:6px}.tailwind-shell .dashboard-actions>button{min-height:68px}.tailwind-shell .more-actions{border-radius:6px;background:#6877f5;border-color:#6877f5;color:#fff}.tailwind-shell .grade-bar span,.tailwind-shell .progress-track span{background:#6877f5}.tailwind-shell .action-status{background:#f5b44f;box-shadow:0 0 0 5px #fff5e3}.tailwind-shell .action-status.revision{background:#f06f7d;box-shadow:0 0 0 5px #ffedf0}.tailwind-shell .teacher-avatar{border-radius:50%;background:#edf0ff;color:#5f6be1}.tailwind-shell.dark{--ta-bg:#1b2232;--ta-card:#20283a;--ta-text:#f4f6fb;--ta-muted:#949db1;--ta-border:#30394d;--dashboard-line:#30394d;background:var(--ta-bg)}.tailwind-shell.dark main{background:var(--ta-bg)}.tailwind-shell.dark .sidebar,.tailwind-shell.dark .top-header{background:#1c2434;border-color:var(--ta-border)}.tailwind-shell.dark .brand{color:#fff}.tailwind-shell.dark .brand-orbit span{background:#1c2434}.tailwind-shell.dark .sidebar nav button{color:#9ba4b8}.tailwind-shell.dark .sidebar nav button:hover:not(.active){background:#252e40;color:#fff}.tailwind-shell.dark .sidebar nav button.active{background:#6877f5;color:#fff}.tailwind-shell.dark .sidebar-user{background:#263247}.tailwind-shell.dark .sidebar-user b{color:#fff}.tailwind-shell.dark .sidebar-user .logout:hover{background:#313e53}.tailwind-shell.dark .top-header,.tailwind-shell.dark .header-profile,.tailwind-shell.dark .theme-toggle{box-shadow:none}.tailwind-shell.dark .header-search,.tailwind-shell.dark .header-links button,.tailwind-shell.dark .theme-toggle,.tailwind-shell.dark .notification-button{color:#98a1b4}.tailwind-shell.dark .theme-toggle:hover,.tailwind-shell.dark .notification-button:hover{background:#273044}.tailwind-shell.dark .notification-button i{border-color:#1c2434}.tailwind-shell.dark .header-profile b,.tailwind-shell.dark .content-heading h1{color:#f4f6fa}.tailwind-shell.dark .content-heading p{color:#929bae}.tailwind-shell.dark .dashboard-page .stat-card,.tailwind-shell.dark .dashboard-page .dashboard-panel{background:#20283a;border-color:#30394d;box-shadow:none}.tailwind-shell.dark .stat-copy strong,.tailwind-shell.dark .panel-heading h2{color:#f4f6fa}.tailwind-shell.dark .stat-copy>span,.tailwind-shell.dark .stat-copy small{color:#919bad}.tailwind-shell.dark .dashboard-actions>button,.tailwind-shell.dark .grade-summary>div,.tailwind-shell.dark .teacher-card{background:#242e41;border-color:#333e52}.tailwind-shell.dark .dashboard-actions>button:hover{background:#29354a;border-color:#46536b}.tailwind-shell.dark .more-actions{background:#6877f5;border-color:#6877f5;color:#fff}.tailwind-shell.dark .count-badge{background:#30304e;color:#aaa8ff}@media(max-width:1100px){.tailwind-shell .dashboard-page .stats{grid-template-columns:repeat(2,1fr)}.tailwind-shell .dashboard-page .dashboard-grid{grid-template-columns:1fr}.header-links{display:none}}@media(max-width:900px){.tailwind-shell .sidebar{display:flex;background:#fff}.tailwind-shell.dark .sidebar{background:#1c2434}.tailwind-shell main{margin-left:0;padding:0 16px 28px}.tailwind-shell .top-header{min-height:70px;margin:0 -16px 20px;padding:12px 16px}.header-search{width:auto;flex:1}.header-search>span:last-child{display:none}.content-heading{align-items:flex-start}.breadcrumb,.tailwind-shell .header-profile{display:none}}@media(max-width:560px){.tailwind-shell .dashboard-page .stats{grid-template-columns:1fr 1fr}.tailwind-shell .dashboard-page .stat-card{min-height:132px;padding:15px}.tailwind-shell .stat-copy{display:block}.tailwind-shell .stat-copy small{display:none}.content-heading h1{font-size:19px}.content-heading p{max-width:90vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.premium-school-shell{--ta-primary:#1677d2;--ta-bg:#f5f8fc;--ta-card:#fff;--ta-text:#13233a;--ta-muted:#718096;--ta-border:#e2eaf3;background:radial-gradient(circle at 92% 3%,#e7f5ff 0,transparent 24%),var(--ta-bg)}.premium-school-shell main{background:transparent}.premium-school-shell .sidebar{background:linear-gradient(180deg,#fff,#f9fbfe);box-shadow:8px 0 32px #17456f0b}.premium-school-shell .brand{padding-bottom:22px;border-bottom:1px solid #edf2f7}.dashboard-school-logo{width:38px;height:38px;flex:0 0 38px;object-fit:contain;padding:4px;border:1px solid #dce9f5;border-radius:10px;background:#fff;box-shadow:0 6px 16px #185d961a}.premium-school-shell .brand b{color:#143b62;letter-spacing:-.04em}.premium-school-shell .brand b span{color:#278acb;font-weight:400}.premium-school-shell .brand small{color:#7e96aa}.premium-school-shell .sidebar nav button.active{background:linear-gradient(135deg,#1577cf,#2995d9);box-shadow:0 8px 20px #1577cf38}.premium-school-shell .sidebar nav button:hover:not(.active){background:#edf6fd;color:#155f9c}.premium-school-shell .nav-icon{filter:drop-shadow(0 1px 1px rgba(0,0,0,.04))}.premium-school-shell .sidebar-user{background:linear-gradient(135deg,#eef7ff,#f5f9fd);border:1px solid #dceaf5}.premium-school-shell .sidebar-user .avatar{background:linear-gradient(135deg,#d8efff,#e8f6ff);color:#176aa9}.premium-school-shell .sidebar-user .logout{color:#287fb9}.premium-school-shell .top-header{background:#ffffffe0;box-shadow:0 1px #1f4c730a;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.premium-school-shell .header-links button:hover{color:#1477bd}.premium-school-shell .header-avatar{background:linear-gradient(135deg,#dff2ff,#edf8ff);color:#176fae}.premium-school-shell .content-heading .eyebrow,.premium-school-shell .breadcrumb strong{color:#1682c8}.premium-school-shell .content-heading h1{color:#183a59}.premium-school-shell .dashboard-page .stat-card,.premium-school-shell .dashboard-page .dashboard-panel{border-color:#e2eaf3;box-shadow:0 10px 34px #143e620e}.premium-school-shell .dashboard-page .stat-card{transition:transform .2s ease,box-shadow .2s ease}.premium-school-shell .dashboard-page .stat-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px #14528217}.premium-school-shell .stat-card.people{--card-accent:#1988d1;--card-soft:#e4f4ff}.premium-school-shell .stat-card.plans{--card-accent:#446fd1;--card-soft:#eaf0ff}.premium-school-shell .stat-card.pending{--card-accent:#e59a32;--card-soft:#fff4e3}.premium-school-shell .stat-card.approved{--card-accent:#20a17b;--card-soft:#e5f8f1}.premium-school-shell .more-actions{background:linear-gradient(135deg,#177bd0,#2996d8);border-color:transparent;box-shadow:0 7px 16px #177bd02e}.premium-school-shell .grade-bar span,.premium-school-shell .progress-track span{background:linear-gradient(90deg,#197dca,#42a8df)}.premium-school-shell .count-badge{background:#eaf5fd;color:#176fae}.premium-school-shell .teacher-avatar{background:#e8f5fd;color:#1674b5}.premium-school-shell.dark{--ta-bg:#101a28;--ta-card:#172435;--ta-text:#eef6fd;--ta-muted:#8fa4b7;--ta-border:#293c50;background:radial-gradient(circle at 92% 3%,#123550 0,transparent 26%),var(--ta-bg)}.premium-school-shell.dark .sidebar,.premium-school-shell.dark .top-header{background:#142235;border-color:#293c50}.premium-school-shell.dark .brand{border-color:#293c50}.premium-school-shell.dark .brand b{color:#eef7ff}.premium-school-shell.dark .brand b span{color:#65bdec}.premium-school-shell.dark .dashboard-school-logo{background:#f8fbff;border-color:#36516b}.premium-school-shell.dark .sidebar nav button.active{background:linear-gradient(135deg,#176daf,#238bc9)}.premium-school-shell.dark .sidebar nav button:hover:not(.active){background:#1e3448;color:#eaf6ff}.premium-school-shell.dark .sidebar-user{background:#1c3044;border-color:#2d475e}.premium-school-shell.dark .sidebar-user .avatar{background:#23445f;color:#8dd0f1}.premium-school-shell.dark .dashboard-page .stat-card,.premium-school-shell.dark .dashboard-page .dashboard-panel{background:#172435;border-color:#293c50;box-shadow:0 14px 34px #00000021}.premium-school-shell.dark .header-avatar{background:#213b51;color:#83caef}.premium-school-shell.dark .content-heading .eyebrow,.premium-school-shell.dark .breadcrumb strong{color:#69bde8}.premium-school-shell.dark .more-actions{background:linear-gradient(135deg,#176dab,#238bc9)}.premium-school-shell{--premium-blue:#087dcc;--premium-cyan:#36b5e6;background:radial-gradient(circle at 88% -8%,rgba(73,183,231,.22),transparent 29%),linear-gradient(145deg,#f8fbff,#edf4fb)}.premium-school-shell .sidebar{background:linear-gradient(165deg,#092c53,#071f3d 62%,#06182e);border-right:1px solid rgba(255,255,255,.08);box-shadow:14px 0 45px #051d3721;color:#d7e8f7}.premium-school-shell .brand{border-bottom-color:#ffffff1c}.premium-school-shell .brand b{color:#fff}.premium-school-shell .brand b span{color:#75ccf0}.premium-school-shell .brand small{color:#83a5c3}.premium-school-shell .dashboard-school-logo{width:42px;height:42px;border-color:#ffffffb3;border-radius:12px;box-shadow:0 9px 24px #0000003d,0 0 0 3px #ffffff14}.premium-school-shell .nav-section{color:#6689a8}.premium-school-shell .sidebar nav button{color:#afc5d8}.premium-school-shell .sidebar nav button:hover:not(.active){background:#ffffff13;color:#fff}.premium-school-shell .sidebar nav button.active{background:linear-gradient(115deg,#0d88d7,#36afe0);box-shadow:0 10px 24px #007ecb57,inset 0 1px #ffffff40}.premium-school-shell .sidebar-user{background:#ffffff12;border-color:#ffffff1a}.premium-school-shell .sidebar-user b{color:#fff}.premium-school-shell .sidebar-user small{color:#8eabc4}.premium-school-shell .sidebar-user .avatar{background:linear-gradient(145deg,#fff,#dcefff);color:#0b568d;box-shadow:0 5px 14px #0000002e}.premium-school-shell .sidebar-user .logout{color:#80c9ec}.premium-school-shell .top-header{background:#ffffffc7;border-bottom-color:#b4cde294;box-shadow:0 8px 30px #1e4a6f0b;-webkit-backdrop-filter:blur(20px) saturate(145%);backdrop-filter:blur(20px) saturate(145%)}.premium-school-shell .header-search{border:1px solid #dce8f2;border-radius:11px;background:#f7fbffd1}.premium-school-shell .theme-toggle,.premium-school-shell .notification-button{border:1px solid #e0eaf3;background:#ffffffd1;box-shadow:0 4px 13px #143c5f0b}.premium-school-shell .content-heading{position:relative;padding-left:17px}.premium-school-shell .content-heading:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:8px;background:linear-gradient(180deg,var(--premium-cyan),var(--premium-blue));box-shadow:0 0 16px #1792d347}.premium-school-shell .content-heading h1{font-size:24px;font-weight:800;letter-spacing:-.035em}.premium-school-shell .dashboard-page .stat-card,.premium-school-shell .dashboard-page .dashboard-panel{border:1px solid rgba(209,225,238,.9);border-radius:14px;background:linear-gradient(145deg,#fffffffa,#fafdfff0);box-shadow:0 1px 1px #11324e08,0 10px 30px #113d6112}.premium-school-shell .dashboard-page .stat-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--card-accent),transparent 72%)}.premium-school-shell .dashboard-page .stat-card:hover{transform:translateY(-3px);border-color:#bdd9ec;box-shadow:0 18px 44px #0f48731f}.premium-school-shell .stat-icon{box-shadow:inset 0 0 0 1px #ffffffb8,0 7px 18px #19669a14}.premium-school-shell .stat-copy strong{font-size:25px;font-weight:800;letter-spacing:-.04em}.premium-school-shell .panel-heading{padding-bottom:15px;border-bottom:1px solid #edf2f6}.premium-school-shell .panel-heading h2{font-weight:800}.premium-school-shell .dashboard-actions>button,.premium-school-shell .grade-summary>div,.premium-school-shell .teacher-card{border-color:#e5edf4;background:#fafdffb8}.premium-school-shell .dashboard-actions>button:hover{border-color:#b9d9ee;background:#f5fbff;box-shadow:0 8px 20px #145b8f12}.premium-school-shell .more-actions{border-radius:9px;background:linear-gradient(115deg,#086fb8,#23a4dc);box-shadow:0 9px 22px #0a77bc3b,inset 0 1px #ffffff3d}.premium-school-shell.dark{background:radial-gradient(circle at 88% -8%,rgba(30,127,176,.18),transparent 30%),linear-gradient(145deg,#0c1724,#101d2c)}.premium-school-shell.dark .sidebar{background:linear-gradient(165deg,#081f3b,#06162a 70%)}.premium-school-shell.dark .top-header{background:#0f1c2bcc}.premium-school-shell.dark .header-search,.premium-school-shell.dark .theme-toggle,.premium-school-shell.dark .notification-button{background:#17283a;border-color:#294157}.premium-school-shell.dark .dashboard-page .stat-card,.premium-school-shell.dark .dashboard-page .dashboard-panel{background:linear-gradient(145deg,#18283a,#142334);border-color:#2a4258;box-shadow:0 14px 38px #0000002e}.premium-school-shell.dark .panel-heading{border-bottom-color:#293e52}.premium-school-shell main{padding-top:30px;font-size:15px}.premium-school-shell .content-heading{align-items:center;margin-bottom:26px}.premium-school-shell .content-heading>div:nth-child(2){min-width:0;flex:1}.content-controls{display:flex;align-items:center;gap:9px;margin-left:auto}.content-controls .theme-toggle{display:grid;place-items:center;width:44px;min-height:44px;padding:0;border:1px solid #dce8f2;border-radius:12px;background:#ffffffd9;box-shadow:0 6px 18px #143c5f12}.premium-school-shell .sidebar nav button{min-height:48px;font-size:14.5px;font-weight:600}.premium-school-shell .nav-section{font-size:11px}.premium-school-shell .nav-icon{width:21px;height:21px;flex-basis:21px;overflow:visible}.premium-school-shell .sidebar-user b{font-size:13.5px}.premium-school-shell .sidebar-user small{font-size:10.5px}.premium-school-shell .sidebar-user .logout svg{width:19px;height:19px}.premium-school-shell .sidebar-user .logout:hover{background:#ffffff1a;color:#fff}.premium-school-shell .content-heading h1{font-size:26px}.premium-school-shell .content-heading p{font-size:13.5px}.premium-school-shell .content-heading .eyebrow{font-size:10.5px}.premium-school-shell .stat-copy>span{font-size:13px}.premium-school-shell .stat-copy strong{font-size:28px}.premium-school-shell .stat-copy small{font-size:10px}.premium-school-shell .panel-heading h2{font-size:17px}.premium-school-shell .panel-heading p{font-size:12.5px}.premium-school-shell .count-badge{font-size:11px}.premium-school-shell .dashboard-actions .action-body strong{font-size:14px}.premium-school-shell .dashboard-actions .action-body span{font-size:12px}.premium-school-shell .dashboard-actions .action-body small{font-size:11px}.premium-school-shell .grade-title strong{font-size:13.5px}.premium-school-shell .grade-title span{font-size:12px}.premium-school-shell .grade-summary small{font-size:10.5px}.premium-school-shell .teacher-progress-head strong{font-size:13.5px}.premium-school-shell .teacher-progress-head span,.premium-school-shell .teacher-headline,.premium-school-shell .teacher-detail{font-size:11.5px}.premium-school-shell .teacher-info>small{font-size:10.5px}.premium-school-shell .toolbar,.premium-school-shell table,.premium-school-shell input,.premium-school-shell select,.premium-school-shell textarea,.premium-school-shell button{font-size:14px}.premium-school-shell .result-count,.premium-school-shell .empty{font-size:13px}.premium-school-shell.dark .content-controls .theme-toggle{background:#17283a;border-color:#294157;color:#cfe8f8}@media(max-width:900px){.premium-school-shell main{padding-top:18px}.premium-school-shell .content-heading{gap:12px}.premium-school-shell .content-heading h1{font-size:22px}.premium-school-shell .content-heading p{font-size:12px}.premium-school-shell .menu-toggle{display:grid}.premium-school-shell .content-heading:before{left:52px}.premium-school-shell .content-heading{padding-left:0}.premium-school-shell .content-heading>div:nth-child(2){padding-left:12px}}.premium-school-shell .dashboard-logo-frame{display:grid;place-items:center;box-sizing:border-box;width:48px;height:48px;flex:0 0 48px;padding:8px;border:1px solid rgba(255,255,255,.72);border-radius:14px;background:#fff;box-shadow:0 9px 24px #0000003d,0 0 0 3px #ffffff14}.premium-school-shell .dashboard-school-logo{display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain;object-position:center}.premium-school-shell:not(.dark) .sidebar{padding:22px 20px 18px;background:#fff;border-right:1px solid #edf0f5;box-shadow:8px 0 32px #18274b0b;color:#30394c}.premium-school-shell:not(.dark) .brand{border-bottom-color:#edf0f5}.premium-school-shell:not(.dark) .brand b{color:#273248}.premium-school-shell:not(.dark) .brand b span{color:#5b789f}.premium-school-shell:not(.dark) .brand small{color:#8b97aa}.premium-school-shell:not(.dark) .dashboard-logo-frame{border-color:#e2e7ef;box-shadow:0 5px 14px #1f304f1a}.premium-school-shell:not(.dark) .nav-section{padding:17px 0 9px;color:#30394c;font-size:13px;font-weight:800;letter-spacing:.04em}.premium-school-shell:not(.dark) .sidebar nav{gap:5px;padding-top:5px}.premium-school-shell:not(.dark) .sidebar nav button{min-height:58px;padding:13px 17px;gap:16px;border-radius:10px;color:#30394c;font-size:16px;font-weight:500}.premium-school-shell:not(.dark) .sidebar nav button:hover:not(.active){background:#edf1fd;color:#6680ef}.premium-school-shell:not(.dark) .sidebar nav button.active{background:#6b82ee;color:#fff;font-weight:600;box-shadow:none}.premium-school-shell:not(.dark) .nav-icon{width:23px;height:23px;flex-basis:23px;stroke-width:1.8}.premium-school-shell .active-pip{display:none}.premium-school-shell:not(.dark) .sidebar-user{background:#f3f6fb;border-color:#e5eaf1}.premium-school-shell:not(.dark) .sidebar-user b{color:#273248}.premium-school-shell:not(.dark) .sidebar-user small{color:#7e899b}.premium-school-shell:not(.dark) .sidebar-user .logout{color:#6574a7}.premium-school-shell:not(.dark) .sidebar-user .logout:hover{background:#e6ebf5;color:#344879}.premium-school-shell:not(.dark) .sidebar{padding:22px 20px 18px;background:linear-gradient(165deg,#092c53,#071f3d 62%,#06182e);border-right:1px solid rgba(255,255,255,.08);box-shadow:14px 0 45px #051d3721;color:#d7e8f7}.premium-school-shell:not(.dark) .brand{border-bottom-color:#ffffff1c}.premium-school-shell:not(.dark) .brand b{color:#fff}.premium-school-shell:not(.dark) .brand b span{color:#75ccf0}.premium-school-shell:not(.dark) .brand small{color:#83a5c3}.premium-school-shell:not(.dark) .dashboard-logo-frame{border-color:#ffffffb8;box-shadow:0 9px 24px #0000003d,0 0 0 3px #ffffff14}.premium-school-shell .sidebar nav{scrollbar-width:none;-ms-overflow-style:none}.premium-school-shell .sidebar nav::-webkit-scrollbar{display:none;width:0;height:0}.premium-school-shell:not(.dark) .nav-section{padding:17px 8px 9px;color:#6689a8;font-size:11px}.premium-school-shell:not(.dark) .sidebar nav{gap:4px}.premium-school-shell:not(.dark) .sidebar nav button{min-height:48px;padding:11px 13px;gap:14px;border-radius:9px;color:#afc5d8;font-size:14.5px;font-weight:600;transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.premium-school-shell:not(.dark) .sidebar nav button:hover:not(.active){background:#ffffff17;color:#fff;transform:translate(5px)}.premium-school-shell:not(.dark) .sidebar nav button.active{background:linear-gradient(115deg,#0d88d7,#36afe0);color:#fff;font-weight:600;box-shadow:0 10px 24px #007ecb57,inset 0 1px #ffffff40}.premium-school-shell:not(.dark) .nav-icon{width:21px;height:21px;flex-basis:21px}.premium-school-shell:not(.dark) .sidebar-user{background:#ffffff12;border-color:#ffffff1a}.premium-school-shell:not(.dark) .sidebar-user b{color:#fff}.premium-school-shell:not(.dark) .sidebar-user small{color:#8eabc4}.premium-school-shell:not(.dark) .sidebar-user .logout{color:#80c9ec}.premium-school-shell:not(.dark) .sidebar-user .logout:hover{background:#ffffff1a;color:#fff}.premium-school-shell.dark .sidebar nav button{transition:transform .2s ease,background .2s ease,color .2s ease}.premium-school-shell.dark .sidebar nav button:hover:not(.active){transform:translate(5px)}.premium-school-shell .dashboard-page .stats{gap:18px}.premium-school-shell .dashboard-page .stat-card{min-height:166px;padding:22px 22px 19px;border-radius:18px;isolation:isolate}.premium-school-shell .dashboard-page .stat-card:before{height:4px;background:linear-gradient(90deg,var(--card-accent),color-mix(in srgb,var(--card-accent) 40%,transparent) 55%,transparent)}.premium-school-shell .dashboard-page .stat-card:after{display:block;right:-36px;bottom:-56px;width:150px;height:150px;background:radial-gradient(circle,color-mix(in srgb,var(--card-accent) 9%,transparent),transparent 68%);z-index:-1}.premium-school-shell .stat-icon{width:52px;height:52px;margin-bottom:18px;border-radius:16px;background:var(--card-soft);box-shadow:0 10px 24px color-mix(in srgb,var(--card-accent) 14%,transparent)}.premium-school-shell .stat-icon span{position:relative;width:24px;height:24px;border:0;border-radius:0}.premium-school-shell .stat-icon span:before,.premium-school-shell .stat-icon span:after{content:"";position:absolute;box-sizing:border-box;color:var(--card-accent)}.premium-school-shell .stat-card.people .stat-icon span:before{left:3px;top:2px;width:9px;height:9px;border:2px solid currentColor;border-radius:50%;box-shadow:9px 2px 0 -2px var(--card-soft),9px 2px 0 0 currentColor}.premium-school-shell .stat-card.people .stat-icon span:after{left:0;bottom:1px;width:16px;height:8px;border:2px solid currentColor;border-bottom:0;border-radius:10px 10px 0 0;box-shadow:8px 0 0 -1px var(--card-soft),10px 0 0 0 currentColor}.premium-school-shell .stat-card.plans .stat-icon span:before{inset:1px 3px;border:2px solid currentColor;border-radius:3px}.premium-school-shell .stat-card.plans .stat-icon span:after{left:8px;top:7px;width:9px;height:2px;background:currentColor;box-shadow:0 5px 0 currentColor,0 10px 0 currentColor}.premium-school-shell .stat-card.pending .stat-icon span:before{inset:1px;border:2px solid currentColor;border-radius:50%}.premium-school-shell .stat-card.pending .stat-icon span:after{left:11px;top:6px;width:2px;height:7px;border-radius:2px;background:currentColor;box-shadow:3px 6px 0 -.3px currentColor;transform-origin:bottom}.premium-school-shell .stat-card.approved .stat-icon span:before{inset:1px;border:2px solid currentColor;border-radius:50%}.premium-school-shell .stat-card.approved .stat-icon span:after{left:6px;top:7px;width:12px;height:7px;border-left:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(-45deg)}.premium-school-shell .stat-copy{grid-template-columns:auto 1fr;column-gap:12px}.premium-school-shell .stat-copy>span{margin-bottom:7px;color:#53657a;font-size:13px;font-weight:700}.premium-school-shell .stat-copy strong{font-size:34px;line-height:1;color:#122a43}.premium-school-shell .stat-copy small{align-self:end;margin-bottom:2px;color:#8a98a8;font-size:10.5px;line-height:1.4}.premium-school-shell .stat-card:hover .stat-icon{transform:translateY(-2px) rotate(-2deg);box-shadow:0 14px 28px color-mix(in srgb,var(--card-accent) 20%,transparent)}.premium-school-shell .stat-icon{transition:transform .22s ease,box-shadow .22s ease}.premium-school-shell .dashboard-page .dashboard-panel{border-radius:18px;padding:24px}.premium-school-shell .panel-heading{margin-bottom:20px;padding-bottom:18px}.premium-school-shell .panel-heading h2{font-size:18px}.premium-school-shell .count-badge{padding:7px 11px;border-radius:9px}.premium-school-shell .dashboard-empty{position:relative;min-height:210px;margin-top:2px;border:1px dashed #d8e5ef;border-radius:15px;background:linear-gradient(145deg,#f6fbffd1,#fbfdfff2);overflow:hidden}.premium-school-shell .dashboard-empty:before,.premium-school-shell .dashboard-empty:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.premium-school-shell .dashboard-empty:before{width:150px;height:150px;right:-75px;top:-80px;background:#3da9db0e}.premium-school-shell .dashboard-empty:after{width:110px;height:110px;left:-65px;bottom:-62px;background:#4b70cd0b}.premium-school-shell .dashboard-empty>span{position:relative;width:54px;height:54px;margin-bottom:13px;border:1px solid #d9eee6;background:linear-gradient(145deg,#f2fcf8,#e6f7f0);box-shadow:0 9px 24px #23896517;font-size:22px}.premium-school-shell .dashboard-empty b{font-size:14px;color:#354b61}.premium-school-shell .dashboard-empty small{font-size:11.5px;color:#8796a7}.premium-school-shell .progress-panel .dashboard-empty{min-height:180px}.premium-school-shell.dark .stat-copy>span{color:#a7b7c7}.premium-school-shell.dark .stat-copy strong{color:#f4f9fd}.premium-school-shell.dark .dashboard-empty{border-color:#304b61;background:linear-gradient(145deg,#182b3d,#142536)}.premium-school-shell.dark .dashboard-empty>span{border-color:#2d5a50;background:#1d3b36}.premium-school-shell.dark .dashboard-empty b{color:#d4e2ed}.premium-school-shell.dark .dashboard-empty small{color:#8fa2b4}@media(max-width:560px){.premium-school-shell .dashboard-page .stat-card{min-height:155px;padding:17px}.premium-school-shell .stat-icon{width:46px;height:46px;margin-bottom:14px}.premium-school-shell .stat-copy strong{font-size:30px}.premium-school-shell .dashboard-empty{min-height:175px}}.premium-school-shell .stat-icon span{display:block;width:25px;height:25px;background-repeat:no-repeat;background-position:center;background-size:contain}.premium-school-shell .stat-icon span:before,.premium-school-shell .stat-icon span:after{display:none!important;content:none!important}.premium-school-shell .stat-card.people .stat-icon span{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%237042a6' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E")}.premium-school-shell .stat-card.plans .stat-icon span{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23235da2' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2h9l4 4v16H6z'/%3E%3Cpath d='M14 2v5h5M9 12h6M9 16h6'/%3E%3C/svg%3E")}.premium-school-shell .stat-card.pending .stat-icon span{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23945b0c' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}.premium-school-shell .stat-card.approved .stat-icon span{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23237348' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 2.7 2.7L16.5 9'/%3E%3C/svg%3E")}.premium-school-shell .sidebar nav{margin-right:-10px;padding-right:16px;padding-left:2px}.premium-school-shell .sidebar nav button{width:100%;overflow:visible}.premium-school-shell:not(.dark) .sidebar nav button:hover:not(.active){transform:translate(4px);box-shadow:0 8px 18px #000a1c2e,inset 0 1px #ffffff0f}.premium-school-shell.dark .sidebar nav button:hover:not(.active){transform:translate(4px);box-shadow:0 8px 18px #0003}.premium-school-shell .nav-icon{display:block;overflow:visible;filter:none;shape-rendering:geometricPrecision}.dashboard-shell.premium-school-shell{--background:#fff;--foreground:#2a3547;--card:#fff;--muted-foreground:#6b6b6b;--primary:#5d87ff;--secondary:#49beff;--accent:#edf2ff;--border:#e5e5e5;--shadow:0 0 2px #919eab4d,0 12px 24px -4px #919eab1f;--blue:var(--primary);--deep:#426ce0;--line:var(--border);--ta-bg:var(--background);--ta-border:var(--border);--dashboard-line:var(--border);background:var(--background);color:var(--foreground);font-family:DM Sans,Sarabun,sans-serif;font-size:14px;line-height:1.43}.dashboard-shell.premium-school-shell.dark{--background:#141b29;--foreground:#e7edf7;--card:#1d2738;--muted-foreground:#a5b2c6;--accent:#263758;--border:#344054;--shadow:0 0 2px #919eab4d,0 12px 24px -4px #919eab05}.dashboard-shell.premium-school-shell main{background:var(--background);padding:24px;max-width:1684px}.dashboard-shell.premium-school-shell .sidebar{background:var(--card);color:var(--foreground);border-right:1px solid var(--border);box-shadow:none;z-index:100;padding:24px 16px}.dashboard-shell.premium-school-shell .brand{border-color:var(--border)}.dashboard-shell.premium-school-shell .brand b,.dashboard-shell.premium-school-shell .sidebar-user b{color:var(--foreground)}.dashboard-shell.premium-school-shell .brand b span{color:var(--primary)}.dashboard-shell.premium-school-shell .brand small,.dashboard-shell.premium-school-shell .nav-section,.dashboard-shell.premium-school-shell .sidebar-user small{color:var(--muted-foreground)}.dashboard-shell.premium-school-shell .sidebar nav{margin:0 -8px;padding:12px 16px 24px 8px;gap:4px;scrollbar-width:none}.dashboard-shell.premium-school-shell .sidebar nav button{color:var(--foreground);background:transparent;border-radius:6px;min-height:48px;padding:12px;font:500 14px/1.5 DM Sans,Sarabun,sans-serif;gap:12px;box-shadow:none;transition:transform .2s cubic-bezier(.4,0,.2,1),background .15s ease}.dashboard-shell.premium-school-shell .sidebar nav button.active{background:var(--primary);color:#fff;box-shadow:0 9px 17.5px #0000000d}.dashboard-shell.premium-school-shell .sidebar nav button:hover:not(.active){background:var(--accent);color:var(--primary);transform:translate(4px);box-shadow:none}.dashboard-shell.premium-school-shell .sidebar-user{background:var(--accent);border:1px solid var(--border);border-radius:7px;padding:12px}.dashboard-shell.premium-school-shell .sidebar-user .logout{color:var(--primary)}.dashboard-shell.premium-school-shell .content-heading{padding:0;margin-bottom:24px;gap:16px}.dashboard-shell.premium-school-shell .content-heading:before{display:none}.dashboard-shell.premium-school-shell .content-heading h1{font-size:24px;line-height:1.33;font-weight:600;color:var(--foreground)}.dashboard-shell.premium-school-shell .content-heading p{font-size:14px;line-height:1.43;color:var(--muted-foreground);white-space:normal}.dashboard-shell.premium-school-shell .content-heading .eyebrow{display:block;margin-bottom:9px;color:var(--primary);font-size:11px;line-height:1.2;letter-spacing:.08em}.dashboard-shell.premium-school-shell .dashboard-page{gap:24px}.dashboard-shell.premium-school-shell .dashboard-page .stats,.dashboard-shell.premium-school-shell .dashboard-grid{gap:12px}.dashboard-shell.premium-school-shell .panel,.dashboard-shell.premium-school-shell .dashboard-page .stat-card{background:var(--card);border:1px solid var(--border);border-radius:7px;padding:24px;box-shadow:var(--shadow)}.dashboard-shell.premium-school-shell .dashboard-page .stat-card{min-height:172px;transform:none}.dashboard-shell.premium-school-shell .stat-card:before,.dashboard-shell.premium-school-shell .stat-card:after{display:none!important}.dashboard-shell.premium-school-shell .stat-icon{width:44px;height:44px;border-radius:10px;margin-bottom:16px;box-shadow:none;transform:none}.dashboard-shell.premium-school-shell .stat-card:hover .stat-icon{transform:none;box-shadow:none}.dashboard-shell.premium-school-shell .stat-copy{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.dashboard-shell.premium-school-shell .stat-copy>span{color:var(--muted-foreground);font-size:14px;margin:0;font-weight:500}.dashboard-shell.premium-school-shell .stat-copy strong{color:var(--foreground);font-size:24px;line-height:1.33;font-weight:600}.dashboard-shell.premium-school-shell .stat-copy small{display:block;align-self:auto;text-align:left;color:var(--muted-foreground);font-size:12px;margin:4px 0 0;line-height:1.5}.dashboard-shell.premium-school-shell .panel-heading{border-color:var(--border);padding-bottom:16px;margin-bottom:16px}.dashboard-shell.premium-school-shell .panel-heading h2{color:var(--foreground);font-size:18px;font-weight:600;line-height:1.5}.dashboard-shell.premium-school-shell .panel-heading p{color:var(--muted-foreground);font-size:14px;line-height:1.43}.dashboard-shell.premium-school-shell .dashboard-empty{background:var(--background);border:1px dashed var(--border);border-radius:7px;min-height:180px;padding:24px}.dashboard-shell.premium-school-shell .dashboard-empty:before,.dashboard-shell.premium-school-shell .dashboard-empty:after{display:none}.dashboard-shell.premium-school-shell .dashboard-empty b{color:var(--foreground);font-size:16px;font-weight:600}.dashboard-shell.premium-school-shell .dashboard-empty small{color:var(--muted-foreground);font-size:14px;line-height:1.5}.dashboard-shell.premium-school-shell .teacher-card,.dashboard-shell.premium-school-shell .grade-summary>div,.dashboard-shell.premium-school-shell .dashboard-actions>button{background:var(--card);border:1px solid var(--border);border-radius:7px;padding:16px;box-shadow:none}.dashboard-shell.premium-school-shell .teacher-progress-head strong,.dashboard-shell.premium-school-shell .grade-title strong,.dashboard-shell.premium-school-shell .action-body strong{color:var(--foreground);font-size:14px;font-weight:600}.dashboard-shell.premium-school-shell .teacher-info>small,.dashboard-shell.premium-school-shell .grade-summary small{color:var(--muted-foreground);font-size:12px;white-space:normal}.dashboard-shell.premium-school-shell .grade-bar span,.dashboard-shell.premium-school-shell .progress-track span{background:var(--primary)}.dashboard-shell.premium-school-shell .count-badge{background:var(--accent);border:0;color:var(--primary);border-radius:6px;padding:8px 12px}.dashboard-shell.premium-school-shell .toolbar button,.dashboard-shell.premium-school-shell .more-actions,.dashboard-shell.premium-school-shell .profile-form button{background:var(--primary);color:#fff;border:0;border-radius:6px;padding:8px 16px;font-weight:500;box-shadow:0 9px 17.5px #0000000d}.dashboard-shell.premium-school-shell input,.dashboard-shell.premium-school-shell select,.dashboard-shell.premium-school-shell textarea{background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:8px;padding:8px 12px;min-height:40px}.dashboard-shell.premium-school-shell :is(button,input,select,textarea,a):focus-visible{outline:3px solid #5d87ff66;outline-offset:3px}.dashboard-shell.premium-school-shell th{background:var(--accent);color:var(--foreground)}.dashboard-shell.premium-school-shell td,.dashboard-shell.premium-school-shell th{border-color:var(--border);font-size:14px}.dashboard-shell.premium-school-shell .theme-toggle{background:var(--card);border:1px solid var(--border);color:var(--primary);border-radius:6px;box-shadow:none}.dashboard-shell.premium-school-shell .nav-backdrop{z-index:99}.dashboard-shell.premium-school-shell .brand{align-items:center;gap:7px}.dashboard-shell.premium-school-shell .dashboard-logo-frame{width:44px;height:48px;flex:0 0 44px;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none}.dashboard-shell.premium-school-shell .brand>div{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:5px}.dashboard-shell.premium-school-shell .brand b{display:flex;align-items:baseline;gap:2px;min-height:0;font-size:24px;letter-spacing:-.025em;line-height:1.15;white-space:nowrap}.dashboard-shell.premium-school-shell .brand small{margin:0;font-size:8px;line-height:1.4;letter-spacing:.12em;white-space:nowrap;transform:translateY(-2px)}.dashboard-shell.premium-school-shell .dashboard-school-logo{border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}.dashboard-shell.premium-school-shell .content-controls .theme-toggle{width:44px;height:44px;min-height:44px;padding:0;border-radius:12px;background:var(--accent);border:1px solid transparent;color:var(--primary);box-shadow:none;transition:background .2s ease,transform .2s ease,border-color .2s ease}.dashboard-shell.premium-school-shell .content-controls .theme-toggle:hover{background:var(--card);border-color:var(--primary);transform:translateY(-1px)}.dashboard-shell.premium-school-shell .theme-icon{display:grid;place-items:center;width:24px;height:24px;padding:0;background:transparent;border-radius:0;color:inherit}.dashboard-shell.premium-school-shell .theme-icon svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dashboard-shell.premium-school-shell.dark .content-controls .theme-toggle{color:#f6c76a;background:#353326}.global-search-trigger{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--muted-foreground);font:inherit;cursor:pointer}.global-search-trigger svg{width:18px;height:18px}.global-search-trigger span{font-size:12px}.global-search-trigger kbd,.search-help kbd{padding:2px 6px;border:1px solid var(--border);border-radius:5px;background:var(--accent);font:inherit;font-size:9px}.search-overlay{position:fixed;z-index:120;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;background:#10182870;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.search-command{width:min(680px,100%);overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--card);box-shadow:0 24px 64px #10182838}.search-input{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.search-input svg{width:21px;height:21px;color:var(--primary)}.search-input input{width:100%;border:0;outline:0;background:transparent;color:var(--card-foreground);font:inherit;font-size:16px}.search-input button{border:1px solid var(--border);border-radius:6px;background:var(--accent);color:var(--muted-foreground);padding:4px 7px}.search-results{max-height:55vh;overflow:auto;padding:8px}.search-results>button{display:grid;width:100%;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:0;border-radius:8px;background:transparent;color:var(--card-foreground);text-align:left;cursor:pointer}.search-results>button:hover,.search-results>button:focus-visible{background:var(--accent);outline:none}.search-results>button>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.search-results strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.search-results small{color:var(--muted-foreground);font-size:10px}.search-results b{color:var(--primary);font-size:10px}.search-result-icon{display:grid;width:32px;height:32px;place-items:center;border-radius:8px;background:var(--accent);color:var(--primary);font-size:18px}.search-empty{padding:36px 16px;text-align:center;color:var(--muted-foreground)}.search-help{display:flex;justify-content:space-between;gap:10px;padding:10px 16px;border-top:1px solid var(--border);color:var(--muted-foreground);font-size:10px}@media(max-width:800px){.global-search-trigger span,.global-search-trigger kbd{display:none}.global-search-trigger{width:44px;justify-content:center;padding:0}.search-overlay{padding-top:7vh}.search-results>button{grid-template-columns:36px minmax(0,1fr)}.search-results>button>b{grid-column:2}}.dashboard-shell.premium-school-shell .notification-center{position:relative;z-index:40}.dashboard-shell.premium-school-shell .notification-trigger{position:relative;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--foreground);box-shadow:none;transition:color .15s ease,background .15s ease,border-color .15s ease}.dashboard-shell.premium-school-shell .notification-trigger:hover,.dashboard-shell.premium-school-shell .notification-trigger.open{color:var(--primary);background:var(--accent);border-color:#5d87ff55}.dashboard-shell.premium-school-shell .notification-trigger svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dashboard-shell.premium-school-shell .notification-badge{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:2px solid var(--background);border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;line-height:1}.dashboard-shell.premium-school-shell .notification-popover{position:absolute;top:52px;right:0;width:min(360px,calc(100vw - 32px));overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--card);box-shadow:0 0 2px #919eab4d,0 18px 36px -8px #919eab40;color:var(--foreground)}.dashboard-shell.premium-school-shell .notification-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.dashboard-shell.premium-school-shell .notification-heading div{display:flex;flex-direction:column;gap:2px}.dashboard-shell.premium-school-shell .notification-heading strong{font-size:16px}.dashboard-shell.premium-school-shell .notification-heading span{color:var(--muted-foreground);font-size:12px}.dashboard-shell.premium-school-shell .notification-heading>b{display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--accent);color:var(--primary);font-size:12px}.dashboard-shell.premium-school-shell .notification-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 18px;border-bottom:1px solid var(--border);color:var(--muted-foreground);font-size:11px}.dashboard-shell.premium-school-shell .notification-toolbar button{padding:4px 8px;border:0;border-radius:6px;background:transparent;color:var(--primary);font-size:11px;font-weight:600;box-shadow:none}.dashboard-shell.premium-school-shell .notification-toolbar button:hover{background:var(--accent)}.dashboard-shell.premium-school-shell .notification-list{display:flex;flex-direction:column;max-height:360px;overflow:auto}.dashboard-shell.premium-school-shell .notification-list>button{display:grid;grid-template-columns:8px minmax(0,1fr) 14px;align-items:center;gap:12px;width:100%;padding:14px 18px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:inherit;text-align:left;box-shadow:none}.dashboard-shell.premium-school-shell .notification-list>button:hover{background:var(--accent)}.dashboard-shell.premium-school-shell .notification-list>button.read{opacity:.68}.dashboard-shell.premium-school-shell .notification-list>button.read .notification-dot{background:#b7c1d1;box-shadow:none}.dashboard-shell.premium-school-shell .notification-list>button:not(.read) strong{color:var(--foreground);font-weight:700}.dashboard-shell.premium-school-shell .notification-list>button>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:3px}.dashboard-shell.premium-school-shell .notification-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.dashboard-shell.premium-school-shell .notification-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground);font-size:11px}.dashboard-shell.premium-school-shell .notification-list i{color:var(--muted-foreground);font-size:22px;font-style:normal}.dashboard-shell.premium-school-shell .notification-dot{width:8px;height:8px;border-radius:50%;background:#f6b51e;box-shadow:0 0 0 4px #f6b51e20}.dashboard-shell.premium-school-shell .notification-dot.revision{background:#ef4444;box-shadow:0 0 0 4px #ef444420}.dashboard-shell.premium-school-shell .notification-empty{display:flex;min-height:170px;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--muted-foreground)}.dashboard-shell.premium-school-shell .notification-empty>span{display:grid;place-items:center;width:36px;height:36px;margin-bottom:4px;border-radius:50%;background:#13deb91c;color:#15977f;font-size:18px}.dashboard-shell.premium-school-shell .notification-empty strong{color:var(--foreground);font-size:14px}.dashboard-shell.premium-school-shell .notification-empty small{font-size:12px}.dashboard-shell.premium-school-shell .notification-view-all{width:100%;padding:12px 16px;border:0;border-radius:0;background:var(--accent);color:var(--primary);font-size:12px;font-weight:600;box-shadow:none}.dashboard-shell.premium-school-shell.dark .notification-trigger{background:var(--card);border-color:var(--border)}.dashboard-shell.premium-school-shell .character-avatar{display:inline-grid;place-items:center;overflow:hidden;flex:0 0 auto;border:1px solid #dce6f4;border-radius:50%;background:#edf4ff;box-shadow:none;vertical-align:middle}.dashboard-shell.premium-school-shell .character-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.dashboard-shell.premium-school-shell .character-avatar svg{display:block;width:100%;height:100%}.dashboard-shell.premium-school-shell .character-avatar .avatar-bg{fill:#eaf2ff}.dashboard-shell.premium-school-shell .character-avatar.female .avatar-bg{fill:#fff0f6}.dashboard-shell.premium-school-shell .character-avatar.unspecified .avatar-bg{fill:#eef1f5}.dashboard-shell.premium-school-shell .character-avatar .avatar-face,.dashboard-shell.premium-school-shell .character-avatar .avatar-ear,.dashboard-shell.premium-school-shell .character-avatar .avatar-neck{fill:#f2bd91;stroke:#cf8e68;stroke-width:.7}.dashboard-shell.premium-school-shell .character-avatar .avatar-ear{fill:none;stroke-linecap:round}.dashboard-shell.premium-school-shell .character-avatar .avatar-body{fill:#fff}.dashboard-shell.premium-school-shell .character-avatar .avatar-shirt{fill:#5d87ff}.dashboard-shell.premium-school-shell .character-avatar.female .avatar-shirt{fill:#ed6ea7}.dashboard-shell.premium-school-shell .character-avatar.unspecified .avatar-shirt{fill:#7d8da6}.dashboard-shell.premium-school-shell .character-avatar .avatar-hair{fill:#26354a}.dashboard-shell.premium-school-shell .character-avatar.female .avatar-hair{fill:#49352f}.dashboard-shell.premium-school-shell .character-avatar .female-hair,.dashboard-shell.premium-school-shell .character-avatar .neutral-hair,.dashboard-shell.premium-school-shell .character-avatar.female .male-hair,.dashboard-shell.premium-school-shell .character-avatar.female .neutral-hair{display:none}.dashboard-shell.premium-school-shell .character-avatar.female .female-hair{display:block}.dashboard-shell.premium-school-shell .character-avatar.unspecified .male-hair,.dashboard-shell.premium-school-shell .character-avatar.unspecified .female-hair{display:none}.dashboard-shell.premium-school-shell .character-avatar.unspecified .neutral-hair{display:block}.dashboard-shell.premium-school-shell .character-avatar .avatar-eye{fill:#273142}.dashboard-shell.premium-school-shell .character-avatar .avatar-mouth{fill:none;stroke:#b86666;stroke-width:1;stroke-linecap:round}.dashboard-shell.premium-school-shell .sidebar-avatar{width:42px;height:42px}.dashboard-shell.premium-school-shell .teacher-avatar{width:44px;height:44px;flex:0 0 44px;padding:0}.dashboard-shell.premium-school-shell .employee-avatar{width:34px;height:34px}.dashboard-shell.premium-school-shell .employee-name{display:inline-flex;align-items:center;gap:10px;min-width:190px;font-weight:600;color:var(--foreground)}.dashboard-shell.premium-school-shell.dark .character-avatar{border-color:#42516a}.dashboard-shell.premium-school-shell.dark .character-avatar .avatar-bg{fill:#263752}.dashboard-shell.premium-school-shell.dark .character-avatar.female .avatar-bg{fill:#452d43}.dashboard-shell.premium-school-shell.dark .character-avatar.unspecified .avatar-bg{fill:#303a49}.dashboard-shell.premium-school-shell .dashboard-page .stats{gap:24px}.dashboard-shell.premium-school-shell .dashboard-page .stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;text-align:center;min-height:184px;border:0;box-shadow:none;background:var(--tile-bg);transition:background .2s ease}.dashboard-shell.premium-school-shell .stat-card.people{--tile-bg:#f3edff;--tile-ink:#7042a6}.dashboard-shell.premium-school-shell .stat-card.plans{--tile-bg:#eaf3ff;--tile-ink:#235da2}.dashboard-shell.premium-school-shell .stat-card.pending{--tile-bg:#fff3df;--tile-ink:#945b0c}.dashboard-shell.premium-school-shell .stat-card.approved{--tile-bg:#e7f6ed;--tile-ink:#237348}.dashboard-shell.premium-school-shell .stat-icon{background:transparent;margin:0 0 12px;width:44px;height:44px;border-radius:0}.dashboard-shell.premium-school-shell .stat-copy{align-items:center;gap:8px}.dashboard-shell.premium-school-shell .stat-copy>span,.dashboard-shell.premium-school-shell .stat-copy strong{color:var(--tile-ink);margin:0}.dashboard-shell.premium-school-shell .stat-copy>span{font-size:14px;font-weight:600}.dashboard-shell.premium-school-shell .stat-copy small{text-align:center;font-size:12px;color:var(--muted-foreground);margin:0}.dashboard-shell.premium-school-shell .dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px;align-items:start}.dashboard-shell.premium-school-shell .panel-heading{border:0;padding-bottom:0;margin-bottom:24px}.dashboard-shell.premium-school-shell .dashboard-page .dashboard-panel{border-color:color-mix(in srgb,var(--border) 55%,transparent)}.dashboard-shell.premium-school-shell .teacher-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.dashboard-shell.premium-school-shell .teacher-card{border:0;border-bottom:1px solid var(--border);border-radius:0;padding:20px 0;background:transparent}.dashboard-shell.premium-school-shell .teacher-avatar{width:40px;height:40px;background:var(--accent);color:var(--primary)}.dashboard-shell.premium-school-shell .dashboard-actions>button{border:0;border-bottom:1px solid var(--border);border-radius:0;padding:16px 0}.dashboard-shell.premium-school-shell .dashboard-actions>button:hover{background:var(--accent);box-shadow:none;transform:none}.dashboard-shell.premium-school-shell .grade-summary>div{border:0;padding:12px 0}.dashboard-shell.premium-school-shell .grade-bar{height:6px;background:var(--border)}.dashboard-shell.premium-school-shell.dark .stat-card.people{--tile-bg:#193a35;--tile-ink:#75dbbc}.dashboard-shell.premium-school-shell.dark .stat-card.plans{--tile-bg:#1c334c;--tile-ink:#82c2ff}.dashboard-shell.premium-school-shell.dark .stat-card.pending{--tile-bg:#3b3220;--tile-ink:#f3cc72}.dashboard-shell.premium-school-shell.dark .stat-card.approved{--tile-bg:#293354;--tile-ink:#a6b5ff}@media(max-width:1199px){.dashboard-shell.premium-school-shell .dashboard-page .stats{gap:12px}}@media(max-width:1024px){.dashboard-shell.premium-school-shell .dashboard-grid{grid-template-columns:1fr}}@media(max-width:767px){.dashboard-shell.premium-school-shell .teacher-progress{grid-template-columns:1fr}.dashboard-shell.premium-school-shell .dashboard-page .stat-card{min-height:176px}}@media(max-width:767px){.dashboard-shell.premium-school-shell main{padding:16px}.dashboard-shell.premium-school-shell .panel,.dashboard-shell.premium-school-shell .dashboard-page .stat-card{padding:16px}.dashboard-shell.premium-school-shell .content-heading h1{font-size:24px}.dashboard-shell.premium-school-shell .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-report-action{background:#edf2ff!important;color:#456fdf!important}.project-report-batch{max-height:70vh;overflow:auto;padding:2px 6px;text-align:left}.project-report-summary{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;margin-bottom:12px;padding:10px 14px;border:1px solid #dce5ff;border-radius:8px;background:#f5f8ff;color:#456fdf;font-size:13px;font-weight:600}.project-report-row{margin-bottom:12px;padding:16px;border:1px solid #e5e5e5;border-radius:10px;background:#fff}.project-report-title{display:flex;align-items:center;gap:12px;margin-bottom:14px}.project-report-title>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#edf2ff;color:#456fdf;font-weight:700}.project-report-title div{display:flex;flex-direction:column}.project-report-title strong{font-size:15px}.project-report-title small{color:#5a6a85;font-size:12px}.project-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.project-report-grid label,.project-report-ratings label{color:#2a3547;font-size:13px;font-weight:600}.project-report-grid .wide{grid-column:1/-1}.project-report-grid .swal2-input,.project-report-grid .swal2-select,.project-report-grid .swal2-textarea{width:100%;margin:5px 0 0}.project-report-grid .swal2-textarea{height:72px;min-height:72px}.project-report-ratings{margin-top:12px;border-top:1px solid #edf0f3;padding-top:10px}.project-report-ratings summary{cursor:pointer;color:#456fdf;font-size:13px;font-weight:600}.project-report-ratings>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin-top:10px}.project-report-ratings label{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-report-ratings .swal2-select{width:90px;margin:0}.dark .project-report-row{border-color:#3a4659;background:#1f2a3d}.dark .project-report-grid label,.dark .project-report-ratings label{color:#e8eef8}.dark .project-report-summary{border-color:#394d77;background:#243454}@media(max-width:700px){.project-report-grid,.project-report-ratings>div{grid-template-columns:1fr}.project-report-grid .wide{grid-column:auto}}.analytics-section{margin-top:24px}.analytics-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.analytics-heading h2{margin:3px 0;font-size:24px}.analytics-heading p{margin:0;color:var(--muted);font-size:13px}.analytics-live{padding:6px 10px;border-radius:999px;background:#13deb91a;color:#15977f;font-size:11px;font-weight:700}.analytics-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.analytics-metric{position:relative;overflow:hidden;padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--card);box-shadow:var(--shadow-md)}.analytics-metric:before{position:absolute;inset:0 auto 0 0;width:4px;background:var(--primary);content:""}.analytics-metric.spent:before{background:#49beff}.analytics-metric.complete:before{background:#13deb9}.analytics-metric.evaluation:before{background:#f6b51e}.analytics-metric span{display:block;color:var(--muted);font-size:12px}.analytics-metric strong{display:inline-block;margin-top:8px;font-size:25px}.analytics-metric small{margin-left:6px;color:var(--muted);font-size:11px}.analytics-grid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(360px,1.4fr) minmax(260px,1fr);gap:12px}.analytics-card{min-height:290px;padding:20px;border:1px solid var(--border);border-radius:10px;background:var(--card);box-shadow:var(--shadow-md)}.analytics-card-head{display:flex;justify-content:space-between;gap:12px}.analytics-card-head h3{margin:0;font-size:16px}.analytics-card-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.analytics-card-head>b{color:var(--primary);font-size:22px}.budget-donut{display:grid;place-items:center;width:150px;height:150px;margin:20px auto;border-radius:50%;background:conic-gradient(var(--primary) 0 var(--value),#edf2ff var(--value) 360deg)}.budget-donut:before{position:absolute;width:105px;height:105px;border-radius:50%;background:var(--card);content:""}.budget-donut span{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column}.budget-donut strong{font-size:16px}.budget-donut small{color:var(--muted);font-size:10px}.analytics-legend{display:flex;justify-content:center;gap:14px;color:var(--muted);font-size:10px}.analytics-legend span{display:flex;align-items:center;gap:5px}.analytics-legend i{width:8px;height:8px;border-radius:50%;background:#dfe7fb}.analytics-legend i.used,.analytics-legend i.plan{background:var(--primary)}.analytics-legend i.evaluation{background:#49beff}.trend-chart{display:flex;height:190px;align-items:flex-end;justify-content:space-around;gap:10px;padding:22px 10px 8px;border-bottom:1px solid var(--border)}.trend-column{display:flex;height:100%;align-items:center;flex:1;flex-direction:column;justify-content:flex-end}.trend-bars{display:flex;width:100%;height:150px;align-items:flex-end;justify-content:center;gap:4px}.trend-bars i{display:block;width:min(16px,32%);min-height:5px;border-radius:4px 4px 1px 1px;background:var(--primary)}.trend-bars i.evaluation{background:#49beff}.trend-column small{margin-top:7px;color:var(--muted);font-size:9px}.trend-card .analytics-legend{margin-top:14px}.analytics-empty{display:grid;height:190px;place-items:center;color:var(--muted);font-size:12px}.quality-row{margin-top:22px}.quality-row>div:first-child{display:flex;justify-content:space-between;font-size:12px}.quality-row>div:first-child b{color:var(--primary)}.quality-row>div:last-child{height:8px;margin-top:7px;overflow:hidden;border-radius:999px;background:#edf2ff}.quality-row>div:last-child i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5d87ff,#49beff)}@media(max-width:1100px){.analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid{grid-template-columns:1fr 1fr}.trend-card{grid-column:span 2}}@media(max-width:700px){.analytics-metrics,.analytics-grid{grid-template-columns:1fr}.trend-card{grid-column:auto}.analytics-heading{align-items:flex-start;flex-direction:column}.analytics-card{min-height:auto}}@media(prefers-reduced-motion:reduce){.dashboard-shell.premium-school-shell *,.dashboard-shell.premium-school-shell *:before{transition:none!important;animation:none!important;scroll-behavior:auto!important}.dashboard-shell.premium-school-shell .sidebar nav button:hover{transform:none!important}}.app-offline body:before{position:fixed;z-index:150;inset:0 0 auto;padding:9px 16px;background:#fff3cd;color:#795800;border-bottom:1px solid #f6b51e;content:"อินเทอร์เน็ตขาดการเชื่อมต่อ · โปรดเชื่อมต่อก่อนบันทึกข้อมูล";font:600 13px/1.4 DM Sans,Noto Sans Thai,sans-serif;text-align:center}.app-offline .dashboard-shell{padding-top:38px}.app-offline .dashboard-shell .sidebar{top:38px}.dashboard-shell.premium-school-shell .loading{display:flex;align-items:center;gap:10px;min-width:150px;padding:10px 14px;border:1px solid #dbe5ff;background:#fff;color:#2a3547;box-shadow:var(--shadow-md)}.dashboard-shell.premium-school-shell .loading span{border-color:#dce5ff;border-top-color:var(--primary)}.dashboard-shell.premium-school-shell :is(button,a,input,select,textarea){transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease,transform .15s ease}.dashboard-shell.premium-school-shell button:disabled{cursor:not-allowed;opacity:.58}.dashboard-shell.premium-school-shell .result-count{min-height:20px}.dashboard-shell.premium-school-shell .table-wrap{position:relative;scrollbar-width:thin;scrollbar-color:#b9c8e8 transparent}.dashboard-shell.premium-school-shell .table-wrap:focus-within{outline:2px solid #5d87ff33;outline-offset:3px}.dashboard-shell.premium-school-shell tbody tr:focus-within{background:var(--accent)}.dashboard-shell.premium-school-shell .row-actions :is(button,a){min-height:34px}.dark .app-offline body:before,.app-offline .dark:before{background:#4b3b12;color:#ffe8a2;border-color:#816719}.dark .dashboard-shell.premium-school-shell .loading{border-color:#394d77;background:#1f2a3d;color:#e8eef8}@media(max-width:767px){.app-offline body:before{padding:7px 10px;font-size:11px}.app-offline .dashboard-shell{padding-top:34px}.app-offline .dashboard-shell .sidebar{top:34px}.dashboard-shell.premium-school-shell .table-wrap{margin-inline:-16px;padding:0 16px 10px}.dashboard-shell.premium-school-shell .table-wrap:after{position:sticky;right:8px;bottom:6px;float:right;padding:4px 8px;border-radius:999px;background:#2a3547dd;color:#fff;content:"เลื่อนเพื่อดูข้อมูล →";font-size:10px;pointer-events:none}.dashboard-shell.premium-school-shell table{min-width:720px}.dashboard-shell.premium-school-shell th{position:sticky;top:0;z-index:1}.dashboard-shell.premium-school-shell td,.dashboard-shell.premium-school-shell th{padding:11px 10px}.dashboard-shell.premium-school-shell .loading{position:fixed;right:12px;top:auto;bottom:18px}.dashboard-shell.premium-school-shell :is(.toolbar-actions button,.primary-action,.import-button){min-height:44px}}.system-health-page{grid-column:1/-1;margin-top:24px}.health-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border:1px solid #13deb94d;border-radius:10px;background:linear-gradient(135deg,#edfbf7,#f8fffd);color:#22564c}.health-hero.warning{border-color:#f6b51e66;background:linear-gradient(135deg,#fff9ea,#fffdf8);color:#765817}.health-hero.critical{border-color:#ef444466;background:linear-gradient(135deg,#fff1f2,snow);color:#8f2d35}.health-hero>div{display:flex;align-items:center;gap:16px}.health-hero small{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.health-hero h2{margin:2px 0 3px;font-size:22px}.health-hero p{margin:0;opacity:.78;font-size:12px}.health-hero button,.health-error button{border:0;border-radius:6px;padding:9px 15px;background:#5d87ff;color:#fff;font:inherit;font-weight:600}.health-pulse{position:relative;width:20px;height:20px;border:6px solid #13deb930;border-radius:50%;background:#13deb9}.health-pulse:after{position:absolute;inset:-6px;border:2px solid currentColor;border-radius:50%;content:""}.warning .health-pulse{border-color:#f6b51e30;background:#f6b51e}.critical .health-pulse{border-color:#ef444430;background:#ef4444}.health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.health-card{position:relative;min-height:180px}.health-card h3{margin:12px 0 6px;font-size:15px}.health-card>strong{display:block;color:var(--foreground);font-size:23px}.health-card p{margin:8px 0 0;color:var(--muted-foreground);font-size:12px}.health-state{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:700}.health-state.ok{background:#13deb91c;color:#15977f}.health-state.warn{background:#f6b51e1f;color:#946600}.health-state.bad{background:#ef44441c;color:#c53333}.health-records{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);align-items:center;gap:28px;margin-top:16px}.health-records h2{margin:4px 0}.health-records p{margin:0;color:var(--muted-foreground);font-size:12px}.health-record-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.health-record-grid>div{padding:14px 10px;border-radius:8px;background:var(--accent);text-align:center}.health-record-grid strong{display:block;color:var(--primary);font-size:22px}.health-record-grid span{display:block;margin-top:4px;color:var(--muted-foreground);font-size:10px}.health-error,.health-loading{margin-top:24px}.dark .health-hero{border-color:#275c54;background:linear-gradient(135deg,#193a35,#182d2b);color:#bceadd}.dark .health-hero.warning{border-color:#66552f;background:linear-gradient(135deg,#3b3220,#2e2a20);color:#f3cc72}.dark .health-hero.critical{border-color:#70353a;background:linear-gradient(135deg,#42272b,#322328);color:#ffb4ba}@media(max-width:900px){.health-grid,.health-records{grid-template-columns:1fr}.health-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.health-hero{align-items:flex-start;flex-direction:column}.health-hero button{width:100%}.health-record-grid{grid-template-columns:1fr 1fr}}.report-center{margin-top:24px}.report-center-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.report-center-head h2{margin:4px 0;font-size:24px}.report-center-head p{margin:0;color:var(--muted-foreground);font-size:13px}.report-center-actions{display:flex;gap:8px}.report-center-actions button{border:1px solid var(--border);border-radius:6px;padding:9px 14px;background:var(--card);color:var(--foreground);font:inherit;font-size:13px;font-weight:600}.report-center-actions button.primary{border-color:var(--primary);background:var(--primary);color:#fff}.report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-summary-grid article{display:flex;min-height:132px;justify-content:center;flex-direction:column;padding:20px;border:1px solid var(--border);border-radius:7px;background:var(--card);box-shadow:var(--shadow-md)}.report-summary-grid span{color:var(--muted-foreground);font-size:12px}.report-summary-grid strong{margin:6px 0;color:var(--primary);font-size:28px}.report-summary-grid small{color:var(--muted-foreground);font-size:11px}.report-detail-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:12px;margin-top:12px}.report-detail-grid h3{margin:0 0 18px;font-size:16px}.report-progress{margin-top:14px}.report-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:12px}.report-progress>div:first-child b{color:var(--foreground)}.report-progress>div:last-child{height:7px;margin-top:7px;overflow:hidden;border-radius:999px;background:var(--accent)}.report-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#49beff)}.report-project-card dl{margin:0}.report-project-card dl>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.report-project-card dt{color:var(--muted-foreground);font-size:12px}.report-project-card dd{margin:0;color:var(--foreground);font-size:13px;font-weight:700}.report-project-card p{margin:18px 0 0;color:var(--muted-foreground);font-size:11px}@media(max-width:900px){.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-detail-grid{grid-template-columns:1fr}}@media(max-width:600px){.report-center-head{align-items:flex-start;flex-direction:column}.report-center-actions{width:100%}.report-center-actions button{flex:1}.report-summary-grid{grid-template-columns:1fr}}@media print{.printing-report-center body *{visibility:hidden!important}.printing-report-center .report-center,.printing-report-center .report-center *{visibility:visible!important}.printing-report-center .report-center{position:absolute;inset:0;width:100%;margin:0;padding:18mm;background:#fff;color:#111}.printing-report-center .report-center-actions{display:none}.printing-report-center .report-summary-grid{grid-template-columns:repeat(4,1fr)}.printing-report-center .report-detail-grid{grid-template-columns:1.2fr .8fr}.printing-report-center .panel,.printing-report-center .report-summary-grid article{box-shadow:none}}@page{size:A4 portrait;margin:12mm}@media print{.printing-report-center body{margin:0;background:#fff!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.printing-report-center .report-center{position:absolute;inset:0;width:auto;min-height:0;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}.printing-report-center .report-center-head{align-items:flex-start;margin-bottom:8mm;padding-bottom:5mm;border-bottom:2px solid #5d87ff}.printing-report-center .report-center-head h2{margin:2mm 0 1mm;color:#172b4d;font-size:20pt;line-height:1.25}.printing-report-center .report-center-head p{margin:0;color:#475467;font-size:9.5pt}.printing-report-center .section-kicker{color:#5d87ff!important;font-size:8pt;letter-spacing:.12em}.printing-report-center .report-summary-grid{grid-template-columns:repeat(4,1fr);gap:3mm;margin-bottom:5mm}.printing-report-center .report-summary-grid article{min-height:0;padding:4mm;border:1px solid #dfe5ef!important;border-radius:3mm!important;background:#f8faff!important;break-inside:avoid;page-break-inside:avoid}.printing-report-center .report-summary-grid strong{font-size:17pt;color:#172b4d!important}.printing-report-center .report-summary-grid span,.printing-report-center .report-summary-grid small{font-size:8pt;color:#667085!important}.printing-report-center .report-detail-grid{grid-template-columns:1.2fr .8fr;gap:4mm}.printing-report-center .report-detail-grid>*{break-inside:avoid;page-break-inside:avoid}.printing-report-center table{width:100%;border-collapse:collapse;font-size:8.5pt}.printing-report-center thead{display:table-header-group}.printing-report-center tr{break-inside:avoid;page-break-inside:avoid}.printing-report-center th,.printing-report-center td{padding:2.2mm 2.5mm;border-bottom:1px solid #dfe5ef;color:#111!important}.printing-report-center th{background:#eef4ff!important;color:#172b4d!important;font-weight:700}.printing-report-center a{color:#111!important;text-decoration:none}.printing-report-center .report-center-actions,.printing-report-center button,.printing-report-center [role=button]{display:none!important}}.project-batch-form{text-align:left;color:#2a3547;max-height:68vh;overflow:auto;padding:4px 8px 12px}.project-batch-form h3{font:600 18px/1.4 DM Sans,Noto Sans Thai,sans-serif;margin:0}.batch-project-section,.batch-activities-section{border:1px solid #e5e5e5;border-radius:10px;padding:20px;background:#fff}.batch-activities-section{margin-top:16px}.batch-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-top:14px}.batch-project-grid label{font-size:14px;font-weight:600}.batch-project-grid .swal2-input,.batch-project-grid .swal2-select,.batch-project-grid .swal2-textarea{width:100%;margin:6px 0 0}.batch-wide{grid-column:1/-1}.batch-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.batch-section-heading p{margin:3px 0 0;color:#5a6a85;font-size:13px}.batch-actions{display:flex;gap:8px}.batch-actions button{border:0;border-radius:6px;padding:8px 12px;background:#edf2ff;color:#456fdf;font-weight:600;cursor:pointer}.batch-column-head,.batch-activity-row{display:grid;grid-template-columns:32px 70px minmax(190px,1.25fr) 120px minmax(170px,1fr) minmax(160px,1fr) 34px;gap:8px;align-items:center}.batch-column-head{padding:0 4px 6px;color:#5a6a85;font-size:12px;font-weight:600}.batch-activity-row{padding:6px 4px;border-top:1px solid #edf0f3}.batch-activity-row .swal2-input,.batch-activity-row .swal2-select{width:100%;height:40px;margin:0;padding:7px 9px;font-size:13px}.batch-row-number{text-align:center;color:#5a6a85;font-weight:600}.batch-remove{width:30px;height:30px;border:0;border-radius:50%;background:#fff0f0;color:#d04444;font-size:20px;cursor:pointer}.batch-total{position:sticky;bottom:-12px;display:flex;justify-content:flex-end;gap:24px;margin:12px -8px -12px;padding:12px 16px;border-top:1px solid #e5e5e5;background:#f8faff;font-size:14px}.batch-total b{color:#5d87ff}.batch-total .over-budget{color:#d04444;font-weight:700}.dark .project-batch-form{color:#e8eef8}.dark .batch-project-section,.dark .batch-activities-section{background:#1f2a3d;border-color:#3a4659}.dark .batch-section-heading p,.dark .batch-column-head,.dark .batch-row-number{color:#aab7ca}.dark .batch-activity-row,.dark .batch-total{border-color:#3a4659}.dark .batch-total{background:#182236}@media(max-width:900px){.batch-column-head{display:none}.batch-activity-row{grid-template-columns:28px 60px 1fr 100px 32px}.batch-owner,.batch-description{grid-column:3/5}.batch-project-grid{grid-template-columns:1fr}.batch-wide{grid-column:auto}.batch-section-heading{flex-direction:column}.batch-total{flex-wrap:wrap;justify-content:flex-start;gap:8px 16px}}.academic-period-selector{display:flex;align-items:center;width:300px;height:48px;box-sizing:border-box;overflow:hidden;padding:5px 10px 5px 7px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:13px;background:color-mix(in srgb,var(--card) 96%,var(--primary) 4%);box-shadow:0 5px 16px #2a35470b;color:var(--card-foreground);white-space:nowrap;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.academic-period-selector:hover{border-color:color-mix(in srgb,var(--primary) 34%,var(--border));box-shadow:0 8px 22px #5d87ff17;transform:translateY(-1px)}.academic-period-icon{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;margin-right:5px;border-radius:10px;background:linear-gradient(145deg,var(--primary),#7999ff);color:#fff;box-shadow:0 5px 12px #5d87ff35}.academic-period-icon svg{width:18px;height:18px}.academic-period-selector .academic-period-field{position:static!important;display:flex!important;height:36px!important;min-width:0;flex:0 0 auto;align-items:center!important;flex-direction:row!important;gap:7px;justify-content:flex-start!important;margin:0!important;padding:0 9px!important;transform:none!important}.academic-period-selector .academic-period-field>span{position:static!important;display:inline!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;color:var(--muted-foreground);font-size:11px!important;font-weight:600;line-height:1!important;transform:none!important;white-space:nowrap}.academic-period-selector .academic-period-field select,.academic-period-selector .academic-period-field input{display:block;width:36px!important;min-width:0!important;max-width:36px!important;height:28px!important;box-sizing:border-box!important;margin:0!important;padding:0!important;border:0!important;border-radius:6px!important;background:transparent!important;color:var(--foreground)!important;font:700 15px/28px DM Sans,Noto Sans Thai,sans-serif!important;outline:0!important;box-shadow:none!important;text-align:center!important}.academic-period-field select{cursor:pointer}.academic-period-field input{appearance:textfield}.academic-period-field input::-webkit-inner-spin-button,.academic-period-field input::-webkit-outer-spin-button{margin:0;appearance:none}.academic-period-selector .academic-period-field.academic-year-field{flex:1 1 auto}.academic-period-selector .academic-period-field.academic-year-field input{width:52px!important;max-width:52px!important;text-align:left!important}.academic-period-divider{width:1px;height:24px;flex:0 0 1px;background:var(--border)}.academic-period-field:focus-within>span{color:var(--primary)}.dashboard-shell.dark .academic-period-selector{background:color-mix(in srgb,var(--card) 92%,var(--primary) 8%);border-color:var(--border);box-shadow:none}@media(max-width:1024px){.academic-period-selector{width:270px;height:44px;padding:4px 7px}.academic-period-icon{width:30px;height:30px;flex-basis:30px}.academic-period-selector .academic-period-field{gap:5px;padding-inline:7px!important}.academic-period-selector .academic-period-field>span{font-size:10px!important}}@media(max-width:640px){.academic-period-icon{display:none}.academic-period-selector{width:226px;height:40px;border-radius:10px}.academic-period-selector .academic-period-field{gap:4px;padding-inline:6px!important}.academic-period-selector .academic-period-field>span{font-size:9px!important}.academic-period-selector .academic-period-field select,.academic-period-selector .academic-period-field input{font-size:12px!important}}.global-search-trigger{width:174px;height:48px;box-sizing:border-box;justify-content:flex-start;gap:8px;padding:6px 9px!important;border:1px solid color-mix(in srgb,var(--border) 82%,transparent)!important;border-radius:13px!important;background:color-mix(in srgb,var(--card) 97%,var(--primary) 3%)!important;box-shadow:0 5px 16px #2a35470b!important;color:var(--foreground)!important;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease!important}.global-search-trigger:hover{border-color:color-mix(in srgb,var(--primary) 34%,var(--border))!important;box-shadow:0 8px 22px #5d87ff17!important;transform:translateY(-1px)}.global-search-trigger>svg{width:34px!important;height:34px!important;box-sizing:border-box;padding:8px;border-radius:10px;background:var(--accent);color:var(--primary)}.global-search-trigger>span{font-size:13px!important;font-weight:600}.global-search-trigger>kbd{margin-left:auto;padding:3px 6px!important;border:0!important;border-radius:6px!important;background:color-mix(in srgb,var(--primary) 10%,transparent)!important;color:var(--primary);font-size:9px!important;font-weight:700}.dashboard-shell.dark .global-search-trigger{background:color-mix(in srgb,var(--card) 94%,var(--primary) 6%)!important}@media(max-width:800px){.global-search-trigger{width:44px;height:44px;padding:5px!important}.global-search-trigger>svg{width:32px!important;height:32px!important}.global-search-trigger>span,.global-search-trigger>kbd{display:none}}.academic-period-selector .academic-period-save{border:0;border-radius:8px;padding:9px 12px;background:#6d80fa;color:#fff;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}.academic-period-selector .academic-period-save:disabled{opacity:.6;cursor:wait}.academic-period-field>strong{font-size:18px;color:var(--foreground,#29354a)}.academic-period-selector{width:max-content;max-width:100%;height:auto;min-height:48px;overflow:visible;gap:4px;padding:5px 8px}.academic-period-selector .academic-period-field.academic-year-field{flex:0 0 auto}.academic-period-selector .academic-period-field.academic-year-field input{flex:0 0 60px;width:60px!important;min-width:60px!important;max-width:60px!important}.academic-period-selector .academic-period-save{flex:0 0 auto}@media(max-width:640px){.academic-period-selector{width:max-content;min-height:40px;gap:2px;padding:4px}.academic-period-selector .academic-period-field{padding-inline:5px!important}.academic-period-selector .academic-period-save{padding:7px 8px;font-size:12px}}@media(hover:hover)and (pointer:fine){.dashboard-shell.premium-school-shell .sidebar nav button{will-change:transform;transition:transform .22s cubic-bezier(.2,.8,.2,1),background-color .18s ease,color .18s ease,box-shadow .18s ease!important}.dashboard-shell.premium-school-shell .sidebar nav button:hover{transform:translate(10px)!important}.dashboard-shell.premium-school-shell .sidebar nav button.active:hover{transform:translate(8px)!important}}@media(hover:hover)and (pointer:fine){.dashboard-shell.premium-school-shell .sidebar nav button{isolation:isolate;position:relative;transition:transform .28s cubic-bezier(.22,1,.36,1),background-color .2s ease,box-shadow .25s ease!important}.dashboard-shell.premium-school-shell .sidebar nav button:hover{box-shadow:0 8px 22px #5d87ff22}.dashboard-shell.premium-school-shell .sidebar nav button .nav-icon{transition:transform .3s cubic-bezier(.22,1,.36,1)!important}.dashboard-shell.premium-school-shell .sidebar nav button:hover .nav-icon{transform:rotate(-7deg) scale(1.12)}.dashboard-shell.premium-school-shell .sidebar nav button:active{transform:translate(6px) scale(.98)!important}.dashboard-shell.premium-school-shell .content-controls :is(.academic-period-selector,.global-search-trigger,.theme-toggle){transition:transform .25s cubic-bezier(.22,1,.36,1),border-color .2s ease,box-shadow .25s ease!important}.dashboard-shell.premium-school-shell .content-controls :is(.academic-period-selector,.global-search-trigger,.theme-toggle):hover{transform:translateY(-3px);box-shadow:0 8px 22px #5d87ff22!important}.dashboard-shell.premium-school-shell .content-controls :is(.global-search-trigger,.theme-toggle):active{transform:translateY(0) scale(.96)}.academic-period-icon svg,.global-search-trigger>svg,.theme-toggle .theme-icon{transition:transform .3s cubic-bezier(.22,1,.36,1)!important}.academic-period-selector:hover .academic-period-icon svg{transform:rotate(-9deg) scale(1.08)}.global-search-trigger:hover>svg{transform:rotate(-8deg) scale(1.06)}.theme-toggle:hover .theme-icon{transform:rotate(18deg)}}.dashboard-shell.premium-school-shell .academic-period-selector:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #5d87ff18}@media(prefers-reduced-motion:reduce){.dashboard-shell.premium-school-shell .sidebar nav button .nav-icon,.academic-period-icon svg,.global-search-trigger>svg,.theme-toggle .theme-icon{transition:none!important;transform:none!important}}.dashboard-shell .content-heading{flex-wrap:wrap;gap:24px}.dashboard-shell .content-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;max-width:100%;margin-left:auto}.dashboard-shell .content-controls .academic-period-selector{height:48px!important;min-height:48px!important;flex-shrink:0;padding:6px 10px!important;box-sizing:border-box}.dashboard-shell .academic-period-field{align-items:center!important;min-width:0;overflow:visible!important}.dashboard-shell .academic-period-field>span{position:static!important;line-height:20px!important;white-space:nowrap;transform:none!important}.dashboard-shell .content-controls .theme-toggle,.dashboard-shell .content-controls .notification-trigger{width:48px!important;height:48px!important;min-height:48px!important;border-radius:13px!important;box-sizing:border-box;flex-shrink:0}.period-data-note{font-size:13px;line-height:1.6;color:var(--muted-foreground);margin:16px 0}.academic-period-control{width:300px;max-width:100%;flex-shrink:0}.dashboard-shell .academic-period-control .academic-period-selector{width:100%!important}.academic-period-error{display:block;color:var(--destructive);font-size:12px;line-height:1.5;margin-top:4px}.dashboard-shell .academic-period-selector input[aria-invalid=true]{color:var(--destructive)!important;outline:1px solid var(--destructive)!important;border-radius:4px}@media(max-width:800px){.academic-period-control{flex:1;min-width:210px;max-width:320px}}@media(max-width:400px){.academic-period-control{flex-basis:100%;max-width:none}}@media(max-width:800px){.dashboard-shell .content-controls{width:100%;justify-content:flex-start;gap:8px}.dashboard-shell .content-controls .academic-period-selector{flex:1;min-width:210px;max-width:320px}.dashboard-shell .content-controls .global-search-trigger{height:48px!important;width:48px!important}}@media(max-width:400px){.dashboard-shell .content-controls .academic-period-selector{flex-basis:100%;max-width:none}.dashboard-shell .content-controls{justify-content:flex-end}}.period-scope{margin:0 0 16px;padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.period-scope-options{display:flex;flex-wrap:wrap;gap:8px}.period-scope-options button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:8px 12px;background:var(--card);color:var(--foreground);font:inherit;font-size:13px}.period-scope-options button[aria-pressed=true]{border-color:var(--primary);background:var(--accent);color:var(--primary)}.period-scope-options button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.period-scope-options span{padding:0 6px;border-radius:4px;background:var(--accent);font-variant-numeric:tabular-nums}.period-scope p{margin:8px 0 0;font-size:12px;line-height:1.7;color:var(--muted-foreground)}.dashboard-load-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:16px;border:1px solid #f6b51e80;border-radius:10px;background:color-mix(in srgb,var(--card) 94%,#f6b51e 6%);color:var(--foreground)}.dashboard-load-status strong{font-size:15px}.dashboard-load-status p{margin:4px 0;font-size:14px;line-height:1.6}.dashboard-load-status small{font-size:12px;line-height:1.7;color:var(--muted-foreground)}.dashboard-load-status button{flex-shrink:0;padding:8px 16px;border:0;border-radius:6px;background:var(--primary);color:#fff;font:inherit;font-size:14px}.dashboard-load-status button:disabled{opacity:.6}.dashboard-load-status button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media(max-width:600px){.dashboard-load-status{align-items:flex-start;flex-direction:column}}.unsaved-warning{margin:16px 24px;padding:16px;border:1px solid #f6b51e80;border-radius:8px;background:#fff8e8;color:#2a3547;text-align:left}.unsaved-warning p{font-size:15px;line-height:1.6;margin:0 0 12px}.unsaved-warning button{padding:8px 12px;border:1px solid #e5e5e5;border-radius:6px;background:#fff;color:#2a3547;font:inherit;margin:0 8px 4px 0}.unsaved-warning button.discard{color:#b42318}.unsaved-warning button:focus-visible{outline:2px solid #5d87ff;outline-offset:3px}.notification-target-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:16px;background:var(--accent);border:1px solid var(--primary);border-radius:10px;color:var(--foreground)}.notification-target-notice strong{font-size:15px}.notification-target-notice p{margin:4px 0 0;font-size:13px;line-height:1.7}.notification-target-notice button{padding:8px 12px;border:1px solid var(--primary);border-radius:6px;background:var(--card);color:var(--primary);font:inherit;font-size:13px;margin-left:8px}.notification-target-row td{background:var(--accent)!important}.notification-target-row td:first-child{box-shadow:inset 3px 0 var(--primary)}.notification-target-row:focus{outline:2px solid var(--primary);outline-offset:-2px}@media(max-width:600px){.notification-target-notice{flex-direction:column;align-items:flex-start}.notification-target-notice button{margin:0 8px 0 0}}body:has(.dashboard-shell.dark) .swal2-popup{background:#20283a;color:#e8eef8;border:1px solid #364158}body:has(.dashboard-shell.dark) .swal2-title,body:has(.dashboard-shell.dark) .swal2-html-container{color:#e8eef8}body:has(.dashboard-shell.dark) .swal2-html-container :is(label,p,small){color:#c3cddd}body:has(.dashboard-shell.dark) .swal2-html-container :is(input,select,textarea){background:#171e2c;color:#e8eef8;border-color:#46536b;color-scheme:dark}body:has(.dashboard-shell.dark) .swal2-html-container input::placeholder,body:has(.dashboard-shell.dark) .swal2-html-container textarea::placeholder{color:#aab8cd}body:has(.dashboard-shell.dark) .import-preview-table th{background:#20283a}@media(max-width:767px){.dashboard-shell.premium-school-shell .responsive-table{margin-inline:0;padding:0;width:100%;overflow:visible}.dashboard-shell.premium-school-shell .responsive-table table{min-width:0;width:100%}.dashboard-shell.premium-school-shell .responsive-table:after{display:none}.dashboard-shell.premium-school-shell .responsive-table .row-actions :is(button,a){min-height:44px}.dashboard-shell.premium-school-shell .responsive-table td{white-space:normal}}@media(max-width:640px){.dashboard-shell .notification-popover{position:fixed!important;left:12px!important;right:12px!important;top:min(232px,28dvh)!important;bottom:auto;width:auto!important;max-width:none!important;max-height:calc(72dvh - 16px);overflow:auto!important;box-sizing:border-box}.dashboard-shell .notification-list{max-height:none}.dashboard-shell .academic-period-selector{min-height:48px;height:48px}.dashboard-shell .academic-period-selector .academic-period-field>span{font-size:12px!important;line-height:20px!important}.dashboard-shell .academic-period-selector .academic-period-field select,.dashboard-shell .academic-period-selector .academic-period-field input{font-size:16px!important;height:36px!important;line-height:36px!important}.dashboard-shell .academic-period-selector .academic-period-field{height:40px!important}}.table-panel .list-toolbar .search-table-control input.search{padding-left:42px;padding-right:36px}.table-panel .search-table-control>span[aria-hidden=true]{left:14px;pointer-events:none}.table-panel .list-toolbar{justify-content:flex-start;gap:14px;align-items:center}.table-panel .list-toolbar>.search-table-control{flex:1 1 280px;max-width:420px;min-width:240px}.table-panel .list-toolbar>.toolbar-actions{flex:1 0 100%;margin-left:0;padding-top:12px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.table-panel .list-toolbar>.date-range-filter{gap:8px}.table-panel .list-toolbar>.clear-filters{display:inline-flex;align-items:center;gap:10px}@media(max-width:767px){.table-panel .list-toolbar{gap:12px}.table-panel .list-toolbar>.search-table-control{max-width:none;min-width:0}.table-panel .list-toolbar>.toolbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.table-panel .list-toolbar{gap:10px}.table-panel .list-toolbar>.search-table-control{flex:1 1 160px;min-width:150px;max-width:260px}.table-panel .list-toolbar>.search-table-control .search{font-size:14px}.table-panel .list-toolbar>select{width:auto;min-width:0;max-width:155px;font-size:13px;padding:8px 10px}.table-panel .list-toolbar>.date-range-filter{flex:0 1 280px;gap:5px;padding:4px 7px}.table-panel .date-range-filter label{min-width:0;gap:4px;font-size:11px}.table-panel .date-range-filter input{width:104px;min-width:0;padding:6px;font-size:12px}.table-panel .list-toolbar>.academic-period-filter{flex:0 1 auto;gap:4px;font-size:11px;padding:3px 5px}.table-panel .academic-period-filter select{min-width:0;padding:4px 18px 4px 4px;font-size:12px}.table-panel .academic-period-filter button{padding:6px 8px;font-size:11px}.table-panel .list-toolbar>.date-preset-filter{max-width:135px;font-size:13px}.table-panel .list-toolbar>.clear-filters{padding:8px 10px;font-size:12px}}.dashboard-shell .academic-period-selector{width:auto!important;min-width:0;max-width:none;flex:0 0 auto;padding:5px 14px 5px 8px!important;gap:3px;box-sizing:border-box;overflow:hidden}.dashboard-shell .academic-period-selector .academic-period-save{position:static;flex:0 0 auto;margin:0 0 0 3px!important;padding:8px 11px!important;box-sizing:border-box}.dashboard-shell .academic-period-selector .academic-year-field{flex:0 0 auto!important;padding-right:5px!important}.dashboard-shell .content-controls .academic-period-control{width:max-content;max-width:100%}.dashboard-shell .content-controls .academic-period-control .academic-period-selector{width:max-content!important;max-width:100%;padding:5px 14px 5px 8px!important}.date-range-filter .filter-calendar-control{position:relative;display:inline-flex;align-items:center;min-width:0}.table-panel .date-range-filter .filter-calendar-control input{width:138px;padding-right:30px;cursor:pointer;color-scheme:light}.filter-calendar-control input::-webkit-calendar-picker-indicator{display:none}.table-panel .date-range-filter .filter-calendar-control button{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:25px;height:28px;padding:3px;border:0;border-radius:5px;background:transparent;color:var(--primary);cursor:pointer;display:grid;place-items:center}.filter-calendar-control button svg{width:19px;height:19px}.table-panel .list-toolbar>.date-range-filter{flex-basis:310px}@media(max-width:767px){.table-panel .date-range-filter .filter-calendar-control input{width:100%;min-width:0}}.dashboard-shell .content-heading .page-title-block{flex:1 0 280px;min-width:0}.dashboard-shell .content-heading .page-title-block .eyebrow{white-space:nowrap;line-height:1.5}.dashboard-shell .content-heading .page-title-block h1{line-height:1.35;word-break:normal;overflow-wrap:normal;margin:6px 0}@media(max-width:1400px){.dashboard-shell .content-heading{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:start!important;gap:16px 18px!important;margin-bottom:24px}.dashboard-shell .content-heading>.menu-toggle{grid-column:1;grid-row:1;align-self:center;margin:0}.dashboard-shell .content-heading>.page-title-block{grid-column:2;grid-row:1;width:100%;min-width:0}.dashboard-shell .content-heading>.content-controls{grid-column:1/-1;width:100%;margin:0;padding-top:16px;border-top:1px solid #e6eaf2;justify-content:flex-start;gap:10px}.dashboard-shell .content-heading .page-title-block h1{font-size:clamp(22px,2.6vw,28px)!important}.dashboard-shell .content-heading .page-title-block p{max-width:100%;white-space:normal!important;line-height:1.65;margin:0;font-size:14px}.dashboard-shell .content-heading .page-title-block .eyebrow{font-size:11px!important;letter-spacing:.1em}.dashboard-shell.dark .content-heading>.content-controls{border-color:#2a3c50}}@media(max-width:600px){.dashboard-shell .content-heading{gap:14px 12px!important}.dashboard-shell .content-heading>.content-controls{flex-wrap:wrap}.dashboard-shell .content-heading .content-controls .academic-period-control{flex-basis:100%;width:100%;max-width:100%}.dashboard-shell .content-heading .page-title-block h1{font-size:21px!important}.dashboard-shell .content-heading .page-title-block .eyebrow{font-size:9px!important;letter-spacing:.06em}}
