/* EduTrack Part 5 visual polish. No analytics calculations, chart data, AI logic, or status logic are changed. */
.analytics-hero,.analytics-panel,.analytics-section,.analytics-card,.rso-chart-card,.pms-chart-card,.dpc-chart-card,.doo-chart-card,.dto-chart-card{border:1px solid var(--et-color-border);border-radius:var(--et-radius-md);background:var(--et-color-surface);box-shadow:var(--et-shadow-sm);padding:var(--et-space-6);min-width:0}.analytics-hero h2,.analytics-panel h2,.analytics-section h2,.analytics-card h3,.rso-chart-card h4,.pms-chart-card h3{font-family:var(--et-font-display);color:var(--et-color-text);letter-spacing:-.018em}.analytics-tabs,.analytics-tab-bar{display:flex;gap:var(--et-space-2);flex-wrap:wrap;border-bottom:1px solid var(--et-color-border);margin-bottom:var(--et-space-5)}.analytics-tabs button,.analytics-tab-bar button{min-height:var(--et-touch-target);border:0;border-bottom:3px solid transparent;background:transparent;color:var(--et-color-text-muted);font-weight:700;cursor:pointer}.analytics-tabs button:hover,.analytics-tabs button.active,.analytics-tab-bar button:hover,.analytics-tab-bar button.active{color:var(--et-color-primary);border-bottom-color:var(--et-color-primary)}
.ai-narrative-card{border-left:4px solid #7c3aed!important;background:linear-gradient(135deg,#fff 0%,#fbf9ff 100%)!important;box-shadow:0 8px 24px rgba(124,58,237,.09)!important}.ai-narrative-head{gap:var(--et-space-5)!important}.ai-narrative-head h3{font-family:var(--et-font-display)!important;color:#5b21b6!important}.ai-narrative-note{display:flex;align-items:center;gap:var(--et-space-2);color:#6d5b8f!important;font-size:.75rem!important}.ai-narrative-note::before{content:'AI';display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;border-radius:var(--et-radius-pill);background:#ede9fe;color:#6d28d9;font-size:.64rem;font-weight:800;letter-spacing:.04em}.ai-narrative-status{padding:var(--et-space-4);border-radius:var(--et-radius-sm);background:#f5f3ff;color:#3b2f5c!important;line-height:1.65!important}.ai-narrative-facts{padding-top:var(--et-space-3);border-top:1px solid #e7defa;color:#6d5b8f!important}.ai-narrative-facts::before{content:'Verified source context';display:block;margin-bottom:var(--et-space-1);color:#5b21b6;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.ai-narrative-card .ai-narrative-generate{background:#6d28d9!important;color:#fff!important;min-height:var(--et-touch-target)}
.verified-data,.verified-facts,.analytics-verified,.source-verified{border-left:4px solid var(--et-color-primary)!important;background:#f0fbfc!important;color:var(--et-color-text-secondary)!important}.verified-data::before,.verified-facts::before,.analytics-verified::before,.source-verified::before{content:'Verified EduTrack data';display:block;margin-bottom:var(--et-space-2);color:var(--et-color-primary);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.ai-insight,.ai-generated,.ai-narrative{border-left-color:#7c3aed!important}
.chart-card,.chart-container,.chart-wrap,.analytics-chart,.rso-chart-card,.pms-chart-card{min-height:220px;overflow:hidden}.chart-card h3,.chart-container h3,.chart-wrap h3,.analytics-chart h3{font-family:var(--et-font-display);font-size:.92rem;color:var(--et-color-text);margin-bottom:var(--et-space-4)}.chart-card canvas,.chart-container canvas,.chart-wrap canvas,.analytics-chart canvas{display:block;max-width:100%;height:auto}.chart-empty,.chart-loading,.chart-error{min-height:180px;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--et-space-6);border:1px dashed var(--et-color-border);border-radius:var(--et-radius-sm);color:var(--et-color-text-muted);font-size:.82rem;line-height:1.5}.chart-loading{background:linear-gradient(90deg,#fff 25%,#f4f7fb 50%,#fff 75%);background-size:200% 100%;animation:et-chart-shimmer 1.4s ease-in-out infinite}.chart-error{background:#fff8f7;border-color:#efc4bf;color:#8b342b}@keyframes et-chart-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.status-badge,.badge,.status-ok,.status-warn,.status-success,.status-error,.status-pending,.status-approved,.status-rejected,.status-paid,.status-outstanding{border-radius:var(--et-radius-pill)!important;min-height:26px;padding:0 var(--et-space-3)!important;display:inline-flex;align-items:center;gap:var(--et-space-1);font-size:.7rem!important;font-weight:800!important;white-space:nowrap}.status-ok,.status-success,.status-approved,.status-paid{background:#e8f5ed!important;color:#176b3a!important}.status-warn,.status-pending,.status-outstanding{background:#fff5d9!important;color:#8a5d00!important}.status-error,.status-rejected{background:#fdeceb!important;color:#a52f25!important}.status-badge::before,.badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.status-badge:empty::before,.badge:empty::before{display:none}
.toast{border-radius:var(--et-radius-sm)!important;box-shadow:var(--et-shadow-lg)!important;min-height:var(--et-touch-target);display:flex;align-items:center;line-height:1.4}.toast.success{background:var(--et-color-success)!important}.toast.error{background:var(--et-color-danger)!important}.toast.warn{background:#8a5d00!important}.toast.info{background:var(--et-color-info)!important}button,.btn,[role="button"],select{touch-action:manipulation}button:focus-visible,.btn:focus-visible,[role="button"]:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(18,168,181,.38)!important;outline-offset:2px!important}.btn,.button,.nav-item,.menu-btn,.modal-close{transition:background-color var(--et-duration-fast) ease,border-color var(--et-duration-fast) ease,color var(--et-duration-fast) ease,box-shadow var(--et-duration-fast) ease,transform var(--et-duration-fast) var(--et-ease-out)!important}.btn:active,.button:active{transform:scale(.98)}#parent-dashboard-screen,#student-dashboard-screen{background:var(--et-color-bg)!important;color:var(--et-color-text)}#parent-dashboard-screen .card,#student-dashboard-screen .card{border-radius:var(--et-radius-md)!important;box-shadow:var(--et-shadow-sm)!important}#parent-dashboard-screen .kpi-grid,#student-dashboard-screen .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
@media(max-width:700px){.analytics-hero,.analytics-panel,.analytics-section,.analytics-card,.rso-chart-card,.pms-chart-card,.dpc-chart-card,.doo-chart-card,.dto-chart-card{padding:var(--et-space-4)}.chart-card,.chart-container,.chart-wrap,.analytics-chart{min-height:180px}.ai-narrative-head{display:block}.ai-narrative-head .ai-narrative-generate{width:100%;margin-top:var(--et-space-3)}}/* Part 6 final consolidation: one layer hierarchy, no page-wide overflow, and no interaction-blocking overlays. */
html{max-width:100%;overflow-x:hidden}body{max-width:100%;overflow-x:hidden}.shell,.main{min-width:0}.modal-overlay,.ems-sync-overlay{z-index:4000!important}.sidebar{z-index:3000}.mobile-overlay,.sidebar-overlay{z-index:2900!important}.dropdown-menu,.select-dropdown,.autocomplete-menu{z-index:5000!important}.toast,.notification,.toast-container{z-index:6000!important}.chat-window,.chat-widget{z-index:3500}.modal-overlay[aria-hidden="true"],.ems-sync-overlay[aria-hidden="true"],.mobile-overlay[aria-hidden="true"],.sidebar-overlay[aria-hidden="true"]{pointer-events:none!important}.modal-overlay:not([aria-hidden="true"]),.ems-sync-overlay:not([aria-hidden="true"]){pointer-events:auto}.tbl-wrap,.table-wrap,.attend-table-wrap,[class$="-table-wrap"],[class$="-tbl-wrap"]{max-width:100%;overscroll-behavior-x:contain}.login-card,.login-level-card,.level-card{touch-action:manipulation;user-select:none}.login-card button,.login-level-card button,.level-card button{position:relative;z-index:1}@media(max-width:480px){.topbar{min-width:0}.page-title{font-size:1.05rem;line-height:1.3}.chart-card,.chart-container,.chart-wrap,.analytics-chart{min-height:160px}.analytics-tabs,.analytics-tab-bar{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}.analytics-tabs button,.analytics-tab-bar button{flex:0 0 auto}}
@media(prefers-reduced-motion:reduce){.chart-loading{animation:none}.btn,.button,.nav-item,.menu-btn,.modal-close{transition:none!important}.btn:active,.button:active{transform:none}}
