.course-analytics-page-container{max-width:1440px;width:100%;margin:0 auto;padding:1.25rem 1.5rem 3.5rem;box-sizing:border-box;font-family:var(--f-sans);flex:1 0 auto;display:flex;flex-direction:column}body.analytics-view-page{background:linear-gradient(180deg,var(--color-bg-inset) 0%,var(--color-bg-page) 100%)!important}body.analytics-view-page .base-main-content{margin:0!important;padding:0!important;gap:0!important;display:flex!important;flex-direction:column!important;width:100%!important;max-width:100%!important;background:linear-gradient(180deg,var(--color-bg-inset) 0%,var(--color-bg-page) 100%)!important;min-height:100vh}body.analytics-view-page .site-footer{margin-top:auto;width:100%}body.analytics-view-page #base-sidebar{display:none!important}.ca-header{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2rem}.ca-top-nav{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.75rem}.ca-back-link{display:inline-flex;align-items:center;gap:0.5rem;font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-weight:700;font-size:0.92rem;color:var(--color-text-primary);text-decoration:none;background:var(--color-bg-card);border:2px solid var(--color-border-strong);border-radius:10px;padding:0.45rem 0.95rem;box-shadow:2px 2px 0 var(--color-border-strong);transition:all 0.15s cubic-bezier(0.4,0,0.2,1)}.ca-back-link:hover{background:var(--color-bg-hover);border-color:var(--color-text-primary);box-shadow:1px 1px 0 var(--color-border-strong);transform:translate(1px,1px)}.ca-header-meta{display:inline-flex;align-items:center;gap:0.6rem;background:var(--color-bg-card);border:2px solid var(--color-border-strong);border-radius:999px;padding:0.35rem 1rem;font-size:0.82rem;font-weight:700;color:var(--color-text-secondary);box-shadow:2px 2px 0 var(--color-border-strong)}.ca-meta-dot{color:var(--color-text-muted);font-size:0.65rem}.ca-title-row{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem}.ca-main-title{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:2.25rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-0.025em;line-height:1.15;margin:0 0 0.4rem}.ca-main-subtitle{font-size:0.98rem;color:var(--color-text-secondary);margin:0;max-width:65ch;line-height:1.5}.ca-header-actions{display:flex;align-items:center;gap:0.75rem}.ca-btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-weight:800;font-size:0.88rem;padding:0.6rem 1.25rem;border-radius:12px;text-decoration:none;cursor:pointer;transition:all 0.15s cubic-bezier(0.4,0,0.2,1);border:2px solid var(--color-border-strong)}.ca-btn-primary{background:var(--color-text-primary);color:var(--color-bg-card);box-shadow:3px 3px 0 var(--color-border-strong)}.ca-btn-primary:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--color-border-strong);color:var(--color-bg-card)}.ca-btn-secondary{background:var(--color-bg-card);color:var(--color-text-primary);box-shadow:2px 2px 0 var(--color-border-strong)}.ca-btn-secondary:hover{background:var(--color-bg-hover);transform:translate(1px,1px);box-shadow:1px 1px 0 var(--color-border-strong);color:var(--color-text-primary)}.ca-stats-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--color-bg-card);border:2.5px solid var(--color-border-strong);border-radius:14px;box-shadow:3px 3px 0 var(--color-border-strong);margin-bottom:1.75rem;overflow:hidden}@media (max-width:768px){.ca-stats-strip{grid-template-columns:repeat(2,1fr)}}.ca-stat-col{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:4px;border-right:1.5px solid var(--color-border-subtle)}.ca-stat-col:last-child{border-right:none}@media (max-width:768px){.ca-stat-col:nth-child(2){border-right:none}.ca-stat-col:nth-child(1),.ca-stat-col:nth-child(2){border-bottom:1.5px solid var(--color-border-subtle)}}.ca-stat-number{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:1.75rem;font-weight:800;color:var(--color-text-primary);line-height:1.1;letter-spacing:-0.02em}.ca-stat-label{font-size:0.75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:0.05em}.ca-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem;align-items:stretch}@media (max-width:992px){.ca-dashboard-grid{grid-template-columns:1fr;gap:1.25rem}}.ca-card{background:var(--color-bg-card);border:2.5px solid var(--color-border-strong);border-radius:16px;box-shadow:4px 4px 0 var(--color-border-strong);padding:1.5rem;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;gap:1.25rem}.ca-card-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1.5px solid var(--color-border-subtle);padding-bottom:0.75rem;flex-wrap:wrap;gap:0.5rem}.ca-card-title{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:1.15rem;font-weight:800;color:var(--color-text-primary);display:flex;align-items:center;gap:0.55rem;margin:0}.ca-readiness-headline{display:flex;flex-direction:column;gap:0.5rem}.ca-readiness-title-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:0.5rem}.ca-readiness-val{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:2.25rem;font-weight:800;color:var(--color-text-primary);line-height:1}.ca-readiness-bar{width:100%;height:8px;background:var(--color-bg-subtle);border:1px solid var(--color-border-strong);border-radius:4px;overflow:hidden}.ca-readiness-bar-fill{height:100%;border-radius:3px;transition:width 0.6s ease}.ca-readiness-bar-fill.success{background:var(--color-success)}.ca-readiness-bar-fill.warning{background:var(--color-warning)}.ca-readiness-bar-fill.danger{background:var(--color-danger)}.ca-schedule-section{display:flex;flex-direction:column;gap:0.65rem}.ca-schedule-header{display:flex;justify-content:space-between;align-items:center;font-size:0.82rem;font-weight:700;color:var(--color-text-secondary)}.ca-schedule-bars-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0.5rem;align-items:flex-end;min-height:75px;background:var(--color-bg-subtle);border:1.5px solid var(--color-border-strong);border-radius:10px;padding:0.75rem 0.5rem 0.5rem}.ca-sch-bar-col{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.ca-sch-count{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.75rem;font-weight:800;color:var(--color-text-primary);line-height:1}.ca-sch-bar{width:100%;max-width:20px;background:var(--color-accent-primary);border-radius:3px 3px 0 0;min-height:4px;transition:height 0.4s ease}.ca-sch-bar-col.is-today .ca-sch-bar{background:var(--color-text-primary)}.ca-sch-bar.empty{background:var(--color-border-strong);opacity:0.25}.ca-sch-day{font-size:0.68rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase}.ca-sch-bar-col.is-today .ca-sch-day{color:var(--color-text-primary);font-weight:800}.ca-status-pill{display:inline-flex;align-items:center;gap:0.35rem;font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.75rem;font-weight:800;padding:0.25rem 0.65rem;border-radius:999px;border:1.5px solid var(--color-border-strong);line-height:1}.ca-status-pill.success{background:var(--color-success-soft);color:var(--color-success)}.ca-status-pill.warning{background:var(--color-warning-soft);color:var(--color-warning-strong)}.ca-status-pill.neutral{background:var(--color-bg-subtle);color:var(--color-text-secondary)}.ca-due-highlight{color:var(--color-accent-primary-strong);font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-weight:800}.ca-on-track-highlight{color:var(--color-success);font-weight:700}.ca-memory-wrap{display:flex;flex-direction:column;gap:1.25rem}.ca-segmented-bar{height:12px;border-radius:6px;border:1.5px solid var(--color-border-strong);background:var(--color-bg-card);display:flex;overflow:hidden}.ca-seg-fill{height:100%;transition:width 0.6s ease}.ca-seg-fill.mastered{background:var(--color-success)}.ca-seg-fill.learning{background:var(--color-warning)}.ca-seg-fill.unseen{background:var(--color-border-strong)}.ca-memory-legend{display:flex;flex-direction:column;gap:0.65rem}.ca-mem-legend-row{display:flex;justify-content:space-between;align-items:center;padding:0.4rem 0;border-bottom:1px solid var(--color-border-subtle)}.ca-mem-legend-row:last-child{border-bottom:none}.ca-mem-legend-left{display:flex;align-items:center;gap:0.6rem}.ca-mem-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ca-mem-legend-dot.mastered{background:var(--color-success)}.ca-mem-legend-dot.learning{background:var(--color-warning)}.ca-mem-legend-dot.unseen{background:var(--color-text-soft)}.ca-mem-legend-name{font-size:0.85rem;font-weight:700;color:var(--color-text-primary)}.ca-mem-legend-count{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.92rem;font-weight:800;color:var(--color-text-primary)}.ca-mem-legend-pct{font-size:0.8rem;font-weight:600;color:var(--color-text-muted)}.ca-weak-spots-card{background:var(--color-bg-card);border:2.5px solid var(--color-border-strong);border-radius:16px;box-shadow:4px 4px 0 var(--color-border-strong);padding:1.25rem 1.5rem;margin-bottom:2rem;display:flex;flex-direction:column;gap:1rem}.ca-weak-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.5rem;border-bottom:1.5px solid var(--color-border-subtle);padding-bottom:0.75rem}.ca-weak-title{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:1.15rem;font-weight:800;color:var(--color-text-primary);margin:0}.ca-weak-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0.75rem}.ca-weak-item{background:var(--color-bg-subtle);border:1.5px solid var(--color-border-strong);border-radius:10px;padding:0.75rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:0.75rem;transition:all 0.15s ease}.ca-weak-item:hover{border-color:var(--color-text-primary);transform:translateY(-1px);box-shadow:2px 2px 0 var(--color-border-strong)}.ca-weak-info{display:flex;flex-direction:column;min-width:0;flex:1}.ca-weak-name{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.92rem;font-weight:800;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ca-weak-mod{font-size:0.72rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ca-weak-actions{display:flex;align-items:center;gap:0.65rem;flex-shrink:0}.ca-weak-acc{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.85rem;font-weight:800;color:var(--color-warning-strong)}.ca-filter-pills{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}.ca-filter-btn{background:var(--color-bg-card);border:1.5px solid var(--color-border-strong);border-radius:999px;padding:0.3rem 0.85rem;font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.8rem;font-weight:800;color:var(--color-text-secondary);cursor:pointer;transition:all 0.15s ease}.ca-filter-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.ca-filter-btn.active{background:var(--color-text-primary);color:var(--color-bg-card);border-color:var(--color-text-primary);box-shadow:2px 2px 0 var(--color-border-strong)}.ca-modules-section{display:flex;flex-direction:column;gap:1.25rem;margin-top:1rem}.ca-modules-container{display:flex;flex-direction:column;gap:1.15rem}.ca-section-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.75rem;margin-bottom:0.25rem}.ca-section-title{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:1.35rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-0.015em;margin:0;display:flex;align-items:center;gap:0.6rem}.ca-module-item{background:var(--color-bg-card);border:2.5px solid var(--color-border-strong);border-radius:14px;box-shadow:3px 3px 0 var(--color-border-strong);overflow:hidden;transition:all 0.15s cubic-bezier(0.4,0,0.2,1)}.ca-module-item.hidden{display:none!important}.ca-module-item:hover{border-color:var(--color-text-primary)}.ca-module-item.open{box-shadow:4px 4px 0 var(--color-border-strong)}.ca-module-header{padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;user-select:none;background:var(--color-bg-card);gap:1rem;transition:background 0.15s ease}.ca-module-header:hover{background:var(--color-bg-hover)}.ca-module-title-wrap{display:flex;align-items:center;gap:0.75rem;flex:1;min-width:0}.ca-module-number{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-weight:800;font-size:0.85rem;color:var(--color-text-secondary);background:var(--color-bg-subtle);border:1.5px solid var(--color-border-strong);border-radius:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ca-module-title{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:1.05rem;font-weight:800;color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ca-module-topics-badge{font-size:0.75rem;font-weight:700;color:var(--color-text-muted);background:var(--color-bg-subtle);border-radius:6px;padding:2px 6px;flex-shrink:0}.ca-module-right{display:flex;align-items:center;gap:1.25rem;flex-shrink:0}.ca-module-progress-wrap{display:flex;align-items:center;gap:0.75rem;width:140px}@media (max-width:768px){.ca-module-progress-wrap{width:auto}.ca-mini-bar{display:none}}.ca-mini-bar{flex:1;height:8px;background:var(--color-bg-subtle);border:1px solid var(--color-border-strong);border-radius:4px;overflow:hidden}.ca-mini-bar-fill{height:100%;border-radius:3px;transition:width 0.5s ease}.ca-module-accuracy{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.85rem;font-weight:800;color:var(--color-text-primary);min-width:36px;text-align:right}.ca-module-badge{display:inline-flex;align-items:center;gap:4px;font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.78rem;font-weight:800;padding:0.3rem 0.7rem;border-radius:999px;border:1.5px solid var(--color-border-strong)}.ca-module-badge.solid{background:var(--color-success-soft);color:var(--color-success)}.ca-module-badge.review{background:var(--color-warning-soft);color:var(--color-warning-strong)}.ca-chevron-icon{font-size:0.85rem;color:var(--color-text-muted);transition:transform 0.2s cubic-bezier(0.4,0,0.2,1)}.ca-module-item.open .ca-chevron-icon{transform:rotate(180deg);color:var(--color-text-primary)}.ca-topics-drawer{display:none;border-top:2px solid var(--color-border-subtle);background:var(--color-bg-subtle);padding:0.75rem 1.25rem}.ca-module-item.open .ca-topics-drawer{display:flex;flex-direction:column;gap:0.5rem;animation:caDrawerSlide 0.2s cubic-bezier(0.4,0,0.2,1)}@keyframes caDrawerSlide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.ca-topic-row{display:flex;justify-content:space-between;align-items:center;background:var(--color-bg-card);border:1.5px solid var(--color-border-strong);border-radius:10px;padding:0.65rem 1rem;gap:1rem;transition:all 0.15s ease}.ca-topic-row:hover{border-color:var(--color-text-primary);transform:translateX(2px)}.ca-topic-left{display:flex;align-items:center;gap:0.75rem;flex:1;min-width:0}.ca-topic-dot{width:9px;height:9px;border-radius:50%;background:var(--color-border-strong);flex-shrink:0;transition:all 0.2s ease}.ca-topic-dot.success{background:var(--color-success)}.ca-topic-dot.warning{background:var(--color-warning)}.ca-topic-dot.danger{background:var(--color-danger)}.ca-topic-dot.neutral{background:var(--color-border-strong);opacity:0.45}.ca-topic-info{display:flex;flex-direction:column;gap:2px;min-width:0}.ca-topic-name{font-size:0.92rem;font-weight:700;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.ca-topic-subtext{font-size:0.74rem;font-weight:600;color:var(--color-text-muted);line-height:1.2}.ca-topic-right{display:flex;align-items:center;gap:1rem;flex-shrink:0}.ca-topic-acc{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.82rem;font-weight:800;color:var(--color-text-secondary)}.ca-btn-practice{display:inline-flex;align-items:center;gap:0.35rem;font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:0.78rem;font-weight:800;padding:0.35rem 0.75rem;border-radius:8px;background:var(--color-text-primary);color:var(--color-bg-card);text-decoration:none;border:1.5px solid var(--color-text-primary);box-shadow:2px 2px 0 var(--color-border-strong);transition:all 0.1s ease}.ca-btn-practice:hover{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--color-border-strong);color:var(--color-bg-card)}.ca-guest-hero{background:var(--color-bg-card);border:3px solid var(--color-border-strong);border-radius:16px;box-shadow:6px 6px 0 var(--color-border-strong);padding:3rem 2rem;text-align:center;max-width:800px;margin:2rem auto}.ca-guest-icon{width:64px;height:64px;border-radius:16px;background:var(--color-accent-primary-soft);border:2.5px solid var(--color-border-strong);display:inline-flex;align-items:center;justify-content:center;font-size:1.8rem;color:var(--color-accent-primary);box-shadow:3px 3px 0 var(--color-border-strong);margin-bottom:1.5rem}.ca-guest-title{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:1.85rem;font-weight:800;color:var(--color-text-primary);margin-bottom:0.75rem}.ca-guest-subtitle{font-size:1rem;color:var(--color-text-secondary);line-height:1.6;max-width:60ch;margin:0 auto 2rem}.ca-guest-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:2.5rem;text-align:left}@media (max-width:768px){.ca-guest-pillars{grid-template-columns:1fr}}.ca-pillar-item{background:var(--color-bg-subtle);border:2px solid var(--color-border-strong);border-radius:12px;padding:1.25rem;box-shadow:2px 2px 0 var(--color-border-strong)}.ca-pillar-item h4{font-family:"Bricolage Grotesque",var(--f-sans),sans-serif;font-size:1rem;font-weight:800;color:var(--color-text-primary);margin:0 0 0.4rem}.ca-pillar-item p{font-size:0.82rem;color:var(--color-text-secondary);margin:0;line-height:1.45}