:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#17253f;background:#f5f8fc;font-synthesis:none;--blue:#2868f6;--muted:#8a98b0;--line:#e9eff7}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:.18s}button:hover{filter:brightness(.97);transform:translateY(-1px)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #a4c4ff;outline-offset:3px}button{border:0;background:none;color:inherit}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}header{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:0 32px;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:13px;white-space:nowrap}.brand-icon{color:var(--blue);background:#edf4ff;border-radius:12px;padding:8px;display:flex}.brand-icon svg{width:31px;height:31px}.brand strong{font-size:21px;letter-spacing:.4px}.brand small{display:block;font-size:10px;color:var(--muted);letter-spacing:2.3px;margin-top:5px}.top-nav{display:flex;gap:28px;align-self:stretch;margin:auto}.top-nav button{display:flex;align-items:center;gap:9px;position:relative;font-size:14px;color:#63718a;padding:0 10px}.top-nav button.active{color:var(--blue);font-weight:600}.top-nav button.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--blue);border-radius:4px}.search{background:#f4f7fb;border-radius:9px;display:flex;align-items:center;padding:10px 13px;gap:9px;color:#8c99ac}.search input{border:0;outline:none;background:transparent;width:168px;font-size:12px;color:#283958}.profile{display:flex;gap:10px;align-items:center;border-left:1px solid var(--line);padding-left:22px}.avatar{width:36px;height:36px;border-radius:50%;background:#dceaff;color:#2764d9;display:grid;place-items:center;font-weight:600}.profile strong{display:block;font-size:12px}.profile small{font-size:10px;color:var(--muted)}.layout{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:calc(100vh - 88px)}aside{border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(#f8fbff,#f8fbff80)}.side-button{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 17px;border-radius:8px;font-size:14px;color:#5a6d8d;width:100%}.side-button.active{background:#e8f1ff;color:var(--blue);font-weight:600}.side-label{font-size:10px;color:#a2afc0;letter-spacing:2px;padding:21px 17px 8px}.side-bottom{margin-top:auto;padding-top:40px}.inspiration{padding:24px 18px 68px;border-radius:10px;background:linear-gradient(155deg,#e5f1ff,#f1f8ff);position:relative;overflow:hidden;color:#567cac}.inspiration:after{content:"";position:absolute;width:230px;height:80px;left:-18px;bottom:-34px;background:#d2e5fb;transform:rotate(-12deg);border-radius:40%}.inspiration strong{font-family:serif;font-size:18px;letter-spacing:2px;font-weight:400}.inspiration p{font-size:11px;line-height:1.7;color:#91a9c5}.side-foot{font-size:10px;color:#acb6c6;text-align:center;margin-top:20px}main{padding:27px 28px;max-width:1800px;width:100%;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:#98a6ba;margin:0 0 7px}.page-heading h1{font-size:23px;letter-spacing:.4px;margin:0}.page-heading h1 span{font-weight:400;font-size:13px;color:#8694ab;margin-left:12px}.date-label{font-size:12px;color:#7d8da7;display:flex;align-items:center;gap:8px}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 1.12fr;gap:14px;margin-bottom:22px}.card{background:white;border:1px solid #e7eef7;border-radius:12px;box-shadow:0 3px 10px #263d681f}.stat{display:flex;padding:20px 17px;gap:14px;align-items:flex-start;box-shadow:0 3px 9px #23375a03}.stat-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#edf3ff;color:var(--blue)}.stat-icon.purple{color:#8760e8;background:#f2edff}.stat-icon.green{color:#17b277;background:#e9f9f0}.stat-icon.orange{color:#ea9e39;background:#fff5e7}.stat p{font-size:12px;margin:2px 0 5px;color:#63728a}.stat strong{font-size:29px;font-weight:650;line-height:1.2;letter-spacing:-1px}.stat small{display:block;color:#99a5b7;font-size:10px;margin-top:8px}.stat small b{color:#1cb886;font-weight:500}.mini-calendar{padding:16px}.mini-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;margin-bottom:13px}.mini-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:8px 0;font-size:10px;color:#8d9ab0}.mini-days b{font-weight:500;color:#4f607b;width:24px;height:24px;display:grid;place-items:center;margin:auto}.mini-days b.today{color:white;background:var(--blue);border-radius:50%}.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:20px}.panel{padding:20px 18px 16px;box-shadow:0 3px 10px #23375a04}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:10px}.panel-title{font-size:16px;margin:0;font-weight:650}.panel-sub{font-size:11px;color:#8a98ae;margin:6px 0 0}.toolbar{display:flex;align-items:center;gap:7px}.btn{border-radius:7px;padding:9px 13px;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;background:#f1f6ff;color:#3674e8}.btn svg{width:15px;height:15px}.btn.primary{background:var(--blue);color:white;box-shadow:0 3px 6px #2868f61a}.btn.outline{border:1px solid #ccdcff;background:white;color:var(--blue)}.btn.danger{background:#fff1f1;color:#d95555}.icon-button{display:grid;place-items:center;padding:4px;color:#8d9ab1;border-radius:4px}.icon-button svg{width:15px;height:15px}.week-switch{display:flex;align-items:center;gap:7px}.week-switch span{font-size:11px;color:#7789a5}.schedule{display:grid;grid-template-columns:42px repeat(7,minmax(0,1fr));grid-template-rows:49px repeat(var(--rows),69px);position:relative}.day-header{text-align:center;font-size:11px;color:#526987;background:#f8fafd;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:9px 0}.day-header small{display:block;font-size:10px;color:#8d9bb2;margin-top:4px}.day-header.is-today{color:var(--blue);background:#edf4ff;font-weight:600}.day-header.is-today small{color:var(--blue)}.time{font-size:10px;color:#92a1b8;padding-top:7px}.grid-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 3px;min-width:0;position:relative}.grid-cell.today-col{background:#fafcff}.lesson{padding:7px 6px 6px 8px;background:var(--tint);border-radius:5px;display:block;width:100%;height:100%;text-align:left;position:relative;overflow:hidden}.lesson:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--accent)}.lesson small{display:block;font-size:9px;color:var(--accent);margin-bottom:4px;white-space:nowrap}.lesson strong{font-size:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#304363}.lesson span{display:block;font-size:9px;margin-top:4px;color:#75839b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend{display:flex;gap:15px;margin:16px 0 0 43px;font-size:9px;color:#8492a8;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:5px}.legend i{height:6px;width:6px;border-radius:50%;background:var(--accent)}.task-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:6px}.task-tabs button{padding:0 0 12px;font-size:11px;color:#8c9ab1;position:relative}.task-tabs button.active{color:var(--blue);font-weight:600}.task-tabs button.active:after{position:absolute;content:"";height:2px;background:var(--blue);bottom:-1px;left:0;right:0}.task-tabs b{font-size:9px;font-weight:500;border-radius:4px;background:#f0f4fa;padding:2px 5px;margin-left:5px}.tasks{min-height:374px;max-height:410px;overflow:auto}.task{display:flex;align-items:flex-start;gap:10px;padding:17px 2px;border-bottom:1px solid #f0f3f8}.task input[type=checkbox]{appearance:none;width:16px;height:16px;border:1.4px solid #bfcbdd;border-radius:4px;margin:1px 0 0;flex-shrink:0;cursor:pointer}.task input:checked{background:var(--blue);border-color:var(--blue)}.task input:checked:after{content:"✓";display:block;text-align:center;color:white;font-size:12px;line-height:14px}.task-text{flex:1;min-width:0}.task-text strong{font-size:12px;font-weight:500;display:block;line-height:1.45}.task-text small{font-size:10px;color:#94a1b7;display:block;margin-top:6px}.task.done strong{text-decoration:line-through;color:#9aa6b7}.due{font-size:10px;color:#8d9bb1;white-space:nowrap;margin-top:2px}.due.urgent{color:#ef8874}.task .icon-button{padding:1px}.task-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;gap:10px}.task-footer small{font-size:10px;color:#98a5b8}.lower-row{display:grid;grid-template-columns:1fr 1.15fr .85fr;gap:18px;margin-top:20px}.lower-card{padding:18px}.lower-title{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;margin-bottom:13px}.lower-title svg{color:#eead42;width:17px;height:17px}.reminder{font-size:10px;color:#7889a3;line-height:2.2}.reminder b{color:#5474a2;font-weight:500;margin-right:10px}.note-row{display:flex;gap:10px}.note-row textarea{resize:none;min-height:48px;border:1px solid var(--line);border-radius:6px;padding:10px;font-size:10px;flex:1;width:100%;color:#52647e;outline:none}.note-row textarea:focus{border-color:#a7c1fc}.quote{background:linear-gradient(130deg,#e6f2ff,#f5faff);position:relative;overflow:hidden;border:1px solid #dfefff;border-radius:12px;padding:23px}.quote p{font-family:serif;color:#5a7eaa;font-size:17px;line-height:1.65;letter-spacing:2px;margin:0;position:relative;z-index:1}.quote small{font-size:9px;color:#95aecb;display:block;margin-top:8px}.quote:after{content:"✧";position:absolute;color:#d1e4fc;font-size:130px;right:0;top:-28px}footer{font-size:10px;color:#a6b1c1;display:flex;justify-content:space-between;margin-top:20px}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#29ba86;margin-right:5px}.empty{padding:60px 15px;text-align:center;color:#99a7bb;font-size:12px;line-height:2}.page-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.course-card{padding:22px;border-top:3px solid var(--accent)}.course-card h3{font-size:16px}.course-card p{font-size:12px;color:#8492aa;line-height:1.8}.wide-panel{min-height:500px}.resource-link{color:var(--blue);font-size:13px;text-decoration:none}.bar-row{display:flex;gap:20px;align-items:center;margin:26px 0;font-size:13px}.bar-row>span{width:140px}.bar{height:16px;flex:1;border-radius:4px;background:#eef3fc;overflow:hidden}.bar i{display:block;height:100%;background:#83aaff}dialog{border:1px solid #e0e9f6;border-radius:16px;padding:28px;width:440px;max-width:calc(100% - 32px);box-shadow:0 20px 80px #203a6530;color:#233652}dialog::backdrop{background:#152a4b50;backdrop-filter:blur(3px)}dialog h2{font-size:19px;margin:0 0 22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;margin-bottom:14px}.field input,.field select{width:100%;min-width:0;border:1px solid #dfe6f1;border-radius:7px;padding:10px;color:#405574;background:#fff}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.form-actions .danger{margin-right:auto}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);background:#203657;color:white;padding:12px 22px;border-radius:8px;font-size:13px;z-index:20;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.login{max-width:400px;margin:16vh auto;padding:35px}.login p{font-size:13px;color:#8798af;line-height:1.8}.login h1{font-size:23px}.demo-badge{display:inline-block;font-size:9px;color:#b39862;background:#fbf5e8;border-radius:4px;padding:3px 6px;margin-left:8px}.progress-track{height:5px;background:#eff4fb;border-radius:6px;margin:13px 0}.progress-track i{display:block;height:100%;background:#32bb8d;border-radius:6px}@media(min-width:1500px){main{padding:30px}.schedule{grid-template-rows:52px repeat(var(--rows),78px)}.tasks{max-height:464px;min-height:428px}.task{padding:20px 2px}.lesson strong{font-size:12px}.lesson small,.lesson span{font-size:10px}.stat{padding:22px}.task-text strong{font-size:13px}.task-text small{font-size:11px}}@media(max-width:1200px){header{padding:0 20px;gap:15px}.brand strong{font-size:18px}.top-nav{gap:10px}.search{display:none}.layout{grid-template-columns:180px 1fr}aside{padding:24px 10px}.side-button{font-size:12px;padding:13px}.stats-row{grid-template-columns:repeat(4,1fr)}.mini-calendar{display:none}.workspace{grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr);gap:14px}main{padding:22px 18px}.stat{padding:16px 10px;gap:10px}.stat-icon{width:36px;height:36px}.stat strong{font-size:25px}.panel{padding:16px 12px}.panel-head{flex-wrap:wrap}.lower-row{grid-template-columns:1fr 1fr}.quote{display:none}.week-switch span{font-size:10px}}@media(max-width:950px){.workspace{grid-template-columns:1fr}.tasks{min-height:200px;max-height:400px}.page-list{grid-template-columns:repeat(2,1fr)}.profile{display:none}.top-nav{margin-left:auto;margin-right:0}.page-heading h1 span{display:none}}@media(max-width:620px){header{height:70px;padding:0 16px}.brand strong{font-size:17px}.brand small{font-size:8px}.brand-icon{padding:6px}.brand-icon svg{width:25px;height:25px}.top-nav{display:none}.layout{display:block}aside{position:fixed;bottom:0;left:0;right:0;height:64px;z-index:8;display:flex;flex-direction:row;background:white;padding:5px;border-top:1px solid var(--line);justify-content:space-around}aside .side-button{flex-direction:column;gap:4px;font-size:9px;padding:6px 10px;width:auto}aside .side-button:nth-of-type(n+5),.side-label,.side-bottom{display:none}main{padding:20px 12px 85px}.page-heading h1{font-size:20px}.date-label{font-size:10px}.stats-row{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:16px}.stat small{margin-top:4px}.lower-row{grid-template-columns:1fr}.panel-title{font-size:15px}.schedule{grid-template-columns:31px repeat(7,minmax(0,1fr));grid-template-rows:44px repeat(var(--rows),68px)}.grid-cell{padding:3px 1px}.lesson{padding:7px 2px 3px 4px}.lesson small{font-size:7px}.lesson strong,.lesson span{font-size:8px}.day-header{font-size:10px}.time{font-size:8px}.legend{gap:10px;margin-left:30px}.legend span{font-size:8px}.page-list{grid-template-columns:1fr}.panel-head{gap:15px}.btn{padding:8px 10px}.week-switch{gap:3px}footer{font-size:8px}.bar-row>span{width:95px}.page-heading{margin-bottom:16px}}
.schedule-wrap{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#d0def4 transparent}.stat small{line-height:1.5}.stat{min-width:0}.stat>div:last-child{min-width:0}
@media(max-width:620px){aside{justify-content:flex-start;overflow-x:auto;gap:2px}aside .side-button,aside .side-button:nth-of-type(n+5){display:flex;min-width:70px;flex-shrink:0}.schedule{min-width:610px;grid-template-columns:38px repeat(7,minmax(0,1fr));grid-template-rows:46px repeat(var(--rows),74px)}.lesson{padding:8px 5px 5px 7px}.lesson small{font-size:9px}.lesson strong{font-size:11px}.lesson span{font-size:9px}.time{font-size:10px}.legend{margin-left:0}.stat small{font-size:9px}.panel-sub{line-height:1.6}}
.panel{min-width:0}.workspace>*{min-width:0}@media(max-width:950px){.workspace{grid-template-columns:minmax(0,1fr)}}@media(max-width:620px){.lower-row{grid-template-columns:minmax(0,1fr)}}

.lesson-block{z-index:1;margin:4px;width:calc(100% - 8px);height:calc(100% - 8px);align-self:stretch}.lesson-block strong{white-space:normal;line-height:1.4}.lesson-block span{white-space:normal;line-height:1.4}.group-detail{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}.group-detail>b{color:var(--blue);white-space:nowrap}.group-detail>div{flex:1}.group-detail small{display:block;color:#8d9bb1;margin-top:5px}.group-detail .btn{padding:5px 9px}
@media(min-width:951px) and (max-width:1450px){.workspace{grid-template-columns:minmax(0,1fr)}}
.lesson-block strong,.lesson-block span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lesson-block{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;text-align:left}
