:root{--ink:#182522;--muted:#77837e;--line:#e9ede8;--canvas:#f7f8f5;--white:#fff;--green:#2d765e;--green-dark:#215f4a;--green-pale:#eaf4ee;--mint:#d8ecdf;--orange:#c2793d;--orange-pale:#fbf1e7;--red:#c85b54;--red-pale:#fbefed;--blue:#597fa4;--blue-pale:#eef3f8;--shadow:0 10px 30px rgba(31,54,44,.055)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{width:246px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:26px 17px 16px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:11px;padding:0 6px 34px;color:var(--ink);text-decoration:none}.brand-mark{width:34px;height:34px;border-radius:11px;background:var(--green);color:#fff;display:grid;place-items:center;font-family:Manrope,sans-serif;font-size:24px;font-weight:800;line-height:1}.brand strong{display:block;font-family:Manrope,sans-serif;font-size:15px;letter-spacing:-.4px}.brand small{display:block;font-size:8px;letter-spacing:1.25px;color:#96a09a;margin-top:3px}.workspace-label{font-size:9px;font-weight:700;letter-spacing:1.2px;color:#a0a9a4;padding:0 11px 12px}.nav-list{display:grid;gap:4px}.nav-item{width:100%;border:0;background:transparent;color:#68756f;display:flex;align-items:center;gap:13px;text-align:left;padding:11px 12px;border-radius:9px;font-size:13px;font-weight:500;transition:.18s}.nav-item:hover{background:#f7f9f6;color:var(--ink)}.nav-item.active{background:var(--green-pale);color:var(--green-dark);font-weight:700}.nav-icon{width:18px;text-align:center;font-size:16px}.nav-count{margin-left:auto;background:#fff;border:1px solid var(--line);border-radius:99px;padding:2px 7px;font-size:10px}.sidebar-bottom{margin-top:auto}.help-card{background:#f6f8f5;padding:13px 11px;border-radius:11px;display:flex;align-items:center;gap:9px;margin-bottom:15px}.help-icon{width:29px;height:29px;border-radius:9px;background:#fff;color:var(--green);display:grid;place-items:center}.help-card strong{font-size:10px}.help-card p{margin:4px 0 0;font-size:9px;color:var(--muted)}.arrow{margin-left:auto;color:#8a9790}.profile{border-top:1px solid var(--line);padding:16px 2px 0;display:flex;align-items:center;gap:9px}.avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#d8e9dc;color:#37634d;font-size:10px;font-weight:700;flex:none}.profile-copy{display:grid;gap:3px;min-width:0}.profile-copy strong{font-size:11px;white-space:nowrap}.profile-copy small{font-size:9px;color:var(--muted)}.dots{margin-left:auto;font-size:19px;letter-spacing:1px;color:#8b9691}.main-area{margin-left:246px;min-height:100vh}.topbar{height:62px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.78);display:flex;align-items:center;justify-content:space-between;padding:0 39px;position:sticky;top:0;z-index:4;backdrop-filter:blur(12px)}.breadcrumbs{display:flex;align-items:center;gap:10px;color:#8a9690;font-size:11px}.breadcrumbs b{font-weight:400;color:#c4ccc7}.breadcrumbs strong{color:#38443f;font-weight:600}.topbar-actions{display:flex;align-items:center;gap:16px}.demo-pill{font-size:10px;color:#5f6d66;background:#f5f7f4;border:1px solid var(--line);padding:6px 9px;border-radius:99px}.demo-pill i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#81b08e;margin-right:5px;vertical-align:1px}.icon-button{position:relative;border:0;background:none;color:#718078;font-size:18px}.icon-button em{position:absolute;right:1px;top:2px;width:5px;height:5px;border:1px solid #fff;background:#df846b;border-radius:50%}.small-avatar{width:29px;height:29px}.content{max-width:1400px;margin:auto;padding:35px 39px 55px}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:.7px;text-transform:uppercase;color:#85918b;font-weight:700;margin:0 0 8px}.page-title{font-family:Manrope,sans-serif;font-weight:700;font-size:26px;letter-spacing:-1px;margin:0;color:#20302a}.subtitle{margin:7px 0 0;color:#829088;font-size:12px}.date-chip{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:#647169;font-size:10px}.button{border:0;border-radius:8px;padding:10px 14px;font-weight:600;font-size:11px;display:inline-flex;align-items:center;gap:8px;transition:.18s}.button-primary{background:var(--green);color:#fff;box-shadow:0 3px 9px #2d765e23}.button-primary:hover{background:var(--green-dark);transform:translateY(-1px)}.button-secondary{background:#fff;color:#51605a;border:1px solid var(--line)}.button-secondary:hover{background:#f9fbf8}.button-quiet{background:transparent;color:var(--green);padding:7px}.button:disabled{opacity:.45;cursor:default;transform:none}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.stat-card,.panel,.assignment-card,.student-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.stat-card{padding:16px 17px 14px}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#85918b;font-size:10px}.stat-icon{width:28px;height:28px;display:grid;place-items:center;background:#f3f7f3;color:var(--green);border-radius:8px;font-size:14px}.stat-value{font-family:Manrope,sans-serif;font-size:26px;font-weight:700;letter-spacing:-1px;margin:12px 0 5px}.stat-foot{font-size:9px;color:#8b9691}.trend{color:var(--green);font-weight:700;margin-right:4px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.85fr);gap:16px;margin-bottom:16px}.panel{padding:18px 19px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:17px}.panel-title{font-size:13px;font-weight:700;margin:0}.panel-subtitle{font-size:10px;color:#8a9690;margin:5px 0 0}.select{border:1px solid var(--line);border-radius:7px;background:#fff;color:#66736d;font-size:10px;padding:7px 9px}.chart-wrap{height:170px;position:relative}.chart{width:100%;height:100%;overflow:visible}.chart text{font-family:'DM Sans',sans-serif;fill:#9aa49f;font-size:9px}.chart .grid-line{stroke:#edf0ed;stroke-width:1}.chart .area{fill:url(#areaFill)}.chart .line{fill:none;stroke:var(--green);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart .point{fill:#fff;stroke:var(--green);stroke-width:2}.chart-legend{display:flex;justify-content:center;gap:17px;margin-top:4px;color:#839088;font-size:9px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:5px}.topic-list{display:grid;gap:15px}.topic-row{display:grid;grid-template-columns:1fr auto;gap:7px 10px}.topic-name{font-size:10px;font-weight:600}.topic-percent{font-size:10px;color:#77857d}.progress{height:6px;background:#eef1ee;border-radius:9px;overflow:hidden;grid-column:1/3}.progress span{height:100%;display:block;border-radius:9px;background:#75a88b}.topic-row:nth-child(2) .progress span{background:#d5a56f}.topic-row:nth-child(3) .progress span{background:#88a4bc}.topic-row:nth-child(4) .progress span{background:#a998c0}.needs-attention{display:flex;align-items:flex-start;gap:10px;background:#fbf5ee;border:1px solid #f1e7d8;padding:12px;border-radius:9px;margin-top:17px}.attention-icon{color:#bd8953;font-size:14px}.needs-attention strong{display:block;font-size:10px}.needs-attention p{font-size:9px;color:#8a8172;margin:4px 0 0;line-height:1.5}.section-head{display:flex;align-items:center;justify-content:space-between;margin:21px 0 10px}.section-head h2{font-size:13px;margin:0}.section-head a{font-size:10px;color:var(--green);text-decoration:none;font-weight:600}.table-panel{padding:0;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:620px}th{text-align:left;color:#99a39e;font-size:9px;letter-spacing:.3px;font-weight:600;background:#fcfdfb;padding:11px 15px;border-bottom:1px solid var(--line)}td{padding:12px 15px;border-bottom:1px solid #f0f2ef;font-size:10px;color:#55625b}tbody tr:last-child td{border-bottom:0}.student-cell{display:flex;align-items:center;gap:8px;font-weight:600;color:#35443c}.mini-avatar{width:25px;height:25px;font-size:8px}.table-muted{color:#8a9690}.status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:99px;font-size:9px;white-space:nowrap}.status.good{background:var(--green-pale);color:#44745a}.status.warn{background:var(--orange-pale);color:#a86e35}.status.bad{background:var(--red-pale);color:#b7574f}.status-dot{width:5px;height:5px;background:currentColor;border-radius:50%}.avatar-blue{background:#e2eaf3;color:#5f7e9b}.avatar-peach{background:#f5e6d9;color:#a5724d}.avatar-lilac{background:#eae5f2;color:#766c99}.avatar-pink{background:#f5e3e6;color:#a36572}.avatar-yellow{background:#f4edd9;color:#997e3f}.assignment-strip{display:grid;grid-template-columns:1fr 1fr;gap:13px}.assignment-card{padding:15px;display:flex;gap:12px;align-items:center}.assignment-symbol{width:38px;height:38px;border-radius:10px;background:#eef5ef;display:grid;place-items:center;color:var(--green);font-size:17px;flex:none}.assignment-info{min-width:0;flex:1}.assignment-info strong{font-size:10px;display:block}.assignment-info p{font-size:9px;color:#8a9690;margin:4px 0 0}.assignment-meta{font-size:9px;color:#68766e;white-space:nowrap}.assignment-meta b{color:#35473c;font-size:10px}.role-switcher{display:flex;align-items:center;gap:4px;background:#eef1ed;padding:4px;border-radius:9px}.role-switcher button{border:0;background:transparent;color:#79857f;padding:7px 10px;border-radius:6px;font-size:9px;font-weight:600}.role-switcher button.active{background:#fff;color:var(--green-dark);box-shadow:0 1px 4px #20302a12}.student-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,.75fr);gap:16px}.student-greeting{background:#eaf3ec;border:1px solid #deebe1;border-radius:13px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.student-greeting h1{font-family:Manrope,sans-serif;font-size:20px;letter-spacing:-.7px;margin:0}.student-greeting p{font-size:10px;color:#71847a;margin:6px 0 0}.greeting-art{font-size:34px;color:#7fa58a;opacity:.8}.task-card{padding:20px;min-height:322px}.task-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.task-count{font-size:10px;color:#809088}.task-progress{height:5px;background:#edf0ed;border-radius:8px;margin:10px 0 22px;overflow:hidden}.task-progress span{display:block;height:100%;width:20%;background:var(--green);border-radius:8px;transition:width .3s}.task-topic{font-size:9px;color:var(--green);font-weight:700;letter-spacing:.4px;margin-bottom:10px}.problem-text{font-family:Manrope,sans-serif;font-size:22px;font-weight:700;letter-spacing:-.5px;margin:0 0 7px}.problem-hint{font-size:10px;color:#8b9791;margin:0 0 18px}.answer-label{display:block;font-size:9px;color:#76847c;font-weight:600;margin-bottom:6px}.answer-input{width:100%;height:40px;border:1px solid #dfe6e0;border-radius:8px;padding:0 11px;outline:none;font-size:13px;color:var(--ink);transition:.18s}.answer-input:focus{border-color:#75a88b;box-shadow:0 0 0 3px #75a88b21}.answer-row{display:flex;gap:8px}.answer-row .answer-input{flex:1}.task-feedback{margin:13px 0 0;padding:11px 12px;border-radius:8px;background:var(--orange-pale);color:#83633e;font-size:10px;line-height:1.55;display:none}.task-feedback.show{display:block;animation:fade .2s ease}.task-feedback.success{background:var(--green-pale);color:#417152}.task-feedback .hint-action{display:block;border:0;background:none;color:#3f7758;padding:8px 0 0;font-size:10px;font-weight:700}.side-card{padding:17px;margin-bottom:14px}.side-card h3{font-size:11px;margin:0}.goal-ring{width:84px;height:84px;margin:17px auto 12px;position:relative;border-radius:50%;background:conic-gradient(#5d9873 0 68%,#e8eee9 68% 100%);display:grid;place-items:center}.goal-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}.goal-ring span{position:relative;font-family:Manrope,sans-serif;font-weight:700;font-size:17px}.center-copy{text-align:center;color:#89958e;font-size:9px;line-height:1.5}.streak{display:flex;align-items:center;gap:11px;padding:11px;border:1px solid var(--line);border-radius:9px;margin-top:14px}.streak-icon{font-size:19px}.streak strong{font-size:10px;display:block}.streak small{display:block;color:#919c96;font-size:9px;margin-top:3px}.tip-card{background:#f1f5ee;border-radius:10px;padding:13px;margin-top:13px}.tip-card strong{font-size:10px}.tip-card p{font-size:9px;color:#7e8a81;line-height:1.5;margin:5px 0 0}.teacher-chat{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:9px;margin-top:12px}.ai-orb{width:29px;height:29px;border-radius:10px;background:#e8f3eb;color:var(--green);display:grid;place-items:center}.teacher-chat strong{font-size:9px}.teacher-chat p{margin:3px 0 0;color:#909a94;font-size:8px}.teacher-chat button{margin-left:auto;border:0;background:none;color:var(--green);font-size:16px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.role-card{border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:10px;display:flex;align-items:center;gap:10px}.role-card .role-copy{flex:1}.role-copy strong{font-size:10px}.role-copy small{display:block;font-size:9px;color:#89958e;margin-top:4px}.role-count{font-family:Manrope,sans-serif;font-size:17px;font-weight:700}.role-help{font-size:9px;color:#89958e;line-height:1.6}.empty-state{text-align:center;padding:28px;color:#85918b;font-size:10px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,15px);padding:10px 14px;background:#263a31;color:#fff;font-size:10px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;z-index:10;box-shadow:0 8px 20px #17281f28}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes fade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1080px){.sidebar{width:216px}.main-area{margin-left:216px}.content{padding:28px 25px 45px}.topbar{padding:0 25px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1.2fr .8fr}}
@media(max-width:760px){.sidebar{width:auto;height:60px;inset:auto 0 0;border-right:0;border-top:1px solid var(--line);padding:5px 8px;background:#fff}.brand,.workspace-label,.sidebar-bottom{display:none}.nav-list{display:flex;justify-content:space-around;gap:2px;height:100%}.nav-item{width:auto;min-width:60px;flex-direction:column;justify-content:center;gap:2px;padding:4px 8px;font-size:8px}.nav-icon{font-size:15px}.nav-count{display:none}.main-area{margin:0;padding-bottom:60px}.topbar{height:54px;padding:0 16px}.breadcrumbs{font-size:10px}.topbar-actions{gap:10px}.demo-pill{font-size:9px;padding:5px 7px}.content{padding:23px 15px 30px}.welcome-row{align-items:flex-start;gap:12px;flex-direction:column;margin-bottom:19px}.page-title{font-size:23px}.welcome-row .button,.welcome-row .date-chip{align-self:flex-start}.role-switcher{width:100%;justify-content:space-between}.role-switcher button{flex:1}.stats-grid{gap:9px}.stat-card{padding:13px}.stat-value{font-size:23px}.dashboard-grid,.student-layout,.admin-grid{grid-template-columns:1fr;gap:12px}.panel{padding:15px}.chart-wrap{height:150px}.assignment-strip{grid-template-columns:1fr}.section-head{margin-top:18px}.student-greeting{padding:16px}.student-greeting h1{font-size:18px}.task-card{padding:16px}.problem-text{font-size:20px}.assignment-meta{display:none}}
