:root{--ink:#20312d;--muted:#77817e;--line:#e8ebe5;--paper:#fff;--canvas:#f5f6f1;--green:#275f4f;--green-soft:#e7f1ec;--coral:#e56c50;--coral-soft:#fff0eb;--gold-soft:#fff6db}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif}button{color:inherit;font:inherit;cursor:pointer}.app-shell{grid-template-columns:236px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:#173d34;flex-direction:column;height:100vh;padding:28px 18px 22px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:0 8px 30px;display:flex}.brand-mark{color:#173d34;background:#eff6b9;border-radius:13px;place-items:center;width:40px;height:40px;font-weight:900;display:grid;box-shadow:inset 0 -3px #173d341f}.brand strong,.brand span{display:block}.brand strong{letter-spacing:.02em;font-size:16px}.brand span{color:#ffffff8c;letter-spacing:.12em;text-transform:uppercase;margin-top:3px;font-size:10px}.nav-caption{color:#ffffff5c;letter-spacing:.16em;margin:0 12px 10px;font-size:10px;font-weight:700}.nav-list{flex-direction:column;gap:5px;display:flex}.nav-item{color:#ffffffad;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:11px;width:100%;height:45px;padding:0 12px;font-size:13px;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#173d34;background:#f0f5c3;font-weight:700;box-shadow:0 10px 28px #0000001f}.nav-mark{opacity:.72;border:1px solid;border-radius:8px;place-items:center;width:24px;height:24px;font-size:10px;font-weight:800;display:grid}.nav-count{background:var(--coral);color:#fff;border-radius:999px;place-items:center;min-width:22px;height:22px;margin-left:auto;font-size:10px;display:grid}.sidebar-bottom{margin-top:auto}.deadline-card{background:#ffffff14;border:1px solid #ffffff12;border-radius:15px;margin:0 3px 17px;padding:15px}.deadline-card span,.deadline-card strong,.deadline-card small{display:block}.deadline-card span{color:#ffffff85;font-size:10px}.deadline-card strong{margin-top:4px;font-size:18px}.deadline-track{background:#ffffff1f;border-radius:99px;height:5px;margin:12px 0 8px;overflow:hidden}.deadline-track i{border-radius:inherit;background:#ddeb86;width:27%;height:100%;display:block}.deadline-card small{color:#ffffff7a;font-size:10px}.profile-mini{border-top:1px solid #ffffff1a;grid-template-columns:36px 1fr 24px;align-items:center;gap:9px;padding:13px 8px 0;display:grid}.profile-avatar{color:#563b18;background:#efb66d;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.profile-mini strong,.profile-mini small{display:block}.profile-mini strong{font-size:12px}.profile-mini small{color:#ffffff73;margin-top:2px;font-size:9px}.profile-mini button{color:#ffffff85;background:0 0;border:0}.content{min-width:0;padding:34px clamp(26px,4vw,56px) 56px}.topbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;display:flex}.eyebrow{color:#8a918e;letter-spacing:.11em;text-transform:uppercase;margin:0 0 6px;font-size:10px;font-weight:800}.topbar h1{letter-spacing:-.035em;margin:0;font-size:clamp(25px,2.5vw,34px);line-height:1.15}.page-subtitle{color:var(--muted);margin:7px 0 0;font-size:13px}.top-actions{align-items:center;gap:10px;display:flex}.icon-button{border:1px solid var(--line);background:var(--paper);border-radius:13px;width:43px;height:43px;font-size:0;position:relative}.icon-button:before{content:"●";color:var(--green);font-size:14px}.icon-button span{border:2px solid var(--canvas);background:var(--coral);color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:8px;display:grid;position:absolute;top:-5px;right:-3px}.primary-button{background:var(--green);color:#fff;border:0;border-radius:13px;height:43px;padding:0 17px;font-size:12px;font-weight:700;box-shadow:0 8px 20px #275f4f2e}.priority-banner{background:linear-gradient(105deg,#fff3ed,#fffaf6);border:1px solid #f5d5c9;border-radius:17px;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;min-height:82px;margin-bottom:17px;padding:15px 18px;display:grid;box-shadow:0 6px 24px #5930200d}.priority-icon{background:var(--coral);color:#fff;border-radius:12px;place-items:center;width:40px;height:40px;font-weight:900;display:grid}.priority-banner strong{font-size:13px}.priority-banner p{color:#9a6d5e;margin:4px 0 0;font-size:11px}.priority-banner button{color:#b1533b;background:0 0;border:0;font-size:11px;font-weight:700}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:17px;display:grid}.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:17px;min-height:112px;padding:17px 18px;box-shadow:0 8px 25px #20312d08}.stat-card.urgent{border-color:#f0c7ba}.stat-card div{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.stat-card span{color:var(--muted);font-size:11px}.stat-card strong{letter-spacing:-.04em;font-size:26px;line-height:1}.stat-card.urgent strong{color:var(--coral)}.stat-card small{color:#9aa19e;margin-top:23px;font-size:9px;display:block}.stat-card small.positive{color:#48806f}.workspace-grid{grid-template-columns:minmax(0,1fr) 296px;align-items:start;gap:17px;display:grid}.panel{border:1px solid var(--line);background:var(--paper);border-radius:20px;box-shadow:0 10px 30px #20312d0a}.student-panel{overflow:hidden}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:82px;padding:18px 21px;display:flex}.panel-heading h2{letter-spacing:-.015em;margin:0;font-size:16px}.panel-heading h3{margin:0;font-size:15px}.coral-text{color:var(--coral)}.quiet-button{border:1px solid var(--line);color:#777f7d;background:#fff;border-radius:9px;padding:7px 11px;font-size:10px}.student-row{border-bottom:1px solid #eff1ed;grid-template-columns:42px minmax(185px,1fr) minmax(195px,auto);align-items:center;gap:13px;min-height:111px;padding:16px 21px;display:grid}.student-avatar{border-radius:13px;place-items:center;width:40px;height:40px;font-size:13px;font-weight:800;display:grid}.student-avatar.coral{color:#b75139;background:#ffe0d6}.student-avatar.mint{color:#28624f;background:#dcefe6}.student-avatar.violet{color:#665284;background:#ece6f7}.student-title{align-items:center;gap:8px;display:flex}.student-title strong{font-size:13px}.risk-chip{background:var(--coral-soft);color:#c3553c;border-radius:99px;padding:3px 7px;font-size:8px;font-weight:800}.risk-chip.warning{background:var(--gold-soft);color:#99711a}.student-info p{color:#4d5d58;margin:7px 0 4px;font-size:11px}.student-info small{color:#9aa19e;font-size:9px}.student-due{text-align:right;justify-self:end}.student-due>span{color:#9b7770;margin-bottom:11px;font-size:9px;display:block}.student-due div{gap:7px;display:flex}.copy-button,.done-button{border-radius:9px;height:31px;padding:0 10px;font-size:9px;font-weight:700}.copy-button{color:var(--green);background:#eef5f2;border:1px solid #c6d9d2}.done-button{border:1px solid var(--line);color:#838b88;background:#fff}.panel-more{color:#68736f;background:#fbfcfa;border:0;width:100%;height:48px;font-size:10px;font-weight:700}.right-rail{flex-direction:column;gap:17px;display:flex}.rule-card{color:#fff;background:#254f44;border-color:#254f44;padding:20px;position:relative;overflow:hidden}.rule-card:after{content:"";pointer-events:none;border:28px solid #deeb8f14;border-radius:50%;width:150px;height:150px;position:absolute;top:-72px;right:-62px}.rule-top{align-items:center;gap:11px;margin-bottom:12px;display:flex}.rule-icon{color:#224c40;background:#e7efaa;border-radius:13px;place-items:center;width:42px;height:42px;font-size:15px;font-weight:900;display:grid}.rule-top .eyebrow{color:#ffffff73}.rule-top h3{margin:0;font-size:16px}.rule-card ul{margin:0;padding:0;list-style:none}.rule-card li{border-top:1px solid #ffffff17;grid-template-columns:22px 1fr;gap:9px;padding:11px 0;display:grid}.rule-card li>span{color:#ddec92;font-size:9px;font-weight:800}.rule-card li strong,.rule-card li small{display:block}.rule-card li strong{font-size:11px}.rule-card li small{color:#ffffff85;margin-top:3px;font-size:9px;line-height:1.45}.rule-copy{z-index:1;color:#214b40;background:#f0f5c3;border:0;border-radius:10px;width:100%;height:37px;margin-top:6px;font-size:10px;font-weight:800;position:relative}.schedule-card{padding-bottom:10px}.panel-heading.compact{min-height:69px;padding:15px 18px}.panel-heading.compact>span{background:var(--green-soft);color:var(--green);border-radius:99px;padding:5px 8px;font-size:9px;font-weight:700}.lesson{border-bottom:1px solid #eff1ed;grid-template-columns:48px 1fr;align-items:start;gap:10px;margin:0 17px;padding:13px 2px;display:grid}.lesson:last-child{border-bottom:0}.lesson time{color:#69736f;font-size:10px;font-weight:800}.lesson strong,.lesson span{display:block}.lesson strong{font-size:11px}.lesson span{color:#9aa19e;margin-top:4px;font-size:8px}.lesson.next time{color:var(--coral)}@media (max-width:1120px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid{grid-template-columns:1fr}.right-rail{grid-template-columns:1fr 1fr;display:grid}}@media (max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:16px;position:static}.brand{padding-bottom:15px}.nav-list{flex-direction:row;overflow-x:auto}.nav-caption,.sidebar-bottom,.nav-mark,.nav-count{display:none}.nav-item{white-space:nowrap;width:auto;padding:0 14px}.content{padding:24px 16px 40px}.topbar{align-items:flex-start}.page-subtitle,.icon-button{display:none}.priority-banner{grid-template-columns:38px 1fr}.priority-banner button{display:none}.stats-grid{grid-template-columns:1fr 1fr}.student-row{grid-template-columns:40px 1fr}.student-due{text-align:left;grid-column:2;justify-self:start}.right-rail{grid-template-columns:1fr}}@media (max-width:460px){.top-actions .primary-button{padding:0 11px}.stats-grid{grid-template-columns:1fr}.student-row{padding:16px}.student-due div{flex-wrap:wrap}}.view-switcher{border-top:1px solid #ffffff17;margin-top:28px;padding-top:20px}.view-option{color:#ffffff94;text-align:left;background:0 0;border:0;border-radius:10px;width:100%;margin-bottom:4px;padding:9px 12px;font-size:10px}.view-option:hover,.view-option.selected{color:#fff;background:#ffffff14}.view-option.selected:before{content:"●";color:#ddeb86;margin-right:7px;font-size:7px}.profile-mini a{color:#ffffff73;font-size:9px;text-decoration:none}.policy-pill{color:#9a6d5e;background:#fff;border-radius:99px;padding:6px 10px;font-size:9px;font-weight:700}.count-chip,.deadline-badge{background:var(--green-soft);color:var(--green);white-space:nowrap;border-radius:99px;padding:5px 9px;font-size:9px;font-weight:800}.deadline-badge{background:#f1f5c9}.risk-chip.green{background:var(--green-soft);color:#34715f}.risk-chip.yellow{background:var(--gold-soft);color:#99711a}.risk-chip.red{background:var(--coral-soft);color:#c3553c}.book-button{background:var(--green);color:#fff;border:0;border-radius:9px;height:31px;padding:0 10px;font-size:9px;font-weight:700}.empty-state{color:#89918e;flex-direction:column;justify-content:center;align-items:center;min-height:125px;display:flex}.empty-state span{background:var(--green-soft);width:30px;height:30px;color:var(--green);border-radius:50%;place-items:center;display:grid}.empty-state p{margin:9px 0 0;font-size:10px}.loading-state{height:70vh;color:var(--muted);align-content:center;place-items:center;gap:14px;display:grid}.loading-state span{border:3px solid #dfe6e1;border-top-color:var(--green);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}.loading-state p{font-size:11px}@keyframes spin{to{transform:rotate(360deg)}}.manager-hero{color:#fff;background:radial-gradient(circle at 78% -20%,#dfed8f3d,#0000 34%),linear-gradient(125deg,#173d34,#2a5e50);border-radius:22px;grid-template-columns:1fr 150px;align-items:center;gap:24px;min-height:160px;margin-bottom:16px;padding:27px 29px;display:grid;box-shadow:0 15px 38px #173d342e}.manager-hero .eyebrow{color:#ddeb86}.manager-hero h2{letter-spacing:-.035em;margin:0;font-size:clamp(22px,3vw,31px)}.manager-hero p:not(.eyebrow){color:#ffffff91;margin:10px 0 0;font-size:11px}.hero-risk{border-left:1px solid #ffffff24;padding-left:25px}.hero-risk strong,.hero-risk span,.hero-risk small{display:block}.hero-risk strong{color:#ff9b7f;font-size:45px;line-height:1}.hero-risk span{margin-top:7px;font-size:11px;font-weight:800}.hero-risk small{color:#ffffff73;margin-top:5px;font-size:8px;line-height:1.5}.manager-stats{margin-bottom:16px}.manager-grid{grid-template-columns:minmax(0,1.4fr) minmax(300px,.7fr);gap:16px;margin-bottom:16px;display:grid}.pipeline-panel,.team-panel,.risk-table-panel{overflow:hidden}.pipeline{grid-template-columns:repeat(5,1fr);align-items:center;gap:0;min-height:175px;padding:24px 20px;display:grid}.pipeline-step{min-width:0;padding:0 10px;position:relative}.pipeline-number{color:#aab2ae;font-size:9px;font-weight:900}.pipeline-bar{background:#eef0ed;border-radius:99px;height:6px;margin:10px 0 12px;overflow:hidden}.pipeline-bar i{border-radius:inherit;background:linear-gradient(90deg,#dce987,#3b806b);min-width:10px;height:100%;display:block}.pipeline-step strong,.pipeline-step span{display:block}.pipeline-step strong{white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.pipeline-step span{color:#8c9491;margin-top:5px;font-size:9px}.pipeline-step b{color:#c5cbc8;font-weight:400;position:absolute;top:45px;right:-3px}.teacher-line{text-align:left;background:0 0;border:0;border-bottom:1px solid #eff1ed;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;width:calc(100% - 30px);margin:0 15px;padding:13px 2px;display:grid}.teacher-line:last-child{border-bottom:0}.teacher-line .student-avatar{width:36px;height:36px}.teacher-line strong,.teacher-line small{display:block}.teacher-line strong{font-size:11px}.teacher-line small{color:#929996;margin-top:3px;font-size:8px}.teacher-risk,.teacher-ok{background:var(--coral-soft);color:var(--coral);border-radius:99px;padding:5px 7px;font-size:8px;font-weight:800}.teacher-ok{background:var(--green-soft);color:var(--green)}.data-table{min-width:790px}.risk-table-panel{overflow-x:auto}.table-row{color:#65716d;border-top:1px solid #eff1ed;grid-template-columns:1.1fr 1fr .7fr 1fr 1.3fr;align-items:center;gap:16px;min-height:63px;padding:10px 20px;font-size:9px;display:grid}.table-row.table-head{color:#9ba19f;background:#fafbf9;border-top:0;min-height:40px;font-size:8px;font-weight:800}.table-row strong,.table-row small{display:block}.table-row strong{color:var(--ink);font-size:10px}.table-row small{color:#99a09d;margin-top:3px;font-size:8px}.page-panel{min-height:calc(100vh - 150px);overflow:hidden}.page-heading input{border:1px solid var(--line);background:#fbfcfa;border-radius:11px;outline:none;width:min(280px,38vw);height:39px;padding:0 13px;font-size:10px}.page-heading input:focus{border-color:#8eb4a6;box-shadow:0 0 0 3px #3d806a14}.student-cards{grid-template-columns:repeat(3,minmax(230px,1fr));gap:14px;padding:18px;display:grid}.student-card{border:1px solid var(--line);background:#fff;border-radius:17px;padding:18px;box-shadow:0 7px 20px #20312d08}.student-card-top{grid-template-columns:40px 1fr auto;align-items:center;gap:10px;display:grid}.student-card-top strong,.student-card-top small{display:block}.student-card-top strong{font-size:12px}.student-card-top small{color:#9aa19e;margin-top:3px;font-size:8px}.student-card h3{margin:18px 0 6px;font-size:14px}.student-card>p{color:#7d8784;min-height:32px;margin:0;font-size:9px;line-height:1.65}.stage-progress{background:#edf0ec;border-radius:99px;height:5px;margin-top:17px;overflow:hidden}.stage-progress i{border-radius:inherit;background:linear-gradient(90deg, #dbe984, var(--green));height:100%;display:block}.card-meta{color:#8e9693;justify-content:space-between;margin-top:8px;font-size:8px;display:flex}.card-actions{grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:15px;display:grid}.card-actions button{color:#5f6d68;background:#fafbf9;border:1px solid #dfe5e1;border-radius:8px;min-height:30px;font-size:8px}.card-actions button:first-child{border-color:var(--green);background:var(--green);color:#fff}.calendar-rule{color:#63724b;background:#f6f8ed;border-radius:9px;padding:7px 10px;font-size:9px;font-weight:800}.appointment-list{padding:0 20px}.appointment-item{border-bottom:1px solid #eff1ed;grid-template-columns:46px 60px minmax(170px,1fr) 70px 75px;align-items:center;gap:17px;padding:16px 0;display:grid}.appointment-date{background:var(--green-soft);border-radius:11px;align-content:center;place-items:center;width:42px;height:45px;display:grid}.appointment-date strong,.appointment-date span{display:block}.appointment-date strong{font-size:14px;line-height:1}.appointment-date span{color:#668176;margin-top:3px;font-size:7px}.appointment-item>time{font-size:12px;font-weight:900}.appointment-item div:nth-of-type(2) strong,.appointment-item div:nth-of-type(2) small{display:block}.appointment-item div:nth-of-type(2) strong{font-size:11px}.appointment-item div:nth-of-type(2) small{color:#939a97;margin-top:5px;font-size:8px}.duration-chip{color:#75807c;font-size:9px}.cancel-button{color:#b06856;background:#fff9f6;border:1px solid #e9d8d2;border-radius:8px;padding:7px 8px;font-size:8px}.policy-note{background:#fff8eb;border:1px solid #f1e2bf;border-radius:13px;margin:22px;padding:16px 18px}.policy-note strong{color:#866525;font-size:10px}.policy-note p{color:#91784c;margin:6px 0 0;font-size:9px;line-height:1.7}.project-grid{grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px;padding:18px;display:grid}.project-card{border:1px solid var(--line);background:#fff;border-radius:17px;flex-direction:column;min-height:270px;padding:18px;display:flex}.warning-project{background:linear-gradient(145deg,#fff,#fff9f6);border-color:#f0c5b7}.project-card-head{justify-content:space-between;align-items:center;display:flex}.project-card-head span{color:#82908b;letter-spacing:.08em;font-size:8px;font-weight:800}.project-card-head b{background:var(--coral-soft);color:var(--coral);border-radius:99px;padding:4px 7px;font-size:8px}.project-card-head b.clear{background:var(--green-soft);color:var(--green)}.project-card h3{margin:20px 0 7px;font-size:16px}.project-card>p{color:#7a8581;min-height:38px;margin:0;font-size:9px;line-height:1.65}.project-card dl{border-top:1px solid #edf0ed;border-bottom:1px solid #edf0ed;margin:14px 0;padding:12px 0}.project-card dl div{grid-template-columns:55px 1fr;gap:7px;margin:5px 0;font-size:8px;display:grid}.project-card dt{color:#9ca29f}.project-card dd{color:#53615c;margin:0}.project-card footer{margin-top:auto}.project-card footer span,.project-card footer small{display:block}.project-card footer span{font-size:9px;font-weight:800}.project-card footer small{color:#9b817a;margin-top:5px;font-size:8px;line-height:1.5}.rubric-strip{color:#fff;background:radial-gradient(circle at 88% -25%,#dfed8f38,#0000 36%),linear-gradient(125deg,#173d34,#295c4e);border-radius:21px;grid-template-columns:minmax(270px,.72fr) minmax(0,1.6fr);align-items:center;gap:24px;margin-bottom:16px;padding:24px 26px;display:grid;box-shadow:0 14px 35px #173d3424}.rubric-intro .eyebrow{color:#ddeb86}.rubric-intro h2{letter-spacing:-.035em;margin:0;font-size:23px}.rubric-intro>p:last-child{color:#ffffff94;margin:9px 0 0;font-size:10px;line-height:1.7}.rubric-dimensions{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.rubric-dimensions article{background:#ffffff12;border:1px solid #ffffff1a;border-radius:14px;min-height:105px;padding:14px}.rubric-dimensions strong,.rubric-dimensions span,.rubric-dimensions small{display:block}.rubric-dimensions strong{color:#edf7a4;font-size:24px;line-height:1}.rubric-dimensions span{margin-top:9px;font-size:10px;font-weight:800}.rubric-dimensions small{color:#ffffff75;margin-top:6px;font-size:8px;line-height:1.55}.ai-config-note{background:#fff9e8;border:1px solid #eadfb7;border-radius:15px;grid-template-columns:44px 1fr;align-items:center;gap:13px;margin-bottom:16px;padding:14px 17px;display:grid}.ai-config-note>span{color:#43582f;background:#e9eeb4;border-radius:12px;place-items:center;width:40px;height:40px;font-size:11px;font-weight:900;display:grid}.ai-config-note strong{color:#715d24;font-size:11px;display:block}.ai-config-note p{color:#8d7b4c;margin:4px 0 0;font-size:9px;line-height:1.6}.ai-project-grid{grid-template-columns:repeat(2,minmax(300px,1fr))}.ai-project-grid .project-card{min-height:650px}.project-title-line{grid-template-columns:1fr auto;align-items:start;gap:12px;margin-top:17px;display:grid}.project-title-line h3{margin:0}.project-title-line>div:first-child>small{color:#939b98;font-size:8px}.progress-number{text-align:right}.progress-number strong,.progress-number span{display:block}.progress-number strong{color:var(--green);font-size:17px}.progress-number span{color:#9ca39f;margin-top:2px;font-size:7px}.project-progress{background:#edf0ec;border-radius:99px;height:5px;margin:12px 0;overflow:hidden}.project-progress i{border-radius:inherit;background:linear-gradient(90deg, #dce987, var(--green));height:100%;display:block}.project-card .project-intro{color:#53635d;min-height:0;font-size:10px;line-height:1.7}.ai-project-grid .project-card dl div{grid-template-columns:62px 1fr;margin:7px 0}.ai-project-grid .project-card dd{line-height:1.55}.ai-review,.ai-empty-review{background:#f5f9f7;border:1px solid #d9e5df;border-radius:14px;margin:2px 0 15px;padding:14px}.ai-review.stale{background:#fff9ea;border-color:#ead9af}.ai-score-head{grid-template-columns:1fr auto 1fr auto;align-items:center;gap:10px;display:grid}.ai-score-head>div{min-width:0}.ai-score-head span,.ai-score-head strong{display:block}.ai-score-head span{color:#87938e;font-size:7px}.ai-score-head strong{color:var(--green);margin-top:3px;font-size:24px;line-height:1}.ai-score-head strong small{color:#92a19b;margin-left:2px;font-size:8px}.ai-score-head>i{color:#9caaa4;font-size:12px;font-style:normal}.ai-score-head>em{color:#67746f;white-space:nowrap;background:#fff;border-radius:99px;padding:5px 7px;font-size:7px;font-style:normal;font-weight:800}.dimension-scores{grid-template-columns:repeat(4,1fr);gap:5px;margin:13px 0;display:grid}.dimension-scores span{color:#63716c;text-align:center;background:#fff;border-radius:7px;padding:6px 3px;font-size:7px}.ai-review>p{color:#5e6d67;margin:0 0 12px;font-size:9px;line-height:1.7}.advice-block,.gap-block{border-top:1px solid #dfe7e3;margin-top:10px;padding-top:10px}.advice-block>strong,.gap-block>strong{color:#43564f;font-size:8px;display:block}.advice-block ol{color:#65736d;margin:7px 0 0;padding-left:17px;font-size:8px;line-height:1.65}.gap-block p{color:#8b7651;margin:6px 0 0;font-size:8px;line-height:1.65}.ai-time{color:#9aa39f;margin-top:11px;font-size:7px;display:block}.ai-empty-review strong{color:#66736e;font-size:9px;display:block}.ai-empty-review p{color:#939b98;margin:5px 0 0;font-size:8px;line-height:1.6}.project-footer{gap:11px;display:grid}.project-footer>div{grid-template-columns:1fr 1fr;gap:7px;display:grid}.project-footer button{color:#5e6d68;background:#fff;border:1px solid #dce4df;border-radius:9px;height:34px;font-size:8px;font-weight:800}.project-footer .ai-button{border-color:var(--green);background:var(--green);color:#fff}.project-footer .ai-button:disabled{color:#999f8f;cursor:not-allowed;background:#eef0e4;border-color:#dfe3d0}.privacy-tip{color:#547066;background:#eef6f2;border-radius:10px;margin-top:11px;padding:10px 12px;font-size:9px;line-height:1.6}.role-explainer{border-bottom:1px solid var(--line);background:#fafbf8;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px;display:grid}.role-explainer article{border:1px solid var(--line);background:#fff;border-radius:14px;padding:16px;position:relative}.role-explainer article>span{color:#9ab166;font-size:9px;font-weight:900}.role-explainer strong{margin-top:9px;font-size:12px;display:block}.role-explainer p{color:#7d8784;margin:6px 0 0;font-size:8px;line-height:1.65}.member-list{padding:0 20px}.member-row{color:#75807c;border-bottom:1px solid #eff1ed;grid-template-columns:38px 1.5fr 70px 80px 80px 80px;align-items:center;gap:12px;min-height:68px;font-size:9px;display:grid}.member-row strong,.member-row small{display:block}.member-row strong{color:var(--ink);font-size:10px}.member-row small{color:#9ba19f;margin-top:4px;font-size:8px}.member-row b{color:var(--green);font-size:8px}.role-badge{background:var(--green-soft);width:fit-content;color:var(--green);border-radius:99px;padding:5px 7px;font-size:8px;font-weight:800}.role-badge.principal{color:#65722c;background:#eef0c8}.role-badge.supervisor{color:#66557f;background:#e8e4f4}.role-badge.finance{color:#8c5d21;background:#fff0dc}.followup-list{grid-template-columns:repeat(2,minmax(300px,1fr));gap:14px;padding:18px;display:grid}.followup-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:18px}.followup-main{grid-template-columns:40px 1fr auto;align-items:center;gap:10px;display:grid}.followup-main strong,.followup-main small{display:block}.followup-main strong{font-size:11px}.followup-main small{color:#979e9b;margin-top:4px;font-size:8px}.followup-card blockquote{color:#63706c;background:#f7f8f5;border:0;border-radius:11px;min-height:120px;margin:15px 0;padding:14px;font-size:9px;line-height:1.8}.followup-actions{grid-template-columns:1fr 1fr;gap:7px;display:grid}.followup-actions button{height:34px;color:var(--green);background:#eff5f2;border:1px solid #cfddd7;border-radius:9px;font-size:9px;font-weight:800}.followup-actions button:last-child{border-color:var(--green);background:var(--green);color:#fff}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1227217a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:21px;width:min(440px,100%);padding:27px;position:relative;box-shadow:0 30px 70px #11282247}.modal-close{color:#71807a;background:#f1f3ef;border:0;border-radius:50%;width:29px;height:29px;font-size:18px;position:absolute;top:15px;right:17px}.modal h2{letter-spacing:-.03em;margin:0;font-size:23px}.modal-copy{color:#7e8885;margin:9px 0 20px;font-size:10px;line-height:1.7}.modal label{color:#5c6864;margin:14px 0;font-size:9px;font-weight:800;display:block}.modal input,.modal select{background:#fbfcfa;border:1px solid #dfe4e0;border-radius:10px;outline:none;width:100%;height:42px;margin-top:7px;padding:0 12px;font-size:11px}.modal input:focus,.modal select:focus{border-color:#8eb4a6;box-shadow:0 0 0 3px #3d806a14}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:22px;padding-top:16px;display:flex}.modal-actions>button:not(.primary-button){border:1px solid var(--line);background:#fff;border-radius:10px;height:40px;padding:0 16px;font-size:10px}.modal-actions button:disabled{opacity:.45;cursor:not-allowed}.appointment-policy-mini{flex-wrap:wrap;gap:7px;margin:17px 0;display:flex}.appointment-policy-mini>*{background:var(--green-soft);color:var(--green);border-radius:99px;padding:6px 8px;font-size:8px}.toast{z-index:80;color:#fff;background:#173d34;border-radius:12px;max-width:min(420px,100vw - 40px);padding:13px 17px;font-size:10px;font-weight:700;animation:.2s ease-out toastIn;position:fixed;bottom:24px;right:24px;box-shadow:0 15px 40px #173d3447}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}}.access-page{background:radial-gradient(circle at 50% 20%,#f5f8d8,#0000 30%),#f5f6f1;place-items:center;min-height:100vh;padding:24px;display:grid}.access-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:24px;width:min(480px,100%);padding:42px;box-shadow:0 20px 55px #20312d17}.access-card .brand-mark{margin:0 auto 20px}.access-card h1{margin:0;font-size:24px}.access-card p:not(.eyebrow){color:var(--muted);font-size:11px;line-height:1.8}.access-card small{color:#9aa19e;font-size:9px}@media (max-width:1180px){.student-cards,.project-grid{grid-template-columns:repeat(2,minmax(230px,1fr))}.manager-grid{grid-template-columns:1fr}}@media (max-width:820px){.manager-hero{grid-template-columns:1fr}.hero-risk{border-top:1px solid #ffffff24;border-left:0;padding:15px 0 0}.pipeline{grid-template-columns:repeat(5,130px);overflow-x:auto}.followup-list{grid-template-columns:1fr}.appointment-item{grid-template-columns:45px 55px 1fr}.appointment-item .duration-chip,.appointment-item .cancel-button{grid-column:3}.role-explainer{grid-template-columns:1fr}.member-row{grid-template-columns:38px 1fr 70px}.member-row>span:nth-of-type(n+3),.member-row b{display:none}}@media (max-width:760px){.view-switcher{display:none}.student-cards,.project-grid{grid-template-columns:1fr}.priority-banner .policy-pill{display:none}.page-heading{flex-direction:column;align-items:flex-start}.page-heading input{width:100%}.manager-hero{padding:22px}.student-due div{flex-wrap:wrap}.toast{bottom:18px;left:20px;right:20px}}.secondary-top-button{border:1px solid var(--line);color:#64706c;background:#fff;border-radius:13px;height:43px;padding:0 15px;font-size:10px;font-weight:700}.page-tools{align-items:center;gap:8px;display:flex}.page-tools .primary-button{height:39px;font-size:9px}.appointment-item{grid-template-columns:46px 60px minmax(170px,1fr) 70px 122px}.appointment-actions{gap:5px;display:flex}.complete-button{color:var(--green);background:#eff6f3;border:1px solid #c9ddd5;border-radius:8px;padding:7px 8px;font-size:8px}.modal textarea{resize:vertical;width:100%;height:70px;font:inherit;background:#fbfcfa;border:1px solid #dfe4e0;border-radius:10px;outline:none;margin-top:7px;padding:10px 12px;font-size:11px}.modal textarea:focus{border-color:#8eb4a6;box-shadow:0 0 0 3px #3d806a14}.wide-modal{width:min(690px,100%);max-height:calc(100vh - 36px);overflow-y:auto}.form-grid{grid-template-columns:1fr 1fr;gap:0 13px;display:grid}.full-field{grid-column:1/-1}.login-page{background:#f6f7f2;grid-template-columns:minmax(420px,1.08fr) minmax(420px,.92fr);min-height:100vh;display:grid}.login-visual{color:#fff;background:radial-gradient(circle at 75% 18%,#e2ee8538,#0000 24%),radial-gradient(circle at 15% 82%,#e56c5029,#0000 30%),linear-gradient(145deg,#173d34,#285f50);flex-direction:column;min-height:100vh;padding:clamp(32px,5vw,72px);display:flex}.login-brand{align-items:center;gap:13px;font-size:18px;display:flex}.login-brand .brand-mark{color:#173d34}.login-message{max-width:670px;margin:auto 0}.login-message .eyebrow{color:#ddea8d}.login-message h1{letter-spacing:-.055em;margin:14px 0 20px;font-size:clamp(42px,5.2vw,76px);line-height:1.08}.login-message>p:last-child{color:#ffffff9e;max-width:470px;font-size:16px;line-height:1.85}.login-feature-row{flex-wrap:wrap;gap:9px;display:flex}.login-feature-row span{color:#ffffffb8;background:#ffffff12;border:1px solid #ffffff21;border-radius:999px;padding:9px 13px;font-size:11px}.login-panel{place-items:center;padding:40px;display:grid}.login-card{width:min(410px,100%)}.login-card h2{letter-spacing:-.045em;margin:0;font-size:38px}.login-help{color:var(--muted);margin:10px 0 29px;font-size:13px;line-height:1.7}.login-card label{color:#50605a;margin:18px 0;font-size:12px;font-weight:800;display:block}.login-card input{width:100%;height:52px;color:var(--ink);background:#fff;border:1px solid #dce3de;border-radius:14px;outline:none;margin-top:8px;padding:0 15px;font-size:14px;box-shadow:0 5px 20px #20312d08}.login-card input:focus{border-color:#6d9e8d;box-shadow:0 0 0 4px #275f4f14}.login-button{background:var(--green);color:#fff;border:0;border-radius:14px;width:100%;height:52px;margin-top:7px;font-size:14px;font-weight:800;box-shadow:0 12px 30px #275f4f33}.login-button:disabled{opacity:.55}.login-card>small{color:#929b97;text-align:center;margin-top:18px;font-size:10px;display:block}.login-error{background:var(--coral-soft);color:#b6533d;border:1px solid #f2c8bb;border-radius:10px;margin:-3px 0 12px;padding:10px 12px;font-size:11px}.finance-hero{color:#fff;background:radial-gradient(circle at 82% -20%,#eff6b940,#0000 38%),linear-gradient(130deg,#173d34,#32705e);border-radius:22px;grid-template-columns:1fr 170px;align-items:center;gap:24px;min-height:170px;margin-bottom:17px;padding:28px 30px;display:grid;box-shadow:0 15px 38px #173d342b}.finance-hero .eyebrow{color:#ddeb86}.finance-hero h2{letter-spacing:-.035em;margin:0;font-size:29px}.finance-hero p:not(.eyebrow){color:#ffffff96;margin:10px 0 0;font-size:11px;line-height:1.7}.finance-total{border-left:1px solid #ffffff24;padding-left:27px}.finance-total strong,.finance-total span,.finance-total small{display:block}.finance-total strong{color:#eef6ac;font-size:51px;line-height:1}.finance-total span{margin-top:6px;font-size:11px;font-weight:800}.finance-total small{color:#ffffff7a;margin-top:5px;font-size:9px}.finance-table-panel,.finance-detail-panel{margin-bottom:17px;overflow:hidden}.finance-table{min-width:660px}.finance-row{color:#68756f;border-top:1px solid #eff1ed;grid-template-columns:1.2fr .8fr .9fr .9fr 1fr;align-items:center;gap:16px;min-height:61px;padding:11px 22px;font-size:10px;display:grid}.finance-row strong{color:var(--ink);font-size:12px}.finance-row b{color:var(--green);font-size:15px}.finance-head{color:#99a19d;background:#fafbf9;border-top:0;min-height:41px;font-size:9px;font-weight:800}.finance-detail-list{padding:0 22px}.finance-detail-list article{border-bottom:1px solid #eff1ed;grid-template-columns:105px 1fr 100px;align-items:center;gap:17px;min-height:65px;display:grid}.finance-detail-list article:last-child{border-bottom:0}.finance-detail-list time{color:#53615c;font-size:10px;font-weight:800}.finance-detail-list strong,.finance-detail-list small{display:block}.finance-detail-list strong{font-size:11px}.finance-detail-list small{color:#929a96;margin-top:4px;font-size:9px}.lesson-status{border-radius:999px;width:fit-content;padding:6px 9px;font-size:8px;font-weight:800}.lesson-status.completed{background:var(--green-soft);color:var(--green)}.lesson-status.cancelled{background:var(--coral-soft);color:var(--coral)}.urgent-backdrop{z-index:110;background:#0b1f1aa6}.urgent-modal{width:min(660px,100%);max-height:calc(100vh - 36px);padding:0;overflow-y:auto}.urgent-modal-head{color:#fff;background:radial-gradient(circle at 85% 0,#e56c5038,#0000 35%),#173d34;grid-template-columns:54px 1fr;align-items:start;gap:16px;padding:28px 29px 23px;display:grid}.urgent-bell{background:var(--coral);color:#fff;border-radius:16px;place-items:center;width:50px;height:50px;font-size:24px;font-weight:900;display:grid;box-shadow:0 10px 25px #e56c503d}.urgent-modal-head .eyebrow{color:#ddeb86}.urgent-modal-head h2{color:#fff;font-size:28px}.urgent-modal-head p:last-child{color:#ffffff91;margin:7px 0 0;font-size:11px}.urgent-task-list{padding:12px 24px}.urgent-task{border-bottom:1px solid #ecefeb;grid-template-columns:28px 1fr auto;align-items:center;gap:13px;min-height:78px;padding:14px 4px;display:grid}.urgent-task>span{color:#aab2ae;font-size:9px;font-weight:900}.urgent-task strong{font-size:12px;display:block}.urgent-task p{color:#7e8985;margin:5px 0 0;font-size:9px;line-height:1.55}.urgent-task>button{height:32px;color:var(--green);background:#f0f6f3;border:1px solid #d6e2dc;border-radius:9px;padding:0 11px;font-size:9px;font-weight:800}.urgent-task.critical strong{color:#b74d37}.urgent-task.critical>span{color:var(--coral)}.urgent-empty{text-align:center;place-items:center;padding:35px 10px;display:grid}.urgent-empty>span{background:var(--green-soft);width:42px;height:42px;color:var(--green);border-radius:50%;place-items:center;font-weight:900;display:grid}.urgent-empty strong{margin-top:12px;font-size:14px}.urgent-empty p{color:#8c9692;max-width:360px;margin:7px 0 0;font-size:10px;line-height:1.6}.urgent-modal-footer{justify-content:flex-end;padding:16px 28px 24px;display:flex}.urgent-modal-footer .primary-button{min-width:170px}@media (max-width:820px){.appointment-item .appointment-actions{grid-column:3}.rubric-strip{grid-template-columns:1fr}.rubric-dimensions{grid-template-columns:1fr 1fr}}@media (max-width:760px){.page-tools{width:100%}.page-tools input{flex:1;min-width:0}.form-grid{grid-template-columns:1fr}.full-field{grid-column:auto}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-panel{min-height:100vh;padding:28px}.finance-hero{grid-template-columns:1fr}.finance-total{border-top:1px solid #ffffff24;border-left:0;padding:15px 0 0}.urgent-modal-head{grid-template-columns:44px 1fr;padding:24px 20px 20px}.urgent-bell{border-radius:13px;width:42px;height:42px}.urgent-task-list{padding:8px 17px}.urgent-task{grid-template-columns:22px 1fr}.urgent-task>button{grid-column:2;justify-self:start}.finance-detail-list article{grid-template-columns:85px 1fr}.finance-detail-list .lesson-status{grid-column:2}.ai-project-grid{grid-template-columns:1fr}.rubric-strip{padding:20px}.rubric-dimensions{grid-template-columns:1fr 1fr}.ai-score-head{grid-template-columns:1fr auto 1fr}.ai-score-head>em{grid-column:1/-1;width:fit-content}.dimension-scores{grid-template-columns:1fr 1fr}}
