:root{font-family:"Microsoft YaHei","PingFang SC","Noto Sans SC",sans-serif;color:#18243a;background:#f6f8fc;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-.9px;margin-bottom:8px}h2{font-size:18px;letter-spacing:-.3px;margin-bottom:0}h3{font-size:15px;margin-bottom:4px}p{line-height:1.6}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;background:#fff;border-right:1px solid #e9edf4;display:flex;flex-direction:column;padding:30px 16px 20px;flex-shrink:0;position:sticky;top:0;height:100vh;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 10px;margin-bottom:51px}.brand-mark{height:38px;width:38px;background:#3f70d9;color:white;border-radius:12px;display:grid;place-items:center;font-size:18px;font-weight:700;box-shadow:0 7px 14px #416fda38}.brand strong{display:block;font-size:17px;letter-spacing:.3px}.brand span{display:block;color:#98a3b5;font-size:11px;margin-top:3px}.nav-caption{color:#a4aebc;font-size:11px;letter-spacing:1px;padding:0 17px;margin-bottom:12px}.nav-link{width:100%;border:0;background:transparent;color:#718097;border-radius:10px;display:flex;align-items:center;gap:13px;text-align:left;padding:13px 16px;margin:3px 0;font-weight:600;font-size:14px}.nav-link:hover{background:#f6f8fd;color:#345fba}.nav-link.active{background:#edf3ff;color:#3467d3}.nav-link svg{width:19px;height:19px}.sidebar-bottom{margin-top:auto}.privacy-card{display:flex;gap:10px;align-items:flex-start;background:#f4f7fd;border-radius:13px;padding:15px 11px}.privacy-icon{color:#5078ce}.privacy-icon svg{width:18px;height:18px}.privacy-card strong{font-size:12px;color:#405778}.privacy-card p{font-size:11px;color:#96a2b5;margin:4px 0 0;line-height:1.5}.sidebar-foot{text-align:center;color:#b2bbc9;font-size:11px;margin-top:19px}.main-area{flex:1;min-width:0}.topbar{height:74px;background:#fff;border-bottom:1px solid #e9edf4;display:flex;align-items:center;justify-content:space-between;padding:0 42px}.breadcrumb{display:flex;align-items:center;gap:11px;color:#a5afbf;font-size:13px}.breadcrumb strong{color:#4c5d75;font-weight:600}.slash{color:#d1d8e2}.top-actions{display:flex;align-items:center;gap:22px}.today-pill{color:#7b8799;font-size:12px}.avatar{background:#dfe9ff;color:#3d6bce;border-radius:50%;height:33px;width:33px;display:grid;place-items:center;font-size:13px;font-weight:700}.mobile-menu{display:none!important}main{max-width:1440px;margin:auto;padding:35px 42px 68px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{color:#4577df;font-weight:700;font-size:12px;letter-spacing:1px;margin-bottom:9px}.muted{color:#8b98aa}.page-heading p{color:#8b98aa;font-size:13px;margin-bottom:0}.button{border:1px solid transparent;border-radius:9px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:13px;white-space:nowrap;transition:.18s}.button svg{height:16px;width:16px}.button.primary{background:#3f70db;color:#fff;box-shadow:0 5px 12px #3f70db27}.button.primary:hover{background:#315fc6}.button.secondary{background:#fff;color:#52627a;border-color:#e1e7f0}.button.secondary:hover,.icon-button:hover{background:#f4f7fc}.button.danger{background:#fff0f0;color:#cf4d51}.button.ghost{background:transparent;color:#6481aa}.icon-button{display:grid;place-items:center;border:0;background:transparent;color:#8392a7;width:33px;height:33px;border-radius:8px}.icon-button svg{height:17px;width:17px}.grid{display:grid;gap:20px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.card{background:#fff;border:1px solid #e9edf4;border-radius:15px;box-shadow:0 6px 24px #243e6908}.metric{padding:21px 22px;min-height:135px}.metric-top{display:flex;align-items:center;justify-content:space-between;color:#8c99ab;font-size:12px}.metric-icon{width:33px;height:33px;border-radius:10px;background:#edf3ff;color:#4674d7;display:grid;place-items:center}.metric-icon.green{background:#ebf9f3;color:#35a87a}.metric-icon.orange{background:#fff5e9;color:#e6a05f}.metric-icon.purple{background:#f2efff;color:#8067d5}.metric-icon svg{height:17px;width:17px}.metric-value{font-weight:700;font-size:28px;margin:14px 0 3px;letter-spacing:-.8px}.metric-foot{font-size:11px;color:#a5afbd}.metric-foot strong{color:#36a67e}.dashboard-main{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);align-items:start}.column{display:grid;gap:20px}.section-card{padding:24px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.card-heading p{font-size:12px;color:#a3adbc;margin:5px 0 0}.link-button{border:0;background:transparent;color:#4c78d6;font-weight:600;font-size:12px;display:inline-flex;align-items:center;gap:4px}.link-button:hover{text-decoration:underline}.link-button svg{width:14px;height:14px}.task-row,.schedule-row,.study-row,.note-row{display:flex;align-items:center;gap:13px;padding:14px 0;border-top:1px solid #f0f2f6}.task-row:first-of-type,.schedule-row:first-of-type,.study-row:first-of-type,.note-row:first-of-type{border-top:0}.check{appearance:none;border:1.7px solid #b9c5d6;width:18px;height:18px;border-radius:6px;flex-shrink:0;margin:0;cursor:pointer;display:grid;place-items:center}.check:checked{border-color:#4d78d5;background:#4d78d5}.check:checked:after{content:"✓";color:white;font-size:12px;font-weight:bold}.row-main{min-width:0;flex:1}.row-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-title.done{text-decoration:line-through;color:#a6b0bd}.row-meta{font-size:11px;color:#a0aaba;margin-top:5px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;border-radius:5px;padding:3px 7px;font-size:10px;font-weight:600;white-space:nowrap}.badge.demo{color:#93713a;background:#fff5df}.badge.high{color:#e85d63;background:#fff0f0}.badge.medium{color:#dc9a34;background:#fff5e5}.badge.low{color:#4d91ba;background:#eaf6fb}.badge.blue{color:#4a72c4;background:#edf3ff}.badge.green{color:#36a477;background:#ebf8f2}.badge.gray{color:#8290a2;background:#f1f3f6}.row-actions{display:flex;gap:1px}.progress-track{height:8px;border-radius:8px;background:#edf1f7;overflow:hidden}.progress-fill{height:100%;border-radius:8px;background:#4477db;transition:width .3s}.progress-line{display:flex;justify-content:space-between;margin:15px 0 10px;font-size:12px;color:#8d9aaa}.progress-line strong{color:#3f70d5}.progress-card{background:linear-gradient(125deg,#426fd6,#7394e8);color:white;padding:24px;border:0}.progress-card .card-heading p,.progress-card .muted{color:#d7e2ff}.progress-card .progress-track{background:#ffffff3d}.progress-card .progress-fill{background:white}.progress-card .progress-line,.progress-card .progress-line strong{color:white}.progress-card .big{font-size:32px;font-weight:700;margin:12px 0 3px}.mini-date{width:46px;flex-shrink:0;text-align:center;border-radius:9px;background:#f0f5ff;padding:7px 4px;color:#426fcc}.mini-date strong{display:block;font-size:17px}.mini-date span{font-size:10px}.schedule-time{font-size:11px;color:#8393aa;min-width:46px}.accent-line{width:3px;height:38px;background:#7193e3;border-radius:4px}.week-bars{display:flex;align-items:end;justify-content:space-between;gap:11px;height:155px;margin-top:18px}.bar-col{flex:1;text-align:center;color:#9aa7b7;font-size:11px}.bar-rail{height:115px;display:flex;align-items:end;justify-content:center;background:linear-gradient(to top,#f7f9fc,transparent);border-radius:7px;margin-bottom:9px}.bar{width:min(27px,70%);background:#b9cafa;border-radius:6px 6px 3px 3px;min-height:4px}.bar.current{background:#4576df}.legend{display:flex;gap:15px;color:#9ca8b7;font-size:11px;margin-top:14px}.legend i{display:inline-block;width:7px;height:7px;background:#4d7ce2;border-radius:50%;margin-right:5px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.search-field{position:relative;flex:1;min-width:190px}.search-field svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:#a3afc0}.input,.select,.textarea{width:100%;border:1px solid #e0e6ef;border-radius:9px;background:white;padding:10px 12px;color:#27374e;outline:none;font-size:13px}.search-field .input{padding-left:38px}.input:focus,.select:focus,.textarea:focus{border-color:#6a93e8;box-shadow:0 0 0 3px #6290e623}.input::placeholder,.textarea::placeholder{color:#a6b2c1}.select{min-width:120px}.textarea{min-height:110px;resize:vertical}.tabs{display:flex;gap:5px;background:#f1f4f9;border-radius:10px;padding:4px;width:max-content;margin-bottom:20px}.tab{border:0;background:transparent;color:#8190a4;padding:8px 14px;border-radius:7px;font-size:12px;font-weight:600}.tab.active{background:#fff;color:#3e6cce;box-shadow:0 2px 7px #29476e13}.list-card{padding:6px 22px}.list-card .task-row,.list-card .schedule-row,.list-card .study-row,.list-card .note-row{padding:17px 0}.section-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:20px;align-items:start}.calendar-card{padding:22px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.calendar-head strong{font-size:16px}.calendar-nav{display:flex;gap:4px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.calendar-grid .weekday{color:#a3afbf;font-size:11px;padding:9px 0}.day{height:37px;border:0;background:transparent;border-radius:9px;color:#4d5d75;position:relative;font-size:12px}.day:hover{background:#f1f5fc}.day.selected{background:#4374dc;color:white}.day.today:not(.selected){color:#3d70d7;font-weight:700}.day.has-events:after{content:"";width:4px;height:4px;background:#6f95e8;border-radius:50%;position:absolute;bottom:4px;left:calc(50% - 2px)}.day.selected.has-events:after{background:white}.day.blank{visibility:hidden}.selected-date{color:#8492a5;font-size:12px;margin:0 0 15px}.empty{padding:35px 16px;text-align:center;color:#a3afbf}.empty-icon{width:48px;height:48px;border-radius:14px;background:#f2f5fb;color:#9aadd0;display:grid;place-items:center;margin:0 auto 14px}.empty p{font-size:12px;margin:5px 0 0}.study-summary{padding:22px}.subject-row{display:flex;align-items:center;gap:11px;margin:13px 0;font-size:12px}.subject-dot{width:9px;height:9px;border-radius:50%;background:#4f79db;flex-shrink:0}.subject-name{flex:1;color:#68788d}.subject-row strong{font-size:12px}.note-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.note-card{padding:21px;min-height:183px;display:flex;flex-direction:column}.note-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.note-kind{display:flex;align-items:center;gap:8px;color:#4f77cc;font-size:11px;font-weight:700}.note-kind svg{width:16px;height:16px}.note-card h3{font-size:15px;margin-bottom:8px}.note-preview{color:#8291a5;font-size:12px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;word-break:break-word}.note-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;color:#a3afbc;font-size:11px;padding-top:16px}.note-foot .row-actions{margin-right:-7px}.modal-overlay{position:fixed;inset:0;background:#17264080;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:white;border-radius:16px;width:min(100%,520px);max-height:min(90vh,800px);overflow:auto;box-shadow:0 25px 70px #10233e30}.modal.small{width:min(100%,420px)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:23px 25px;border-bottom:1px solid #edf0f4}.modal-head h2{font-size:18px}.modal-body{padding:23px 25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.field label{font-size:12px;font-weight:600;color:#53647e}.field .hint{font-size:11px;color:#9daabb}.field.full{grid-column:1/-1}.field .textarea{min-height:110px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding:0 25px 24px}.modal-body>p{font-size:13px;color:#67788d;margin:0 0 10px}.toast{position:fixed;bottom:25px;right:25px;background:#243854;color:white;padding:12px 17px;border-radius:9px;font-size:12px;box-shadow:0 8px 26px #1d304333;z-index:100}.subtle-box{background:#f8faff;border:1px solid #edf1f8;border-radius:10px;padding:13px 15px;color:#8291a4;font-size:12px;line-height:1.6}.mobile-backdrop{display:none}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-main,.section-grid{grid-template-columns:1fr}.topbar{padding:0 25px}main{padding:30px 25px 55px}}@media(max-width:700px){.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .2s;box-shadow:10px 0 30px #1b345012}.sidebar.open{transform:translateX(0)}.mobile-backdrop.show{display:block;position:fixed;inset:0;background:#16263d66;z-index:19}.mobile-menu{display:grid!important}.topbar{height:62px;padding:0 17px;justify-content:flex-start;gap:10px}.top-actions{margin-left:auto;gap:10px}.today-pill{display:none}main{padding:23px 16px 45px}.page-heading{align-items:stretch;flex-direction:column;gap:16px;margin-bottom:22px}.page-heading .button{align-self:flex-start}h1{font-size:25px}.metrics{gap:10px}.metric{padding:16px;min-height:119px}.metric-value{font-size:24px}.metric-icon{width:28px;height:28px}.metric-top{font-size:11px}.section-card{padding:18px}.note-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr;gap:0}.modal-head,.modal-body{padding:19px}.modal-actions{padding:0 19px 20px}.toolbar .select{flex:1}.list-card{padding:5px 15px}.row-actions .icon-button{width:29px}.row-title{font-size:12px}}@media(max-width:390px){.metric-top{display:block}.metric-icon{margin-top:8px}.task-row,.schedule-row{gap:8px}.row-actions{flex-direction:column}}
