/* Aurora: dark performance surfaces with decorative, optional motion. */
:root {
 color-scheme:dark;
 --surface-bg:#080b10; --surface-card:#151a22; --surface-muted:#1c232d;
 --ink:#f1f5f7; --ink-muted:#9aa8b8; --border:#ffffff14;
 --accent:#8eebd2; --accent-strong:#b0f6e2; --accent-soft:#183a36; --accent-ink:#b1f7e2;
 --success:#a5e98a; --success-soft:#1e3529; --warning:#edc778; --warning-soft:#342d20;
 --danger:#ff879c; --danger-soft:#3a232e;
 --sidebar-bg:#0c1119; --sidebar-active:#ffffff10;
 --shadow-card:0 18px 48px #00000025; --shadow-pop:0 20px 60px #0008;
 --bs-body-color:#f1f5f7; --bs-body-bg:#080b10; --bs-secondary-color:#9aa8b8;
 --bs-border-color:#ffffff20; --bs-tertiary-bg:#1c232d;
 --bs-link-color:#8eebd2; --bs-link-hover-color:#b0f6e2;
 --chart-muted:#9aa8b8; --chart-grid:#ffffff12;
}
body.aurora-theme { background:#080b10; color:var(--ink); }
h1,h2,h3,h4,h5,h6 { color:var(--ink); }
.ambient-field { position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:-1; background:#080b10; }
.ambient-field span { position:absolute; width:70vw; height:65vh; border-radius:50%; filter:blur(75px); opacity:.14; background:radial-gradient(ellipse,#427e92,transparent 68%); top:-25vh; left:10%; animation:ambient-drift 22s ease-in-out infinite alternate; }
.ambient-field span+span { top:45%; left:55%; background:radial-gradient(ellipse,#64459c,transparent 70%); animation-delay:-10s; opacity:.11; }
@keyframes ambient-drift { to { transform:translate(-10%,18%) scale(1.15); } }
@keyframes aurora-current { 0% { transform:translate(-15%,-10%) rotate(-18deg); } 100% { transform:translate(20%,15%) rotate(12deg); } }
.app-shell { position:relative; }
.app-sidebar { background:linear-gradient(180deg,#121922ec,#090e15f5); border-right:1px solid #ffffff0c; }
.app-sidebar__brand-mark,.topbar .navbar-brand:before { color:#e2fff8; background:linear-gradient(140deg,#245a58,#253949); border:1px solid #ffffff20; box-shadow:0 0 18px #72ffdd14; }
.app-sidebar__link { color:#99a6b7; padding:14px; }
.app-sidebar__link.is-active { color:#abf9de; background:linear-gradient(110deg,#73ffcd18,#ffffff06); border:1px solid #a8e9d024; }
.app-sidebar__link:hover { color:#dffff3; background:#ffffff09; }
.sidebar-motto span { color:#90dbca; }.sidebar-motto p { color:#8592a2; }
.app-sidebar .btn-logout,.app-sidebar-offcanvas .btn-logout { color:#a9b4c3; }
.motion-toggle { border:1px solid #ffffff1a; color:#9faebe; border-radius:99px; background:#ffffff04; padding:9px 14px; font-size:11px; }
.motion-toggle:hover { color:#dafff3; border-color:#7bddbf60; }.motion-toggle:disabled { opacity:.65; }
.motion-toggle--compact { margin-left:auto; font-size:10px; }
.app-topbar,.topbar { background:transparent; }
.app-topbar .navbar-brand,.topbar .navbar-brand { color:var(--ink); }
.topbar .navbar-toggler { border-color:#ffffff26; filter:invert(.8); }
.app-topbar__toggle { background:#ffffff08; border-color:#ffffff20; }
.app-topbar__toggle .navbar-toggler-icon { filter:none; }
.app-sidebar-offcanvas { background:#111821; color:#f1f5f7; }
.dashboard-intro { margin-top:6px; }
.dashboard-intro .eyebrow { color:#8297aa; letter-spacing:.25em; }
.dashboard-intro h1 { font-size:30px; font-weight:650; letter-spacing:-.04em; }
.daily-tag { color:#8aa79f; border:1px solid #a1efce24; padding:8px 13px; border-radius:99px; background:#64bca30b; }
.btn { transition:background-color .2s,box-shadow .2s,transform .2s; }
.btn-primary,.btn-success,.btn-lime,.wellness-hero .btn-lime { --bs-btn-active-bg:#acf4d9; --bs-btn-active-border-color:#acf4d9; color:#09251f; background:#a0eed3; border-color:#a0eed3; box-shadow:0 3px 20px #85f0c617; }
.btn-primary:hover,.btn-primary:focus,.btn-success:hover,.btn-lime:hover,.wellness-hero .btn-lime:hover { color:#06281c; background:#c1ffe9; border-color:#c1ffe9; box-shadow:0 5px 28px #88f5d32b; }
.btn-outline-primary,.btn-outline-success,.btn-outline-secondary,.btn-outline-warning { background:#ffffff04; color:#c1d8d1; border-color:#bddbd02b; }
.btn-outline-primary:hover,.btn-outline-success:hover,.btn-outline-secondary:hover { background:#84e3c61b; color:#bcffe9; border-color:#89e9ca55; }
.btn-link,a { color:#9ae9d4; }.text-muted,.text-muted-small { color:#9cabbc!important; }
.text-success { color:#a6e68a!important; }.text-danger { color:#ff93a8!important; }.text-warning { color:#f0cc82!important; }
.card,.action-section,.chart-panel,.exercise-execution-card { background:linear-gradient(140deg,#1b222bdc,#121820ef); border:1px solid #ffffff13; box-shadow:inset 0 1px 0 #ffffff06,0 18px 45px #00000022; color:var(--ink); }
.card-body { color:var(--ink); }.card.shadow-sm { box-shadow:var(--shadow-card)!important; }
.section-heading h4 { font-size:16px; font-weight:600; }.section-heading { margin-bottom:20px; }
.status-badge,.progress-status-pill,.status-pill { background:#ffffff09; color:#b9ebd6; border:1px solid #c8eedc16; }
.today-stat-rings { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; gap:16px; border:0; background:transparent; margin:0 0 24px; }
.stat-ring { min-height:140px; gap:26px; border:1px solid #ffffff14; border-radius:24px; padding:24px 30px; position:relative; background:radial-gradient(ellipse at 0 0,#5bb8ff15,transparent 70%),linear-gradient(135deg,#1b232c,#131923); overflow:hidden; transition:transform .3s,border-color .3s,box-shadow .3s; }
.stat-ring+.stat-ring { border-left:1px solid #ffffff14; }.stat-ring--success { background:radial-gradient(ellipse at 0 0,#b5f86f12,transparent 70%),linear-gradient(135deg,#1b2629,#141b21); }
.stat-ring--mode { background:radial-gradient(ellipse at 0 0,#b59cff1e,transparent 70%),linear-gradient(135deg,#252331,#181b26); }
.stat-ring svg { width:78px; flex:0 0 78px; filter:drop-shadow(0 0 7px #71b9ff30); }.stat-ring__track { stroke:#95bde217; stroke-width:3; }.stat-ring__value { stroke:#8dd6ff; stroke-width:3.8; }.stat-ring--success .stat-ring__value { stroke:#b4ef8a; }.stat-ring--mode svg { opacity:1; filter:drop-shadow(0 0 7px #d2a7ff30); }.stat-ring--mode .stat-ring__track { stroke:#d2b4fb; stroke-dasharray:5 4; stroke-width:3; }
.stat-ring__body strong { color:#f1f7fb; font-size:38px; font-weight:550; letter-spacing:-.055em; }.stat-ring--mode .stat-ring__body strong { font-size:23px; }.stat-ring__body span { font-size:11px; margin-top:6px; color:#a6b9c6; }.metric-detail { position:absolute; inset:0; border-radius:inherit; }.stat-ring:focus-within { outline:2px solid #a6eddb; outline-offset:3px; }
.daily-performance-grid { grid-template-columns:1.13fr 1fr; gap:22px; }
.daily-performance-grid .wellness-hero { min-height:355px; border:1px solid #ffffff17; background:linear-gradient(90deg,#07141ce8,#0b17287a 65%,#10182040),url('../images/training-flow.webp') center 45%/cover; box-shadow:0 18px 50px #0004; }
.daily-performance-grid .wellness-hero--rest { background-image:linear-gradient(90deg,#07141cee,#0b17285a),url('../images/recovery-flow.webp'); }
.wellness-hero .today-command__label { color:#b5cec9; }.wellness-hero .hero-next-action { color:#d0dfdf; line-height:1.9; }.wellness-hero h2 { color:#f7fcff; text-shadow:0 2px 15px #0004; }
.hero-secondary { color:#c1d4d7; }
.readiness-snapshot { position:relative; isolation:isolate; overflow:hidden; background:linear-gradient(160deg,#152f31,#10171b 65%); border:1px solid #9bebc62b; box-shadow:0 18px 60px #0004,inset 0 1px 0 #d4fff316; }
.readiness-snapshot::before { content:''; position:absolute; z-index:-1; width:140%; height:90%; left:-35%; top:-22%; background:radial-gradient(ellipse at 40% 30%,#7af1ab80,transparent 60%); filter:blur(38px); opacity:.6; animation:aurora-current 13s ease-in-out infinite alternate; }
.readiness-snapshot--unknown { background:linear-gradient(150deg,#252e49,#131924 75%); border-color:#9cacf430; }.readiness-snapshot--unknown::before { background:radial-gradient(ellipse,#6b85ef80,#9b61bc40 35%,transparent 65%); }
.readiness-snapshot--compact::before { background:radial-gradient(ellipse,#eac67580,transparent 65%); }.readiness-snapshot--recovery::before { background:radial-gradient(ellipse,#e375aa70,transparent 65%); }
.snapshot-heading .eyebrow { color:#c2ddd7; }.snapshot-heading a { color:#dbfff0; }.snapshot-main h2 { color:#f2fff9; font-size:27px; }.snapshot-main p { color:#c4d5d2; }.readiness-orbit { color:#cbffe8; border-color:#bcffe265; box-shadow:0 0 0 8px #a7ffd807,0 0 30px #a3f3d216; }
.snapshot-metrics strong { color:#e2fff0; font-size:35px; }.snapshot-metrics span,.snapshot-metrics small,.snapshot-source { color:#afc7c2; }.snapshot-source { font-size:10px; }
.readiness-disclosure { background:linear-gradient(105deg,#183029b3,#151d25); border:1px solid #9ce4be22; box-shadow:0 12px 40px #0002; }.readiness-disclosure__icon { background:#78dda011; border-color:#b4edc831; color:#b8f7ca; }.readiness-disclosure summary small { color:#a2b9ad; }.readiness-disclosure__status { color:#b0e8c8; }.readiness-disclosure .readiness-panel { background:transparent; border-top-color:#a9dfbe1a; }.readiness-summary__status { color:#b9f9db; }
.workout-compact-card { background:linear-gradient(110deg,#263b38,#1b2630); border:1px solid #bbffd51c; }.workout-compact-card__info strong { color:#e5fff5; }.workout-compact-card__info span { color:#b4c6c7; }
.coach-safety-note { color:#a4b2b8; opacity:1; }
.nutrition-photo,.recovery-photo { height:150px; border-radius:17px; overflow:hidden; display:flex; align-items:flex-end; padding:18px; margin-bottom:22px; background:linear-gradient(0deg,#041715b8,transparent),url('../images/nutrition-flow.webp') center 48%/cover; }
.nutrition-photo span { font-size:10px; letter-spacing:.2em; color:#e4f9e1; }.recovery-photo { background-image:linear-gradient(0deg,#091320aa,transparent),url('../images/recovery-flow.webp'); }
.metric-grid>div,.meal-summary-grid>div,.nutrition-preview,.meal-combination-card,.progress-summary-card { background:#ffffff04; border:1px solid #ffffff0c; color:var(--ink); }.metric-grid strong,.meal-summary-grid strong { color:#ebf7f6; }.metric-grid span { color:#a0b5bc; }.suggestion-chip,.suggestion-list,.quick-food-row { color:#bed3d1; }.suggestion-chip { background:#21352f; }.meal-combination-card small { color:#a2bcb2; }
.data-list,.compact-list,.action-summary { color:#c2ced4; }.empty-state,.chart-empty { background:#ffffff03; color:#99aaba; border-color:#ffffff12; }
.form-control,.form-select,.form-control:disabled,.form-control[readonly] { color:#e8f4f3; background-color:#0c131bdd; border-color:#bdcadd24; color-scheme:dark; }.form-control::placeholder { color:#788b9b; }.form-control:focus,.form-select:focus { color:#effffa; background-color:#111c25; border-color:#94e8ce80; box-shadow:0 0 0 3px #7be9c918; }.form-label { color:#bccfd6; }.input-group-text { background:#202b35; color:#c8dbe0; border-color:#ffffff22; }
.form-check-input { background-color:#12232b; border-color:#8ea9b355; }.form-check-input:checked { background-color:#72b9a3; border-color:#95dec6; }
.table { --bs-table-color:#dce8ee; --bs-table-bg:transparent; --bs-table-border-color:#cde1ff12; --bs-table-striped-bg:#ffffff04; --bs-table-striped-color:#dce8ee; --bs-table-hover-bg:#96e5cb0b; --bs-table-hover-color:#eefff6; color:#dce8ee; }.table thead,.table-light { --bs-table-bg:#19232d; --bs-table-color:#b8d0d9; color:#b8d0d9; }.table th { color:#b8d0d9; }.table td { color:#dce8ee; }.bg-white,.bg-light { background-color:#161f29!important; }.table-responsive { border-color:#ffffff10; }
.alert-info { color:#b2def3; background:#19323d; }.alert-warning { color:#e6cf9e; background:#322d21; }.alert-danger { color:#ffb7c4; background:#3b2430; }.alert-success { color:#b4ebcb; background:#1e342c; }
.modal-content,.offcanvas,.dropdown-menu { background:#17212bed; color:#e8f7f2; border:1px solid #ffffff20; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); box-shadow:0 30px 100px #0008; }.modal-header,.modal-footer { border-color:#ffffff17; }.modal-title { color:#eefbf7; }.btn-close { filter:invert(1) grayscale(1); }.nav-tabs { border-color:#ffffff1c; }.nav-tabs .nav-link { color:#94bbae; }.nav-tabs .nav-link.active { background:#284239; color:#ddfff0; border-color:#ffffff1a; }
.training-page-hero { background:linear-gradient(90deg,#08151be8,#11182830),url('../images/studio-flow.webp') center 35%/cover; border:1px solid #ffffff19; }.week-number { color:#7e99a5; }.week-expand { background:#ffffff09; color:#c3e6d8; }.program-week summary small,.session-row time span,.session-copy p { color:#9cafb8; }.session-row { border-color:#ffffff0d; }.session-status { color:#91bdb1; }.session-status--done { color:#a5ed9e; }.session-open { color:#b9f2d8; border-color:#94b4aa35; background:#91dbc80a; }.session-open:hover { background:#91dbc81f; color:#e5fff2; }.session-thumbnail { background-image:linear-gradient(#10233020,#10233070),url('../images/training-flow.webp'); }.session-row--rest .session-thumbnail { background-image:linear-gradient(#10233020,#10233070),url('../images/recovery-flow.webp'); }.training-empty>span { background:#8fe0bd12; color:#b0e6c8; }.training-empty p { color:#9cafb8; }
.execution-toolbar { background:radial-gradient(ellipse at 0 0,#47899c35,transparent 70%),#15202a; border:1px solid #a9dcff20; box-shadow:0 15px 40px #0005; }.execution-toolbar>div:first-child strong { color:#b6f5de; text-shadow:0 0 22px #8cebc72b; }.execution-toolbar .rest-clock.is-active { background:#514737; }.execution-toolbar .rest-clock.is-active strong { color:#ffe0a0; }.exercise-progress-context { background:#ffffff04; color:#a9bfca; }.exercise-index { background:#a4e3c716; color:#b6eacb; }.execution-set-row.is-complete { background:#71c99c17; }.set-number { color:#a1b9c2; }.progress { background:#ffffff0b; }.progress-bar,.workout-execution .progress-bar { background:linear-gradient(90deg,#4fae94,#b3ef92); }
.page-student_chart .progress-bottleneck { position:relative; background:radial-gradient(ellipse at 90% 0,#64c8972a,transparent 65%),#14221e; border:1px solid #92d4a526; }.page-student_chart .progress-evidence-grid .action-section { border-top-width:1px; }.page-student_chart .evidence-value { color:#bfecc8; text-shadow:0 0 24px #9fe1b018; }.page-student_chart .progress-evidence-grid .action-section:nth-child(2) .evidence-value { color:#aedcff; }.page-student_chart .progress-evidence-grid .action-section:nth-child(3) .evidence-value { color:#dabffd; }
.calendar-shell { --cal-muted:#9baebd; --cal-border:#ffffff16; color:var(--ink); }.calendar-event--measurement { background:#372036; }.calendar-toolbar,.calendar-layout { color:var(--ink); }.calendar-day-cell.is-outside { background:#101720; }.calendar-add-inline,.calendar-empty-state { border-color:#ffffff25; }.calendar-sheet__panel { background:#17212b; color:var(--ink); }.calendar-sheet__panel>header button { color:#d1e7df; }
.landing-hero { background-image:linear-gradient(90deg,#07101aec,#07101a85 50%,#07101a30),url('../images/training-flow.webp'); border:1px solid #ffffff1a; }.feature-card--plain { background:linear-gradient(#06181777,#061817ee),url('../images/nutrition-flow.webp') center/cover; color:#f1f7f4; }.feature-card--plain:hover { color:#fff; }.feature-card--plain .feature-link { border-color:#ffffff25; }.nutrition-art { color:#ade8bb; }.feature-card--recovery { background-image:linear-gradient(0deg,#091725ee,transparent),url('../images/recovery-flow.webp'); }.landing-section-heading>p,.landing-footer { color:#99afbe; }.auth-layout { background:#151e27; border-color:#ffffff1a; }.auth-layout .card { background:transparent; }.auth-photo { background-image:linear-gradient(0deg,#08151ee8,#08151e30),url('../images/studio-flow.webp'); }
.quick-log-fab { color:#0a2822; background:#a6ecd5; border-color:#cbffed; box-shadow:0 6px 32px #68dabc35,inset 0 1px 1px #ffffff99; }.mobile-dock { background:#202830c9; border-color:#ffffff26; box-shadow:inset 0 1px 0 #ffffff20,0 14px 40px #0008; backdrop-filter:blur(24px) saturate(1.5); -webkit-backdrop-filter:blur(24px) saturate(1.5); }.mobile-dock__item { color:#b8c6d2; }.mobile-dock__item.is-active { color:#fb92bc; background:linear-gradient(135deg,#ffffff1f,#ffffff08); box-shadow:inset 0 1px 0 #ffffff15; }.mobile-dock__item:hover { color:#f7b5d0; background:#ffffff0e; }
:focus-visible { outline-color:#a0f0d5; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 body:not([data-motion="paused"]) .stat-ring:hover { transform:translateY(-4px); border-color:#a4dbec40; box-shadow:0 20px 45px #0005; }
 body:not([data-motion="paused"]) .btn:hover { transform:translateY(-1px); }
 body:not([data-motion="paused"]) .session-row:hover { background:#b1f7da05; }
}
@media(max-width:1100px) { .daily-performance-grid { grid-template-columns:1fr; }.stat-ring { padding:23px 18px; gap:18px; }.stat-ring svg { width:65px; flex-basis:65px; } }
@media(max-width:767px) {
 .app-topbar { gap:10px; background:#0b111bcc; backdrop-filter:blur(20px); }.app-topbar .navbar-brand { font-size:13px; }
 .dashboard-intro h1 { font-size:28px; }.page-shell { padding-top:22px; }
 .today-stat-rings { gap:8px; margin-bottom:20px; }.stat-ring { min-height:165px; padding:18px 7px; gap:13px; border-radius:21px; }.stat-ring svg { width:61px; flex-basis:61px; }.stat-ring__body strong { font-size:28px; }.stat-ring--mode .stat-ring__body strong { font-size:17px; line-height:34px; }.stat-ring__body span { font-size:9px; margin-top:2px; }
 .daily-performance-grid .wellness-hero { min-height:305px; padding:25px; }.daily-performance-grid .wellness-hero h2 { font-size:31px; }.snapshot-main h2 { font-size:23px; }.snapshot-metrics strong { font-size:28px; }.snapshot-source { font-size:9px; }
 .page-student_dashboard .compact-alert.alert-info { color:#aac3cc; background:#15323a; padding:12px; }
 .nutrition-photo,.recovery-photo { height:150px; }.motion-toggle--compact { padding:7px 10px; }
 .ambient-field span { width:120vw; filter:blur(45px); }
}
body[data-motion="paused"] *,body[data-motion="paused"] *::before,body[data-motion="paused"] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
/* Contrast corrections for controls originally designed for light surfaces. */
.btn-dark { color:#0a1920; background:#e3edf2; border-color:#e3edf2; }
.btn-dark:hover { color:#07151a; background:#fff; border-color:#fff; }
.btn-warning,.btn-warning:hover,.btn-outline-warning:hover { color:#30260f; }
.btn-danger,.btn-danger:hover,.btn-outline-danger:hover { color:#341520; }
.calendar-stepper a,.calendar-segment a { color:#bdcfdc; }
.calendar-segment a.active,.calendar-day-cell.is-today>header a,.calendar-week-day.is-today>header a { color:#08251b; }
.readiness-summary small,.readiness-form .form-label,.recovery-steps { color:#adbfca; }
.adjustment-status-pending { color:#f1d28a; }.adjustment-status-applied { color:#abe9c4; }
.adjustment-status-rejected,.adjustment-status-reverted { color:#b4c5d6; }
