/* Vértice Training • temas sem alterar lógica / Supabase */
:root {
  color-scheme: dark;
  --navy:var(--sidebar);
  --navy2:var(--surface);
  --line:var(--border);
  --muted:#B3C4C7;
  --lime:var(--accent);
  --green:var(--accent);
  --blue:var(--sport-swim);
  background:var(--bg);color:var(--text);
}
body, .shell, .main-area {background:var(--bg);color:var(--text)}
.sidebar {background:linear-gradient(165deg,var(--surface) 0%,var(--bg) 59%,var(--bg) 100%);border-right:1px solid var(--line-bright)}
.brand {font-size:21px;letter-spacing:-.9px;gap:10px;padding-right:0}
.brand-name {line-height:1.03;white-space:nowrap}
.brand small {font-size:10px;letter-spacing:3px;color:var(--accent);margin-top:8px}
.brand-logo {background:var(--accent);color:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);flex-shrink:0}
.nav-label {color:var(--muted)}
.nav-link {color:var(--text)}
.nav-link:hover {background:var(--line-bright);color:var(--text)}
.nav-link.active {background:var(--accent);color:var(--surface);box-shadow:0 5px 22px color-mix(in srgb, var(--accent) 13%, transparent)}
.coach-hint {background:var(--raised);border:1px solid var(--line-bright);color:var(--text)}
.coach-hint p,.mode-line{color:var(--text-subtle)}
.mode-line{border-top-color:var(--line-bright)}
.topbar {background:var(--bg);border-bottom:1px solid var(--panel)}
.breadcrumbs,.breadcrumbs b,.account-copy b {color:var(--text)}
.demo-selector-label {color:var(--text-subtle)}
.demo-selector-label select,.filter-select {background:var(--surface);color:var(--text);border-color:var(--line-bright)}
.account {border-left-color:var(--raised);color:var(--text)}
.avatar {background:var(--line-bright);color:var(--text)}
.av-0 {background:var(--raised);color:var(--text)}
.av-1 {background:var(--line-bright);color:var(--accent)}
.av-2 {background:var(--raised);color:var(--text)}
.av-3 {background:var(--sport-swim-bg);color:var(--sport-swim)}
.account-copy small {color:var(--text-subtle)}
.hero {background:radial-gradient(circle at 72% 12%,color-mix(in srgb, var(--accent) 50%, transparent) 0%,transparent 19%),linear-gradient(110deg,var(--raised) 0%,var(--panel) 45%,var(--bg) 100%);border:1px solid var(--line-bright);box-shadow:0 12px 46px var(--bg)}
.hero::after {content:'';position:absolute;right:20%;top:-10%;width:210px;height:300px;background:radial-gradient(circle,var(--accent) 1px,transparent 2px) 0 0/27px 29px;opacity:.20;transform:rotate(-15deg);pointer-events:none}
.hero .eyebrow,.eyebrow {color:var(--accent)}
.eyebrow.dark {color:var(--muted)}
.hero h1,.hero p {color:var(--text)}
.hero .wave,.hero-pulse,.hero-art-note span {color:var(--accent)}
.hero-art-note,.hero p {color:var(--text)}
.orbit {border-color:color-mix(in srgb, var(--accent) 27%, transparent)}
.button.primary,.hero-btn {background:var(--accent);color:var(--bg);box-shadow:0 3px 14px color-mix(in srgb, var(--accent) 13%, transparent)}
.button.primary:hover,.hero-btn:hover {background:var(--accent)}
.button.secondary,.date-controls>button,.icon-button {background:var(--panel);color:var(--text)}
.button.secondary:hover,.date-controls>button:hover,.icon-button:hover {background:var(--line-bright)}
.button.danger {background:var(--danger-bg);color:var(--danger)}
.metric,.list-card,.panel,.results-panel,.athlete-card,.day-column,.modal {background:var(--bg);border-color:var(--raised);color:var(--text)}
.metric-top,.metric-sub,.section-head p,.page-heading p {color:var(--muted)}
.metric-value,.section-head h2,.page-heading h1,.metric-top strong {color:var(--text)}
.metric-icon {background:var(--raised);color:var(--text-subtle)}
.metric-icon.mint {background:var(--accent-bg);color:var(--accent)}
.metric-icon.orange {background:var(--raised);color:var(--accent)}
.metric-icon.violet {background:var(--raised);color:var(--text-subtle)}
.text-link,.athlete-action {color:var(--accent)}
.upcoming-row,.progress-row+.progress-row,.athlete-action {border-color:var(--raised)}
.date-tile {background:var(--surface);color:var(--text)}
.date-tile small,.workout-info small,.progress-label small,.date-controls strong {color:var(--text-subtle)}
.workout-card,.day-workout {background:var(--surface);color:var(--text)}
.workout-card:hover,.day-workout:hover {background:var(--panel)}
.workout-info strong,.progress-label b,.date-tile b {color:var(--text)}
.sport-bg-running,.sport-running {background:var(--raised);color:var(--accent)}
.sport-bg-cycling,.sport-cycling {background:var(--raised);color:var(--text)}
.sport-bg-swimming,.sport-swimming {background:var(--sport-swim-bg);color:var(--sport-swim)}
.done-state {color:var(--muted)}
.done-state.done {background:var(--accent-bg);color:var(--accent)}
.track {background:var(--panel)}
.fill {background:linear-gradient(90deg,var(--muted-deep),var(--accent))}
.progress-pct {color:var(--accent)}
.date-controls>button.today-btn {background:var(--accent);color:var(--bg)}
.filter-label {color:var(--text-subtle)}
.filter-chip {background:var(--surface);border-color:var(--raised);color:var(--text-subtle)}
.filter-chip.on {background:var(--accent);border-color:var(--accent);color:var(--surface)}
.day-column.is-today {border-color:var(--accent)}
.day-head {background:var(--surface);color:var(--text)}
.day-head span,.day-head i {color:var(--text-subtle)}
.is-today .day-head {background:var(--raised)}
.day-events {background:var(--bg)}
.day-workout {border-color:var(--line-bright)}
.day-workout.is-done {background:var(--panel);border-color:var(--accent-bg)}
.day-workout strong {color:var(--text)}
.day-workout small,.day-workout-meta {color:var(--text-subtle)}
.day-workout-meta em {background:var(--accent-bg);color:var(--accent)}
.no-events,.legend,.inline-note {color:var(--text-subtle)}
.legend-dot.running {background:var(--accent)}
.legend-dot.cycling {background:var(--text-subtle)}
.legend-dot.swimming {background:var(--sport-swim)}
.inline-note {background:var(--panel);border-color:var(--raised)}
.athlete-card h3,.athlete-stats b,.athlete-top {color:var(--text)}
.athlete-card>p,.athlete-stats span {color:var(--text-subtle)}
.athlete-stats {border-color:var(--raised)}
.athlete-stats div {background:var(--surface)}
.active-pill {background:var(--accent-bg);color:var(--accent)}
.results-header {background:var(--surface);color:var(--text-subtle)}
.result-row {background:var(--bg);border-color:var(--raised);color:var(--text-subtle)}
.result-row:hover {background:var(--panel)}
.result-title b {color:var(--text)}
.result-title small {color:var(--text-subtle)}
.status.complete {background:var(--accent-bg);color:var(--accent)}
.status.pending {background:var(--raised);color:var(--text-subtle)}
.empty {color:var(--text-subtle)}
.empty-icon {background:var(--panel);color:var(--text)}
.empty strong {color:var(--text)}
.empty p {color:var(--text-subtle)}
.mini-day.today {background:var(--accent-bg)}
.mini-day span {color:var(--text-subtle)}
.mini-day i {background:var(--line-bright)}
.mini-day i.marked,.completion-number {background:var(--accent);color:var(--surface)}
.completion-number {background:transparent;color:var(--accent)}
.completion p {color:var(--text-subtle)}
.footer {color:var(--muted)}
.modal-overlay {background:var(--bg)}
.modal-head {border-color:var(--raised)}
.modal-head h2,.feedback-summary h3 {color:var(--text)}
.modal-head p,.form-grid label,.detail-info span,.intensity-line,.feedback-summary p,.profile-card p {color:var(--text-subtle)}
.form-grid input,.form-grid select,.form-grid textarea {background:var(--surface);border-color:var(--line-bright);color:var(--text);color-scheme:dark}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus {border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 13%, transparent)}
.form-grid input::placeholder,.form-grid textarea::placeholder {color:var(--muted)}
.form-divider,.detail-info,.feedback-summary,.profile-card {border-color:var(--raised);color:var(--text)}
.intensity-line strong,.workout-block strong,.profile-card b {color:var(--text)}
.workout-block {background:var(--surface);border-color:var(--raised)}
.block-index {background:var(--accent-bg);color:var(--accent)}
.workout-block p {color:var(--text-subtle)}
.observations,.feedback-detail {background:var(--surface)}
.observations p,.feedback-detail p {color:var(--text-subtle)}
.feedback-detail {background:var(--panel)}
.feedback-detail b {color:var(--accent)}
.feedback-stats {color:var(--text-subtle)}
.toast {background:var(--raised);color:var(--text);border:1px solid color-mix(in srgb, var(--accent) 33%, transparent)}
.login-wrap {background:var(--bg);color:var(--text)}
.login-brand {color:var(--text);font-size:24px;letter-spacing:-.9px}
.login-brand strong {color:var(--accent)!important}
.login-symbol {background:var(--raised);color:var(--accent)}
.login-card h1 {color:var(--text)}
.login-card>p,.login-foot {color:var(--text-subtle)}
.login-aside {background:radial-gradient(circle at 50% 40%,var(--line-bright),transparent 50%),linear-gradient(145deg,var(--panel),var(--bg))}
.login-graphic {color:var(--accent);border-color:var(--muted-deep);box-shadow:0 0 0 40px color-mix(in srgb, var(--accent) 3%, transparent),0 0 0 90px color-mix(in srgb, var(--accent) 2%, transparent)}
.login-aside p {color:var(--text-subtle)}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {outline-color:var(--accent)}
.mobile-menu {color:var(--accent)}
@media(max-width:900px) {.sidebar{box-shadow:10px 0 35px var(--bg)}}
/* v1.2 — Cadastro público controlado e fila de aprovação */
.auth-toggle {display:flex;gap:5px;background:var(--surface);border:1px solid var(--raised);border-radius:12px;padding:5px;margin:0 0 20px}
.auth-toggle button {flex:1;border:0;border-radius:9px;padding:12px 10px;color:var(--text-subtle);background:transparent;font-size:12px;font-weight:800}
.auth-toggle button.selected {background:var(--accent);color:var(--surface);box-shadow:0 2px 9px #0004}
.login-card .inline-note {margin:0 0 18px;padding:12px 15px;line-height:1.55;border-radius:10px;font-size:12px;border:1px solid var(--line-bright)}
.requests-section {margin-bottom:29px}
.request-count {display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--bg);border-radius:50px;min-width:25px;height:25px;padding:0 7px;font-size:11px;margin-left:5px}
.request-row {display:flex;align-items:center;gap:13px;padding:15px 17px;border-bottom:1px solid var(--raised)}
.request-row:last-child {border-bottom:0}
.request-meta {display:grid;gap:3px;min-width:0;flex:1}
.request-meta b {font-size:13px;word-break:break-word;color:var(--text)}
.request-meta small {font-size:11px;color:var(--text-subtle);overflow-wrap:anywhere}
.request-actions {display:flex;gap:8px;flex-wrap:wrap}
.request-actions .button {padding:11px 14px}
.approval-wrap {min-height:100vh;background:radial-gradient(circle at 80% 10%,var(--raised) 0%,transparent 34%),var(--bg);color:var(--text);padding:32px 20px 70px}
.approval-brand {display:flex;align-items:center;gap:12px;max-width:970px;margin:0 auto;font-family:Manrope,system-ui;font-size:22px;font-weight:800}
.approval-brand span:not(.brand-logo) {color:var(--accent)}
.approval-card {max-width:575px;margin:10vh auto 0;border:1px solid var(--line-bright);border-radius:23px;padding:40px;background:linear-gradient(145deg,var(--surface),var(--bg));box-shadow:0 30px 80px var(--bg)}
.approval-illustration {width:74px;height:74px;display:grid;place-items:center;color:var(--surface);background:var(--accent);border-radius:21px;margin-bottom:23px}
.approval-card h1 {font-size:30px;letter-spacing:-1px;margin-bottom:12px}
.approval-card p {color:var(--text-subtle);font-size:14px;line-height:1.75}
.approval-card p strong {color:var(--text)}
.approval-details {display:grid;gap:11px;border-top:1px solid var(--line-bright);border-bottom:1px solid var(--line-bright);padding:20px 0;margin:24px 0;color:var(--text);font-size:12px}
.approval-details span {display:flex;align-items:center;gap:9px;overflow-wrap:anywhere}
.approval-details svg {color:var(--accent)}
.approval-controls {display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:680px){.login-card{padding-top:135px}.approval-wrap{padding:23px 13px 45px}.approval-brand{font-size:18px}.approval-card{margin-top:8vh;padding:26px 21px}.approval-card h1{font-size:24px}.approval-controls{flex-direction:column}.approval-controls .button{width:100%}.request-row{flex-wrap:wrap}.request-actions{width:100%}.request-actions .button{flex:1}}
