:root{color:#172535;background:#f6f8fc;font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:#26364a;background:#fff;border:1px solid #dfe5ed;border-radius:5px;padding:9px 14px;transition:all .18s}button:hover{color:#f47722;border-color:#ff9b51}.shell{min-height:100vh;display:flex}.sidebar{color:#eef6ff;z-index:3;background:linear-gradient(145deg,#102b40,#091a29);flex-direction:column;width:208px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;border-bottom:1px solid #274053;align-items:center;gap:7px;height:82px;padding:22px 20px;font-size:22px;display:flex}.brand small{align-self:flex-end;margin-bottom:2px;font-size:13px}.brandmark{color:#ff9b51;font-size:25px}.sidebar nav{padding:15px 8px}.nav{color:#d9e3ec;text-align:left;background:0 0;border:0;align-items:center;gap:14px;width:100%;margin:2px 0;padding:12px 14px;display:flex}.nav.active{color:#fff;background:#284154;border-left:3px solid #ff8d36;border-radius:4px}.nav em{color:#fff;background:#ff7e25;border-radius:13px;margin-left:auto;padding:1px 6px;font-size:11px;font-style:normal}.user-mini{border-top:1px solid #294154;align-items:center;gap:9px;margin:auto 18px 18px;padding-top:17px;display:flex}.user-mini div{flex:1}.avatar{color:#274668;vertical-align:middle;background:#e5ebf6;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-right:7px;font-weight:700;display:inline-flex}.avatar.photo{color:#fff;background:linear-gradient(135deg,#dcc2af,#45343a)}.avatar.large{width:68px;height:68px;font-size:23px}.avatar.giant{width:90px;height:90px;font-size:28px}main{width:calc(100% - 208px);margin-left:208px}.topbar{background:#fff;border-bottom:1px solid #e1e6ed;justify-content:space-between;align-items:center;height:65px;padding:0 28px;display:flex}.search{color:#9aa7b5;border:1px solid #dfe5ed;border-radius:5px;align-items:center;gap:10px;width:min(680px,60%);height:40px;padding:0 13px;display:flex}.top-actions{align-items:center;gap:10px;display:flex}.top-actions button{border:0;padding:5px;position:relative}.top-actions i{color:#fff;background:#fa5e34;border-radius:50%;padding:2px 5px;font-size:10px;font-style:normal;position:absolute;top:-6px;right:-7px}.page{max-width:1660px;margin:auto;padding:22px 26px}h1{letter-spacing:-.5px;margin:0 0 18px;font-size:27px}h3{margin:0;font-size:16px}.metrics{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px;display:grid}.metric,.panel{background:#fff;border:1px solid #e2e7ef;border-radius:7px;box-shadow:0 3px 10px #10223706}.metric{gap:17px;min-height:124px;padding:20px;display:flex;position:relative}.metric>span{color:#263c59;background:#f0f4fb;border-radius:50%;place-items:center;width:54px;height:54px;display:grid}.metric small,.metric p{color:#657285}.metric b{color:#ff7f21;font-size:28px;line-height:1.15;display:block}.metric p{margin:5px 0}.metric a{color:#405b7d;align-items:center;font-size:12px;display:flex;position:absolute;bottom:16px;right:17px}.two-column,.content-rail,.kanban-layout,.settings-grid{grid-template-columns:minmax(0,1fr) 340px;gap:14px;display:grid}.panel{margin-bottom:14px;padding:14px}.section-title{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.section-title button{color:#3568b6;border:0;padding:0;font-size:12px}.rail .panel{margin-bottom:12px}.primary{color:#fff;background:#ff7d20;border-color:#ff7d20;justify-content:center;align-items:center;gap:5px;display:inline-flex}.primary:hover{color:#fff;background:#ea6810}.wide{width:100%;padding:13px}.week{border-top:1px solid #e4e9f0;border-left:1px solid #e4e9f0;grid-template-columns:150px repeat(7,1fr);min-height:46px;display:grid}.week>*{border-right:1px solid #e4e9f0;padding:8px}.week small{color:#718096;font-size:11px;display:block}.week.header{background:#f5f7fa}.week.header b{text-align:center;font-weight:600}.week.header b:first-child{text-align:left}.week label{color:#333;font-size:12px}.week label:first-letter{color:#ff7a1e}.week.total{background:#f4f6fa}.student-brief{gap:10px;display:flex}.student-brief h3{margin:1px 0 5px}.student-brief p{color:#607083;font-size:11px}.tags span{background:#edf2fa;border-radius:4px;margin-right:4px;padding:3px 6px;font-size:11px}.brief-list{margin:12px 0 0;padding:0;list-style:none}.brief-list li{color:#647389;justify-content:space-between;padding:5px 0;display:flex}.brief-list b{color:#34475d}.materials{margin:0;padding:0;list-style:none}.materials li{border-bottom:1px solid #edf0f4;grid-template-columns:18px 1fr auto 38px;gap:4px;padding:5px 0;font-size:12px;display:grid}.materials .check{color:#27a45b}.materials b{color:#617084;font-weight:400}.materials small{color:#6b7c8f}.activity{border-left:2px solid #e2e8f2;margin:0;padding:0 0 0 12px;list-style:none}.activity li{padding:0 0 10px 10px;font-size:12px;position:relative}.activity li:before{content:"";background:#3973c9;border-radius:50%;width:7px;height:7px;position:absolute;top:3px;left:-5px}.activity small{color:#778697;margin-bottom:3px;display:block}table{border-collapse:collapse;width:100%;font-size:12px}th{color:#526174;text-align:left;background:#f5f7fa;border:1px solid #e4e9f0;padding:10px 8px;font-weight:500}td{vertical-align:middle;border:1px solid #e8edf2;padding:10px 8px}td small{color:#738194;margin-top:2px;display:block}.status{white-space:nowrap;color:#718093;font-size:12px}.status i{background:#bec7d3;border-radius:50%;width:8px;height:8px;display:inline-block}.status.done{color:#239651}.status.done i{background:#28a85b}.status.working{color:#f2781d}.status.working i{background:#ff831f}.due{color:#f16e19!important}.table-foot{text-align:center;color:#637184;padding:18px}.filters{gap:12px;margin-bottom:14px;display:flex}.filters button{text-align:left;min-width:150px;line-height:1.45;position:relative}.filters button svg{position:absolute;top:19px;right:10px}.filters small{color:#718093}.filters .primary{text-align:center;justify-content:center;margin-left:auto}.risk-list{margin:0;padding:0;list-style:none}.risk-list li{border-bottom:1px solid #e9edf2;gap:10px;padding:10px 0;display:flex}.risk-list li>b{color:#eb711b;text-align:center;border:2px solid #ff881f;border-radius:50%;width:22px;height:22px}.risk-list span{font-weight:600}.risk-list small{color:#ff6e25;margin-top:4px;font-weight:400;display:block}.deadline-list{margin:0;padding:0;list-style:none}.deadline-list li{border-bottom:1px solid #edf0f4;padding:8px 0;font-size:12px}.deadline-list small{float:right;color:#f26f21}.profile-head,.plan-head{background:#fff;border:1px solid #e1e7ee;border-radius:7px;align-items:center;gap:14px;margin-bottom:10px;padding:15px 20px;display:flex}.profile-head>div:nth-child(2),.plan-head>div{flex:1}.profile-head h1,.plan-head h1{margin:0;font-size:26px}.profile-head h1 span{color:#2774d8;background:#e8f0ff;border-radius:4px;padding:4px 8px;font-size:13px}.profile-head p,.plan-head p{color:#526174}.riskbox{color:#eb761b;background:#fff9e9;border:1px solid #f8ddaa;border-radius:5px;margin-right:10px;padding:9px 16px;font-size:12px}.tabs{background:#fff;border:1px solid #e3e8ef;border-radius:6px;margin-bottom:10px;display:flex}.tabs button{border:0;border-radius:0;padding:12px 21px}.tabs .selected{color:#1f62bf;border-bottom:3px solid #ff7d20}.app-card{border:1px solid #e3e9f0;border-radius:5px;padding:16px}.app-card h3{margin:0}.app-card>small{color:#687889;margin:5px 0 18px;display:block}.app-card .status{float:right;margin-top:-42px}.app-card p{color:#647386;justify-content:space-between;margin:9px 0;font-size:12px;display:flex}.app-card p b{color:#24364c;font-weight:500}.progress{background:#e7ebf0;border-radius:5px;height:5px;margin-top:11px}.progress i{background:#ff7d20;border-radius:5px;height:100%;display:block}.material-table>b{border:1px solid #e5eaf0;padding:10px;font-weight:500;display:block}.material-table>b small{float:right;font-weight:400}.material-table>div{border:1px solid #e5eaf0;border-top:0;grid-template-columns:1.3fr 1fr .8fr 1fr 50px;padding:9px;font-size:12px;display:grid}.material-table a{color:#2269bd}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid #bde4c9;padding:0 0 17px 30px;position:relative}.timeline li i{color:#fff;text-align:center;background:#28a45d;border-radius:50%;width:18px;height:18px;font-size:11px;font-style:normal;position:absolute;top:0;left:-10px}.timeline li b,.timeline li small{display:block}.timeline li small{color:#738195;margin-top:4px}.timeline li.current{border-color:#e2e8f0}.timeline li.current i{background:#ff7c20}.timeline li.current b,.timeline li.current small{color:#f2761c}.yellow{color:#7b6430;background:#fff9e9;border:1px solid #f6dfad;border-radius:5px;padding:12px;font-size:12px}.yellow b{color:#f17921}.task-header{justify-content:space-between;display:flex}.filters.slim{margin:0}.filters.slim button{min-width:auto;padding:10px 13px}.kanban{grid-template-columns:repeat(4,minmax(200px,1fr));gap:7px;display:grid;overflow-x:auto}.column{background:#f8fafc;border:1px solid #e2e8f0;padding:8px}.column h3{padding:5px 3px 12px}.column h3 small{float:right;color:#738195}.dot{background:#7a879a;border-radius:50%;width:9px;height:9px;margin-right:7px;display:inline-block}.dot.d1{background:#377eee}.dot.d2{background:#ffac18}.dot.d3{background:#2dac65}.task-card{background:#fff;border:1px solid #e4e9ef;border-radius:4px;min-height:120px;margin-bottom:9px;padding:11px;box-shadow:0 1px 3px #dfe5ed55}.task-card p{margin:10px 0 3px}.task-card small{color:#69798a}.task-card footer{color:#6d7c8b;margin-top:10px;font-size:12px}.task-card em{float:right;color:#ef751c;border:1px solid #f6d5bd;border-radius:3px;padding:2px 4px;font-style:normal}.task-card em.high{color:#e64a3c}.add-task{color:#3b69b2;background:0 0;border-style:dashed;width:100%}.today{margin:0;padding:0;list-style:none}.today li{gap:12px;padding-bottom:17px;display:flex}.today li>b{font-size:12px}.today li span{border-left:2px solid #e1e8f1;padding-left:12px;font-weight:600}.today li small{color:#748295;margin-top:5px;font-size:11px;font-weight:400;display:block}.donut{background:conic-gradient(#42af72 0 41%,#397ae2 41% 65%,#ffb31e 65% 79%,#f25b51 79% 100%);border-radius:50%;place-items:center;width:120px;height:120px;margin:10px auto;display:grid}.donut:before{content:"";background:#fff;border-radius:50%;width:82px;height:82px;position:absolute}.donut b{text-align:center;font-size:22px;position:relative}.donut small{color:#657488;font-size:11px;font-weight:400;display:block}.legend{margin:8px 0;padding:0;font-size:12px;list-style:none}.legend li{color:#3877cf;padding:4px}.legend li:nth-child(2){color:#30a764}.legend li:nth-child(3){color:#e49a17}.legend li:nth-child(4){color:#e3584d}.plan-head{margin-bottom:10px}.gantt{min-width:970px}.gantt-head,.gantt-row{grid-template-columns:100px 90px 80px 65px 1fr;display:grid}.gantt-head{background:#f4f6fa;border:1px solid #e3e8ef}.gantt-head>*{border-right:1px solid #e3e8ef;padding:10px}.gantt-row{border:1px solid #e8edf2;border-top:0;min-height:43px}.gantt-row>span,.gantt-row>.status{border-right:1px solid #e8edf2;padding:10px}.track{background:repeating-linear-gradient(90deg,#fff 0 7.8%,#e6ebf2 8%,#fff 8.2%);position:relative}.track i{color:#324056;white-space:nowrap;background:#ccd9fb;border-radius:2px;height:20px;padding:2px 8px;font-size:11px;font-style:normal;position:absolute;top:11px}.track.exam i{background:#c7d8ff}.track.academic i{background:#c7eccf}.track.apply i{background:#ded2fa}.track.arrival i{background:#f3e0bd}.track em{color:#ff7d20;font-size:10px;font-style:normal;position:absolute;top:13px;right:5%}.gantt-row .del{color:#e3584d;cursor:pointer;vertical-align:baseline;background:0 0;border:0;margin-left:8px;padding:0;font-size:11px}.gantt-row .del:hover{text-decoration:underline}.scrollbar{background:#a4a9aa;border-radius:8px;width:70%;height:8px;margin:12px}.notify-tabs span{flex:1}.notify-list article{border-top:1px solid #e5eaf0;border-bottom:0;border-left:3px solid #ff7c20;border-right:1px solid #e5eaf0;grid-template-columns:58px 1.7fr 1.3fr 80px 80px;align-items:center;min-height:74px;padding:8px;display:grid}.notify-list article.success{border-left-color:#25a561}.notice-icon{color:#fb7b20;background:#fff4e8;border-radius:50%;place-items:center;width:40px;height:40px;font-size:19px;display:grid}.notify-list article.success .notice-icon{color:#26a75e;background:#ecf8ef}.notify-list article>div b,.notify-list article>div small{display:block}.notify-list article>div small,.notify-list p{color:#6b798b;margin:4px 0;font-size:12px}.notify-list time{font-size:12px}.notify-list button{color:#f2761c;border:0;padding:0}.summary{text-align:center;justify-content:space-around;display:flex}.summary b{color:#ff7b1f;font-size:25px}.summary b:nth-child(2){color:#2877e5}.summary b:nth-child(3){color:#20a566}.summary b:nth-child(4){color:#6e7988}.summary small{color:#6b7888;margin-top:5px;font-size:11px;font-weight:400;display:block}.switches label{border-bottom:1px solid #e9edf2;justify-content:space-between;padding:11px 0;display:flex}.switches small{color:#788696;margin-top:3px;font-size:11px;display:block}.switches i{background:#2677e8;border-radius:15px;width:34px;height:20px;position:relative}.switches i:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;position:absolute;top:2px;right:2px}.switches i.off{background:#d5dce6}.switches i.off:after{left:2px}.report-head{align-items:center;gap:20px;margin-bottom:8px;display:flex}.report-head h1{flex:1}.report-head .yellow{width:265px;margin-left:auto}.report-grid{grid-template-columns:1.25fr .9fr;gap:14px;display:grid}.report-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.report-filters label{color:#6b798b;align-items:center;gap:6px;font-size:13px;display:flex}.risk-zone{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px;display:grid}.bar-report>div{align-items:center;gap:0;margin:18px 0;display:flex}.bar-report b{width:80px}.bar-report span{height:22px}.grey{background:#cbd2db}.blue{background:#3379e0}.green{background:#48ae75}.donut.big{background:conic-gradient(#ff891e 0 45%,#2f7ce3 45% 73%,#44af73 73% 90%,#7255d9 90% 100%);width:155px;height:155px}.donut.big:before{width:104px;height:104px}.linechart polyline{fill:none;stroke:#ff791c;stroke-width:3px}.linechart .greenline{stroke:#3780e7}.linechart p{color:#758395;font-size:11px}.mini-table td{padding:15px}.settings-grid{grid-template-columns:180px minmax(0,1fr) 375px}.subnav{background:#fff;border:1px solid #e1e6ed;border-radius:7px;height:max-content;padding:8px}.subnav button{text-align:left;border:0;width:100%;margin-bottom:5px;padding:12px;display:block}.subnav .active{color:#286ed0;background:#edf3ff}.profile-form{grid-template-columns:210px 1fr;gap:25px;display:grid}.profile-form>div{text-align:center}.profile-form>div button,.profile-form>div small{margin:12px auto;display:block}.profile-form>div small{color:#69788a;font-size:11px}.profile-form form label{grid-template-columns:100px 1fr;align-items:center;margin:10px 0;display:grid}.profile-form input{color:#314155;border:1px solid #dce3ec;border-radius:4px;padding:9px}.profile-form form button{margin-left:100px}.security p{border-bottom:1px solid #e6ebf1;padding:12px 0}.security a{color:#2875db;float:right}.security .yellow{margin-top:20px}.preferences label{margin:14px 0;display:block}.preferences select{background:#fff;border:1px solid #dce4ed;border-radius:4px;width:100%;margin-top:7px;padding:10px;display:block}.or{text-align:center;color:#7a8797;border-bottom:1px solid #e1e6ed;margin:30px 0;line-height:.1em}.or:first-line{background:#fff;padding:0 12px}@media (width<=1100px){.sidebar{width:64px}.brand{justify-content:center;padding:15px}.brand b,.brand small,.nav span,.nav em,.user-mini div,.user-mini>svg{display:none}.nav{justify-content:center;padding:13px}.user-mini{margin:auto 10px 15px;padding:10px 0}.user-mini .avatar{margin:auto}main{width:calc(100% - 64px);margin-left:64px}.two-column,.content-rail,.kanban-layout,.settings-grid{grid-template-columns:1fr}.rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.metrics{grid-template-columns:repeat(2,1fr)}.report-grid{grid-template-columns:1fr}.settings-grid>.rail{display:block}}@media (width<=720px){.page{padding:15px}.topbar{padding:0 15px}.metrics,.rail{grid-template-columns:1fr}.filters{overflow:auto}.app-cards{grid-template-columns:1fr}.profile-head{flex-wrap:wrap}.notify-list article{grid-template-columns:45px 1fr}.notify-list p,.notify-list time{display:none}}.impersonate-bar{color:#5c4b17;background:#fffbe8;border-bottom:1px solid #f2df9c;align-items:center;gap:8px;min-height:48px;padding:9px 28px;display:flex}.impersonate-bar b{white-space:nowrap}.impersonate-bar span{flex:1}.impersonate-bar button{white-space:nowrap;background:#fff;border-color:#e5cf83;padding:6px 12px}@media (width>=1101px){.dashboard{padding-top:7px}.dashboard>h1{margin:0 0 18px;font-size:27px;position:static}.dashboard .metrics{margin-bottom:13px}.dashboard .metric{min-height:137px}.task-header{display:block;position:relative}.task-header .filters.slim{margin:14px 0 24px;padding-right:310px}.task-header .filters.slim .primary{min-width:128px;height:42px;position:absolute;top:51px;right:0}.task-header+.kanban-layout .kanban{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.task-header+.kanban-layout .task-card{min-height:153px}}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-wrap table{min-width:860px}@media (width>=1101px) and (width<=1366px){.sidebar{width:190px}.brand{padding:20px 16px;font-size:20px}.sidebar nav{padding-inline:7px}.nav{gap:11px;padding-inline:12px}main{width:calc(100% - 190px);margin-left:190px}.topbar{padding-inline:20px}.page{padding:20px}.topbar .search{width:min(560px,55%)}.two-column,.content-rail,.kanban-layout{grid-template-columns:minmax(0,1fr) 300px}.settings-grid{grid-template-columns:160px minmax(0,1fr) 320px}.filters{gap:8px}.filters button{flex:1;min-width:0}.filters .primary{flex:0 0 140px}.app-cards{gap:10px}.app-card{padding:12px}.task-header .filters.slim{padding-right:150px}.task-header .filters.slim .primary{width:140px}.task-header+.kanban-layout .kanban{grid-template-columns:repeat(4,minmax(190px,1fr))}}@media (width<=1100px){.table-wrap table{min-width:760px}.dashboard>h1{position:static}.dashboard{padding-top:15px}}.brand{gap:10px;padding:17px 20px}.brand-copy{flex-direction:column;gap:4px;min-width:0;line-height:1;display:flex}.brand b{letter-spacing:-.45px;font-size:22px}.brand small{color:#b7c8d7;letter-spacing:.08em;align-self:auto;margin:0;font-size:11px}.brandmark{color:#0000;flex:0 0 24px;width:24px;height:28px;font-size:0;display:block;position:relative}.brandmark:before{content:"";border:2px solid #f5f8fc;border-radius:50%;position:absolute;inset:7px 0;transform:rotate(-26deg)}.brandmark:after{content:"";transform-origin:0;background:#ff8d36;width:22px;height:2px;position:absolute;top:13px;left:2px;transform:rotate(-22deg)}.brandmark i{background:#ff8d36;border-radius:50%;display:block;position:absolute}.brandmark i:first-child{width:5px;height:5px;top:4px;right:1px}.brandmark i:nth-child(2){width:4px;height:4px;top:15px;left:1px}.brandmark i:nth-child(3){display:none}.avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.avatar-file-input{display:none}.version-badge{z-index:40;color:#8a98a8;letter-spacing:.04em;pointer-events:none;font-size:11px;position:fixed;bottom:14px;right:18px}.release-mask{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a1b2e6b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.release-dialog{background:#fff;border:1px solid #dce6f1;border-radius:14px;width:min(480px,100%);padding:30px;box-shadow:0 24px 64px #0c1e3342}.release-kicker{color:#e66c1c;letter-spacing:.08em;font-size:12px;font-weight:700;display:block}.release-dialog h2{color:#172c46;margin:8px 0;font-size:25px}.release-dialog p{color:#7a899a;margin:0;font-size:13px}.release-dialog ul{margin:20px 0;padding:0;list-style:none}.release-dialog li{color:#40546a;margin:10px 0;padding-left:18px;font-size:14px;line-height:1.6;position:relative}.release-dialog li:before{content:"";background:#ff7d20;border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:0}.release-dialog button{width:100%;height:44px;margin-top:6px}.courses-page{flex-direction:column;gap:24px;padding:24px 32px;display:flex}.courses-head{flex-direction:column;gap:8px;display:flex}.breadcrumb{color:#8696ab;align-items:center;gap:6px;font-size:13px;display:flex}.breadcrumb .bc-sep{color:#c4cdd8;font-style:normal}.breadcrumb span:last-child{color:#172535}.courses-title h1{color:#172535;margin:0 0 6px;font-size:26px;font-weight:700}.courses-title p{color:#657a94;margin:0;font-size:14px}.courses-actions{justify-content:flex-end;gap:12px;margin-top:-36px;display:flex}.action-btn{color:#3d4f62;background:#fff;border:1px solid #dfe5ed;border-radius:6px;align-items:center;gap:7px;padding:9px 18px;font-size:14px;transition:all .18s;display:inline-flex}.action-btn:hover{color:#f47722;border-color:#ff9b51}.action-btn.orange-btn{color:#fff;background:linear-gradient(135deg,#ff7e25,#f56a00);border:none;font-weight:600}.action-btn.orange-btn:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 4px 12px #ff7e254d}.course-metrics{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.cm-card{background:#fff;border:1px solid #e8ecf2;border-radius:10px;align-items:flex-start;gap:16px;padding:22px 24px;display:flex;box-shadow:0 1px 3px #0f22420a}.cm-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.cm-icon.blue{color:#3b82f6;background:#eef4ff}.cm-icon.warn{color:#f97316;background:#fef3e7}.cm-body{flex-direction:column;gap:2px;min-width:0;display:flex}.cm-label{color:#657a94;font-size:13px}.cm-value{color:#172535;font-size:30px;font-weight:700;line-height:1.2}.cm-value.warn-text{color:#f97316}.cm-trend{color:#8696ab;margin-top:2px;font-size:12px}.cm-trend.up em{color:#22c55e;font-style:normal;font-weight:600}.cm-trend.up i{color:#22c55e;font-style:normal}.cm-alert-card{flex-direction:column;gap:0}.cm-body-full{width:100%}.alert-list{flex-direction:column;gap:10px;margin-top:10px;display:flex}.alert-item{align-items:center;gap:8px;font-size:13px;display:flex}.alert-item b{color:#172535;min-width:46px;font-weight:600}.alert-hours{color:#3d4f62;font-weight:500}.alert-tag{white-space:nowrap;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600}.alert-tag.critical{color:#dc2626;background:#fef2f2}.alert-tag.warning{color:#ea580c;background:#fff7ed}.schedule-section{border-color:#e8ecf2}.schedule-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.schedule-header h3{color:#172535;margin:0;font-size:17px;font-weight:700}.schedule-controls{align-items:center;gap:10px;display:flex}.nav-arrow{color:#657a94;background:#fff;border:1px solid #dfe5ed;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:all .15s;display:flex}.nav-arrow:hover{color:#3d4f62;border-color:#b0bcc8}.date-range{color:#3d4f62;white-space:nowrap;font-size:14px;font-weight:500}.today-btn{color:#3d4f62;background:#fff;border:1px solid #dfe5ed;border-radius:6px;padding:5px 14px;font-size:13px;transition:all .15s}.today-btn:hover{color:#f47722;border-color:#ff9b51}.view-select{color:#3d4f62;appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23657a94' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 8px center no-repeat;border:1px solid #dfe5ed;border-radius:6px;padding:5px 28px 5px 10px;font-size:13px}.schedule-grid{border:1px solid #e8ecf2;border-radius:10px;grid-template-columns:70px repeat(7,1fr);display:grid;overflow:hidden}.sg-corner{background:#fafbfd;border-bottom:1px solid #e8ecf2;border-right:1px solid #e8ecf2}.sg-header{display:contents}.sg-col-head{text-align:center;background:#fafbfd;border-bottom:1px solid #e8ecf2;border-right:1px solid #e8ecf2;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;display:flex}.sg-col-head b{color:#3d4f62;font-size:13px;font-weight:600}.sg-col-head small{color:#9aa8b8;font-size:11px}.sg-row-head{text-align:center;color:#657a94;background:#fafbfd;border-bottom:1px solid #e8ecf2;border-right:1px solid #e8ecf2;padding:12px 10px;font-size:13px;font-weight:500}.sg-cell{background:#fff;border-bottom:1px solid #e8ecf2;border-right:1px solid #e8ecf2;min-height:64px;padding:5px;position:relative}.schedule-block{cursor:pointer;border-radius:6px;flex-direction:column;gap:1px;padding:7px 9px;transition:transform .12s;display:flex;position:relative}.schedule-block:hover{transform:scale(1.03)}.schedule-block b{font-size:12px;font-weight:600;line-height:1.3}.schedule-block span{opacity:.85;font-size:11px;line-height:1.2}.schedule-block.blue{color:#2563eb;background:#eef4ff}.schedule-block.orange{color:#ea580c;background:#fff7ed}.schedule-block.green{color:#16a34a;background:#ecfdf5}.schedule-block.gray{color:#64748b;opacity:.82;background:#f1f5f9;text-decoration:line-through}.schedule-block .conflict-badge{color:#fff;background:#dc2626;border-radius:3px;padding:1px 4px;font-size:10px;font-weight:600;line-height:1.2;position:absolute;top:3px;right:4px}.schedule-block.conflict{outline-offset:-2px;outline:2px solid #e5484d;box-shadow:inset 0 0 0 1px #fff}.schedule-block .conflict-badge{color:#fff;opacity:.95;background:#e5484d;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600;line-height:1.4;position:absolute;top:4px;right:4px}.conflict-banner{color:#a4262c;background:#fff5f5;border:1px solid #ffd1d1;border-radius:8px;align-items:center;gap:6px;margin:8px 0;padding:8px 12px;font-size:13px;display:flex}.conflict-banner b{color:#e5484d}.state-box{color:#657a94;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 20px;display:flex}.state-box p{margin:0;font-size:14px}.state-box.empty{color:#9aa8b8}.state-box.error{color:#dc2626}.state-box .spinner{border:3px solid #e2e8f0;border-top-color:#ff7e25;border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.state-box button.primary{margin-top:6px}.toast-wrap{z-index:99;flex-direction:column;gap:10px;display:flex;position:fixed;top:18px;right:18px}.toast{color:#fff;border-radius:8px;padding:12px 18px;font-size:14px;animation:.25s slidein;box-shadow:0 8px 24px #0f22422e}.toast.success{background:#16a34a}.toast.error{background:#dc2626}.toast.info{background:#2563eb}@keyframes slidein{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.today-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.today-list li{background:#fff;border:1px solid #eef1f5;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.today-list li .dot{background:#f59e0b;border-radius:50%;flex:none;width:8px;height:8px}.today-list li.overdue .dot{background:#dc2626}.today-list li b{color:#172535;flex:1;font-size:14px}.today-list li small{color:#657a94;font-size:12px}.today-list li em{color:#dc2626;font-size:12px;font-style:normal;font-weight:600}.today-list li button{padding:6px 12px;font-size:12px}button.primary.sm{color:#fff;background:linear-gradient(135deg,#ff7e25,#f56a00);border:none;border-radius:6px;padding:6px 12px;font-size:12px}.risk{border-radius:12px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.risk.high{color:#dc2626;background:#fef2f2}.risk.medium{color:#ea580c;background:#fff7ed}.risk.low{color:#16a34a;background:#ecfdf5}.donut-wrap .legend{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.donut-wrap .legend li{color:#3d4f62;align-items:center;gap:8px;font-size:13px;display:flex}.donut-wrap .legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.donut-wrap .muted{color:#9aa8b8;margin-top:10px;font-size:12px}.muted{color:#9aa8b8;font-size:12px}.empty-col{text-align:center;color:#9aa8b8;border:1px dashed #d7dee7;border-radius:8px;margin-bottom:10px;padding:18px;font-size:13px}.search-input{border:1px solid #dfe5ed;border-radius:6px;min-width:220px;height:42px;padding:0 14px;font-size:14px}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.filters button{color:#3d4f62;background:#fff;border:1px solid #dfe5ed;border-radius:6px;align-items:center;gap:6px;padding:9px 14px;font-size:13px;display:inline-flex}.filters button.active{color:#f47722;background:#fff7ed;border-color:#ff9b51}.filters .primary{margin-left:auto}.filters button.primary.student-create{text-align:center;justify-content:center;min-width:132px;box-shadow:0 4px 12px #ff7d202e;color:#fff!important;background:#ff7d20!important;border-color:#ff7d20!important}.filters button.primary.student-create:hover{box-shadow:0 6px 16px #ea68103d;background:#ea6810!important;border-color:#ea6810!important}.notify-list article.unread{background:#fff;border-left:3px solid #ff8d36}.bar-report>div{align-items:center;gap:10px;margin:8px 0;font-size:13px;display:flex}.bar-report b{color:#3d4f62;flex:none;width:56px}.bar-report .blue{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:5px;height:10px;display:inline-block}.bar-report small{color:#657a94;margin-left:6px}.linechart svg{width:100%;height:160px}.pkg-list{flex-direction:column;gap:10px;display:flex}.pkg-item{background:#fff;border:1px solid #e8ecf2;border-radius:8px;padding:12px 14px}.pkg-top{justify-content:space-between;align-items:center;display:flex}.pkg-top>b{color:#172535;font-size:14px}.pkg-top>span{color:#3d4f62;font-size:13px;font-weight:600}.pkg-top>span.warn{color:#f97316}.pkg-item>small{color:#8696ab;margin:4px 0 8px;font-size:12px;display:block}.pkg-bar{background:#eef1f6;border-radius:6px;height:8px;overflow:hidden}.pkg-bar>i{background:linear-gradient(90deg,#3b82f6,#60a5fa);height:100%;display:block}.pkg-bar>i.low{background:linear-gradient(90deg,#f97316,#fb923c)}.teacher-list{margin:0;padding:0;list-style:none}.teacher-list li{border-bottom:1px solid #eef1f6;align-items:center;gap:10px;padding:10px 0;display:flex}.teacher-list li>div{flex:1;min-width:0}.teacher-list li b{color:#172535;font-size:13px}.teacher-list li small{color:#8696ab;margin-top:2px;font-size:12px;display:block}.tag{border-radius:20px;flex:none;padding:2px 9px;font-size:11px;font-weight:600}.tag.ft{color:#2f6fde;background:#eaf1ff}.tag.ext{color:#7c3aed;background:#f3e8ff}.tag.pt{color:#16a34a;background:#e8f6ee}.teacher-create-page{max-width:1040px}.teacher-create-breadcrumb{color:#7c8aa0;align-items:center;gap:8px;margin-bottom:16px;font-size:13px;display:flex}.teacher-create-breadcrumb .link{color:#3776d3;background:0 0;border:0;padding:0}.teacher-create-head{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.teacher-create-head h1{margin:0 0 7px}.teacher-create-head p{color:#718096;margin:0}.teacher-form-section{padding:24px}.teacher-form-section .section-title{margin-bottom:20px}.teacher-form-section .section-title h3{margin-bottom:5px}.teacher-form-section .section-title small{color:#8a98aa;font-size:12px}.teacher-form-section em,.teacher-form-grid em{color:#ef6d1a;font-style:normal}.teacher-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;display:grid}.teacher-form-grid label{color:#3d4f62;flex-direction:column;gap:8px;font-size:13px;font-weight:600;display:flex}.teacher-form-grid input,.teacher-form-grid select,.teacher-form-grid textarea{color:#26364a;width:100%;font:inherit;background:#fff;border:1px solid #dce4ed;border-radius:7px;outline:0;padding:10px 12px;font-weight:400}.teacher-form-grid textarea{resize:vertical;line-height:1.6}.teacher-form-grid input:focus,.teacher-form-grid select:focus,.teacher-form-grid textarea:focus{border-color:#ff9b51;box-shadow:0 0 0 3px #ff9b5124}.teacher-form-grid .span-2{grid-column:span 2}.teacher-create-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.teacher-create-actions button{min-width:96px}.teacher-create-actions .primary{color:#fff;background:#ff7d20;border-color:#ff7d20}.teacher-create-actions .primary:disabled{opacity:.6;cursor:not-allowed}@media (width<=720px){.teacher-create-head{gap:14px}.teacher-form-grid{grid-template-columns:1fr}.teacher-form-grid .span-2{grid-column:auto}.teacher-form-section{padding:18px}.teacher-create-actions{background:#f6f8fc;padding:12px 0;position:sticky;bottom:0}}.data-table{border-collapse:collapse;background:#fff;width:100%;font-size:13px}.data-table th,.data-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #eef1f6;padding:11px 14px}.data-table th{color:#657a94;background:#fafbfd;font-weight:600}.data-table tbody tr:hover{background:#fafcff}.data-table td.warn{color:#f97316;font-weight:600}.divider{color:#9aa8b8;align-items:center;gap:10px;margin:4px 0;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:#eef1f6;flex:1;height:1px}.schedule-days{flex-direction:column;gap:14px;display:flex}.sched-day{align-items:flex-start;gap:14px;display:flex}.sched-date{text-align:center;background:#fafbfd;border:1px solid #e8ecf2;border-radius:8px;flex:0 0 64px;padding:8px 0}.sched-date>b{color:#172535;font-size:16px;display:block}.sched-date>small{color:#9aa8b8;font-size:11px}.sched-blocks{flex-wrap:wrap;flex:1;gap:10px;display:flex}.sched-blocks .schedule-block{min-width:180px;max-width:240px}.modal-mask{z-index:50;background:#10223773;place-items:center;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;width:min(440px,92vw);max-height:86vh;overflow:auto;box-shadow:0 18px 50px #10223740}.modal-head{border-bottom:1px solid #eef1f6;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-head h3{color:#172535;margin:0;font-size:16px}.modal-head .link{color:#8696ab;background:0 0;border:0;padding:4px 8px;font-size:16px}.form{flex-direction:column;gap:14px;padding:18px 20px 20px;display:flex}.form label{color:#3d4f62;flex-direction:column;gap:6px;font-size:13px;display:flex}.form input,.form select{color:#314155;font:inherit;background:#fff;border:1px solid #dce4ed;border-radius:6px;padding:9px 11px}.form-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.form-actions button{min-width:84px}.student-academic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.application-country-field{color:#3d4f62;flex-direction:column;gap:8px;font-size:13px;display:flex}.application-country-field>span{font-weight:400}.application-country-field>span small{color:#8090a2;margin-left:5px;font-size:11px}.application-country-options{flex-wrap:wrap;gap:7px;display:flex}.application-country-options button{color:#52657a;background:#fff;border:1px solid #d8e2ee;border-radius:999px;padding:6px 11px;font-size:12px;line-height:1.2;transition:all .16s}.application-country-options button:hover{color:#2b6dbc;background:#f5f9ff;border-color:#9bbde7}.application-country-options button.selected{color:#235fa9;background:#eaf3ff;border-color:#4a85d6;font-weight:650;box-shadow:inset 0 0 0 1px #4a85d61a}.score-entry-list{background:#fbfdff;border:1px solid #e1e9f2;border-radius:8px;margin:0;padding:12px}.score-entry-list legend{color:#2f4661;padding:0 5px;font-size:13px;font-weight:650}.score-entry-help{color:#8090a2;margin:0 0 9px;font-size:11px}.score-entry{grid-template-columns:minmax(145px,.9fr) minmax(145px,1fr) 32px;align-items:start;gap:8px;margin:0 0 8px;display:grid}.score-entry select,.score-entry input{color:#314155;width:100%;min-height:38px;font:inherit;background:#fff;border:1px solid #d8e2ee;border-radius:6px;padding:8px 9px}.score-entry select:focus,.score-entry input:focus{border-color:#6f9dde;outline:0;box-shadow:0 0 0 3px #457ac81f}.score-entry-value small{color:#7c8da1;margin-top:4px;font-size:10.5px;line-height:1.35;display:block}.score-remove{color:#7890aa;background:#fff;border:1px solid #e5eaf1;border-radius:6px;place-items:center;width:32px;height:38px;padding:0;display:grid}.score-remove:hover{color:#d95043;background:#fff7f6;border-color:#f2b9b0}.score-add{color:#2e70c8;background:#f8fbff;border:1px dashed #a9c4e8;border-radius:6px;align-items:center;gap:5px;margin-top:1px;padding:7px 10px;font-size:12px;display:inline-flex}.score-add:hover{background:#eff5ff;border-color:#5b8fd4}@media (width<=520px){.score-entry{grid-template-columns:1fr 32px}.score-entry select,.score-entry-value{grid-column:1}.score-remove{grid-area:1/2/span 2;align-self:center}.student-academic-grid{grid-template-columns:1fr}}.search-box{flex:1;max-width:540px;position:relative}.search-input-wrap{color:#9aa8b8;background:#fff;border:1px solid #dfe5ed;border-radius:8px;align-items:center;gap:8px;height:42px;padding:0 14px;display:flex}.search-input-wrap:focus-within{color:#f47722;border-color:#ff9b51}.search-input-wrap .search-input{color:#26364a;border:0;outline:none;flex:1;min-width:0;height:auto;padding:0;font-size:14px}.search-spin{border:2px solid #e2e8f0;border-top-color:#ff7e25;border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite spin}.search-panel{z-index:40;background:#fff;border:1px solid #e6ebf2;border-radius:10px;max-height:60vh;padding:8px;position:absolute;top:50px;left:0;right:0;overflow:auto;box-shadow:0 18px 44px #10223729}.search-cat{padding:6px 4px}.search-cat h5{color:#9aa8b8;margin:6px 6px 4px;font-size:12px;font-weight:600}.search-item{text-align:left;color:#26364a;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 8px;display:flex}.search-item:hover{background:#f6f9fd}.search-item .avatar{margin:0}.search-item>div{flex:1;min-width:0}.search-item>div b{color:#172535;font-size:13px;display:block}.search-item>div small{color:#8696ab;margin-top:1px;font-size:12px;display:block}.search-empty{color:#9aa8b8;align-items:center;gap:8px;padding:16px;font-size:13px;display:flex}.major-chips{flex-wrap:wrap;gap:8px;padding:4px 6px;display:flex}.major-chip{color:#3d4f62;border:1px solid #dfe5ed;border-radius:20px;padding:5px 12px;font-size:12px}.major-chip:hover{color:#f47722;border-color:#ff9b51}.metric.clickable{cursor:pointer;transition:all .18s}.metric.clickable:hover{border-color:#ff9b51;transform:translateY(-2px);box-shadow:0 8px 22px #ff7e251f}.metric.clickable:focus{outline-offset:2px;outline:2px solid #ffb877}.metric.clickable a{color:#f47722;margin-top:auto;font-size:12px;font-weight:600;text-decoration:none}tr.row-link{cursor:pointer}tr.row-link:hover{background:#fafcff}.filter-chips{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filter-chips .chip{color:#ea580c;background:#fff7ed;border:1px solid #ffd9b8;border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600}.filter-chips .link{color:#8696ab;background:0 0;border:0;padding:4px 6px;text-decoration:underline}.app-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.app-card{cursor:pointer;background:#fff;border:1px solid #e8ecf2;border-radius:10px;padding:14px 16px;transition:all .16s}.app-card:hover{border-color:#ffd2a8;box-shadow:0 6px 18px #ff7e251a}.app-card.selected{border-color:#ff8d36;box-shadow:0 6px 18px #ff7e252e}.app-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.app-card-head h3{color:#172535;margin:0 0 2px;font-size:16px}.app-card>small{color:#8696ab;margin:2px 0 8px;font-size:12px;display:block}.app-card>p{color:#3d4f62;margin:4px 0 10px;font-size:13px}.app-card .progress{background:#eef1f6;border-radius:6px;height:7px;margin:6px 0 12px;overflow:hidden}.app-card .progress>i{background:linear-gradient(90deg,#ff7e25,#f56a00);border-radius:6px;height:100%;transition:width .3s;display:block}.app-card-actions{border-top:1px solid #f1f4f8;flex-wrap:wrap;align-items:center;gap:8px;padding-top:10px;display:flex}.status-flow{color:#788696;align-items:center;gap:6px;margin-right:auto;font-size:12px;display:inline-flex}.status-flow select{color:#314155;background:#fff;border:1px solid #dce4ed;border-radius:6px;padding:6px 8px;font-size:12px}.danger-text{color:#e3584d!important}.danger-text:hover{text-decoration:underline}button.danger{color:#fff;background:linear-gradient(135deg,#ff5a4d,#e23b2f);border:none;font-weight:600}button.danger:hover{opacity:.92}.form-err{color:#dc2626;margin:0;font-size:12px}.materials-wrap{flex-direction:column;gap:12px;display:flex}.materials-toolbar{border-bottom:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:18px;padding:2px 0 11px;display:flex}.materials-hint{color:#7b8ba0;margin:0;font-size:12px}.materials-summary{color:#708096;flex:none;align-items:center;gap:12px;font-size:12px;display:flex}.materials-summary span+span{border-left:1px solid #e5eaf1;padding-left:12px}.materials-summary b{color:#273a51;font-size:13px}.materials-summary .done b{color:#1d9a58}.materials-summary .warning b{color:#ec6f1d}.material-list{background:#fff;border:1px solid #e5eaf1;border-radius:9px;margin:0;padding:0;list-style:none;overflow:hidden}.material-item{background:#fff;border-bottom:1px solid #edf1f5;border-left:3px solid #cbd5e1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:72px;padding:12px 16px;transition:background .18s,box-shadow .18s;display:grid}.material-item:last-child{border-bottom:0}.material-item:hover{background:#fffdf9;box-shadow:inset 0 0 0 1px #ff9b5129}.material-item.mat-done{border-left-color:#22a45d}.material-item.mat-uploaded{border-left-color:#377eee}.material-item.mat-overdue{border-left-color:#dc4b43}.material-item.mat-near{border-left-color:#f17c24}.material-item.mat-pending{border-left-color:#e5ae1a}.material-item.mat-idle{border-left-color:#cbd5e1}.material-item-main{align-items:center;gap:12px;min-width:0;display:flex}.mat-dot{background:#cbd5e1;border-radius:50%;flex:none;width:9px;height:9px}.mat-dot.done{background:#22a45d}.mat-dot.uploaded{background:#377eee}.mat-dot.overdue{background:#dc4b43}.mat-dot.near{background:#f17c24}.mat-dot.pending{background:#e5ae1a}.mat-dot.idle{background:#cbd5e1}.material-copy{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.mat-label{color:#1d2f45;min-width:148px;font-size:14px;font-weight:600;line-height:1.45}.material-meta{color:#7a8a9d;align-items:center;gap:14px;min-width:0;font-size:12px;display:flex}.material-meta span{white-space:nowrap;align-items:center;gap:5px;min-width:0;display:inline-flex}.material-meta svg{color:#93a2b4;flex:none}.material-meta .material-scope{color:#7b8a9b}.material-meta .material-scope.shared{color:#3973bc;background:#eef6ff;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600}.material-deadline{color:#62758b;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:5px;margin:-3px -5px;padding:3px 5px;display:inline-flex}.material-deadline:hover{color:#286bc1;background:#eef5ff}.material-deadline svg{color:inherit!important}.mat-status{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;display:inline-flex;padding:3px 8px!important;font-size:12px!important}.mat-status i{width:7px;height:7px}.material-item-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.material-action,.material-upload{color:#526781;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dce5ef;border-radius:6px;justify-content:center;align-items:center;gap:5px;height:32px;padding:0 10px;font-size:12px;transition:all .18s;display:inline-flex}.material-action:hover{color:#286bd0;background:#f5f9ff;border-color:#b8cff0}.material-action b{color:#24384f;font-weight:600}.material-upload{color:#e96e1d;background:#fff9f3;border-color:#ffd3b0}.material-upload:hover{background:#fff2e6;border-color:#ff9b51}.material-upload input{display:none}.material-attachments{background:#fafcff;border:1px dashed #dce5ef;border-radius:7px;flex-direction:column;grid-column:1/-1;gap:5px;margin:0 0 1px;padding:9px 12px;list-style:none;display:flex}.material-attachments li{color:#617288;align-items:center;gap:9px;min-height:31px;font-size:12px;display:flex}.material-attachments li>svg{color:#5e85c4;flex:none}.att-name{color:#286bd0;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;text-decoration:none;overflow:hidden}.att-name:hover{text-decoration:underline}.material-attachments small{color:#91a0b1}.att-empty{color:#8796a9!important}.material-delete{color:#d65b50;background:0 0;border:0;padding:4px 6px;font-size:12px}.material-delete:hover{color:#b83d34;background:#fff1f0;border-color:#0000}@media (width<=960px){.materials-toolbar{flex-direction:column;align-items:flex-start;gap:8px}.material-item{grid-template-columns:1fr;gap:10px}.material-item-actions{justify-content:flex-start}.material-copy{flex-wrap:wrap;gap:5px 14px}.mat-label{min-width:auto}.material-meta{flex-wrap:wrap;width:100%}}@media (width<=560px){.materials-summary{flex-wrap:wrap;gap:8px}.materials-summary span+span{padding-left:8px}.material-item{padding:11px 12px}.material-item-main{align-items:flex-start}.mat-status{margin-left:auto}.material-item-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;display:grid}.material-action,.material-upload{padding:0 6px;font-size:11px}.material-action svg,.material-upload svg{display:none}}.status.rejected{color:#dc2626;background:#fef2f2}.status.rejected i{background:#dc2626}.status.uploaded{color:#2563eb;background:#eef4ff}.status.uploaded i{background:#2563eb}.status.overdue{color:#dc2626;background:#fef2f2}.status.overdue i{background:#dc2626}.status.near{color:#ea580c;background:#fff7ed}.status.near i{background:#ea580c}.status.pending{color:#ca8a04;background:#fef9ec}.status.pending i{background:#ca8a04}.plan-head{background:#fff;border:1px solid #e2e7ef;border-radius:10px;align-items:center;gap:16px;margin-bottom:16px;padding:16px 20px;display:flex}.plan-head .avatar.large{width:74px;height:74px;font-size:28px}.plan-head h1{margin:0;font-size:26px}.plan-head p{color:#65758c;margin:8px 0 0;font-size:14px}.plan-tools{align-items:center;gap:14px;margin-left:auto;display:flex}.seg{border:1px solid #d9e1eb;border-radius:8px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:#5b6b82;background:#fff;border:0;padding:10px 18px;font-size:14px}.seg button.on{color:#fff;background:#ff7a1a}.planning-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:14px;display:grid}.planning-main{min-width:0}.gantt-scroll{background:#fff;border:1px solid #e2e7ef;border-radius:10px;padding-bottom:10px;overflow-x:auto}.gantt-grid{min-width:100%}.gantt-hrow,.gantt-row{align-items:stretch;display:flex}.gantt-hrow{z-index:3;background:#fafbfd;border-bottom:1px solid #eef1f6;position:sticky;top:0}.gc-left{z-index:2;background:#fff;border-right:1px solid #eef1f6;flex-direction:column;justify-content:center;gap:4px;width:280px;min-width:280px;padding:10px 14px;display:flex;position:sticky;left:0}.gantt-hrow .gc-left{background:#fafbfd}.gc-left.gh{color:#5b6b82;height:38px;font-size:13px;font-weight:600}.gc-track{flex:none;height:auto;min-height:54px;display:flex;position:relative}.gantt-hrow .gc-track{height:38px}.g-period{color:#7c8aa0;border-right:1px solid #f0f3f8;flex:none;justify-content:center;align-items:center;padding-top:8px;font-size:12px;display:flex}.g-cell{border-right:1px solid #f3f6fb;flex:none}.gantt-row{border-bottom:1px solid #f4f7fb}.gantt-row:hover .gc-left{background:#fffaf4}.plan-row-dragging{opacity:.45}.gantt-row:has(.gc-left[draggable]:hover) .gc-left{cursor:grab}.g-title{flex-wrap:wrap;align-items:center;gap:6px;font-size:13.5px;font-weight:600;display:flex}.drag-grip{color:#99a8bb;cursor:grab;font-size:18px;line-height:1}.drag-hint{color:#9aa8b8;font-size:11px}.g-meta{color:#7c8aa0;align-items:center;gap:8px;font-size:12px;display:flex}.g-owner{color:#9aa8b8}.g-row-actions{gap:6px;margin-top:2px;display:flex}.g-row-actions .link{padding:0;font-size:12px}.badge{border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.badge.warn{color:#ea580c;background:#fff7ed}.badge.danger{color:#dc2626;background:#fef2f2}.today-line{z-index:4;pointer-events:none;background:#ff7a1a;width:2px;position:absolute;top:0;bottom:0}.gantt-hrow .today-line{height:38px}.today-line span{color:#ff7a1a;white-space:nowrap;font-size:10px;position:absolute;top:2px;left:4px}.g-bar{color:#2257c9;cursor:grab;-webkit-user-select:none;user-select:none;background:#eef4ff;border:1px solid #cfe0ff;border-radius:8px;align-items:center;height:30px;display:flex;position:absolute;top:11px;overflow:hidden;box-shadow:0 1px 3px #285ac81f}.g-bar.exam{color:#c2410c;background:#fff1e7;border-color:#ffd2b3}.g-bar.done{color:#15803d;background:#e9f8ee;border-color:#bfe9cd}.g-bar.overdue{color:#dc2626;background:#fdecec;border-color:#f6c9c9}.g-bar-label{white-space:nowrap;text-overflow:ellipsis;padding:0 10px;font-size:12.5px;overflow:hidden}.g-handle{cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0}.g-handle.l{left:0}.g-handle.r{right:0}.g-unsched{color:#9aa8b8;cursor:pointer;background:#f6f8fb;border:1px dashed #dde3ec;border-radius:7px;padding:4px 10px;font-size:12px;position:absolute;top:16px;left:8px}.planning-rail{flex-direction:column;gap:12px;display:flex}.planning-rail .panel{margin:0;padding:14px}.milestone-list{margin:0;padding:0;list-style:none}.milestone-list li{border-bottom:1px solid #eef2f6;gap:9px;padding:9px 0;display:flex}.milestone-list li:last-child{border-bottom:0}.mile-dot{background:#4bae75;border-radius:50%;flex:none;width:9px;height:9px;margin-top:6px;transform:rotate(45deg)}.mile-dot.exam{background:#ff8a35}.milestone-list button,.exam-summary button,.planning-risk button{text-align:left;color:#34465a;background:0 0;border:0;padding:0}.milestone-list b,.milestone-list small,.exam-summary b,.exam-summary small{display:block}.milestone-list b{font-size:13px}.milestone-list small,.exam-summary small{color:#8997a8;margin-top:3px;font-size:12px}.rail-empty{color:#9aa8b8;font-size:12px}.planning-progress{align-items:center;gap:16px;display:flex}.progress-ring{background:conic-gradient(#367be7 0 var(--progress),#e7ebf1 var(--progress) 360deg);text-align:center;border-radius:50%;flex:none;place-content:center;width:108px;height:108px;display:grid;position:relative}.progress-ring:before{content:"";background:#fff;border-radius:50%;position:absolute;inset:12px}.progress-ring b,.progress-ring small{z-index:1}.progress-ring b{color:#1d2d44;font-size:20px}.progress-ring small{color:#7c8aa0;font-size:11px}.planning-progress p{color:#627287;margin:6px 0;font-size:12px}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot.done{background:#31a867}.status-dot.doing{background:#367be7}.status-dot.todo{background:#c4ccd6}.planning-risk{background:#fff8e6;border:1px solid #f5df9b;border-radius:7px;padding:8px}.planning-risk button{color:#805f1b;width:100%;padding:6px 2px;font-size:12px;display:block}.planning-risk p,.exam-summary p{color:#8c99a8;margin:0;font-size:12px}.exam-summary button{border-bottom:1px solid #eef2f6;width:100%;padding:8px 0;display:block}.exam-summary button:last-child{border-bottom:0}.exam-summary b{font-size:13px}.exam-summary span{float:right;color:#26844e;background:#e9f8ee;border-radius:4px;margin-top:-17px;padding:2px 7px;font-size:11px}@media (width<=1180px){.planning-layout{grid-template-columns:1fr}.planning-rail{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.plan-head{align-items:flex-start}.plan-tools{margin-left:auto}}@media (width<=720px){.plan-head{flex-wrap:wrap}.plan-head .avatar.large{width:52px;height:52px;font-size:21px}.plan-head h1{font-size:21px}.plan-tools{justify-content:space-between;width:100%;margin-left:0}.planning-rail{grid-template-columns:1fr}.gc-left{width:220px;min-width:220px}}.drawer-mask{z-index:60;background:#141e3252;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:#fff;flex-direction:column;width:460px;max-width:94vw;height:100%;animation:.18s slideIn;display:flex;box-shadow:-8px 0 30px #0000001f}@keyframes slideIn{0%{opacity:.6;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.drawer-head{border-bottom:1px solid #eef1f6;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.drawer-head h3{margin:0;font-size:16px}.drawer-body{flex-direction:column;flex:1;gap:16px;padding:16px 18px;display:flex;overflow-y:auto}.drawer-foot{background:#fafbfd;border-top:1px solid #eef1f6;align-items:center;gap:10px;padding:14px 18px;display:flex}.drawer-foot .spacer{flex:1}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dep-list{border:1px solid #eef1f6;border-radius:8px;flex-direction:column;gap:4px;max-height:150px;padding:8px;display:flex;overflow:auto}.dep-item{align-items:center;gap:6px;font-size:13px;font-weight:400;display:flex}.dep-empty{color:#9aa8b8;font-size:12px}.skill-panel{border-top:1px solid #e8edf4;padding-top:14px}.skill-panel-title{margin:0 0 11px}.skill-panel h4{color:#203248;align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.skill-panel h4 svg{color:#f17c24}.skill-panel-title p{color:#77879b;margin:5px 0 0;font-size:12px;line-height:1.55}.skill-card{background:#fff;border:1px solid #e5ebf3;border-radius:9px;margin-bottom:10px;padding:12px;transition:border-color .18s,box-shadow .18s}.skill-card:hover{border-color:#cedef0;box-shadow:0 3px 10px #1939600d}.skill-card-head{justify-content:space-between;align-items:center;display:flex}.skill-card-head>div{align-items:center;gap:8px;min-width:0;display:flex}.skill-card-head b{color:#1d3148;font-size:13.5px}.skill-cat{color:#2b69c4;white-space:nowrap;background:#eef4ff;border-radius:999px;padding:2px 7px;font-size:11px}.skill-desc{color:#5c6e83;margin:6px 0 9px;font-size:12.5px;line-height:1.55}.skill-outcome{color:#60728a;background:#f7faff;border-radius:6px;align-items:flex-start;gap:6px;padding:8px 9px;font-size:12px;line-height:1.45;display:flex}.skill-outcome svg{color:#3d75c7;flex:none;margin-top:1px}.skill-outcome span{white-space:nowrap}.skill-outcome b{color:#344a64;font-weight:500}.skill-how{color:#687a90;margin-top:8px;font-size:12px}.skill-how summary{cursor:pointer;color:#2b69c4;align-items:center;gap:5px;list-style:none;display:flex}.skill-how summary::-webkit-details-marker{display:none}.skill-how summary:focus-visible{outline-offset:3px;border-radius:3px;outline:2px solid #8bb5ee}.skill-how>div{background:#fafcff;border-left:2px solid #d7e4f7;margin-top:7px;padding:8px 9px;line-height:1.55}.skill-how p{margin:0 0 5px}.skill-how p:last-child{margin-bottom:0}.skill-how p b{color:#40566f;font-weight:600;display:block}.skill-launch{color:#2b69c4;background:#f9fbff;border:1px dashed #b8ccea;border-radius:6px;justify-content:center;align-items:center;gap:5px;width:100%;margin-top:10px;padding:8px;font-size:12.5px;display:flex}.skill-launch:hover{color:#205bae;background:#f3f7ff;border-color:#5f91d8}.skill-run-note{color:#75869b;margin:0;font-size:12px;line-height:1.5}.skill-field{color:#3e536b;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;display:flex}.skill-field>span{align-items:center;gap:6px;display:flex}.skill-field em{color:#dc6618;background:#fff2e7;border-radius:10px;padding:1px 6px;font-size:10px;font-style:normal;font-weight:600}.skill-field input,.skill-field select{color:#2c4058;width:100%;height:34px;font:inherit;background:#fff;border:1px solid #d8e1ed;border-radius:6px;padding:7px 9px;font-weight:400}.skill-field input:focus,.skill-field select:focus{border-color:#6f9dde;outline:0;box-shadow:0 0 0 3px #457ac81f}.skill-field small{color:#8796a8;font-size:11px;font-weight:400}.skill-empty .link{font-size:12.5px}.tz-note{color:#7c8aa0;margin:6px 0 10px;font-size:12px}.skill-student-row{margin-bottom:10px}.skill-student-row .inline{align-items:center;gap:8px;font-size:13px;display:inline-flex}.skill-student-row select{max-width:220px}.check-row{cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.check-row input{width:auto}.recur-box{background:#fcfdff;border:1px dashed #e6ebf2;border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.weekday-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recur-label{font-size:13px;font-weight:500}.wd-chip{color:#5b6b82;cursor:pointer;background:#fff;border:1px solid #e0e6ef;border-radius:999px;padding:3px 12px;font-size:12.5px;transition:all .15s}.wd-chip.on{color:#fff;background:#ff7a1a;border-color:#ff7a1a}.tz-box{color:#8a5a2b;background:#fff7f0;border:1px solid #ffe1c4;border-radius:10px;flex-direction:column;gap:4px;margin-top:10px;padding:10px 12px;font-size:12.5px;display:flex}.tz-box span{align-items:center;gap:6px;display:flex}.settle-preview{background:#fcfdff;border:1px solid #eef1f6;border-radius:10px;flex-direction:column;gap:4px;padding:12px;font-size:13px;display:flex}.settle-preview b{color:#26344d}.settle-preview p{color:#5b6b82;margin:0}.settle-amount b{color:#ff7a1a;font-size:16px}.mono{color:#7c8aa0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.danger-link{color:#e5484d}.danger-link:hover{text-decoration:underline}.flex-spacer{flex:1}.action-btn.small{padding:4px 10px;font-size:12.5px}.task-header .filters.slim.task-filters{flex-wrap:wrap;padding-right:0}.task-header .filters.slim.task-filters .primary{width:auto;min-width:132px;height:42px;margin-left:auto;position:static}.task-filters select,.task-filters .search-input{color:#3d4f62;background:#fff;border:1px solid #dfe5ed;border-radius:6px;min-width:0;height:42px;padding:0 10px;font-size:13px}.task-filters select{max-width:150px}.task-filters .search-input{width:190px}.sort-ctl{align-items:center;gap:6px;display:flex}.sort-ctl select{max-width:128px}.sort-ctl button{white-space:nowrap;height:42px}.batch-bar{background:#fff;border:1px solid #e2e7ef;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex;box-shadow:0 2px 8px #10223708}.batch-bar .cb{color:#3d4f62;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.batch-bar .cb input{accent-color:#f47722;cursor:pointer;width:15px;height:15px}.batch-bar select,.batch-bar input[type=date]{color:#3d4f62;background:#fff;border:1px solid #dfe5ed;border-radius:6px;height:34px;padding:0 8px;font-size:13px}.batch-count{color:#5b6b82;font-size:13px}.batch-count b{color:#f47722;font-size:14px}.batch-bar .danger-btn{align-items:center;gap:5px;display:inline-flex}.danger-btn{color:#dc2626;background:#fef2f2;border-color:#f6c9c9;align-items:center;gap:6px;display:inline-flex}.danger-btn:hover{color:#b91c1c;background:#fee2e2;border-color:#f0a9a9}.chip-x{cursor:pointer;opacity:.7;margin-left:6px;font-style:normal}.chip-x:hover{opacity:1;color:#dc2626}.confirm-msg{color:#3d4f62;margin:0;font-size:13px;line-height:1.7}.purge-org-confirm label b{color:#172b4d;margin:7px 0 4px;display:block}.purge-org-confirm .form-hint{color:#9b5b13;margin:0}.danger:disabled{cursor:not-allowed;opacity:.42}.warning-icon{color:#a85f00!important}.task-drawer{width:520px}.drawer-head-badges{align-items:center;gap:8px;display:flex}.task-status{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.task-status.st-todo{color:#2f6fde;background:#eef4ff}.task-status.st-doing{color:#ea580c;background:#fff7ed}.task-status.st-review{color:#7c3aed;background:#f3e8ff}.task-status.st-done{color:#16a34a;background:#ecfdf5}.task-info{flex-direction:column;gap:10px;display:flex}.task-desc{color:#3d4f62;white-space:pre-wrap;background:#f8fafc;border:1px solid #eef1f6;border-radius:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.6}.kv{grid-template-columns:1fr 1fr;gap:8px 14px;display:grid}.kv span{color:#3d4f62;flex-direction:column;gap:3px;font-size:12.5px;display:flex}.kv b{color:#9aa8b8;font-size:11px;font-weight:600}.kv em{font-style:normal;font-weight:500}.kv em.due{color:#dc2626}.kv .risk{width:max-content;padding:1px 9px;font-size:11px}.stu-link{color:#2f6fde;cursor:pointer;font-weight:500;text-decoration:none}.stu-link:hover{text-decoration:underline}.drawer-actions{flex-wrap:wrap;gap:8px;display:flex}.drawer-actions button{align-items:center;gap:6px;font-size:13px;display:inline-flex}.skill-empty{color:#5b6b82;background:#f8fafc;border:1px dashed #d7dee7;border-radius:8px;padding:12px;font-size:12.5px;line-height:1.7}.skill-empty p{margin:0 0 10px}.skill-empty .link{color:#2f6fde;text-decoration:underline}.skill-launch{color:#2f6fde;background:0 0;border-style:dashed;width:100%;margin-top:8px;padding:8px;font-size:12.5px}.skill-run{background:#fcfdff;border:1px solid #e6ebf2;border-radius:8px;flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.skill-run label{color:#3d4f62;flex-direction:column;gap:4px;font-size:12.5px;display:flex}.skill-run input,.skill-run textarea{font:inherit;color:#314155;border:1px solid #dce4ed;border-radius:6px;padding:8px 10px;font-size:13px}.skill-run-actions{justify-content:flex-end;gap:8px;display:flex}.skill-run.custom h5{color:#172535;margin:0;font-size:13px}.skill-panel .skill-launch{color:#2b69c4;background:#f9fbff;border:1px dashed #b8ccea;border-radius:6px;justify-content:center;align-items:center;gap:5px;width:100%;margin-top:10px;padding:8px;font-size:12.5px;display:flex}.skill-panel .skill-launch:hover{color:#205bae;background:#f3f7ff;border-color:#5f91d8}.skill-panel .skill-run{background:#fbfdff;border:1px solid #d9e5f4;border-radius:8px;flex-direction:column;gap:10px;margin-top:10px;padding:10px;display:flex}.skill-panel .skill-run label.skill-field{color:#3e536b;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;display:flex}.skill-panel .skill-run label.skill-field input,.skill-panel .skill-run label.skill-field select{color:#2c4058;width:100%;height:34px;font:inherit;background:#fff;border:1px solid #d8e1ed;border-radius:6px;padding:7px 9px;font-weight:400}.skill-panel .skill-run label.skill-field small{color:#8796a8;font-size:11px;font-weight:400}.skill-io span{font-size:12px;display:block}.skill-prep-mask{z-index:80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f1f3275;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.skill-prep-dialog{background:#fff;border:1px solid #dce6f1;border-radius:14px;flex-direction:column;width:min(680px,100vw - 32px);max-height:calc(100vh - 48px);display:flex;overflow:hidden;box-shadow:0 24px 70px #0c1f3647}.skill-prep-head{background:linear-gradient(130deg,#f7faff 0%,#fff 68%);border-bottom:1px solid #e9eef5;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px 18px;display:flex}.skill-prep-kicker{color:#2c6ec6;align-items:center;gap:6px;font-size:12px;font-weight:650;display:flex}.skill-prep-kicker svg{color:#f27b22}.skill-prep-head h3{color:#1d3047;margin:7px 0 5px;font-size:20px;line-height:1.25}.skill-prep-head p{color:#6c7d91;max-width:540px;margin:0;font-size:13px;line-height:1.6}.skill-prep-close{flex:none;color:#718298!important;background:0 0!important;border:0!important;padding:7px!important}.skill-prep-close:hover{color:#274d7c!important;background:#edf3fb!important}.skill-prep-body{padding:18px 24px 22px;overflow:auto}.skill-prep-summary{grid-template-columns:150px minmax(0,1fr);gap:12px;margin-bottom:12px;display:grid}.skill-prep-summary>div{background:#fbfdff;border:1px solid #e3ebf5;border-radius:9px;min-width:0;padding:11px 13px}.skill-prep-summary span{color:#8797aa;margin-bottom:5px;font-size:11px;display:block}.skill-prep-summary b{color:#30455e;font-size:13px;font-weight:600;line-height:1.5;display:block}.skill-prep-notice{color:#8a641e;background:#fff8e9;border-radius:8px;align-items:flex-start;gap:8px;margin:0 0 18px;padding:10px 12px;font-size:12px;line-height:1.55;display:flex}.skill-prep-notice svg{color:#e58b21;flex:none;margin-top:1px}.skill-prep-fields{border-top:1px solid #edf1f6;padding-top:16px}.skill-prep-section-title{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px;display:flex}.skill-prep-section-title b,.skill-prep-section-title small{display:block}.skill-prep-section-title b{color:#263c55;font-size:14px}.skill-prep-section-title small{color:#8291a4;margin-top:3px;font-size:12px}.skill-prep-section-title>span{color:#3574c2;white-space:nowrap;background:#eff5ff;border-radius:999px;padding:3px 8px;font-size:11px}.skill-prep-fields .skill-field{margin:0 0 13px;padding:0}.skill-prep-fields .skill-field:last-child{margin-bottom:0}.skill-prep-fields .skill-field input,.skill-prep-fields .skill-field select{border-radius:7px;height:40px}.skill-prep-empty{color:#718399;background:#fafcff;border:1px dashed #d8e2ef;border-radius:8px;margin:0;padding:13px;font-size:12.5px;line-height:1.55}.skill-prep-help{color:#697c93;margin-top:16px;font-size:12px}.skill-prep-help summary{cursor:pointer;color:#2c6ec6;align-items:center;gap:6px;list-style:none;display:flex}.skill-prep-help summary::-webkit-details-marker{display:none}.skill-prep-help p{background:#f9fbfe;border-left:2px solid #d8e6f7;margin:8px 0 0;padding:10px 12px;line-height:1.55}.skill-prep-actions{background:#fff;border-top:1px solid #e9eef5;justify-content:flex-end;gap:10px;padding:14px 24px;display:flex}.skill-prep-actions .link{min-width:84px}.skill-prep-actions .primary{min-width:150px;min-height:40px}@media (width<=640px){.skill-prep-mask{padding:12px}.skill-prep-dialog{border-radius:12px;width:100%;max-height:calc(100vh - 24px)}.skill-prep-head{padding:18px 18px 15px}.skill-prep-head h3{font-size:18px}.skill-prep-body{padding:16px 18px}.skill-prep-summary{grid-template-columns:1fr}.skill-prep-actions{padding:12px 18px}.skill-prep-actions>*{flex:1}.skill-prep-actions .primary{min-width:0}}.drawer-tabs{border-bottom:1px solid #eef1f6;display:flex}.drawer-tabs button{color:#8696ab;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:10px;font-size:13px}.drawer-tabs button.active{color:#f47722;border-bottom-color:#ff9b51;font-weight:600}.comment-list{flex-direction:column;gap:12px;max-height:300px;margin-bottom:12px;display:flex;overflow-y:auto}.comment-item{gap:10px;display:flex}.comment-item .avatar{flex:none;margin:0}.comment-item>div{flex:1;min-width:0}.comment-item b{color:#172535;font-size:13px}.comment-item time{float:right;color:#9aa8b8;font-size:11px}.comment-item p{color:#3d4f62;background:#f8fafc;border-radius:8px;margin:4px 0 0;padding:8px 10px;font-size:13px;line-height:1.6}.comment-input{align-items:flex-end;gap:8px;display:flex}.comment-input textarea{font:inherit;resize:vertical;color:#314155;border:1px solid #dce4ed;border-radius:8px;flex:1;padding:9px 11px}.attach-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.attach-item{background:#fcfdff;border:1px solid #eef1f6;border-radius:8px;align-items:center;gap:10px;padding:9px 11px;display:flex}.attach-item>svg{color:#2f6fde;flex:none}.attach-item>div{flex:1;min-width:0}.attach-item a{color:#2f6fde;font-size:13px;text-decoration:none}.attach-item small{color:#9aa8b8;margin-top:2px;font-size:11px;display:block}.upload-btn{color:#2f6fde;background:0 0;border-style:dashed;justify-content:center;align-items:center;gap:6px;width:100%;padding:9px;display:inline-flex}.log-list{flex-direction:column;gap:4px;max-height:280px;display:flex;overflow-y:auto}.log-item{border-bottom:1px solid #f1f4f9;align-items:flex-start;gap:10px;padding:8px 4px;display:flex}.log-item .log-ic{color:#2f6fde;background:#eef4ff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;display:grid}.log-item b{color:#172535;font-size:13px}.log-item time{color:#9aa8b8;margin-top:2px;font-size:11px;display:block}.empty-tip{color:#9aa8b8;text-align:center;margin:0;padding:14px 0;font-size:12.5px}.task-card.checked{border-color:#ff9b51;box-shadow:0 0 0 2px #ffe3c4}.task-card.dragging{opacity:.45}.task-card.over{border-top:2px solid #ff7d20}.tc-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.tc-top .cb{align-items:center;display:flex}.tc-top .cb input{accent-color:#f47722;cursor:pointer;width:15px;height:15px}.tc-top .risk{padding:1px 8px;font-size:11px}.tc-title{font-size:13.5px;line-height:1.4;display:block}.tc-meta{color:#3d4f62;align-items:center;gap:6px;margin:8px 0 3px;font-size:12.5px;display:flex}.tc-meta .avatar{margin:0}.tc-type{color:#69798a}.tc-desc{color:#5b6b82;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;font-size:12px;display:-webkit-box;overflow:hidden}.column.drop{background:#eef4ff;border-color:#b9d0f5}.rail-warn{color:#dc2626;margin:10px 0 0;font-size:12.5px;font-weight:600}.avatar.sm{width:28px;height:28px;margin-right:0;font-size:12px}.status-btns{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.status-btns>.muted{margin-right:4px}.status-btn{color:#4b5563;cursor:pointer;background:#fff;border:1px solid #d6dde6;border-radius:14px;padding:5px 12px;font-size:12px;transition:all .12s}.status-btn:hover:not(:disabled){color:#1f2937;border-color:#94a3b8}.status-btn:disabled{cursor:not-allowed;opacity:.45}.status-btn.active{color:#fff;border-color:#0000;font-weight:600}.status-btn.scheduled.active{background:#3b82f6}.status-btn.completed.active{background:#16a34a}.status-btn.cancelled.active{background:#9ca3af}.status-btn.absent.active{background:#ea580c}.status-btn.leave.active{background:#a855f7}.status-btn .resolved-hint{color:#dc2626;margin-left:6px;font-size:11px}.rt4-tip{color:#69798a;margin:0 0 10px;font-size:12.5px}.rt4-ov-grid{grid-template-columns:repeat(4,1fr);gap:12px 18px;display:grid}.rt4-ov-grid>div{flex-direction:column;gap:3px;display:flex}.rt4-ov-grid span{color:#69798a;font-size:12px}.rt4-ov-grid b{font-size:15px;font-weight:600}.rt4-ov-stats{flex-wrap:wrap;gap:22px;margin:16px 0 4px;display:flex}.rt4-ov-stats div{color:#4b5563;font-size:13px}.rt4-ov-stats b{color:#1f2937;margin-right:4px;font-size:18px}.rt4-ov-tasks h4{color:#4b5563;margin:14px 0 6px;font-size:13px}.rt4-ov-tasks ul{margin:0;padding-left:16px}.rt4-ov-tasks li{justify-content:space-between;gap:12px;margin:4px 0;font-size:13px;display:flex}.rt4-ov-tasks li small{color:#97a3b3}.rt4-plan-mini,.rt4-sess-mini{flex-direction:column;gap:8px;margin:6px 0 0;padding:0;list-style:none;display:flex}.rt4-plan-mini li,.rt4-sess-mini li{background:#fbfcfe;border:1px solid #e4e9f0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.rt4-plan-mini b,.rt4-sess-mini b{font-size:13.5px}.rt4-pm-kind,.rt4-sc-teacher{color:#5b6b82;white-space:nowrap;background:#eef2f7;border-radius:10px;padding:1px 8px;font-size:12px}.rt4-pm-date,.rt4-sc-time{color:#4b5563;font-size:12.5px}.rt4-pm-status,.rt4-sc-status{color:#2563eb;font-size:12px}.rt4-plan-mini small,.rt4-sess-mini small{color:#97a3b3;font-size:12px}.rt4-cred-list{flex-direction:column;gap:10px;margin-top:6px;display:flex}.rt4-cred-card{background:#fbfcfe;border:1px solid #e4e9f0;border-radius:8px;padding:12px 14px}.rt4-cred-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rt4-cred-cat{color:#fff;background:#f47722;border-radius:10px;padding:1px 8px;font-size:11px}.rt4-cred-row b{font-size:13.5px}.rt4-cred-acct{color:#4b5563;font-size:12.5px}.rt4-cred-note{color:#97a3b3;font-size:12px}.rt4-cred-denied{color:#dc2626;margin:8px 0 0;font-size:13px}.rt4-cred-plain{align-items:center;gap:10px;margin-top:8px;display:flex}.rt4-cred-plain code{color:#e5e7eb;word-break:break-all;background:#1f2937;border-radius:6px;padding:4px 10px;font-size:12.5px}.rt4-cred-reason{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.rt4-cred-reason input{border:1px solid #cfd6df;border-radius:6px;flex:1;min-width:200px;padding:6px 10px}.rt7-reorder-hint{color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;margin:0 0 12px;padding:8px 12px;font-size:12.5px}.rt7-col-locked{opacity:.96}.admin-page{max-width:1500px}.admin-hero{background:linear-gradient(110deg,#fff 0%,#f5f8ff 67%,#e8f0ff 100%);border:1px solid #dce6f4;border-radius:10px;justify-content:space-between;align-items:center;gap:24px;min-height:150px;margin-bottom:16px;padding:28px 30px;display:flex}.admin-hero h1{margin:6px 0 7px;font-size:28px}.admin-hero p{color:#64748b;margin:0}.eyebrow{color:#2f70ca;letter-spacing:.04em;align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.admin-hero .primary{white-space:nowrap;padding:12px 18px}.admin-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.admin-summary>div{background:#fff;border:1px solid #e0e8f1;border-radius:8px;align-items:center;gap:12px;padding:17px 20px;display:flex}.admin-summary b{color:#1c2e46;font-size:25px;line-height:1}.admin-summary small{color:#718096}.admin-icon{color:#3678df;background:#e9f0ff;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.admin-icon.orange{color:#f4781a;background:#fff0e4}.admin-icon.green{color:#299c5a;background:#eaf8ef}.admin-section-head{justify-content:space-between;align-items:flex-end;margin:0 1px 12px;display:flex}.admin-section-head h2{margin:0 0 5px;font-size:18px}.admin-section-head p{color:#75849a;margin:0;font-size:13px}.admin-section-head>span{color:#69809b;font-size:13px}.organization-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.organization-card{background:#fff;border:1px solid #dfe7f0;border-radius:9px;padding:19px;transition:transform .18s,box-shadow .18s,border-color .18s;box-shadow:0 2px 10px #1f355009}.organization-card:hover{border-color:#b7cef0;transform:translateY(-2px);box-shadow:0 8px 22px #1f355017}.organization-card.disabled{opacity:.82;background:#f8fafc}.organization-card-head{align-items:flex-start;gap:10px;display:flex}.org-logo{color:#fff;background:linear-gradient(135deg,#284e7f,#15324c);border-radius:11px;flex:none;place-items:center;width:42px;height:42px;font-size:18px;font-weight:800;display:grid}.organization-card-head>div{flex:1;min-width:0}.organization-card h3{white-space:nowrap;text-overflow:ellipsis;margin:1px 0 5px;font-size:16px;overflow:hidden}.organization-card-head small{color:#718096;font-size:12px;line-height:1.45;display:block}.organization-card-head .status{font-size:11px}.organization-metrics{border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5;grid-template-columns:repeat(3,1fr);margin:18px 0;padding:13px 0;display:grid}.organization-metrics span{text-align:center;color:#7b8999;border-right:1px solid #edf1f5;font-size:11px}.organization-metrics span:last-child{border:0}.organization-metrics b{color:#263b55;margin-bottom:3px;font-size:18px;display:block}.organization-card-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.organization-card-foot .primary{padding:8px 11px;font-size:12px}.organization-card-foot>button{color:#2874c9;padding:8px 11px;font-size:12px}.card-actions{gap:6px;display:flex}.card-actions button{color:#647891;padding:7px 8px;line-height:1}.card-actions .danger-icon{color:#e56a5c}.card-actions .danger-icon:disabled{opacity:.4;cursor:not-allowed}.protected-note{color:#b78224;align-items:center;gap:5px;margin:12px 0 0;font-size:11px;display:flex}.isolation-note{color:#27794d;background:#f3fbf6;border:1px solid #cfe5d7;border-radius:8px;align-items:flex-start;gap:11px;margin-top:18px;padding:15px 18px;display:flex}.isolation-note b{margin-bottom:3px;display:block}.isolation-note p{color:#628574;margin:0;font-size:12px;line-height:1.55}.form-hint{color:#6e7e91;margin:0 0 5px;font-size:12px;line-height:1.55}.org-form label{margin-top:8px}@media (width<=1150px){.organization-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.admin-hero{flex-direction:column;align-items:flex-start;padding:20px}.admin-hero h1{font-size:23px}.admin-summary,.organization-grid{grid-template-columns:1fr}.admin-section-head{flex-direction:column;align-items:flex-start;gap:10px}}.login-switch{border:0;width:100%;margin-top:12px;padding:6px;font-size:12px;color:#2f6fca!important;background:0 0!important}.login-help.success{color:#17834b}.org-code{color:#74869c;background:#f6f9fe;border-radius:7px;align-items:center;gap:7px;margin:10px 0;padding:8px 10px;font-size:11px;display:flex}.org-code b{color:#264560;letter-spacing:.5px;font-size:12px}.org-code button{color:#2e71c9;background:0 0;border:0;margin-left:auto;padding:3px 7px;font-size:11px}.org-members{padding:16px 20px}.member-list{border-top:1px solid #edf1f5;margin-top:12px}.member-row{border-bottom:1px solid #edf1f5;align-items:center;gap:9px;padding:11px 0;display:flex}.member-row>div:nth-child(2){flex:1;min-width:0}.member-row b,.member-row small{display:block}.member-row small{color:#8291a3;margin-top:3px;font-size:11px}.member-actions{gap:5px;display:flex}.member-actions button{padding:5px 8px;font-size:12px}.user-mini-wrap{border-top:1px solid #294154;margin:auto 18px 18px;padding-top:17px;position:relative}.user-mini{text-align:left;align-items:center;gap:9px;width:100%;color:#eef6ff!important;background:0 0!important;border:0!important;border-radius:6px!important;margin:0!important;padding:0!important;display:flex!important}.user-mini:hover{color:#fff!important;background:#ffffff12!important}.user-mini .avatar{flex:none}.user-mini>div{flex:1;min-width:0}.user-mini b,.user-mini small{display:block}.user-mini small{color:#b5c5d1;font-size:11px}.user-mini>svg{flex:none}.user-menu{z-index:12;background:#fff;border:1px solid #d8e3ef;border-radius:8px;padding:5px;position:absolute;bottom:calc(100% + 10px);left:0;right:0;overflow:hidden;box-shadow:0 10px 26px #081a2f3d}.user-menu button{color:#31465f;text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:9px 10px;font-size:12px;display:flex}.user-menu button:hover{color:#2368be;background:#f4f8fd}.user-menu .user-menu-logout{color:#c14c40;border-top:1px solid #edf1f5}.user-menu .user-menu-logout:hover{color:#b83d30;background:#fff6f5}@media (width<=1100px){.user-mini-wrap{margin:auto 10px 15px;padding-top:10px}.user-mini-wrap .user-menu{bottom:calc(100% + 8px);left:-2px;right:-2px}.user-mini-wrap .user-menu button{justify-content:center}.user-mini-wrap .user-menu button svg{display:block}}.application-form label,.catalog-lookup{position:relative}.catalog-lookup input{width:100%}.catalog-menu{z-index:12;background:#fff;border:1px solid #cfddec;border-radius:7px;max-height:232px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 12px 28px #19325329}.catalog-menu button{text-align:left;color:#24364c;background:0 0;border:0;border-radius:5px;width:100%;padding:8px 10px;display:block}.catalog-menu button:hover,.catalog-menu button:focus{color:#1f66bd;background:#edf4ff}.catalog-menu b,.catalog-menu small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.catalog-menu b{font-size:13px}.catalog-menu small{color:#718197;margin-top:3px;font-size:11px}.catalog-empty{color:#718197;padding:10px;font-size:12px}.catalog-match{border-radius:6px;align-items:flex-start;gap:8px;margin:-2px 0 2px;padding:9px 10px;font-size:12px;display:flex}.catalog-match.reference{color:#2861a9;background:#eff6ff;border:1px solid #cfe0fb}.catalog-match.manual{color:#9a6715;background:#fff9eb;border:1px solid #f5dfad}.catalog-match span{min-width:0}.catalog-match b,.catalog-match small{display:block}.catalog-match small{color:inherit;opacity:.82;margin-top:2px;line-height:1.45}.field-note{color:#3b73bd;margin-top:4px;font-size:11px;display:block}.admission-requirements{color:#31465f;background:#fff;border:1px solid #d8e4ef;border-radius:8px;margin:2px 0 8px;font-size:12px;overflow:hidden}.admission-requirements>header{background:#f8fbfe;border-bottom:1px solid #e7eef5;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.admission-requirements>header b,.admission-requirements>header small{display:block}.admission-requirements>header b{color:#173b5f;font-size:13px}.admission-requirements>header small{color:#718197;margin-top:3px;line-height:1.4}.admission-requirements>header a{color:#2368be;white-space:nowrap;flex:none;font-weight:600;text-decoration:none}.requirements-unverified{color:#9a6715;background:#fff4dc;border-radius:12px;flex:none;padding:3px 7px;font-size:11px}.requirements-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.requirement-section{border-right:1px solid #e7eef5;min-width:0;padding:10px 12px}.requirement-section:last-child{border-right:0}.requirement-section h4{color:#173b5f;margin:0 0 7px;font-size:12px}.requirement-section p{color:#687b90;margin:0;line-height:1.5}.requirement-section ul{margin:0;padding:0;list-style:none}.requirement-section li{border-top:1px solid #eff3f7;padding:6px 0}.requirement-section li:first-child{border-top:0;padding-top:0}.requirement-section li b,.requirement-section li small{display:block}.requirement-section li b{color:#31465f;font-weight:600}.requirement-section li span{color:#2368be;margin-top:2px;display:block}.requirement-section li small{color:#718197;margin-top:3px;line-height:1.42}.requirements-caution{color:#87672c;background:#fffaf0;border-top:1px solid #f0e4c7;align-items:flex-start;gap:6px;padding:8px 12px;line-height:1.45;display:flex}.requirements-caution svg{flex:none;margin-top:1px}@media (width<=720px){.requirements-grid{grid-template-columns:1fr}.requirement-section{border-bottom:1px solid #e7eef5;border-right:0}.requirement-section:last-child{border-bottom:0}.admission-requirements>header{display:block}.admission-requirements>header a,.requirements-unverified{margin-top:7px;display:inline-block}}button{color:#31465d;letter-spacing:0;min-height:36px;box-shadow:none;background:#fff;border:1px solid #d6e0eb;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:600;line-height:1;transition:background-color .16s,border-color .16s,color .16s,transform .12s,box-shadow .16s;display:inline-flex}button:hover:not(:disabled){color:#203b57;background:#f8fafc;border-color:#9eb4ca}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline-offset:2px;outline:3px solid #ff7d203d}.primary,.action-btn.orange-btn,button.primary.sm{color:#fff;background:#f47722;border-color:#f47722;box-shadow:0 2px 5px #d55f132e}.primary:hover:not(:disabled),.action-btn.orange-btn:hover:not(:disabled),button.primary.sm:hover:not(:disabled){color:#fff;background:#d85d12;border-color:#d85d12;box-shadow:0 4px 10px #d55f1338}.action-btn{border-radius:7px;min-height:36px;padding:0 14px;font-weight:600}.action-btn.small,button.primary.sm{border-radius:6px;min-height:30px;padding:0 10px}.link{color:#2f6fca;min-height:28px;box-shadow:none;background:0 0;border-color:#0000;padding:0 4px;font-weight:500}.link:hover:not(:disabled){color:#1d5cae;background:#edf4fb;border-color:#0000}.danger,button.danger{color:#fff;background:#d95252;border-color:#d95252;box-shadow:0 2px 5px #b0303029}.danger:hover:not(:disabled),button.danger:hover:not(:disabled){color:#fff;background:#b83d3d;border-color:#b83d3d}.danger-link{color:#c94242;background:0 0;border-color:#0000;min-height:28px;padding:0 4px;font-weight:500}.danger-link:hover:not(:disabled){color:#aa3030;background:#fff1f1;border-color:#0000;text-decoration:none}.add-task{color:#2f6fca;background:#fff;border:1px dashed #b7c9dc;border-radius:7px;width:100%;min-height:36px;font-weight:600}.add-task:hover:not(:disabled){color:#1f5ca8;background:#f3f8ff;border-color:#6f9dd0}.top-actions button{min-height:0;box-shadow:none;background:0 0;border-color:#0000;padding:5px}.top-actions button:hover:not(:disabled){background:#f4f7fb;border-color:#0000}.sidebar{overflow:hidden auto}.sidebar nav{gap:4px;padding:15px 8px;display:grid}.nav{white-space:nowrap;border-left:3px solid #0000;border-radius:6px;gap:12px;min-height:44px;margin:0;padding:11px 12px 11px 11px}.nav svg{flex:none}.nav span{text-overflow:ellipsis;min-width:0;overflow:hidden}.nav.active{border-left-color:#ff8d36}.nav,.user-mini{min-height:0;box-shadow:none}.nav:hover:not(:disabled){color:#fff;background:#ffffff12}.admission-requirements>header{align-items:start;justify-content:initial;grid-template-columns:minmax(0,1fr) auto;display:grid}.admission-requirements>header>div{min-width:0}.admission-requirements>header>div small{overflow-wrap:anywhere}.admission-requirements>header>a,.admission-requirements>header>.requirements-unverified{white-space:normal;overflow-wrap:anywhere;grid-column:1/-1;justify-self:start;max-width:100%;margin-top:7px}@media (width>=1101px){.sidebar nav{padding:15px 8px}.nav{align-items:center;column-gap:12px;justify-content:initial;text-align:left;grid-template-columns:24px minmax(0,1fr) auto;display:grid}.nav span{justify-self:start}.nav em{text-align:center;justify-self:end;min-width:22px;margin-left:0}.nav svg{justify-self:center}}.requirements-link{white-space:nowrap}.requirements-modal-body .admission-requirements{margin:0}.requirements-modal-body .form-actions{margin-top:14px}.requirements-modal{width:min(920px,100vw - 32px);max-height:90dvh}.requirements-modal-body{padding:2px 22px 18px}.requirements-modal .admission-requirements>header{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.requirements-modal .admission-requirements>header>div{min-width:0}.requirements-modal .admission-requirements>header>div small{overflow-wrap:anywhere}.requirements-modal .admission-requirements>header>a{white-space:normal;overflow-wrap:anywhere;grid-column:1/-1}.requirements-modal .requirements-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.requirements-modal .requirement-section{min-width:0}.requirements-modal .requirement-section p,.requirements-modal .requirement-section small{overflow-wrap:anywhere}@media (width<=640px){.requirements-modal{width:calc(100vw - 20px);max-height:94dvh}.requirements-modal-body{padding:2px 14px 14px}.requirements-modal .admission-requirements>header{display:block}.requirements-modal .admission-requirements>header>a,.requirements-modal .requirements-precision{margin-top:7px;display:inline-block}}.requirements-context{color:#59708b;background:#f8fbff;border:1px solid #d8e5f3;border-radius:7px;margin:0 0 10px;padding:9px 11px;font-size:12px;line-height:1.55}.requirements-context b{color:#244d78}.requirements-meta.matched{color:#27744a;background:#f0faf4}.requirements-meta.pending{color:#8a641e;background:#fff9ee}.requirements-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.requirement-section{border-bottom:1px solid #e7eef5;border-right:1px solid #e7eef5}.requirement-section h4{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.requirement-section h4 em{color:#7c8ba0;background:#eef2f7;border-radius:9px;flex:none;padding:1px 5px;font-size:10px;font-style:normal;font-weight:500}.requirement-section.partial{background:#fbfdff}.requirement-section.unavailable{background:#fffdf8}.requirement-section.unavailable h4 em{color:#9a6715;background:#fdefd2}.requirement-source{color:#2368be;margin-top:6px;font-size:11px;text-decoration:none;display:inline-block}.requirement-source:hover{text-decoration:underline}.requirements-precision{color:#1f5ca8;background:#eaf2fb;border-radius:12px;flex:none;padding:3px 7px;font-size:11px}.admission-requirements.unavailable .requirements-precision{color:#9a6715;background:#fff4dc}.requirements-meta{color:#687b90;border-top:1px solid #e7eef5;margin:0;padding:7px 12px;line-height:1.45}@media (width<=1100px){.sidebar nav{gap:5px;padding:10px 8px}.nav{border-left-color:#0000;justify-content:center;padding-inline:0}.nav.active{border-left-color:#ff8d36}}@media (width<=720px){.sidebar{width:60px}.sidebar nav{padding-inline:6px}.nav{min-height:42px}.nav.active{border-left-width:2px}.requirements-modal-body{padding:2px 14px 14px}.requirements-link{justify-content:flex-start;width:100%}}.sales-page{max-width:1720px}.sales-page-head{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.sales-page-head h1{margin:0 0 6px}.sales-page-head p{color:#718096;margin:0}.sales-reminder{color:#94611b;background:#fff9ed;border:1px solid #f4d8aa;border-radius:7px;align-items:center;gap:10px;margin-bottom:12px;padding:11px 14px;display:flex}.sales-reminder span{color:#b7791f}.sales-reminder button{color:#236abf;background:0 0;border:0;margin-left:auto;padding:2px}.sales-toolbar{align-items:center;gap:8px;margin-bottom:14px;display:flex}.sales-toolbar input,.sales-toolbar select{color:#405268;background:#fff;border:1px solid #dce4ed;border-radius:5px;height:37px;padding:0 10px}.sales-toolbar input{min-width:225px}.sales-view-toggle{border:1px solid #dce4ed;border-radius:6px;margin-left:auto;display:flex;overflow:hidden}.sales-view-toggle button{border:0;border-radius:0;align-items:center;gap:5px;padding:8px 10px;display:flex}.sales-view-toggle button.selected{color:#286abe;background:#edf4ff}.sales-table-wrap{padding:0;overflow:auto}.sales-table{min-width:930px}.sales-table tr{cursor:pointer}.sales-table tbody tr:hover{background:#f7faff}.sales-table td{white-space:nowrap}.sales-stage{color:#53677c;background:#edf2f7;border-radius:4px;padding:3px 7px;font-size:11px;display:inline-block}.stage-新线索{color:#3273c3;background:#edf4ff}.stage-已联系{color:#367493;background:#eef6fb}.stage-需求沟通{color:#a96e13;background:#fff7df}.stage-方案-报价{color:#7054b6;background:#f1edff}.stage-待签约{color:#d06b19;background:#fff0e6}.stage-已签约{color:#268a4f;background:#e9f8ed}.stage-已流失{color:#738092;background:#f2f3f5}.rating{color:#64748b;background:#edf1f5;border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-grid}.rating-A{color:#d6513b;background:#ffe8e4}.rating-B{color:#9a7100;background:#fff5cf}.rating-C{color:#27834b;background:#e7f7ea}.rating-D{color:#6b7787;background:#eff1f4}.sales-board{grid-template-columns:repeat(7,minmax(205px,1fr));gap:9px;padding-bottom:8px;display:grid;overflow:auto}.sales-board-column{background:#f3f6fa;border:1px solid #e0e7ef;border-radius:7px;min-height:420px;padding:9px}.sales-board-column h3{justify-content:space-between;padding:3px 2px 11px;display:flex}.sales-board-column h3 small{color:#75869a}.sales-board-card{cursor:pointer;background:#fff;border:1px solid #e0e7ef;border-radius:6px;margin-bottom:8px;padding:11px;box-shadow:0 1px 3px #142e4c0d}.sales-board-card>b,.sales-board-card small{display:block}.sales-board-card small{color:#738196;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;overflow:hidden}.sales-board-card p{color:#576b80;min-height:30px;margin:9px 0;font-size:12px}.sales-board-card footer{justify-content:space-between;align-items:center;display:flex}.sales-board-card select{color:#63758a;background:0 0;border:0;max-width:110px;font-size:11px}.sales-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.sales-form label{margin:0}.sales-form input,.sales-form select,.sales-form textarea{width:100%}.sales-form label>input+input{margin-top:6px}.form-full{grid-column:1/-1}.sales-detail{padding:2px 20px 20px}.sales-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sales-detail-head h2{margin:0;font-size:20px}.sales-detail-head p{color:#738196;margin:5px 0 0}.sales-kv{grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 0;display:grid}.sales-kv span{color:#7b8a9b;background:#f6f8fb;border-radius:5px;padding:8px 10px;font-size:11px}.sales-kv b{color:#2e425a;margin-top:3px;font-size:12px;font-weight:600;display:block}.sales-student-link{color:#256dbd;border-color:#cbdcf2;margin:0 0 12px}.sales-followup-entry{background:#f6f9fd;border:1px solid #dfe9f5;border-radius:7px;margin-top:14px;padding:14px}.sales-followup-entry h3,.sales-detail section>h3{margin:0 0 9px}.sales-followup-entry textarea{resize:vertical;border:1px solid #d6e0eb;border-radius:5px;width:100%;padding:9px}.sales-followup-entry>div{grid-template-columns:1fr 150px auto;gap:8px;margin-top:8px;display:grid}.sales-followup-entry input{border:1px solid #d6e0eb;border-radius:5px;min-width:0;padding:8px}.sales-history{margin:10px 0 0;padding:0;list-style:none}.sales-history li{border-left:2px solid #d9e5f3;padding:10px 0 12px 13px;position:relative}.sales-history li:before{content:"";background:#4a82c7;border-radius:50%;width:8px;height:8px;position:absolute;top:14px;left:-5px}.sales-history time{float:right;color:#8492a3;font-size:11px}.sales-history p{color:#3e5066;white-space:pre-wrap;margin:7px 0}.sales-history small{color:#72849a;margin-right:10px;display:inline-block}.sales-convert{background:#f4fcf6;border:1px solid #b8dcc3;border-radius:7px;margin-top:16px;padding:14px}.due{font-weight:600;color:#df6c20!important}@media (width<=900px){.sales-toolbar{flex-wrap:wrap}.sales-toolbar input{flex:1}.sales-view-toggle{margin-left:0}.sales-form,.sales-kv,.sales-followup-entry>div{grid-template-columns:1fr}.sales-page-head{gap:12px}.sales-page-head .primary{white-space:nowrap}}@media (width<=600px){.sales-page-head{flex-direction:column;align-items:flex-start}.sales-toolbar>*{width:100%}.sales-toolbar input{min-width:0}.sales-view-toggle{width:auto}.sales-reminder{flex-wrap:wrap;align-items:flex-start}.sales-reminder button{margin-left:0}.sales-detail{padding:2px 12px 16px}}.material-ai-review{color:#2d69b7;background:#f5f9ff;border-color:#c9d9f4;padding:4px 7px;font-size:12px}.material-ai-review:disabled{opacity:.55;cursor:wait}.ai-review-dialog{flex-direction:column;gap:12px;display:flex}.ai-review-summary{color:#60748d;margin:0;font-size:13px}.ai-review-findings{border:1px solid #e1e8f0;border-radius:7px;margin:0;padding:0;list-style:none;overflow:hidden}.ai-review-findings li{border-bottom:1px solid #e8edf3;align-items:center;gap:12px;padding:11px;display:flex}.ai-review-findings li:last-child{border-bottom:0}.ai-review-findings li>div{flex:1;min-width:0}.ai-review-findings b,.ai-review-findings span,.ai-review-findings small{display:block}.ai-review-findings span{color:#365b8d;margin-top:3px}.ai-review-findings small{color:#728297;margin-top:4px;font-size:12px}.ai-review-findings select{min-width:100px;padding:6px}.ai-review-findings em{color:#238d52;font-size:12px;font-style:normal}.section-hint{color:#708196;margin:-2px 0 10px;font-size:12px}.copilot-list{margin:0;padding:0;list-style:none}.copilot-list li{border-bottom:1px solid #edf1f5;align-items:flex-start;gap:10px;padding:10px 0;display:flex}.copilot-list li:last-child{border-bottom:0}.copilot-list li>div{flex:1}.copilot-list b,.copilot-list small{display:block}.copilot-list small{color:#718299;margin-top:4px}.copilot-list p{color:#607188;background:#f6f8fb;border-radius:4px;margin:6px 0 0;padding:6px 8px;font-size:12px;line-height:1.55}.copilot-evidence{color:#77879a;margin-top:5px;font-size:11px;font-style:normal;display:block}.copilot-actions{flex-direction:column;gap:6px;min-width:88px;display:flex}.copilot-list button{color:#2e69b6;white-space:nowrap;border-color:#cbdcf0;padding:6px 9px;font-size:12px}.copilot-list .primary{color:#fff;border-color:#ff7d20}.evidence-brief{border-top:1px solid #e5ebf2;margin-top:18px;padding-top:15px}.evidence-brief h4{margin:0 0 5px}.evidence-brief>p{color:#718197;margin:0 0 10px;font-size:12px}.evidence-sections{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.evidence-sections article{background:#fafcff;border:1px solid #dfe7f1;border-radius:6px;padding:9px}.evidence-sections b,.evidence-sections span,.evidence-sections small{display:block}.evidence-sections span{color:#536a84;margin-top:5px;font-size:12px;line-height:1.5}.evidence-sections small{color:#8292a4;margin-top:7px;font-size:11px}.evidence-brief details{color:#4e6d94;margin-top:10px}.evidence-brief summary{cursor:pointer}.evidence-brief ul{margin:8px 0 0;padding-left:18px}.evidence-brief li{margin:4px 0}.evidence-brief li small{color:#8191a3;margin-left:8px;font-size:11px}@media (width<=760px){.copilot-actions{flex-flow:wrap}.evidence-sections{grid-template-columns:1fr}}.coverage-panel{padding:0 2px}.coverage-defs{color:#7a6a4d;background:#fff9f0;border-left:3px solid #ff8d36;margin:0 0 12px;padding:10px 12px;font-size:12px;line-height:1.7}.coverage-defs b{color:#9a6715}.coverage-filters{align-items:center;gap:14px;margin:12px 0;display:flex}.coverage-filters select{color:#405268;background:#fff;border:1px solid #dce4ed;border-radius:5px;height:36px;padding:0 9px}.coverage-only-covered{color:#52667d;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.coverage-panel .data-table td.verified{color:#1f8a4c;font-weight:600}.coverage-panel .data-table td.pending{color:#b7791f}.coverage-panel .data-table td small{color:#8b99a9;margin-top:2px;font-weight:400;display:block}.shell{min-width:0}main{flex:auto;width:calc(100% - 208px);min-width:0;min-height:100dvh}.page{width:100%;max-width:1660px;margin:0 auto;padding:22px clamp(20px,2vw,34px)}.content-rail{grid-template-columns:minmax(0,1fr) minmax(270px,320px);align-items:start;width:100%;min-width:0}.content-rail>*,.content-rail .rail{min-width:0}.content-rail .rail{align-content:start}.profile-head{min-width:0}.profile-head>div:nth-child(2){flex:1;min-width:0}.profile-head h1,.profile-head p{overflow-wrap:anywhere}.app-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch}.app-card{min-width:0}@media (width>=1101px) and (width<=1366px){main{width:calc(100% - 190px);margin-left:190px}.page{padding-inline:20px}.content-rail{grid-template-columns:minmax(0,1fr) 300px}}@media (width<=1100px){main{width:calc(100% - 64px);margin-left:64px}.content-rail{grid-template-columns:1fr}}@media (width<=720px){.page{padding:15px}.content-rail .rail{grid-template-columns:1fr}.profile-head{gap:10px;padding:14px}}:root{--focus-ring:#2563b8}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.6}.sidebar nav{overscroll-behavior:contain;min-height:0;overflow-y:auto}.sidebar .brand,.sidebar .user-mini-wrap{flex-shrink:0}.modal-head{z-index:1;background:#fff;position:sticky;top:0}.modal-head .link{min-width:44px;min-height:44px}.modal{overscroll-behavior:contain}.table-wrap{max-width:100%}@media (width<=720px){.topbar{flex-wrap:wrap;gap:10px;height:auto;min-height:65px;padding-block:10px}.topbar .search{width:100%;min-width:0}.top-actions{margin-left:auto}.top-actions button{min-width:44px;min-height:44px}.app-cards,.rt4-ov-grid,.profile-form,.risk-zone{grid-template-columns:minmax(0,1fr)}.report-head,.coverage-filters,.impersonate-bar{flex-wrap:wrap}.impersonate-bar{padding:10px 15px}.impersonate-bar span{overflow-wrap:anywhere;flex-basis:100%}.report-head .yellow{width:100%}.courses-page{padding:15px}.notify-list p{overflow-wrap:anywhere;display:block}.notify-list time{grid-column:2;display:block}.copilot-list li{flex-wrap:wrap}.copilot-actions{width:100%}.modal{max-height:90dvh}.form input,.form select,.form textarea{min-width:0;font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.two-column>*,.kanban-layout>*,.settings-grid>*,.report-grid>*,.panel{min-width:0}@media (width<=1100px){.two-column,.kanban-layout,.settings-grid,.report-grid{grid-template-columns:minmax(0,1fr)}}.bar-report>div{gap:8px}.bar-report b{flex:0 0 80px}.bar-report .distribution-track{flex:1;min-width:0}.distribution-track>span{border-radius:3px;display:block}.bar-report small{text-align:right;flex:0 0 28px}.password-form{flex-direction:column;gap:10px;max-width:360px;margin-top:12px;display:flex}.password-form label{color:#4a5b6d;flex-direction:column;gap:5px;font-size:13px;display:flex}.password-form input{border:1px solid #d7e0e9;border-radius:8px;padding:8px 10px;font-size:14px}.field-error{color:#c0392b;font-size:12px}.advisor-list{flex-direction:column;gap:6px;display:flex}.advisor-row{border:1px solid #e3eaf1;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.advisor-add{gap:8px;margin-top:10px;display:flex}.advisor-add select{border:1px solid #d7e0e9;border-radius:8px;flex:auto;padding:7px 9px;font-size:13px}.login{background:#fff;grid-template-columns:minmax(0,58%) minmax(420px,42%);min-height:100dvh;display:grid;overflow:hidden}.login-art{background-color:#faf7ee;border-right:1px solid #e8edf3;min-width:0;position:relative;overflow:hidden}.login-art-picture{position:absolute;inset:0}.login-art-picture img{object-fit:cover;object-position:center bottom;width:100%;height:100%;display:block}.login-brand{z-index:2;color:#112944;align-items:center;gap:16px;display:flex;position:absolute;top:clamp(40px,5vh,76px);left:clamp(52px,5.2vw,152px)}.login-brand>span:last-child{flex-direction:column;gap:8px;display:flex}.login-brand b{letter-spacing:.34em;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:clamp(25px,2.05vw,42px);font-weight:600;line-height:.9}.login-brand small{color:#62778e;letter-spacing:.44em;margin-left:2px;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:clamp(10px,.72vw,14px);font-weight:600;line-height:1}.login-brand-mark{flex:none;width:clamp(48px,3.9vw,76px);height:clamp(36px,3vw,58px);position:relative}.login-brand-mark:before{content:"";border:clamp(2px,.16vw,3px) solid #112944;border-radius:50%;position:absolute;inset:9% 0 15%;transform:rotate(-25deg)}.login-brand-mark:after{content:"";transform-origin:0;background:#ff7418;width:86%;height:clamp(2px,.12vw,3px);position:absolute;top:52%;left:7%;transform:rotate(-23deg)}.login-brand-mark i{z-index:1;background:#ff7418;border-radius:50%;display:block;position:absolute}.login-brand-mark i:first-child{width:clamp(6px,.48vw,10px);height:clamp(6px,.48vw,10px);top:8%;right:4%}.login-brand-mark i:last-child{width:clamp(8px,.62vw,12px);height:clamp(8px,.62vw,12px);top:54%;left:44%}.login-art-copy{z-index:2;max-width:min(78%,920px);position:absolute;top:clamp(190px,25vh,300px);left:clamp(52px,5.2vw,152px)}.login-art-copy h1{color:#112944;letter-spacing:-.055em;margin:0;font-size:clamp(34px,3.15vw,66px);font-weight:650;line-height:1.18}.login-art-copy p{color:#6d7e91;margin:22px 0 0;font-size:clamp(14px,1.15vw,23px);line-height:1.7}.login-form{background:#fff;align-items:center;min-width:0;min-height:100dvh;padding:56px clamp(32px,4vw,72px);display:flex}.login-form>div{width:min(360px,100%);margin-inline:auto}.login-eyebrow{color:#9b714f;letter-spacing:3px;margin-bottom:28px;font-size:11px;line-height:1.6}.login-form h1{color:#142b43;letter-spacing:-1px;margin:0 0 14px;font-size:30px;font-weight:700;line-height:1.3}.login-form p{color:#778291;margin:0 0 36px;font-size:14px;line-height:1.7}.login-form label{color:#58677a;flex-direction:column;gap:9px;margin:20px 0;font-size:13px;display:flex}.login-form input:not([type=checkbox]){color:#142b43;background:#fff;border:1px solid #dce1e7;border-radius:7px;outline:none;width:100%;height:50px;padding:12px 14px;font-size:15px}.login-form input::placeholder{color:#7a8490;opacity:1}.login-form input:not([type=checkbox]):focus{border-color:#ff9b51;box-shadow:0 0 0 3px #ff9b5124}.login-form input[type=checkbox]{accent-color:#ff7d20;width:16px;height:16px;margin:0 8px 0 0}.login-form .login-keep{color:#738093;cursor:pointer;flex-direction:row;align-items:center;gap:0;margin:20px 0 18px;font-size:12px}.login-form .login-help{color:#8290a1;margin:0 0 18px;font-size:12px}.login-code-row{gap:8px;display:flex}.login-code-row button{color:#276ec1;white-space:nowrap;border-color:#cdddf0;flex:0 0 108px;padding:0 8px}.login-form .wide{border-radius:8px;width:100%;height:52px;padding:0 18px;font-size:16px;font-weight:600}.login-form .primary.wide{color:#fff;background:#f47e2b;border-color:#f47e2b;box-shadow:0 5px 18px #ef7d301f}.login-form .primary.wide:hover:not(:disabled){background:#ef6c12;border-color:#ef6c12}.login-form .login-switch{border:0;width:100%;margin:24px auto 0;padding:6px 0;font-size:12px;font-weight:400;line-height:1.5;display:block;color:#386995!important;background:0 0!important}.login-footer{color:#9aa4af;letter-spacing:1px;margin-top:56px;font-size:10px;line-height:1.8}.login-form.is-register{align-items:flex-start}@media (aspect-ratio>=2){.login{grid-template-columns:minmax(0,64%) minmax(480px,36%)}.login-art-copy{top:clamp(190px,27vh,360px)}}@media (width<=1100px){.login{display:block}.login-art{display:none}.login-form{min-height:100dvh;padding:56px 24px 48px}.login-form>div{width:min(360px,100%);margin:0 auto}}@media (width<=480px){.login-form h1{font-size:27px}.login-form .wide{height:52px}.login-form input:not([type=checkbox]){font-size:16px}.login-eyebrow{letter-spacing:2px}.login-footer{margin-top:40px}}
