:root {
    --bege-fundo: #ded5c1;
    --bege-header: #d5cbb4;
    --bege-card: #e5ddcc;
    --bege-contorno: #b5a788;
    --bege-botao: #cfc2a5;

    --verde: #a8d5ba;
    --verde-escuro: #47765c;
    --texto: #254334;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: Arial, Helvetica, sans-serif;
}

body {
    min-height: 100vh;
    background: var(--bege-fundo);
    color: var(--texto);
}

/* HEADER */

.navbar {
    height: 78px;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 0 7%;
    background: var(--bege-header);
    border-bottom: 1px solid var(--bege-contorno);
}

.logo img {
    width: 48px;
    display: block;
}

.marca {
    font-weight: bold;
    letter-spacing: 0.12em;
    color: var(--verde-escuro);
}

.btn-sair {
    margin-left: auto;
    border: 1px solid var(--verde-escuro);
    background: transparent;
    border-radius: 20px;
    color: var(--verde-escuro);
    cursor: pointer;
    font-weight: bold;
    padding: 10px 22px;
    transition: 0.2s;
}

.btn-sair:hover {
    background: var(--verde-escuro);
    color: white;
}

/* PAINEL PRINCIPAL */

.painel {
    width: min(1080px, 90vw);
    margin: 0 auto;
    padding: 75px 0;
}

/* PAINEL VERDE DE BOAS-VINDAS */

.boas-vindas {
    padding: 40px;
    border-radius: 25px;
    background: var(--verde);
}

.boas-vindas p {
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 0.14em;
}

.boas-vindas h1 {
    font-size: clamp(32px, 5vw, 52px);
    margin: 12px 0;
}

.boas-vindas span {
    color: var(--texto);
}

.evolucao {
    margin-top: 28px;
    padding: 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    border: 1px solid var(--bege-contorno);
    border-radius: 20px;
    background: var(--bege-card);
}

.evolucao-etiqueta { font-size: 12px; font-weight: bold; letter-spacing: .14em; color: var(--verde-escuro); }
.evolucao h2 { margin: 8px 0; }
.evolucao p:last-child { line-height: 1.5; }
.evolucao-numeros { display: flex; gap: 12px; }
.evolucao-numeros div { min-width: 100px; padding: 14px; border-radius: 14px; background: var(--verde); }
.evolucao-numeros span { display: block; font-size: 12px; font-weight: bold; }
.evolucao-numeros strong { display: block; margin-top: 5px; font-size: 17px; }
.oculto { display: none; }

/* CARDS */

.cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 28px;
}

.card {
    min-height: 220px;
    padding: 28px;
    border: 1px solid var(--bege-contorno);
    border-radius: 20px;
    background: var(--bege-card);
}

.card span {
    color: var(--verde-escuro);
    font-weight: bold;
}

.card h2 {
    margin: 22px 0 12px;
}

.card p {
    line-height: 1.5;
}

.btn-card {
    display: inline-block;
    margin-top: 24px;
    border: 0;
    background: var(--bege-botao);
    border-radius: 18px;
    padding: 9px 15px;
    color: var(--texto);
    text-decoration: none;
    font-size: 13px;
    font-weight: bold;
}

.btn-card:hover {
    background: var(--verde);
}

/* RESPONSIVIDADE */

@media (max-width: 750px) {
    .cards {
        grid-template-columns: 1fr;
    }

    .painel {
        padding-top: 35px;
    }

    .boas-vindas {
        padding: 28px;
    }

    .evolucao, .evolucao-numeros { align-items: stretch; flex-direction: column; }
    .evolucao-numeros div { min-width: 0; }
}

/* MYH — identidade visual futurista */
:root {
    --bege-fundo: #07110e;
    --bege-header: rgba(8, 18, 14, .9);
    --bege-card: #101d18;
    --bege-contorno: rgba(171, 255, 143, .2);
    --bege-botao: #1b3025;
    --verde: #c8ff69;
    --verde-escuro: #72e6a5;
    --texto: #edf6ef;
    --erro: #ff7886;
}
body {
    color: var(--texto);
    background:
        radial-gradient(ellipse at 50% 8%, rgba(91,205,133,.12), transparent 42%),
        #07110e;
}
.navbar {
    background: rgba(7,15,12,.88);
    border-bottom: 1px solid rgba(180,255,139,.17);
    box-shadow: 0 12px 40px rgba(0,0,0,.2);
    backdrop-filter: blur(18px);
}
.logo img { mix-blend-mode: normal; filter: drop-shadow(0 0 12px rgba(137,255,167,.18)); }
.menu a, .nav-voltar { transition: color .2s ease, text-shadow .2s ease; }
.menu a:hover, .menu .active, .nav-voltar:hover { color: var(--verde); text-shadow: 0 0 18px rgba(200,255,105,.28); }
.btn-aluno, .btncomeceagora, .btncct, .btnet, .btn-criar, .btn-continuar {
    border: 1px solid rgba(200,255,105,.48);
    background: linear-gradient(135deg,#d7ff83,#a9f45d);
    color: #0b160f;
    box-shadow: 0 0 25px rgba(177,255,105,.12);
}
.btn-aluno:hover, .btncomeceagora:hover, .btncct:hover, .btnet:hover, .btn-criar:hover, .btn-continuar:hover {
    background: #efffc6;
    color: #08120c;
    box-shadow: 0 0 32px rgba(177,255,105,.24);
}
.centropagina, .primeira-vez, .quiz {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 50% 42%,rgba(89,190,130,.14),transparent 40%),
        linear-gradient(145deg,#07110e,#0b1913 55%,#07110e);
}
.centropagina::before, .primeira-vez::before, .quiz::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    opacity: .2;
    background-image: linear-gradient(rgba(192,255,151,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(192,255,151,.08) 1px,transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(to bottom,transparent,#000 24%,#000 78%,transparent);
}
.centropagina::after {
    position: absolute;
    z-index: -1;
    width: min(68vw,760px);
    aspect-ratio: 1;
    border: 1px solid rgba(152,255,169,.13);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 48px rgba(152,255,169,.025),0 0 0 100px rgba(152,255,169,.018),inset 0 0 90px rgba(152,255,169,.035);
}
.logo-central, .logo-cadastro { mix-blend-mode: screen; filter: drop-shadow(0 0 28px rgba(115,255,160,.17)); }
.titulo-principal, .titulo-cadastro, .pergunta-titulo, .final h2 { color: #f1f8f2; letter-spacing: -.035em; }
.cadastro {
    border: 1px solid rgba(171,255,143,.2);
    border-radius: 28px;
    background: rgba(13,26,19,.84);
    box-shadow: 0 30px 90px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.035);
    backdrop-filter: blur(18px);
}
.campo label, .dados-pessoais label { color: #c8d8cb; }
.campo input, .busca, .campo select, .dados-pessoais input, .dados-pessoais select {
    border-color: rgba(171,255,143,.2);
    background: #09150f;
    color: #edf6ef;
}
input:focus, select:focus { border-color: var(--verde); box-shadow: 0 0 0 3px rgba(200,255,105,.13); outline: none; }
#mensagem { color: #edf6ef !important; }
.boas-vindas, .cabecalho {
    border: 1px solid rgba(171,255,143,.22);
    background: linear-gradient(135deg,rgba(114,230,165,.15),rgba(16,29,24,.96) 68%);
    box-shadow: inset 0 1px rgba(255,255,255,.04),0 22px 65px rgba(0,0,0,.2);
}
.boas-vindas p, .sobretitulo, .marca, .nav-voltar, .card span, .evolucao-etiqueta, .meta, .destaque { color: var(--verde); }
.boas-vindas h1, .cabecalho h1 { color: #f4f8f4; letter-spacing: -.045em; }
.evolucao, .card, .treino, .registro, .formulario, .vazio, .objetivo-card, .opcao, .opcao-card, .opcao-img {
    border-color: rgba(171,255,143,.17);
    background: linear-gradient(145deg,rgba(19,36,27,.98),rgba(12,24,18,.98));
    color: #edf6ef;
    box-shadow: inset 0 1px rgba(255,255,255,.035),0 16px 42px rgba(0,0,0,.16);
}
.card, .objetivo-card, .opcao, .opcao-card, .opcao-img { transition: transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.card:hover, .objetivo-card:hover { transform: translateY(-4px); border-color: rgba(200,255,105,.45); box-shadow: 0 20px 50px rgba(0,0,0,.25),0 0 24px rgba(114,230,165,.08); }
.btn-card, .acao, .conteudo button, .btn-sair {
    border: 1px solid rgba(200,255,105,.35);
    background: linear-gradient(135deg,#d7ff83,#a9f45d);
    color: #0b160f;
}
.selo, .resumo, .evolucao-numeros div { background: rgba(200,255,105,.12); color: #e7f5d5; border: 1px solid rgba(200,255,105,.18); }
.exercicios, .exercicios li { border-color: rgba(171,255,143,.14); }
.exercicios small, .registro-info, .pergunta-subtitulo, .opcao-desc, .opcao-card-texto p, .final p { color: #a9bdb0; }
.progresso { background: #14231a; }
.progresso-barra { background: linear-gradient(90deg,#72e6a5,#d7ff83); box-shadow: 0 0 14px rgba(200,255,105,.4); }
.opcao.selecionada, .opcao-card.selecionada, .opcao-img.selecionada { background: rgba(114,230,165,.14); border-color: var(--verde); box-shadow: 0 0 24px rgba(114,230,165,.1); }
input:focus-visible, select:focus-visible, button:focus-visible, a:focus-visible { outline: 2px solid var(--verde); outline-offset: 3px; }
@media (max-width:650px) {
    .navbar { min-height:76px; height:auto; padding:12px 20px; }
    .centropagina { min-height:calc(100vh - 76px); gap:34px; }
    .centropagina::after { width:90vw; }
    .btncomeceagora { padding:15px 30px; font-size:16px; }
    .primeira-vez { min-height:calc(100vh - 76px); padding-top:22vh; }
    .cadastro { padding:26px 20px; border-radius:22px; }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
}


/* Área do aluno ativa, consolidada do antigo area-aluno.css. */
:root {
    --dash-bg: #0c1511;
    --dash-surface: #14211a;
    --dash-surface-2: #1b2b22;
    --dash-border: #25382d;
    --dash-text: #e8f3ec;
    --dash-muted: #9db5a7;
    --dash-accent: #7fe0a0;
    --dash-accent-strong: #7fe0a0;
    --dash-accent-text: #0c1511;
    --dash-action-text: #7fe0a0;
}
:root[data-theme="light"] {
    --dash-bg: #f6f8f5;
    --dash-surface: #fff;
    --dash-surface-2: #e9f1eb;
    --dash-border: #d6e4d9;
    --dash-text: #20362a;
    --dash-muted: #4f655a;
    --dash-accent: #2f7d4f;
    --dash-accent-strong: #2f7d4f;
    --dash-accent-text: #fff;
    --dash-action-text: #a0efad;
}
.dashboard-page {
    min-height: 100vh;
    color: var(--dash-text);
    background: var(--dash-bg);
    font-family: "Plus Jakarta Sans", Arial, sans-serif;
}
.dashboard-page *, .dashboard-page *::before, .dashboard-page *::after { box-sizing: border-box; font-family: "Plus Jakarta Sans", Arial, sans-serif; }
.dashboard-header {
    position: sticky;
    z-index: 20;
    top: 0;
    width: 100%;
    border-bottom: 1px solid var(--dash-border);
    background: color-mix(in srgb, var(--dash-bg) 90%, transparent);
    backdrop-filter: blur(12px);
}
.dashboard-nav {
    width: 100%;
    max-width: 1040px;
    height: 64px;
    min-height: 64px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    gap: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.dashboard-brand { order: 0; display: inline-flex; align-items: center; gap: 10px; margin-right: auto; color: var(--dash-text); font-size: 15px; font-weight: 800; letter-spacing: -.02em; text-decoration: none; text-transform: none; white-space: nowrap; }
.dashboard-brand img { display: block; flex: 0 0 40px; width: 40px !important; height: 26px !important; object-fit: contain; mix-blend-mode: screen; filter: none; }
:root[data-theme="light"] .dashboard-page .dashboard-brand img { display: block !important; visibility: visible !important; opacity: 1 !important; mix-blend-mode: normal !important; filter: none !important; }
.dashboard-brand svg { display: block; width: 40px; height: 24px; color: var(--dash-accent); }
.dashboard-links { order: 1; display: flex; align-items: center; gap: 8px; }
.dashboard-links a {
    display: inline-flex;
    min-height: 42px;
    padding: 0 15px;
    align-items: center;
    border-radius: 999px;
    color: var(--dash-muted);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background .18s ease, color .18s ease;
}
.dashboard-links a:hover, .dashboard-links a.active { color: var(--dash-text); background: var(--dash-surface-2); }
.dashboard-nav .theme-toggle {
    order: 2;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    margin: 0 10px !important;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--dash-border) !important;
    border-radius: 50% !important;
    background: var(--dash-surface) !important;
    color: var(--dash-text) !important;
    cursor: pointer;
    transition: transform .18s ease, background .2s ease, box-shadow .18s ease;
}
.dashboard-nav .theme-toggle svg { display: block; width: 21px; height: 21px; }
.dashboard-nav .theme-toggle:hover {
    transform: translateY(-2px);
    background: color-mix(in srgb, var(--dash-surface) 88%, var(--dash-accent)) !important;
    box-shadow: 0 0 18px color-mix(in srgb, var(--dash-accent) 16%, transparent);
}
.dashboard-nav .theme-toggle:active { transform: translateY(2px) scale(.94); }
.dashboard-nav .theme-toggle:focus-visible { outline: 2px solid var(--dash-accent); outline-offset: 3px; }
.dashboard-nav .btn-sair { order: 3; min-height: 40px; margin: 0 !important; padding: 0 16px; border: 1px solid var(--dash-border) !important; border-radius: 999px !important; background: transparent !important; color: var(--dash-text) !important; font: inherit; font-size: 14px; font-weight: 700; }
.dashboard-nav .btn-sair:hover { background: var(--dash-surface-2) !important; }
.dashboard { width: min(100%, 1040px); margin: 0 auto; padding: 28px 20px 64px; }
.dashboard-welcome { margin: 0 0 24px; }
.dashboard-welcome h1 { margin: 0; color: var(--dash-text); font-size: clamp(32px, 4vw, 40px); line-height: 1.12; letter-spacing: -.04em; }
.dashboard-welcome p { margin: 4px 0 0; color: var(--dash-muted); font-size: 16px; line-height: 1.55; }
.dashboard-top { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; margin-top: 22px; }
.today-card, .week-card, .goal-card, .shortcut-card { border: 1px solid var(--dash-border); border-radius: 24px; }
.today-card { min-height: 220px; padding: 22px; color: var(--dash-accent-text); background: var(--dash-accent-strong); }
.today-tag { display: inline-flex; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.26); font-size: 12px; font-weight: 700; }
.today-card h2 { margin: 16px 0 4px; color: inherit; font-size: clamp(20px,2.5vw,26px); letter-spacing: -.03em; }
.today-card p { margin: 4px 0 0; color: inherit; opacity: .82; font-size: 16px; }
.today-action { display: inline-flex; min-height: 48px; margin-top: 20px; padding: 0 24px; align-items: center; justify-content: center; border-radius: 14px; color: var(--dash-action-text); background: #08140e; font-weight: 800; text-decoration: none; transition: transform .16s ease, background .16s ease; }
.today-action:hover { transform: translateY(-1px); background: #14271b; }
.week-card { min-height: 220px; padding: 22px; background: var(--dash-surface); }
.week-card h2, .goal-card h2 { margin: 0; color: var(--dash-text); font-size: 18px; }
.week-days { display: flex; gap: 8px; margin-top: 14px; text-align: center; }
.week-days > span { display: grid; flex: 1; min-width: 0; justify-items: center; gap: 8px; }
.week-days b { color: var(--dash-muted); font-size: 12px; }
.week-days i { display: grid; place-items: center; width: 100%; height: 36px; border-radius: 50%; background: var(--dash-surface-2); font-style: normal; font-size: 14px; }
.week-days .is-done i { color: var(--dash-accent-text); background: var(--dash-accent-strong); font-weight: 800; }
.week-days .is-today i { box-shadow: 0 0 0 2px var(--dash-accent); }
.week-card p { margin: 6px 0 0; color: var(--dash-muted); font-size: 13px; }
.goal-card { margin-top: 16px; padding: 22px; background: var(--dash-surface); }
.goal-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.goal-heading strong { color: var(--dash-text); font-size: 16px; }
.goal-track { height: 10px; margin-top: 14px; overflow: hidden; border-radius: 999px; background: var(--dash-surface-2); }
.goal-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--dash-accent-strong); transition: width .35s ease; }
.goal-values { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 14px; text-align: center; }
.goal-values div { min-height: 78px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; padding: 12px 6px; border-radius: 14px; background: var(--dash-surface-2); }
.goal-values strong { color: var(--dash-text); font-size: 21px; }
.goal-values span { color: var(--dash-muted); font-size: 12px; font-weight: 700; }
.goal-empty { margin-top: 12px; color: var(--dash-muted); font-size: 13px; }
.goal-empty[hidden] { display: none; }
.dashboard-shortcuts { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 22px; }
.shortcut-card { min-height: 148px; display: flex; flex-direction: column; gap: 6px; padding: 22px; color: var(--dash-text); background: var(--dash-surface); text-decoration: none; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.shortcut-card:hover { transform: translateY(-3px); border-color: var(--dash-accent); background: color-mix(in srgb, var(--dash-surface) 85%, var(--dash-accent)); }
.shortcut-card > span { display: block; margin-bottom: 6px; font-size: 26px; }
.shortcut-card h2 { margin: 0; color: var(--dash-text); font-size: 16px; }
.shortcut-card p { margin-top: 7px; color: var(--dash-muted); font-size: 15px; }
@media (max-width: 850px) {
    .dashboard-nav { height: auto; min-height: 64px; flex-wrap: wrap; padding: 12px 20px; }
    .dashboard-brand { margin-right: auto; }
    .dashboard-links { order: 4; width: 100%; justify-content: space-between; overflow-x: auto; }
    .dashboard-links a { padding: 0 12px; }
    .dashboard { width: min(100%, 760px); padding: 22px 20px 56px; }
    .dashboard-top { grid-template-columns: 1fr; }
    .today-card, .week-card { min-height: auto; }
}
@media (max-width: 600px) {
    .dashboard-nav { gap: 8px; padding: 10px 14px; }
    .dashboard-brand span { font-size: 14px; }
    .dashboard-nav .theme-toggle { flex-basis: 38px; width: 38px; height: 38px; margin: 0 4px !important; }
    .dashboard-nav .btn-sair { min-height: 38px; padding: 0 13px; font-size: 13px; }
    .dashboard-links { gap: 2px; }
    .dashboard-links a { min-height: 40px; padding: 0 10px; font-size: 13px; }
    .dashboard { width: 100%; padding: 22px 14px 40px; }
    .dashboard-welcome h1 { font-size: 32px; }
    .today-card, .week-card, .goal-card { padding: 19px; border-radius: 20px; }
    .goal-values { gap: 7px; }
    .goal-values div { min-height: 70px; }
    .goal-values strong { font-size: 17px; }
    .dashboard-shortcuts { grid-template-columns: 1fr; gap: 10px; margin-top: 14px; }
    .shortcut-card { min-height: 0; padding: 17px; }
    .shortcut-card > span { margin-bottom: 8px; }
}

:root[data-theme="light"] .dashboard-page .dashboard-nav .btn-sair,
:root[data-theme="dark"] .dashboard-page .dashboard-nav .btn-sair {
    border: 1px solid var(--dash-border) !important;
    background: transparent !important;
    color: var(--dash-text) !important;
    box-shadow: none !important;
}
:root[data-theme="light"] .dashboard-page .dashboard-nav .btn-sair:hover,
:root[data-theme="dark"] .dashboard-page .dashboard-nav .btn-sair:hover {
    background: var(--dash-surface-2) !important;
}


/* Ajuste para não herdar a altura do cabeçalho legado. */
.dashboard-nav { height: auto; }

/* Calendário mensal e programação semanal do painel. */
.dashboard-page .week-card { cursor: pointer; }
.dashboard-page .week-card:focus-visible { outline: 2px solid var(--dash-accent); outline-offset: 4px; }
.dashboard-page .week-calendar-hint { display: block; margin-top: 12px; color: var(--dash-action-text); font-size: 12px; font-weight: 700; }
.dashboard-page .week-days > span.is-planned i { color: var(--dash-action-text); }
.calendar-dialog { width: min(720px, calc(100vw - 28px)); max-width: none; max-height: min(90vh, 900px); margin: auto; padding: 0; overflow: auto; border: 1px solid var(--dash-border); border-radius: 24px; color: var(--dash-text); background: var(--dash-surface); box-shadow: 0 24px 90px #0008; }
.calendar-dialog::backdrop { background: #06100bd9; backdrop-filter: blur(5px); }
.calendar-dialog-content { display: grid; gap: 18px; padding: 24px; }
.calendar-dialog-heading, .calendar-month-controls, .calendar-dialog-actions, .calendar-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.calendar-dialog-heading h2 { margin: 4px 0 0; font-size: 23px; }
.calendar-dialog-heading p { margin: 6px 0 0; color: var(--dash-muted); }
.calendar-eyebrow { color: var(--dash-action-text); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.calendar-close, .calendar-month-controls button { width: 40px; height: 40px; border: 1px solid var(--dash-border); border-radius: 50%; color: var(--dash-text); background: var(--dash-surface-2); font: inherit; font-size: 24px; cursor: pointer; }
.calendar-month-controls { justify-content: center; }
.calendar-month-controls strong { min-width: 180px; text-align: center; text-transform: capitalize; }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.calendar-weekdays span { color: var(--dash-muted); font-size: 12px; font-weight: 700; text-align: center; }
.calendar-day-empty { min-height: 42px; }
.calendar-day { position: relative; min-height: 46px; border: 1px solid transparent; border-radius: 13px; color: var(--dash-text); background: var(--dash-surface-2); font: inherit; cursor: pointer; }
.calendar-day.status-concluido { color: var(--dash-accent-text); background: var(--dash-accent); font-weight: 800; }
.calendar-day.status-pendente { border-color: #e2a960; }
.calendar-day.status-hoje { border-color: var(--dash-accent); box-shadow: inset 0 0 0 1px var(--dash-accent); }
.calendar-day.status-futuro { opacity: .78; }
.calendar-day.status-descanso { color: var(--dash-muted); }
.calendar-day.status-sem-plano { opacity: .55; }
.calendar-day.is-today::after { position: absolute; right: 5px; bottom: 5px; width: 5px; height: 5px; border-radius: 50%; background: var(--dash-accent); content: ""; }
.calendar-day.is-selected { outline: 2px solid var(--dash-accent); outline-offset: 2px; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; color: var(--dash-muted); font-size: 12px; }
.calendar-legend span { display: inline-flex; align-items: center; gap: 6px; }
.calendar-legend i { width: 10px; height: 10px; border: 1px solid var(--dash-border); border-radius: 50%; background: var(--dash-surface-2); }
.calendar-legend .legend-done { border-color: var(--dash-accent); background: var(--dash-accent); }
.calendar-legend .legend-pending { border-color: #e2a960; }
.calendar-day-detail { min-height: 80px; padding: 14px; border: 1px solid var(--dash-border); border-radius: 16px; background: var(--dash-bg); }
.calendar-day-detail p { margin: 6px 0; color: var(--dash-muted); }
.calendar-detail-workout { color: var(--dash-text) !important; }
.status-pill { padding: 5px 9px; border-radius: 999px; color: var(--dash-text); background: var(--dash-surface-2); font-size: 11px; font-weight: 700; }
.status-pill.status-concluido { color: var(--dash-accent-text); background: var(--dash-accent); }
.status-pill.status-pendente { color: #f0bd75; }
.calendar-load-list { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--dash-border); }
.calendar-load-list p { color: var(--dash-text); }
.calendar-load-charts { display: grid; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--dash-border); }
.calendar-load-charts h3 { margin: 0; color: var(--dash-text); font-size: 15px; }
.calendar-load-chart { min-width: 0; padding: 12px 14px 10px; border: 1px solid var(--dash-border); border-radius: 14px; background: var(--dash-surface); }
.calendar-load-chart-heading, .calendar-load-chart-dates { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.calendar-load-chart-heading { color: var(--dash-text); font-size: 13px; }
.calendar-load-chart-heading span { color: var(--dash-action-text); font-weight: 800; white-space: nowrap; }
.calendar-load-svg { display: block; width: 100%; height: 116px; margin-top: 6px; overflow: visible; }
.calendar-load-svg polyline { fill: none; stroke: var(--dash-accent); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.calendar-load-svg circle { fill: var(--dash-surface); stroke: var(--dash-accent); stroke-width: 6; }
.calendar-load-chart-dates { color: var(--dash-muted); font-size: 11px; }
.calendar-load-chart-status { margin: 0; color: var(--dash-muted); font-size: 13px; }
.calendar-no-load, .calendar-loading { color: var(--dash-muted); font-size: 13px; }
.calendar-dialog-actions { justify-content: flex-end; }
.calendar-dialog-actions button { min-height: 42px; padding: 0 16px; border: 0; border-radius: 999px; font: inherit; font-weight: 700; cursor: pointer; }
.calendar-primary { color: var(--dash-accent-text); background: var(--dash-accent); }
.calendar-secondary { color: var(--dash-text); background: var(--dash-surface-2); }
.agenda-days-fields { display: grid; gap: 8px; }
.agenda-day-row { display: grid; grid-template-columns: 22px minmax(85px, 1fr) minmax(170px, 2fr); align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--dash-border); border-radius: 13px; background: var(--dash-bg); }
.agenda-day-row input { accent-color: var(--dash-accent); width: 18px; height: 18px; }
.agenda-day-name { font-weight: 700; }
.agenda-day-row select { min-width: 0; height: 40px; padding: 0 10px; border: 1px solid var(--dash-border); border-radius: 10px; color: var(--dash-text); background: var(--dash-surface); font: inherit; }
.agenda-day-row select:disabled { opacity: .45; }
.agenda-count, .calendar-message { margin: 0; color: var(--dash-muted); font-size: 13px; }
.calendar-message.is-error { color: #ff9b91; }
@media (max-width: 600px) {
    .calendar-dialog-content { gap: 14px; padding: 18px; }
    .calendar-dialog-heading h2 { font-size: 20px; }
    .calendar-weekdays, .calendar-grid { gap: 5px; }
    .calendar-day { min-height: 40px; border-radius: 10px; }
    .calendar-day-empty { min-height: 40px; }
    .calendar-legend { gap: 8px 12px; }
    .agenda-day-row { grid-template-columns: 20px 1fr; gap: 8px; }
    .agenda-day-row select { grid-column: 2; width: 100%; }
    .calendar-dialog-actions { flex-wrap: wrap; }
}
.calendar-legend .legend-unplanned { opacity: .5; }

/* Próxima ação para contas que ainda não responderam ao questionário. */
.dashboard-page.questionnaire-pending .dashboard-top,
.dashboard-page.questionnaire-pending .goal-card,
.dashboard-page.questionnaire-pending .dashboard-shortcuts { display: none !important; }
.questionnaire-required[hidden] { display: none !important; }
.questionnaire-required { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 26px; padding: clamp(24px, 4vw, 40px); border: 1px solid color-mix(in srgb, var(--dash-accent) 48%, var(--dash-border)); border-radius: 26px; color: var(--dash-accent-text); background: var(--dash-accent-strong); box-shadow: 0 18px 50px color-mix(in srgb, var(--dash-accent) 16%, transparent); }
.questionnaire-required-copy { max-width: 620px; }
.questionnaire-required-tag { display: inline-flex; padding: 6px 11px; border-radius: 999px; color: var(--dash-accent-text); background: color-mix(in srgb, #fff 32%, transparent); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.questionnaire-required h2 { margin: 14px 0 7px; color: inherit; font-size: clamp(24px, 3.5vw, 34px); line-height: 1.15; letter-spacing: -.035em; }
.questionnaire-required p { margin: 0; color: inherit; opacity: .82; font-size: 16px; line-height: 1.6; }
.questionnaire-required-action { flex: 0 0 auto; display: inline-flex; min-height: 54px; align-items: center; justify-content: center; gap: 12px; padding: 0 22px; border: 2px solid #08140e; border-radius: 15px; color: var(--dash-action-text); background: #08140e; font-size: 15px; font-weight: 800; text-decoration: none; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.questionnaire-required-action:hover { transform: translateY(-2px); background: #14271b; box-shadow: 0 10px 24px #08140e30; }
.questionnaire-required-action:focus-visible { outline: 3px solid var(--dash-text); outline-offset: 4px; }
@media (max-width: 700px) { .questionnaire-required { align-items: stretch; flex-direction: column; gap: 20px; margin-top: 20px; padding: 22px; border-radius: 20px; } .questionnaire-required-action { width: 100%; } }
/* Opções da frequência semanal no calendário */
.frequency-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; border: 0; }
.frequency-options label { position: relative; cursor: pointer; }
.frequency-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.frequency-options label span { display: grid; justify-items: center; gap: 3px; min-height: 76px; align-content: center; border: 1px solid var(--dash-border); border-radius: 15px; color: var(--dash-text); background: var(--dash-bg); transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.frequency-options label:hover span { border-color: var(--dash-accent); transform: translateY(-1px); }
.frequency-options input:checked + span { border-color: var(--dash-accent); background: color-mix(in srgb, var(--dash-accent) 16%, var(--dash-bg)); box-shadow: inset 0 0 0 1px var(--dash-accent); }
.frequency-options input:focus-visible + span { outline: 2px solid var(--dash-accent); outline-offset: 3px; }
.frequency-options strong { font-size: 18px; }
.frequency-options small { color: var(--dash-muted); font-size: 12px; }
@media (max-width: 600px) { .frequency-options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
