.analytics-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.85fr);gap:14px;margin:14px 0 19px}
.analytics-panel{padding:17px 18px 15px;overflow:hidden}
.analytics-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}
.analytics-heading h3{font:800 13px var(--display);letter-spacing:-.2px;margin:6px 0 3px}
.analytics-heading p{font-size:9px;color:#8b96ab;margin:0}
.chart-kicker{display:flex;align-items:center;gap:6px;color:#7786a0;font-size:8px;font-weight:800;letter-spacing:.8px}
.chart-kicker i{height:6px;width:6px;border-radius:50%;background:#20b789;box-shadow:0 0 0 3px #20b78919}
.chart-kicker .violet-dot{background:#8066e8;box-shadow:0 0 0 3px #8066e819}.chart-kicker .orange-dot{background:#efa542;box-shadow:0 0 0 3px #efa54219}
.chart-period{font-size:8px;color:#8792a8;background:#f5f7fc;border:1px solid #edf0f6;padding:6px 8px;border-radius:7px;white-space:nowrap}
.trend-chart{display:grid;grid-template-columns:32px minmax(0,1fr);height:190px;margin-top:5px}
.y-axis{display:flex;flex-direction:column;justify-content:space-between;padding:5px 3px 22px 0;color:#a0a9b9;font-size:8px}
.chart-stage{position:relative;min-width:0;padding-bottom:19px}.chart-stage svg{width:100%;height:165px;overflow:visible}
.chart-grid path{fill:none;stroke:#edf0f6;stroke-width:1;vector-effect:non-scaling-stroke}
.chart-area{fill:url(#areaFill);opacity:0;animation:fadeArea .8s .35s ease forwards}
.chart-line{fill:none;stroke:url(#lineFill);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke}
.chart-line.drawn{animation:drawLine 1.35s .1s cubic-bezier(.2,.75,.25,1) forwards}
.chart-points circle{fill:#fff;stroke:#3876f2;stroke-width:2.5;opacity:0;vector-effect:non-scaling-stroke}.chart-points circle.pop{animation:popPoint .35s ease forwards}
.x-axis{display:flex;justify-content:space-between;padding:0 1px;color:#98a2b4;font-size:8px;margin-top:1px}
.chart-summary{display:flex;align-items:center;gap:14px;border-top:1px solid #edf0f5;padding-top:10px;margin-top:1px}
.chart-summary>div:not(.summary-growth){display:grid;gap:2px}.chart-summary strong{font:800 15px var(--display);color:#1e3158}.chart-summary span{font-size:8px;color:#909bad}.chart-summary>b{color:#aab4c5;font-size:13px}.summary-growth{margin-left:auto;background:#e9f8f2;color:#15986c;border-radius:7px;padding:6px 9px;font-size:9px;font-weight:800}.summary-growth small{font-size:8px;font-weight:500;color:#6f9d8a;margin-left:3px}
.skills-visual{display:grid;grid-template-columns:145px minmax(0,1fr);align-items:center;gap:10px;min-height:205px}
.skill-radar{width:145px;height:160px;position:relative;display:grid;place-items:center}.skill-radar svg{width:145px;height:155px;overflow:visible}.radar-grid{fill:none;stroke:#e8edf5;stroke-width:1.1}.radar-shape{fill:#2e6fe723;stroke:#2768e9;stroke-width:2;transform-origin:center;transform:scale(.15);opacity:.2;transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .6s}.radar-shape.grow{transform:scale(1);opacity:1}.radar-dots circle{fill:#fff;stroke:#2768e9;stroke-width:2;opacity:0;animation:popPoint .35s .65s ease forwards}.radar-score{position:absolute;display:grid;place-items:center;align-content:center;gap:1px;inset:0;pointer-events:none}.radar-score strong{font:800 21px var(--display);color:#24385e}.radar-score span{font-size:7px;color:#929daf}
.skill-legend{display:grid;gap:10px}.skill-row>div:first-child{display:flex;align-items:center;gap:5px;font-size:8px;color:#74819b;white-space:nowrap}.skill-row strong{margin-left:auto;color:#26395e;font-size:8px}.skill-bullet{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--bullet)}.skill-track{height:4px;background:#edf0f6;border-radius:5px;margin:5px 0 0 11px;overflow:hidden}.skill-track i{display:block;width:0;height:100%;border-radius:5px;background:var(--bar);transition:width .85s cubic-bezier(.2,.8,.2,1)}
.skills-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f5;margin-top:5px;padding-top:10px;font-size:8px;color:#8b96a9}.skills-footer strong{font:800 13px var(--display);color:#1b986e}.skills-footer small{font:500 8px var(--font);color:#9aa4b5;margin-left:2px}
.activity-panel{grid-column:1/-1}.activity-chart{height:143px;display:flex;align-items:flex-end;justify-content:space-around;gap:14px;padding:12px 15px 0;border-bottom:1px solid #edf0f5;background:repeating-linear-gradient(to bottom,transparent 0,transparent 34px,#f0f2f7 35px,#f0f2f7 36px)}
.activity-column{height:100%;width:min(62px,12%);display:flex;align-items:center;flex-direction:column;justify-content:flex-end;position:relative;gap:5px}.activity-column small{font-size:8px;color:#98a2b4;margin-bottom:-15px;transform:translateY(20px);white-space:nowrap}.bar-value{font-size:8px;color:#8996ad;opacity:0;transition:opacity .3s .8s}.activity-bar{width:70%;max-width:35px;height:var(--bar-height,30%);min-height:10px;background:linear-gradient(180deg,#a9c5ff,#dce7ff);border-radius:7px 7px 2px 2px;transform:scaleY(0);transform-origin:bottom;transition:transform .75s cubic-bezier(.2,.8,.2,1)}.activity-bar.rise{transform:scaleY(1)}.activity-bar.highlight{background:linear-gradient(180deg,#2d70f0,#79a5ff)}.activity-column:has(.activity-bar.rise) .bar-value{opacity:1}.activity-foot{display:flex;align-items:center;justify-content:space-between;padding-top:12px;color:#8190a8;font-size:8px}.activity-foot>span{display:flex;align-items:center;gap:6px}.activity-foot i{width:7px;height:7px;border-radius:50%;background:#3979f6}.activity-foot strong{font:800 12px var(--display);color:#20365f}.activity-foot small{font:500 8px var(--font);color:#93a0b4}
@keyframes drawLine{to{stroke-dashoffset:0}}@keyframes fadeArea{to{opacity:1}}@keyframes popPoint{0%{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.35)}100%{opacity:1;transform:scale(1)}}
body[data-theme=dark] .chart-period{background:#202d42;border-color:#35435a;color:#a8b5ca}body[data-theme=dark] .chart-grid path{stroke:#2b384c}body[data-theme=dark] .radar-grid{stroke:#364258}body[data-theme=dark] .radar-shape{fill:#3979f638}body[data-theme=dark] .radar-score strong,body[data-theme=dark] .chart-summary strong,body[data-theme=dark] .skill-row strong,body[data-theme=dark] .activity-foot strong{color:#e4edff}body[data-theme=dark] .chart-points circle,body[data-theme=dark] .radar-dots circle{fill:#172235}body[data-theme=dark] .chart-summary,body[data-theme=dark] .skills-footer,body[data-theme=dark] .activity-chart{border-color:#2b384c}body[data-theme=dark] .activity-chart{background:repeating-linear-gradient(to bottom,transparent 0,transparent 34px,#28354a 35px,#28354a 36px)}
@media(max-width:1050px){.analytics-grid{grid-template-columns:minmax(0,1fr)}.activity-panel{grid-column:auto}.skills-visual{grid-template-columns:170px 1fr}.skill-radar{margin:auto}}
@media(max-width:620px){.analytics-grid{gap:10px;margin-top:11px}.analytics-panel{padding:14px}.trend-chart{height:165px}.chart-stage svg{height:143px}.skills-visual{grid-template-columns:130px minmax(0,1fr);gap:6px;min-height:185px}.skill-radar,.skill-radar svg{width:126px}.skill-radar{height:145px}.skill-radar svg{height:140px}.skill-legend{gap:9px}.skill-row>div:first-child{font-size:7px}.activity-chart{gap:4px;padding-inline:2px}.activity-column{width:12%}.chart-period{font-size:7px;padding:5px}.chart-summary{gap:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Module learning workspaces */
.module-workspace{animation:moduleEnter .38s ease both}.module-back-row{display:flex;align-items:center;justify-content:space-between;margin:2px 0 14px;color:var(--muted,#8792a8);font-size:12px}.module-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;overflow:hidden;padding:26px 30px;border:1px solid #e5ebf5;border-radius:18px;background:radial-gradient(ellipse at 92% 15%,#dce9ff 0,transparent 36%),linear-gradient(115deg,#fff,#f5f8ff);box-shadow:0 8px 30px #2343750c}.module-hero-copy{max-width:780px}.module-hero h1{margin:10px 0 7px;font:800 clamp(23px,3vw,32px) var(--display);letter-spacing:-.04em;color:var(--ink,#1d2d4e)}.module-hero p{max-width:680px;margin:0;color:var(--muted,#77849b);line-height:1.65;font-size:13px}.module-step-badge{display:grid;place-items:center;align-content:center;flex:0 0 92px;width:92px;height:92px;border-radius:28px;background:linear-gradient(145deg,#2367ed,#69a0ff);box-shadow:0 12px 24px #3979f633;color:#fff;transform:rotate(4deg)}.module-step-badge span{font:800 35px var(--display)}.module-step-badge small{font-size:9px;opacity:.85}.module-progress-line{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;max-width:420px;margin-top:20px;color:#7b89a0;font-size:11px}.module-progress-line strong{color:#2367ed}.module-progress-line>i{grid-column:1/-1;height:6px;overflow:hidden;border-radius:9px;background:#e9eef7}.module-progress-line>i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#18b884,#377bf4);transition:width .6s}.module-detail-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);align-items:start;gap:16px;margin-top:16px}.module-detail-main,.module-detail-side{display:grid;gap:16px;min-width:0}.module-workspace .panel{border:1px solid #e8edf5;border-radius:15px;background:var(--panel,#fff);box-shadow:0 5px 20px #253b5c08}.module-workspace .panel-head{padding:17px 19px 12px}.module-workspace .panel-head h3{margin:5px 0;color:var(--ink,#1d2d4e);font:750 16px var(--display)}.module-workspace .panel-head p{margin:4px 0 0;color:var(--muted,#8792a8);font-size:11px}.module-workspace .panel-body{padding:4px 19px 19px}.module-outcome{margin:0 0 17px;color:#64738c;font-size:13px;line-height:1.65}.module-steps{display:grid;gap:10px}.module-step{display:flex;align-items:flex-start;gap:11px;padding:10px 12px;border-radius:10px;background:#f6f8fc}.module-step>span{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:8px;background:#e7efff;color:#2869ec;font-size:10px;font-weight:800}.module-step p{margin:3px 0;color:#50617c;font-size:12px;line-height:1.5}.module-deliverable{display:grid;gap:4px;margin-top:15px;padding:12px 14px;border-left:3px solid #18b884;border-radius:5px 10px 10px 5px;background:#effaf6}.module-deliverable span,.resource-reading>span{color:#169a70;font-size:9px;font-weight:800;letter-spacing:.08em}.module-deliverable strong{color:#355b52;font-size:12px}.resource-list{display:grid;gap:0}.module-resource{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #edf0f5}.module-resource:first-child{border-top:0}.resource-number{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:10px;background:#edf3ff;color:#3273ef;font-size:10px;font-weight:800}.module-resource>div{display:grid;gap:4px;min-width:0;flex:1}.module-resource strong,.workspace-task strong{color:var(--ink,#273959);font-size:12px}.module-resource small,.workspace-task small{color:#8c98aa;font-size:10px}.module-tool-panel .panel-body{padding-top:3px}.module-tool-form{display:grid;gap:12px}.module-tool-form label,.task-answer-form label{display:grid;gap:6px;color:#586781;font-size:11px;font-weight:700}.module-tool-form input:not([type=checkbox]):not([type=radio]),.module-tool-form textarea,.module-tool-form select,.task-answer-form textarea{width:100%;box-sizing:border-box;border:1px solid #e2e8f1;border-radius:9px;padding:10px 11px;background:#fff;color:#283854;font:500 12px var(--font);outline:none}.module-tool-form input:focus,.module-tool-form textarea:focus,.module-tool-form select:focus,.task-answer-form textarea:focus{border-color:#78a2f6;box-shadow:0 0 0 3px #3979f617}.module-tool-form textarea,.task-answer-form textarea{resize:vertical;line-height:1.55}.module-tool-form .choice{display:flex;align-items:flex-start;gap:8px;font-weight:500;line-height:1.45}.module-tool-form .choice input{margin:1px 0 0;accent-color:#3778ef}.module-tool-form .button,.task-answer-actions .button{justify-self:start;border:0;cursor:pointer}.tool-note{margin:0;color:#8a97aa;font-size:10px;line-height:1.5}.saved-list{display:grid;gap:6px}.saved-list>div{display:flex;justify-content:space-between;gap:8px;padding:8px;border-radius:8px;background:#f5f7fb;color:#56647a;font-size:10px}.saved-list small{color:#8995a7}.writing-meta{display:flex;justify-content:space-between;color:#8a96a9;font-size:10px}.quiz-feedback{min-height:16px;color:#188d69;font-size:11px;line-height:1.5}.mentor-mini{display:flex;align-items:center;gap:9px;padding:10px;border-radius:10px;background:#f5f7fc}.mentor-mini>div{display:grid;gap:3px;flex:1}.mentor-mini strong{font-size:11px;color:#33435e}.mentor-mini small{font-size:9px;color:#8a96a9}.online-dot{color:#1cb684;font-size:10px}.workspace-task{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-top:1px solid #edf0f5}.workspace-task:first-child{border-top:0}.workspace-task>div{display:grid;gap:5px}.task-state{white-space:nowrap}.task-workspace{border-color:#dbe7ff!important;box-shadow:0 8px 28px #3979f616!important}.task-prompt{padding:12px 14px;border-radius:10px;background:#f4f7fd;color:#5f6f88;font-size:12px;line-height:1.6}.task-answer-form{display:grid;gap:12px}.task-answer-actions{display:flex;flex-wrap:wrap;gap:9px}.resource-reading{padding:17px;border-radius:12px;background:#f3f7fd;color:#586781;font-size:12px;line-height:1.65}.resource-reading p{margin:8px 0 14px}.resource-reading strong{font-size:11px;color:#30456a}.resource-modal .modal-footer{margin-top:18px}.module-workspace .module-resource .section-link{font-size:11px}.module-workspace .module-hero,.module-workspace .panel,.module-workspace .module-resource,.module-workspace .workspace-task{transition:box-shadow .2s,border-color .2s,transform .2s}.module-workspace .module-resource:hover,.module-workspace .workspace-task:hover{transform:translateX(2px)}
body[data-theme=dark] .module-hero{background:radial-gradient(ellipse at 92% 15%,#223a60 0,transparent 38%),linear-gradient(115deg,#182438,#1b2a41);border-color:#2c3b52}.module-workspace .panel{background:var(--panel,#172235);border-color:#2b394e}.module-step,body[data-theme=dark] .task-prompt,body[data-theme=dark] .resource-reading,body[data-theme=dark] .mentor-mini,body[data-theme=dark] .saved-list>div{background:#202d42}.module-step p,body[data-theme=dark] .module-outcome,body[data-theme=dark] .task-prompt,body[data-theme=dark] .resource-reading{color:#afbdd1}.module-step>span,body[data-theme=dark] .resource-number{background:#283c5e;color:#93b5ff}.module-deliverable,body[data-theme=dark] .module-deliverable{background:#18352f}.module-deliverable strong{color:#a8dece}.module-tool-form input:not([type=checkbox]):not([type=radio]),.module-tool-form textarea,.module-tool-form select,.task-answer-form textarea{background:#fff;color:#283854}body[data-theme=dark] .module-tool-form input:not([type=checkbox]):not([type=radio]),body[data-theme=dark] .module-tool-form textarea,body[data-theme=dark] .module-tool-form select,body[data-theme=dark] .task-answer-form textarea{background:#111b2a;color:#e4edff;border-color:#34445c}body[data-theme=dark] .module-resource,body[data-theme=dark] .workspace-task{border-color:#2b394e}body[data-theme=dark] .module-resource strong,body[data-theme=dark] .workspace-task strong,body[data-theme=dark] .module-workspace .panel-head h3{color:#e3ebf9}body[data-theme=dark] .mentor-mini strong{color:#e0e9f8}
@keyframes moduleEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.module-detail-layout{grid-template-columns:1fr}.module-detail-side{grid-template-columns:1fr 1fr}.module-step-badge{width:76px;height:76px;flex-basis:76px;border-radius:22px}.module-step-badge span{font-size:29px}}
@media(max-width:600px){.module-hero{padding:19px;align-items:flex-start}.module-hero p{font-size:12px}.module-step-badge{width:55px;height:55px;flex-basis:55px;border-radius:16px}.module-step-badge span{font-size:22px}.module-step-badge small{font-size:7px}.module-detail-side{grid-template-columns:1fr}.module-workspace .panel-head{padding:15px 15px 10px}.module-workspace .panel-body{padding:4px 15px 15px}.module-back-row{font-size:10px}.task-answer-actions .button{font-size:11px;padding:10px 12px}}
