:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#19213a;background:#f5f7fb;font-synthesis:none
}
*{box-sizing:border-box}
html,body{margin:0;min-width:100%;min-height:100%;background:#f5f7fb}
body{overflow-x:hidden}button{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:235px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid #e7eaf1;display:flex;flex-direction:column;padding:22px 16px;z-index:20}
.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 24px}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:21px;font-weight:800;background:linear-gradient(145deg,#4258a0 0%,#6579c4 62%,#7e8ed1 100%);box-shadow:0 7px 18px rgba(76,96,168,.22)}
.brand-name{font-size:20px;font-weight:850;letter-spacing:-.5px;white-space:nowrap}.brand-sub{margin-top:1px;color:#8890a6;font-size:11px;font-weight:700;letter-spacing:.45px;text-transform:uppercase}.sidebar-nav{display:flex;flex-direction:column;gap:5px}
.nav-button{width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#697187;border-radius:12px;padding:11px 12px;text-align:left;cursor:pointer;transition:.18s ease}.nav-button:hover{background:#f5f6fb;color:#334470}.nav-button.active{background:#eef1ff;color:#3e5191;font-weight:750}.nav-icon{width:24px;font-size:18px;text-align:center}
.sidebar-bottom{margin-top:auto;padding-top:20px}.pro-card{border-radius:16px;padding:15px;background:linear-gradient(145deg,#f1f3ff,#fafaff);border:1px solid #e1e5f5}.pro-card strong{display:block;font-size:13px;margin-bottom:5px}.pro-card p{margin:0;color:#737d96;font-size:12px;line-height:1.45}
.content{width:100%;max-width:1440px;margin:0 auto;padding:28px 32px 46px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.hello h1{margin:0;font-size:clamp(25px,2vw,31px);letter-spacing:-.75px}.hello p{margin:6px 0 0;color:#838ba0;text-transform:capitalize;font-size:14px}.top-actions{display:flex;align-items:center;gap:10px}.icon-button{width:42px;height:42px;border:1px solid #e1e4ec;background:#fff;border-radius:12px;display:grid;place-items:center;color:#657087;cursor:pointer}.profile-button{border:1px solid #e1e4ec;background:#fff;border-radius:13px;display:flex;align-items:center;gap:10px;padding:7px 11px 7px 7px}.avatar{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#e9edff;color:#475b9c;font-weight:850}.profile-copy{text-align:left;line-height:1.15}.profile-copy strong{display:block;font-size:13px}.profile-copy span{color:#9097a9;font-size:11px}
.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.quick-card{border:1px solid #e5e8f0;background:#fff;border-radius:17px;padding:16px;cursor:pointer;text-align:left;display:flex;align-items:flex-start;gap:12px;min-width:0;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.quick-card:hover{transform:translateY(-2px);border-color:#cfd6ea;box-shadow:0 8px 26px rgba(29,42,77,.07)}.quick-card.primary{background:linear-gradient(145deg,#475da4 0%,#6378bf 100%);color:#fff;border-color:transparent;box-shadow:0 8px 24px rgba(75,95,169,.18)}.quick-icon{width:38px;min-width:38px;height:38px;border-radius:11px;background:#f0f2fa;color:#5266a3;display:grid;place-items:center;font-size:18px;font-weight:800}.quick-card.primary .quick-icon{background:rgba(255,255,255,.16);color:#fff}.quick-title{display:block;font-weight:800;font-size:14px;margin-bottom:4px}.quick-text{display:block;color:#8a91a4;font-size:12px;line-height:1.35}.quick-card.primary .quick-text{color:rgba(255,255,255,.75)}
.dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:18px;align-items:start}.panel{background:#fff;border:1px solid #e6e9f0;border-radius:19px;overflow:hidden}.panel-head{min-height:61px;padding:17px 19px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #edf0f5}.panel-title{display:flex;flex-direction:column;gap:3px}.panel-title strong{font-size:16px}.panel-title span{color:#949bad;font-size:12px}.link-button{border:0;background:transparent;color:#4d629e;font-weight:750;font-size:12px;cursor:pointer}
.lesson-list{padding:4px 18px 10px}.lesson-row{display:grid;grid-template-columns:64px 16px minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px 0;border-bottom:1px solid #eff1f5}.lesson-row:last-child{border-bottom:0}.lesson-time{font-weight:850;font-size:13px;color:#5366a1}.timeline{height:100%;display:flex;flex-direction:column;align-items:center}.timeline-dot{width:9px;height:9px;border-radius:50%;background:#687bc2;box-shadow:0 0 0 4px #eef1ff}.lesson-main{min-width:0}.lesson-top{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.lesson-class{font-size:14px;font-weight:850}.lesson-subject{color:#687287;font-size:12px}.lesson-topic{margin-top:4px;color:#949bac;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pulse{width:7px;height:7px;border-radius:50%}.pulse.good{background:#51a875}.pulse.partial{background:#d7a63b}.pulse.hard{background:#cb6262}.lesson-open{border:1px solid #e2e5ed;background:#fafbfe;color:#546078;border-radius:10px;padding:7px 11px;font-size:12px;font-weight:700;cursor:pointer}
.right-column{display:flex;flex-direction:column;gap:18px}.next-card{position:relative;overflow:hidden;border:0;color:#fff;background:linear-gradient(145deg,#43589b 0%,#6277bc 100%);border-radius:20px;padding:21px;min-height:224px;box-shadow:0 12px 31px rgba(63,82,149,.18)}.next-card::after{content:"";position:absolute;width:170px;height:170px;right:-70px;top:-70px;border-radius:50%;background:rgba(255,255,255,.07)}.next-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.7px;opacity:.68;font-weight:800}.next-title{margin-top:9px;font-size:23px;font-weight:900}.next-time{margin-top:3px;font-size:13px;opacity:.78}.next-detail{margin-top:17px;padding-top:14px;border-top:1px solid rgba(255,255,255,.16)}.next-detail p{margin:6px 0;font-size:12px;line-height:1.45}.next-action{margin-top:14px;border:0;background:#fff;color:#42568f;font-weight:850;border-radius:11px;padding:10px 13px;cursor:pointer}
.memory-list{padding:13px 17px 17px;display:flex;flex-direction:column;gap:10px}.memory-item{border-radius:13px;background:#f7f8fc;padding:12px 13px}.memory-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}.memory-meta strong{font-size:12px}.memory-meta span{color:#9aa1b1;font-size:10px}.memory-item p{margin:0;color:#687187;font-size:12px;line-height:1.45}
.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.pulse-summary,.ai-tip{padding:17px 19px 20px}.pulse-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.pulse-stat{border-radius:13px;padding:13px 12px;background:#f7f8fb}.pulse-stat span{display:block;color:#8e95a7;font-size:11px;margin-bottom:4px}.pulse-stat strong{font-size:19px}.tip-box{display:flex;gap:12px;align-items:flex-start;border-radius:14px;background:#f2f4ff;padding:14px}.tip-icon{width:34px;min-width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff;color:#5064a3;font-weight:850}.tip-box strong{display:block;font-size:12px;margin-bottom:5px}.tip-box p{margin:0;color:#6c7590;font-size:12px;line-height:1.5}
.mobile-nav,.mobile-next{display:none}
@media(max-width:1080px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:860px){.app-shell{display:block}.sidebar{display:none}.content{padding:18px 15px 92px}.dashboard{display:flex;flex-direction:column}.right-column{display:flex;flex-direction:column}.desktop-next{display:none}.mobile-next{display:block;margin-bottom:16px;min-height:auto}.quick-grid{order:2}.main-column{display:contents}.lessons-panel{order:3}.lower-grid{display:contents}.mobile-order-ai{order:4;margin-top:18px}.mobile-order-pulse{order:5;margin-top:18px}.memory-panel{order:6;margin-top:18px}.mobile-nav{position:fixed;left:10px;right:10px;bottom:10px;display:grid;grid-template-columns:repeat(5,1fr);z-index:40;padding:7px;border-radius:18px;border:1px solid #dde1eb;background:rgba(255,255,255,.96);box-shadow:0 8px 28px rgba(35,43,70,.14);backdrop-filter:blur(16px)}.mobile-nav button{border:0;background:transparent;color:#7c8498;font-size:10px;padding:6px 3px;display:flex;flex-direction:column;align-items:center;gap:3px}.mobile-nav button.active{color:#415797;font-weight:800}.mobile-nav .m-icon{font-size:17px}}
@media(max-width:620px){.topbar{align-items:flex-start;margin-bottom:16px}.hello h1{font-size:28px;line-height:1.12}.top-actions .icon-button{display:none}.profile-copy{display:none}.profile-button{padding:6px}.quick-grid{grid-template-columns:1fr 1fr;gap:10px}.quick-card{min-height:112px;padding:13px;gap:10px;flex-direction:column}.quick-icon{width:34px;min-width:34px;height:34px}.quick-title{font-size:13px}.quick-text{font-size:11px}.panel-head{padding:15px}.lesson-list{padding:2px 14px 8px}.lesson-row{grid-template-columns:50px 12px minmax(0,1fr) auto;gap:8px;padding:12px 0}.lesson-open{grid-column:auto;justify-self:end;padding:6px 9px}.lesson-topic{white-space:normal;line-height:1.35}.pulse-bars{grid-template-columns:repeat(3,1fr);gap:7px}.pulse-stat{padding:11px 7px;text-align:center}.pulse-stat span{font-size:10px}.next-card{padding:18px}.next-title{font-size:21px}.next-detail{margin-top:13px;padding-top:12px}.memory-list{padding:12px}.content{padding-left:12px;padding-right:12px}}

.reflection-panel{margin-top:18px}.reflection-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 19px}.reflection-copy{display:flex;align-items:flex-start;gap:12px}.reflection-icon{width:34px;min-width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef1ff;color:#4f63a6;font-weight:900}.reflection-copy strong{display:block;font-size:13px;margin-bottom:4px}.reflection-copy p{margin:0;color:#7d869b;font-size:12px;line-height:1.45}.reflection-action{border:1px solid #dfe4f2;background:#fff;color:#465b98;font-weight:800;border-radius:11px;padding:10px 13px;cursor:pointer;white-space:nowrap}
@media(max-width:860px){.reflection-panel{order:4;margin-top:18px}.mobile-order-ai{order:5!important}.mobile-order-pulse{order:6!important}.memory-panel{order:7!important}}
@media(max-width:620px){.reflection-wrap{align-items:stretch;flex-direction:column}.reflection-action{width:100%}}
