/* Teacher Dashboard PRO — independent local visual layer, no third party assets */
.teacher-pro{--ink:#162544;--muted:#75829a;--border:#e7edf5;--purple:#805dd6;--blue:#347de9;--rose:#ec7dbb;--teal:#20a99d;background:#f5f7fc;color:var(--ink);font-family:"Segoe UI",Tahoma,system-ui,sans-serif;line-height:1.6}
.teacher-pro [hidden]{display:none!important}.teacher-pro a{text-decoration:none}.teacher-pro button,.teacher-pro input,.teacher-pro select{font:inherit}.teacher-pro button{cursor:pointer}.teacher-pro button:disabled{cursor:not-allowed;opacity:.5}.teacher-pro :is(button,a,input,select):focus-visible{outline:3px solid #f9b84e;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.logo-mark{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#73b2ff,#8363dd 54%,#ef8fc4);box-shadow:0 9px 23px #5262b840;color:#fff;font-size:27px;flex:0 0 auto}
.dash-notice{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:100;max-width:min(520px,90vw);width:max-content;padding:14px 22px;border:1px solid #efcf99;background:#fff6e3;color:#755021;border-radius:13px;box-shadow:0 15px 40px #151e3440;text-align:center;font-size:.9rem}
/* Teacher sign-in */
.auth-scene{min-height:100vh;display:grid;place-items:center;padding:30px 22px;background:radial-gradient(circle at 0 85%,#cadcfc 0,transparent 38%),radial-gradient(circle at 88% 6%,#e7d5fb 0,transparent 31%),#f4f7fe}
.auth-frame{width:min(1100px,100%)}.auth-identity{display:flex;gap:13px;align-items:center;margin-bottom:25px}.auth-identity strong,.side-brand strong{display:block;font-size:1.04rem;font-weight:800}.auth-identity small,.side-brand small{display:block;color:#8590a5;font-size:.73rem;letter-spacing:.3px}
.auth-grid{min-height:590px;border-radius:30px;overflow:hidden;background:white;box-shadow:0 24px 80px #27365320;display:grid;grid-template-columns:1fr 1fr}
.auth-story{background:radial-gradient(circle at 0 100%,#424c9c 0,transparent 45%),linear-gradient(135deg,#182449,#233d78 57%,#6b5caf);color:white;padding:57px 48px;position:relative;overflow:hidden;display:flex;flex-direction:column}
.auth-story:after{content:"";width:360px;height:360px;border:1px solid #ffffff22;border-radius:100%;position:absolute;left:-160px;bottom:-160px}
.eyebrow-light{display:inline-block;border:1px solid #ffffff38;background:#ffffff14;color:#d8e6ff;border-radius:24px;padding:5px 12px;font-size:.78rem;width:max-content}
.auth-story h1{font-size:clamp(2rem,3.1vw,2.9rem);letter-spacing:-1px;line-height:1.45;margin:22px 0 12px;font-weight:850}.auth-story h1 em{font-style:normal;color:#b5e6ff}.auth-story p{color:#d7dff4;max-width:380px;line-height:1.9}.auth-pill{margin-top:auto;position:relative;z-index:2;align-self:flex-start;padding:9px 13px;border-radius:12px;background:#ffffff12;font-size:.76rem;color:#e5e8ff}
.auth-illustration{position:relative;height:225px;max-width:420px;margin:16px auto}.illustration-orbit{position:absolute;width:170px;height:170px;right:25%;top:17px;border:2px dashed #c8dcff66;border-radius:50%;box-shadow:0 0 0 24px #ffffff0b,0 0 0 60px #ffffff06}.illustration-book{position:absolute;right:38%;top:58px;font-size:92px;line-height:1;color:#c9eaff;text-shadow:0 10px 35px #90b7ff85;transform:rotate(-12deg)}.illustration-star{position:absolute;color:#ffdd8a;font-size:32px}.illustration-star.s1{right:23%;top:12px}.illustration-star.s2{left:12%;top:90px}.illustration-chart{position:absolute;left:6%;bottom:6px;display:flex;align-items:end;gap:6px;padding:14px 15px;border:1px solid #ffffff55;border-radius:18px;background:#fff2;backdrop-filter:blur(8px)}.illustration-chart i{display:block;width:16px;border-radius:6px 6px 3px 3px;background:#99e7e2}.illustration-chart i:nth-child(1){height:27px}.illustration-chart i:nth-child(2){height:45px}.illustration-chart i:nth-child(3){height:34px}.illustration-chart i:nth-child(4){height:65px}
.auth-card{padding:70px clamp(25px,5vw,75px);display:flex;flex-direction:column;justify-content:center}.login-top-icon{width:55px;height:55px;display:grid;place-items:center;font-size:24px;background:#eef2ff;color:#6b69cd;border-radius:17px;margin-bottom:28px}.mini-label{color:#7569cc;font-size:.81rem;font-weight:800}.auth-card h2{font-size:clamp(1.35rem,2.3vw,1.88rem);margin:7px 0;font-weight:850}.auth-card>p{color:#7a879b;font-size:.88rem;line-height:1.85;max-width:360px;margin-bottom:26px}.pro-login-form{display:grid;gap:14px}.pro-login-form label{font-size:.88rem;font-weight:700}.secret-field{display:flex;align-items:center;gap:6px;border:1px solid #dfe5ef;border-radius:13px;min-height:52px;padding:5px 10px;background:#fafbff}.secret-field:focus-within{border-color:#8b88de;box-shadow:0 0 0 3px #877bd327}.secret-field input{min-width:0;flex:1;background:transparent;border:none;outline:none!important;letter-spacing:1px;padding:8px}.secret-field button{border:0;background:#eaf0fb;color:#415374;padding:8px 12px;border-radius:9px;font-size:.79rem}.login-foot{border-top:1px solid #ecf0f5;color:#7b8799;font-size:.75rem;margin-top:28px;padding-top:20px}.login-foot span{color:#2ca99b;margin-left:6px}.back-link{display:inline-block;margin-top:20px;color:#6e65c6;font-size:.86rem}
/* Sidebar + main */
.dashboard-layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.dashboard-sidebar{background:#121f3e;color:#f3f7ff;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:0;padding:28px 17px}.side-brand{display:flex;align-items:center;gap:12px;margin:0 6px 48px}.side-brand small{color:#a4afc5}.side-label{font-size:.68rem;letter-spacing:.2px;color:#7f93bc;padding:0 17px;margin-bottom:14px}.side-nav{display:grid;gap:7px}.side-link{padding:12px 15px;border-radius:13px;color:#c0cee6;display:flex;align-items:center;gap:12px;font-size:.9rem;font-weight:650;transition:background .16s}.side-link:hover,.side-link.is-current{background:#ffffff16;color:white}.side-link.is-current{box-shadow:inset -3px 0 0 #8dd4fd}.side-icon{font-size:20px;display:grid;place-items:center;min-width:23px;color:#92baf1}.sidebar-bottom{margin-top:auto}.sidebar-note{display:flex;gap:10px;align-items:flex-start;background:#ffffff12;border:1px solid #ffffff16;border-radius:15px;padding:14px 11px}.sidebar-note>span{color:#e5cb78;font-size:23px}.sidebar-note strong{display:block;font-size:.83rem}.sidebar-note small{display:block;color:#b3bed1;font-size:.7rem;line-height:1.7}.side-external{color:#b4c8ed;display:flex;justify-content:space-between;padding:19px 10px 0;font-size:.82rem}
.dashboard-workspace{min-width:0}.dashboard-topbar{height:76px;background:#ffffffed;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 clamp(20px,3.3vw,52px)}.crumbs{font-size:.83rem;color:#7e8b9d;display:flex;align-items:center;gap:13px}.crumbs strong{color:#263956}.crumb-sep{color:#bac7d8}.top-actions{display:flex;align-items:center;gap:10px}.top-privacy{color:#5ca89f;background:#e9faf5;padding:6px 11px;border-radius:10px;font-size:.74rem;font-weight:700}.pro-btn{display:inline-flex;gap:9px;align-items:center;justify-content:center;border-radius:11px;font-size:.82rem;font-weight:750;min-height:40px;padding:9px 16px;border:1px solid transparent;white-space:nowrap}.pro-btn-primary{background:linear-gradient(115deg,#526fe4,#8b5dcf);color:white;box-shadow:0 8px 18px #6c6bdc29}.pro-btn-primary:hover{filter:brightness(1.04)}.pro-btn-outline{background:white;border-color:#dbe3ef;color:#38496a}.pro-btn-light{background:#f0f3f9;color:#65748f}.pro-btn-text{color:#6a6aba;background:transparent}.full{width:100%}
.dashboard-content{max-width:1460px;margin:auto;padding:34px clamp(18px,3.3vw,50px) 22px}.dashboard-intro{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px}.kicker{color:#6779a7;font-size:.76rem;font-weight:750}.kicker span{color:#cbd5e8;padding:0 5px}.dashboard-intro h1{font-size:clamp(1.4rem,2.4vw,1.95rem);letter-spacing:-.6px;margin:5px 0 0}.dashboard-intro h1 span#teacherName{color:#4d6ac1}.wave{color:#edb661}.dashboard-intro p{font-size:.86rem;color:#76869b;margin:4px 0 0}.updated-chip{background:white;padding:10px 13px;border:1px solid var(--border);border-radius:12px;color:#7e8a9e;font-size:.72rem;white-space:nowrap}.updated-chip strong{color:#384d70;margin-right:6px}
.intro-banner{min-height:213px;border-radius:22px;background:radial-gradient(circle at 3% 100%,#644cba 0,transparent 42%),linear-gradient(112deg,#182853,#325197 64%,#5b71b9);color:white;display:flex;justify-content:space-between;gap:16px;padding:30px 40px;overflow:hidden;position:relative;box-shadow:0 14px 33px #1d397e28}.banner-tag{font-size:.68rem;font-weight:750;color:#d2e1ff;background:#ffffff21;padding:5px 11px;border-radius:24px}.intro-banner h2{font-size:clamp(1.2rem,2vw,1.7rem);margin:11px 0 5px;line-height:1.45}.intro-banner p{font-size:.8rem;max-width:465px;color:#d6e5ff;margin:7px 0}.banner-graphic{min-width:240px;position:relative;flex:0 0 31%}.banner-ring{position:absolute;width:200px;height:200px;border-radius:50%;border:1px solid #ffffff4a;top:-40px;left:5%;box-shadow:0 0 0 27px #ffffff0b,0 0 0 60px #ffffff09}.graphic-glow{position:absolute;bottom:-40px;right:30%;width:180px;height:150px;background:#b99afc55;filter:blur(42px);border-radius:50%}.floating-card{position:absolute;z-index:2;background:#ffffffef;color:#2a4c85;display:flex;gap:10px;align-items:center;border:1px solid white;box-shadow:0 20px 30px #13245031;border-radius:16px;padding:12px 14px;transform:rotate(-9deg)}.floating-card span{font-size:20px;color:#7660c8}.floating-card.card-one{top:15px;right:11%;height:68px}.floating-card i{width:30px;height:9px;background:#d9e5fd;border-radius:10px}.floating-card i:last-child{width:16px;background:#88d9d0}.floating-card.card-two{bottom:0;left:9%;transform:rotate(9deg)}.floating-card b{font-size:1.35rem}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin:32px 0 16px}.section-heading h2,.card-heading h2,.table-heading h2,.create-copy h2{font-size:1.06rem;margin:3px 0 0;font-weight:850;letter-spacing:-.2px}.section-eyebrow{font-size:.72rem;color:#8a98ae;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.metric-card{background:white;border:1px solid var(--border);border-radius:18px;padding:19px 19px 16px;box-shadow:0 8px 25px #1e3d6e08}.metric-icon{height:38px;width:38px;border-radius:12px;display:grid;place-items:center;font-size:22px;margin-bottom:15px}.icon-blue{background:#ebf3ff;color:#4b86ed}.icon-purple{background:#f0eafd;color:#8e69d2}.icon-teal{background:#e5f7f3;color:#26a89c}.icon-orange{background:#fff4e3;color:#e09b37}.metric-caption{font-size:.76rem;color:#6c7a94}.metric-value{font-size:clamp(1.42rem,2.4vw,2.05rem);font-weight:850;letter-spacing:-1px;color:#1d3051;line-height:1.5}.metric-foot{color:#9ba5b7;font-size:.67rem}
.analytics-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:17px;margin-top:20px}.analytics-card{background:white;border:1px solid var(--border);border-radius:18px;padding:24px;min-width:0;box-shadow:0 8px 25px #1e3d6e08}.card-heading{display:flex;align-items:start;justify-content:space-between;margin-bottom:18px}.chart-symbol{border:1px solid #e6eaf6;border-radius:10px;background:#f9faff;color:#7e8bbc;padding:5px 10px;font-size:1.1rem}.grade-chart{height:175px;display:flex;align-items:end;justify-content:space-around;gap:12px;padding:12px 8px 0;border-bottom:1px solid #dce4f1;background:repeating-linear-gradient(to top,transparent 0,transparent 42px,#e6ebf244 43px,#e6ebf244 44px)}.grade-column{flex:1;max-width:60px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;position:relative}.grade-column .bar-value{font-size:.67rem;color:#6e7b9b;font-weight:800}.grade-column .bar-visual{background:linear-gradient(180deg,#7766db,#83b4ee);width:70%;min-height:3px;border-radius:7px 7px 0 0;transition:height .2s}.grade-column .bar-label{font-size:.67rem;color:#8290a6;position:absolute;bottom:-24px;white-space:nowrap}.chart-footnote{font-size:.68rem;color:#a0a9b9;margin-top:34px}
.ring-summary{display:flex;align-items:center;justify-content:center;gap:36px;min-height:158px}.ring-chart{--ratio:0%;width:152px;height:152px;border-radius:50%;background:conic-gradient(#5385e8 0 var(--ratio),#e99acb var(--ratio) 100%);display:grid;place-content:center;text-align:center;position:relative;isolation:isolate;flex:0 0 auto}.ring-chart:before{content:"";position:absolute;inset:22px;border-radius:50%;background:white;z-index:-1}.ring-chart span{font-size:1.8rem;font-weight:850;line-height:1.3}.ring-chart small{font-size:.69rem;color:#8590a5}.ring-legend{display:grid;gap:15px;min-width:130px}.ring-legend>div{display:flex;align-items:center;gap:10px;font-size:.8rem;color:#8390a2}.ring-legend strong{margin-right:auto;color:#263b5c}.legend-dot{width:10px;height:10px;display:inline-block;border-radius:3px}.boys-dot{background:#5385e8}.girls-dot{background:#e99acb}.progress-snapshot{border-top:1px solid #eef1f7;margin-top:12px;padding-top:15px;display:grid;grid-template-columns:1fr auto;gap:6px;font-size:.75rem;color:#8190a4}.progress-snapshot strong{color:#243a5f}.mini-progress{grid-column:1/-1;height:7px;background:#edf1f8;border-radius:10px;overflow:hidden}.mini-progress>span{display:block;height:100%;background:linear-gradient(90deg,#44c4ac,#70a2ed);border-radius:10px;width:0}
.students-card{border:1px solid var(--border);background:white;box-shadow:0 8px 25px #1e3d6e08;border-radius:18px;margin-top:21px;overflow:hidden}.table-heading{padding:25px 25px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px}.table-heading p{font-size:.76rem;color:#98a3b3;margin:6px 0 0}.filter-toolbar{padding:12px 25px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filter-toolbar :is(input,select),.pro-create-form :is(select,input){border:1px solid #e0e7f0;background:white;color:#334768;border-radius:10px;padding:9px 12px;min-height:41px;font-size:.77rem;outline-offset:2px}.filter-search{position:relative;min-width:225px;flex:1}.filter-search input{width:100%;padding-left:35px!important}.filter-search>span:last-child{position:absolute;left:12px;top:3px;color:#9ca8b9;font-size:25px}.filter-select select{min-width:125px}.table-meta{display:flex;justify-content:space-between;gap:14px;padding:0 25px 15px;color:#7e8da1;font-size:.71rem}.report-label{color:#9ca7b7}.pro-table-scroll{overflow:auto}.pro-table{width:100%;border-collapse:collapse;min-width:850px;font-size:.77rem}.pro-table th{padding:13px 15px;background:#f8faff;color:#8190aa;font-weight:800;border-top:1px solid #eff2f7;border-bottom:1px solid #eff2f7;white-space:nowrap}.pro-table td{padding:14px 15px;border-bottom:1px solid #f0f3f8;color:#53617c}.pro-table tr:last-child td{border-bottom:0}.pro-table tbody tr:hover{background:#fbfcff}.student-cell{display:flex;align-items:center;gap:10px}.student-avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;font-size:14px;font-weight:900;background:#e3efff;color:#3b71bb}.student-avatar.girls{background:#fce6f5;color:#b75398}.student-cell strong{display:block;color:#263a5a;font-size:.78rem}.student-cell small{display:block;color:#99a5b6;font-size:.66rem}.data-progress{display:flex;align-items:center;gap:9px;min-width:120px}.data-progress .mini-track{background:#eef2f8;border-radius:8px;flex:1;height:7px;overflow:hidden}.data-progress .mini-track i{display:block;height:100%;background:linear-gradient(90deg,#6b8aee,#59bedb);border-radius:8px}.data-progress b{font-size:.72rem;color:#344c73;min-width:38px;font-weight:750}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:10px;background:#e7f8f1;color:#268d66;font-size:.7rem;font-weight:700;white-space:nowrap}.status-pill:before{content:"";width:6px;height:6px;border-radius:100%;background:currentColor}.status-pill.off{background:#f3f4f7;color:#8a94a6}.disable-btn{border:1px solid #f1d7dc;background:#fff6f6;color:#ad5264;padding:6px 10px;border-radius:8px;font-size:.7rem}.dash-muted{color:#a2adbc}.empty-state{text-align:center;padding:30px;color:#8290a6;font-size:.87rem}.table-pagination{padding:17px 25px;border-top:1px solid #eff1f6;display:flex;justify-content:space-between;align-items:center;color:#94a0b0;font-size:.74rem}.table-pagination>div{display:flex;gap:7px}.page-button{border:1px solid #e4e9f2;background:white;color:#4c5f7e;padding:7px 13px;border-radius:9px;font-size:.75rem}
.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.recent-list,.insight-list{display:grid;gap:13px}.recent-item,.insight-item{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #eff2f7}.recent-item:last-child,.insight-item:last-child{border-bottom:0}.activity-icon,.insight-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#edf3ff;color:#6e8ad4;flex:0 0 auto;font-size:19px}.insight-icon{background:#f7f0ff;color:#986cc3}.recent-item strong,.insight-item strong{display:block;font-size:.76rem;color:#374866}.recent-item small,.insight-item small{display:block;font-size:.69rem;color:#96a2b3}.recent-item>time{margin-right:auto;white-space:nowrap;font-size:.68rem;color:#8796aa}.insight-disclaimer{font-size:.67rem;color:#9ba7b6;margin:18px 0 0}.subtle{color:#98a3b3;font-size:.72rem}
.create-panel{background:white;border:1px solid var(--border);border-radius:19px;display:grid;grid-template-columns:1fr 1.2fr;gap:28px;padding:28px;margin-top:21px;box-shadow:0 8px 25px #1e3d6e08;overflow:hidden}.create-copy{position:relative}.create-copy p{font-size:.8rem;color:#8997aa;max-width:460px;line-height:1.9}.create-deco{font-size:50px;letter-spacing:20px;color:#e7dffa;margin-top:18px}.pro-create-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:11px;align-items:end}.pro-create-form label{font-size:.72rem;font-weight:750;color:#657791;display:grid;gap:7px}.pro-create-form :is(input,select){width:100%;min-width:0}.pro-create-form .full{grid-column:1/-1;min-height:46px}.create-message{grid-column:1/-1;color:#4e9677;font-size:.74rem;margin:0}.dashboard-footer{margin-top:30px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.7rem;color:#a2adbd}.dashboard-footer a{color:#6e83b4}
@media(max-width:1180px){.dashboard-layout{grid-template-columns:205px minmax(0,1fr)}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid{grid-template-columns:1fr}.banner-graphic{flex-basis:25%}.ring-summary{justify-content:flex-start}}
@media(max-width:860px){.dashboard-layout{display:block}.dashboard-sidebar{position:static;height:auto;padding:13px 16px;display:block}.side-brand{margin:0 0 13px}.side-label,.sidebar-bottom{display:none}.side-nav{display:flex;gap:5px;overflow-x:auto}.side-link{white-space:nowrap;padding:9px 12px;font-size:.75rem}.side-icon{font-size:16px}.dashboard-topbar{padding:8px 17px;height:auto;min-height:61px}.top-privacy{display:none}.create-panel{grid-template-columns:1fr}.auth-grid{grid-template-columns:1fr}.auth-story{min-height:320px;padding:29px}.auth-illustration{display:none}.auth-card{padding:36px 27px}}
@media(max-width:620px){.dashboard-content{padding:19px 13px}.dashboard-intro{align-items:start;flex-direction:column}.updated-chip{align-self:flex-start}.intro-banner{padding:24px 22px;min-height:180px}.intro-banner p{max-width:100%}.banner-graphic{display:none}.metric-grid{gap:9px}.metric-card{padding:14px}.metric-value{font-size:1.48rem}.metric-foot{font-size:.62rem}.analytics-card{padding:18px}.ring-summary{gap:17px}.ring-chart{width:120px;height:120px}.ring-chart:before{inset:18px}.ring-legend{min-width:90px}.filter-toolbar{padding:10px 15px;gap:8px}.filter-search{min-width:100%;}.filter-select{flex:1}.filter-select select{width:100%;min-width:0}.table-heading{padding:19px;align-items:start;flex-direction:column}.table-meta{padding:0 15px 13px;flex-direction:column}.bottom-grid{grid-template-columns:1fr}.create-panel{padding:20px}.pro-create-form{grid-template-columns:1fr 1fr}.pro-create-form label:nth-child(3){grid-column:1/-1}.auth-scene{padding:14px}.auth-story h1{font-size:1.65rem}.top-actions{gap:6px}.pro-btn{padding:8px 10px}.top-actions .pro-btn-outline span{display:none}}
@media print{.dashboard-sidebar,.dashboard-topbar,.intro-banner,.filter-toolbar,.table-pagination,.bottom-grid,.create-panel,.pro-btn,.dash-notice,.dashboard-footer{display:none!important}.dashboard-layout{display:block}.dashboard-content{padding:0}.metric-grid{grid-template-columns:repeat(4,1fr)}.pro-table{min-width:0;font-size:.7rem}.students-card,.analytics-card,.metric-card{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.teacher-pro *, .teacher-pro *:before,.teacher-pro *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.ring-chart:before{z-index:0}.ring-chart span,.ring-chart small{position:relative;z-index:1}
