:root{--winner-navy:#172554;--winner-navy-2:#1e3a8a;--winner-primary:#4f46e5;--winner-primary-2:#7c3aed;--winner-cyan:#0891b2;--winner-success:#059669;--winner-warning:#d97706;--winner-danger:#dc2626;--winner-bg:#f5f7fb;--winner-surface:#fff;--winner-border:#e5eaf2;--winner-text:#182230;--winner-muted:#667085;--winner-sidebar:272px;--winner-topbar:72px;--winner-radius:18px;--winner-shadow:0 12px 35px rgba(16,24,40,.07)}*{box-sizing:border-box}body{margin:0;background:var(--winner-bg);color:var(--winner-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.winner-shell{min-height:100vh}.winner-topbar{height:var(--winner-topbar);position:fixed;inset:0 0 auto 0;z-index:1040;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-bottom:1px solid var(--winner-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.winner-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--winner-navy)}.winner-brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#fff;font-weight:800;font-size:1.2rem;background:linear-gradient(135deg,var(--winner-primary),var(--winner-primary-2));box-shadow:0 8px 18px rgba(79,70,229,.28)}.winner-brand strong,.winner-brand small{display:block;line-height:1.1}.winner-brand strong{letter-spacing:.08em}.winner-brand small{font-size:.68rem;color:var(--winner-muted);margin-top:4px}.topbar-context{font-size:.85rem;color:var(--winner-muted);padding:8px 12px;border-radius:999px;background:#f8fafc}.profile-button{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:12px}.profile-button:hover{background:#f8fafc}.profile-button strong,.profile-button small{display:block;line-height:1.2}.profile-button strong{font-size:.88rem}.profile-button small{font-size:.72rem;color:var(--winner-muted);margin-top:3px}.avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eef2ff;color:var(--winner-primary);font-weight:800}.winner-sidebar{position:fixed;top:var(--winner-topbar);bottom:0;left:0;width:var(--winner-sidebar)!important;background:var(--winner-navy);color:#fff;border:0!important;z-index:1030}.winner-sidebar .offcanvas-body{height:100%;overflow-y:auto}.winner-nav{padding:22px 14px}.nav-caption{font-size:.67rem;text-transform:uppercase;letter-spacing:.12em;color:#93a4c7;font-weight:700;padding:14px 14px 7px}.winner-nav-link{display:flex;align-items:center;gap:12px;color:#cbd5e1;text-decoration:none;padding:11px 13px;border-radius:12px;margin:3px 0;font-size:.91rem;transition:.2s ease}.winner-nav-link i{font-size:1.05rem;width:22px;text-align:center}.winner-nav-link:hover{color:#fff;background:rgba(255,255,255,.08)}.winner-nav-link.active{color:#fff;background:linear-gradient(90deg,rgba(99,102,241,.95),rgba(124,58,237,.88));box-shadow:0 8px 18px rgba(0,0,0,.2)}.sidebar-support{margin:14px;padding:13px;display:flex;gap:10px;align-items:center;border-radius:14px;background:rgba(255,255,255,.08);color:#e2e8f0}.sidebar-support i{font-size:1.2rem}.sidebar-support strong,.sidebar-support small{display:block}.sidebar-support strong{font-size:.82rem}.sidebar-support small{font-size:.69rem;color:#aebbd4;margin-top:2px}.winner-main{padding-top:var(--winner-topbar);padding-left:var(--winner-sidebar);min-height:100vh}.winner-content{max-width:1600px;margin:0 auto;padding:28px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-eyebrow{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--winner-primary);font-weight:800;margin-bottom:6px}.page-title{font-size:clamp(1.65rem,2.3vw,2.25rem);font-weight:800;letter-spacing:-.035em;margin:0}.page-subtitle{color:var(--winner-muted);margin:7px 0 0;max-width:760px}.card{border:1px solid var(--winner-border);border-radius:var(--winner-radius);box-shadow:var(--winner-shadow)}.card-header{border-bottom-color:var(--winner-border)}.metric-card{background:var(--winner-surface);height:100%;overflow:hidden;position:relative}.metric-card::after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-35px;top:-35px;background:linear-gradient(135deg,rgba(79,70,229,.13),rgba(124,58,237,.03))}.metric-card .card-body{padding:20px}.metric-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#eef2ff;color:var(--winner-primary);font-size:1.25rem}.metric-value{font-size:1.65rem;font-weight:800;letter-spacing:-.035em}.metric-label{font-size:.78rem;color:var(--winner-muted);margin-top:2px}.metric-note{font-size:.72rem;color:var(--winner-success);margin-top:10px}.btn{border-radius:11px;font-weight:650}.btn-primary{background:linear-gradient(135deg,var(--winner-primary),var(--winner-primary-2));border:0;box-shadow:0 7px 16px rgba(79,70,229,.22)}.btn-primary:hover{filter:brightness(.96)}.btn-icon{width:40px;height:40px;padding:0;display:grid;place-items:center;border:1px solid var(--winner-border);background:#fff}.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:.38rem .7rem;font-size:.72rem;font-weight:750}.status-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.table{--bs-table-bg:transparent}.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--winner-muted);font-weight:750;border-bottom-width:1px;white-space:nowrap}.table tbody td{vertical-align:middle;border-color:#eef1f6}.progress{height:8px;border-radius:999px;background:#e9edf5}.progress-bar{border-radius:999px;background:linear-gradient(90deg,var(--winner-primary),var(--winner-primary-2))}.empty-state{text-align:center;padding:54px 20px}.empty-state-icon{width:68px;height:68px;margin:0 auto 15px;border-radius:20px;display:grid;place-items:center;background:#eef2ff;color:var(--winner-primary);font-size:1.8rem}.winner-alert{border:0;border-radius:14px;display:flex;align-items:flex-start;gap:10px;box-shadow:0 8px 22px rgba(16,24,40,.06)}.filter-panel{background:#fff;border:1px solid var(--winner-border);border-radius:var(--winner-radius);padding:18px}.form-control,.form-select{border-radius:11px;border-color:#dfe4ec;padding:.66rem .8rem}.form-control:focus,.form-select:focus{border-color:#a5b4fc;box-shadow:0 0 0 .2rem rgba(99,102,241,.12)}.student-hero{background:linear-gradient(135deg,#172554,#3730a3 70%,#7c3aed);color:#fff;border-radius:24px;padding:28px;position:relative;overflow:hidden}.student-hero::after{content:"";position:absolute;right:-45px;bottom:-70px;width:210px;height:210px;border-radius:50%;background:rgba(255,255,255,.09)}.test-card{transition:transform .2s ease,box-shadow .2s ease}.test-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(16,24,40,.1)}.question-panel{max-width:860px;margin:0 auto}.question-number{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:var(--winner-primary);font-weight:800}.option-card{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--winner-border);border-radius:14px;padding:14px;cursor:pointer;transition:.15s;background:#fff}.option-card:hover{border-color:#a5b4fc;background:#fafaff}.option-card:has(input:checked){border-color:var(--winner-primary);background:#eef2ff;box-shadow:0 0 0 2px rgba(79,70,229,.08)}@media(max-width:991.98px){.winner-main{padding-left:0}.winner-sidebar{top:0}.winner-content{padding:20px 15px}.page-heading{flex-direction:column}.winner-topbar{padding:0 14px}}@media(max-width:575.98px){.winner-brand small{display:none}.winner-content{padding:16px 12px}.student-hero{padding:22px}.page-title{font-size:1.55rem}}

/* Winner Design System · Épica 1.1 */
:root{
    --winner-info:#0284c7;--winner-neutral:#64748b;--winner-focus:#818cf8;
    --winner-radius-sm:10px;--winner-radius-md:14px;--winner-radius-lg:18px;
    --winner-space-1:.25rem;--winner-space-2:.5rem;--winner-space-3:.75rem;--winner-space-4:1rem;--winner-space-5:1.25rem;--winner-space-6:1.5rem;
}
html[data-theme="dark"]{--winner-bg:#0f172a;--winner-surface:#111c32;--winner-border:#263449;--winner-text:#e5edf8;--winner-muted:#9aa9bc;--winner-shadow:0 12px 35px rgba(0,0,0,.22)}
html[data-theme="dark"] body,html[data-theme="dark"] .winner-main{background:var(--winner-bg);color:var(--winner-text)}
html[data-theme="dark"] .winner-topbar,html[data-theme="dark"] .card,html[data-theme="dark"] .filter-panel,html[data-theme="dark"] .option-card,html[data-theme="dark"] .dropdown-menu,html[data-theme="dark"] .btn-icon{background:var(--winner-surface);color:var(--winner-text);border-color:var(--winner-border)}
html[data-theme="dark"] .table{--bs-table-color:var(--winner-text);--bs-table-border-color:var(--winner-border)}
html[data-theme="dark"] .form-control,html[data-theme="dark"] .form-select{background:#0f1a2f;color:var(--winner-text);border-color:var(--winner-border)}
html[data-theme="dark"] .breadcrumb-item,html[data-theme="dark"] .breadcrumb-item a,html[data-theme="dark"] .text-muted{color:var(--winner-muted)!important}
.skip-link{position:fixed;left:1rem;top:-4rem;z-index:2000;background:#fff;color:#111827;padding:.75rem 1rem;border-radius:.65rem;box-shadow:var(--winner-shadow)}.skip-link:focus{top:1rem}
:focus-visible{outline:3px solid var(--winner-focus);outline-offset:2px}
.winner-breadcrumbs{margin-bottom:18px}.winner-breadcrumbs .breadcrumb{font-size:.78rem}.winner-breadcrumbs a{text-decoration:none;color:var(--winner-primary)}
.winner-footer{display:flex;justify-content:space-between;gap:1rem;padding:20px 28px 28px;color:var(--winner-muted);font-size:.75rem;max-width:1600px;margin:0 auto}
.winner-card{overflow:hidden}.winner-card-header{padding:18px 20px;background:transparent}.winner-card-title{font-size:1rem;font-weight:800;margin:0}.winner-card-subtitle{font-size:.78rem;color:var(--winner-muted);margin:.3rem 0 0}
.status-pill{border:1px solid transparent}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.status-success{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.status-warning{color:#b45309;background:#fffbeb;border-color:#fde68a}.status-danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.status-info{color:#0369a1;background:#f0f9ff;border-color:#bae6fd}.status-neutral{color:#475569;background:#f8fafc;border-color:#e2e8f0}
.avatar-sm{width:30px;height:30px;border-radius:9px;font-size:.75rem}.avatar-lg{width:52px;height:52px;border-radius:16px;font-size:1.1rem}
.winner-tabs{display:flex;gap:.35rem;overflow-x:auto;border-bottom:1px solid var(--winner-border);margin-bottom:1.25rem}.winner-tab{padding:.75rem 1rem;text-decoration:none;color:var(--winner-muted);font-size:.85rem;font-weight:700;border-bottom:2px solid transparent;white-space:nowrap}.winner-tab:hover{color:var(--winner-primary)}.winner-tab.active{color:var(--winner-primary);border-bottom-color:var(--winner-primary)}
.winner-table-wrap{border:1px solid var(--winner-border);border-radius:var(--winner-radius-md);overflow:hidden}.winner-table-wrap thead{background:rgba(148,163,184,.08)}
.winner-timeline{list-style:none;margin:0;padding:0}.winner-timeline-item{position:relative;display:grid;grid-template-columns:34px 1fr;gap:.75rem;padding-bottom:1.25rem}.winner-timeline-item:not(:last-child)::after{content:"";position:absolute;left:16px;top:29px;bottom:0;width:2px;background:var(--winner-border)}.timeline-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#eef2ff;color:var(--winner-primary);z-index:1}.winner-timeline-item time{display:block;color:var(--winner-muted);font-size:.72rem;margin-top:.15rem}
.modal-content{border:1px solid var(--winner-border);border-radius:var(--winner-radius-lg);box-shadow:var(--winner-shadow)}
@media(max-width:575.98px){.winner-footer{flex-direction:column;padding:18px 14px}.winner-tabs{margin-left:-12px;margin-right:-12px;padding:0 12px}}

/* Epic 1.2: authentication and brand experience */
.winner-auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1fr);background:var(--winner-surface,#f8fafc)}
.winner-auth-visual{position:relative;overflow:hidden;display:grid;place-items:center;padding:4rem;background:radial-gradient(circle at 20% 20%,rgba(124,58,237,.12),transparent 32%),linear-gradient(145deg,#fff,#f5f7ff)}
.winner-auth-brand{position:relative;z-index:2;max-width:640px}.winner-auth-logo{display:block;width:min(100%,560px);height:auto;object-fit:contain;margin-inline:auto}
.winner-auth-slogan{margin-top:1rem;font-size:clamp(2.2rem,4vw,4.4rem);font-weight:800;letter-spacing:-.055em;color:#111936}.winner-auth-description{max-width:560px;font-size:1.15rem;line-height:1.8;color:#667085;margin:1rem auto 0}
.winner-auth-wave{position:absolute;inset:auto -10% -18% -10%;height:42%;border-radius:50% 50% 0 0;background:linear-gradient(110deg,#0ea5e9,#14b8a6 50%,#7c3aed);transform:rotate(-3deg);opacity:.92}
.winner-auth-panel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;background:var(--winner-surface,#f8fafc)}
.winner-auth-card{width:min(100%,560px);padding:clamp(1.75rem,4vw,3.5rem);background:var(--winner-card,#fff);border:1px solid rgba(148,163,184,.2);border-radius:1.5rem;box-shadow:0 24px 70px rgba(15,23,42,.1)}
.winner-auth-shield{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#eef2ff;color:#3157f5;font-size:1.5rem}.winner-auth-theme{position:absolute;right:2rem;top:2rem;border:0;background:transparent;color:inherit;font-size:1.25rem}.winner-auth-footer{margin:2rem 0 0;color:#64748b;font-size:.875rem}
[data-theme="dark"] .winner-auth-visual{background:radial-gradient(circle at 20% 20%,rgba(124,58,237,.25),transparent 32%),linear-gradient(145deg,#0f172a,#111827)}[data-theme="dark"] .winner-auth-slogan{color:#f8fafc}[data-theme="dark"] .winner-auth-description{color:#cbd5e1}
@media(max-width:991.98px){.winner-auth-shell{grid-template-columns:1fr}.winner-auth-visual{min-height:360px;padding:2rem}.winner-auth-logo{max-width:360px}.winner-auth-wave{height:34%}.winner-auth-panel{padding:2rem 1rem}.winner-auth-theme{right:1rem;top:1rem}}
