/* ===== v3 — identidade única (treinador + atleta): fundo quente, cartões brancos, tinta preta, verde #0d9488, lima nas etiquetas, laranja só em ações ===== */
:root{--v-bg:#f7f5f2;--v-card:#fff;--v-ink:#111;--v-sub:#6b6b6b;--v-line:#e9e4e1;--v-soft:#f3f0ee;--v-teal:#0d9488;--v-navy:#0f2a3d;--v-lime:#f1ff7c;--v-or:#FF7A1A;--v-sh:0 2px 14px rgba(15,42,61,.08);--v-r:24px}
html:not([data-theme=dark]) body{background:var(--v-bg)!important;color:var(--v-ink)}
html:not([data-theme=dark]) .app.is-athlete{background:var(--v-bg)!important;--ink:#111;--mut:#6b6b6b;--glass:#fff;--bd:transparent;--sh:var(--v-sh);--a1:#0d9488;--a2:#0d9488}
html:not([data-theme=dark]) .app.is-athlete::before,html:not([data-theme=dark]) .main::before,html:not([data-theme=dark]) .main::after{display:none!important}
.app{grid-template-columns:236px minmax(0,1fr)}.main{min-width:0}
@media(max-width:860px){.app{grid-template-columns:minmax(0,1fr)}}
/* cartões e tipografia */
html:not([data-theme=dark]) .card,html:not([data-theme=dark]) .is-athlete .card,html:not([data-theme=dark]) .is-athlete .dh-card{background:var(--v-card)!important;border:0!important;border-radius:var(--v-r)!important;box-shadow:var(--v-sh)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html:not([data-theme=dark]) .card.flat{box-shadow:none!important;background:var(--v-soft)!important;border-radius:18px!important}
html:not([data-theme=dark]) .main h1,html:not([data-theme=dark]) .main h2,html:not([data-theme=dark]) .main h3{color:var(--v-ink);letter-spacing:-.025em}
html:not([data-theme=dark]) .main .muted{color:var(--v-sub)}
html:not([data-theme=dark]) .main label{color:var(--v-sub);font-weight:800;font-size:12px;letter-spacing:.05em;text-transform:uppercase}
html:not([data-theme=dark]) .main label.chk,html:not([data-theme=dark]) .main .st-fields label,html:not([data-theme=dark]) .main .dv-chk2,html:not([data-theme=dark]) .main .eqtog{text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;color:var(--v-ink)}
/* campos */
html:not([data-theme=dark]) .main input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),html:not([data-theme=dark]) .main select,html:not([data-theme=dark]) .main textarea{border:1.5px solid var(--v-line);border-radius:14px;background:#fff;color:var(--v-ink);min-height:46px;box-shadow:none}
html:not([data-theme=dark]) .main input:focus,html:not([data-theme=dark]) .main select:focus,html:not([data-theme=dark]) .main textarea:focus{outline:0;border-color:var(--v-ink)}
/* botões */
html:not([data-theme=dark]) .main button:not([class]),html:not([data-theme=dark]) .main button.o{background:var(--v-ink);color:#fff;border:0;border-radius:99px;min-height:44px;padding:0 20px;font-weight:800;box-shadow:none}
html:not([data-theme=dark]) .main button.ghost,html:not([data-theme=dark]) .main a.btn-link{background:var(--v-soft);color:var(--v-ink)!important;border:0;border-radius:99px;font-weight:700;box-shadow:none;text-decoration:none}
html:not([data-theme=dark]) .main a.btn-link{display:inline-flex;align-items:center;min-height:40px;padding:0 16px}
html:not([data-theme=dark]) .main button:disabled{opacity:.45}
html:not([data-theme=dark]) .wk-act>button:first-child,html:not([data-theme=dark]) .st-act>button:first-child{background:var(--v-or)!important;color:#fff!important;box-shadow:0 8px 18px -10px rgba(255,122,26,.8)}
/* topo e navegação */
.mtop{background:transparent!important;border:0!important;box-shadow:none!important;padding:2px 2px 10px!important;font-weight:800;color:var(--v-ink)}
.is-athlete .mtop span span{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;color:var(--v-teal)!important}
html:not([data-theme=dark]) .main .backbtn{background:#fff;border:0;box-shadow:var(--v-sh);border-radius:99px;color:var(--v-ink)}
/* indicadores */
html:not([data-theme=dark]) .kpi{background:#fff!important;border:0!important;border-radius:20px!important;box-shadow:var(--v-sh)}
html:not([data-theme=dark]) .kpi b{color:var(--v-ink)!important}html:not([data-theme=dark]) .kpi:first-child{background:var(--v-lime)!important}
html:not([data-theme=dark]) .ws-stats div{background:var(--v-soft)!important;border-radius:18px}html:not([data-theme=dark]) .ws-stats div:first-child{background:var(--v-lime)!important}
html:not([data-theme=dark]) .ws-stats b{color:var(--v-ink)}html:not([data-theme=dark]) .ws-stats span{color:var(--v-sub)}
html:not([data-theme=dark]) .bb,html:not([data-theme=dark]) .bb-t{background:var(--v-soft)!important;color:var(--v-ink)!important}
/* início do atleta: alinhar com a identidade */
.is-athlete .dh-ring .val{stroke:var(--v-teal)!important}
.is-athlete .dh-day.done i{background:var(--v-teal)!important}.is-athlete .dh-day.planned i{border-color:var(--v-teal)!important}
html:not([data-theme=dark]) .is-athlete .dh-goal{background:var(--v-lime)!important}html:not([data-theme=dark]) .is-athlete .dh-goal.off{background:#fff!important}
html:not([data-theme=dark]) .is-athlete .dh-goal .dh-kick{background:#111!important;color:var(--v-lime)!important}
html:not([data-theme=dark]) .is-athlete .dh-coach{background:#fff!important}
html:not([data-theme=dark]) .is-athlete .dh-kick{color:#111!important;letter-spacing:.07em}
html:not([data-theme=dark]) .is-athlete .dh-hello h2,html:not([data-theme=dark]) .is-athlete .hero h1,html:not([data-theme=dark]) .is-athlete .hero h2{color:var(--v-ink)!important}
html:not([data-theme=dark]) .is-athlete .dh-more{color:var(--v-ink)!important}
html:not([data-theme=dark]) .is-athlete .dh-btn2{background:#111!important;color:#fff!important;border:0!important}
html:not([data-theme=dark]) .is-athlete .dh-row{background:var(--v-soft)!important;border:0!important}
html:not([data-theme=dark]) .st-link{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--v-ink);margin-bottom:10px;padding:16px 18px}
/* stickers com a cor da categoria */
.sx-card.cat-run .stk,.stk.cat-run{--s1:#c9f6ee;--s2:#58d3c0}.sx-card.cat-strength .stk,.stk.cat-strength{--s1:#d6e6ff;--s2:#7fb1f6}.sx-card.cat-mobility .stk,.stk.cat-mobility{--s1:#e6dcff;--s2:#b7a2f7}.sx-card.cat-wod .stk,.stk.cat-wod{--s1:#ffe0cf;--s2:#ff9f7a}.sx-card.cat-race .stk,.stk.cat-race{--s1:#f7ffb0;--s2:#e0ee3f}.sx-card.cat-rest .stk,.stk.cat-rest{--s1:#e8edf2;--s2:#b8c4d0}
/* planear (treinador) */
.cw-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.cw-head label{margin:0}
.cw-auto{font-size:13px;font-weight:700;color:var(--v-ink)!important;background:var(--v-soft);border-radius:99px;padding:7px 12px;text-decoration:none;white-space:nowrap}
.cw-copy{width:100%;margin-top:6px;background:var(--v-ink)!important;color:#fff!important;border:0;border-radius:99px;min-height:48px;font-weight:800}
.cw-it{display:flex;flex-direction:column;gap:6px;min-width:0}
.cw-fb{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#eefaf8;border-radius:16px;padding:8px 12px;font-size:13px}
.cw-fb b{color:var(--v-teal)}.cw-fb span{background:#fff;border-radius:99px;padding:2px 10px;font-weight:700}.cw-fb .warn{background:#fff1f0;color:#b42318}.cw-fb q{flex-basis:100%;color:var(--v-ink);font-style:italic;overflow-wrap:anywhere}
.cw-ed{align-self:flex-start;background:transparent!important;border:0!important;color:var(--v-sub)!important;font-weight:700;font-size:13px;min-height:36px!important;padding:0 6px!important;cursor:pointer;box-shadow:none!important}
.cw-edit{background:#fff;border-radius:18px;box-shadow:var(--v-sh);padding:12px;display:flex;flex-direction:column;gap:10px}
.cw-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cw-days button{display:flex!important;flex-direction:column;align-items:center;gap:1px;background:var(--v-soft)!important;color:var(--v-ink)!important;border:0!important;border-radius:12px!important;min-height:48px!important;padding:4px 0!important;font-size:11px;font-weight:700;box-shadow:none!important}
.cw-days button b{font-size:15px}.cw-days button.on{background:var(--v-ink)!important;color:#fff!important}
.cal-nav>div small{display:block;font-size:12px;font-weight:600}.cal-nav{flex-direction:row!important}
html:not([data-theme=dark]) .wk-chip.on{background:var(--v-ink)!important;border-color:var(--v-ink)!important;color:#fff!important}
html:not([data-theme=dark]) .wk-today{background:var(--v-lime);color:#111}
html:not([data-theme=dark]) .wk-form{background:#fff;border-radius:22px;box-shadow:var(--v-sh);padding:14px}
@media(max-width:560px){.pl-day{grid-template-columns:44px minmax(0,1fr)!important;gap:8px!important}.pl-body{padding-left:8px!important}.pl-date b{font-size:1.2rem}.wk-row2{grid-template-columns:1fr!important}}
/* resumo do treinador */
.ch-kpis{grid-template-columns:repeat(4,1fr)}.ch-kpis a{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:10px 12px;min-width:0;text-decoration:none;display:block}
.ch-kpis a b{display:block;font-size:clamp(20px,6vw,28px);line-height:1.1;font-weight:800;color:var(--v-lime)}.ch-kpis a span{font-size:11.5px;color:#c9dbe4;font-weight:700}
@media(max-width:560px){.ch-kpis{grid-template-columns:repeat(2,1fr)}}
/* biblioteca: fileiras leves */
.nf-sec{content-visibility:auto;contain-intrinsic-size:auto 320px}
.nf-all{margin-left:auto;float:right;background:var(--v-soft)!important;color:var(--v-ink)!important;border:0!important;border-radius:99px!important;min-height:34px!important;padding:0 14px!important;font-size:13px;font-weight:700;box-shadow:none!important}
.nf-row.nf-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));overflow:visible!important}.nf-row.nf-grid .nf-card{width:auto!important}
/* estados vazios */
.v3-empty{text-align:center;padding:34px 22px!important}.v3-empty .stk{width:64px;height:64px;font-size:30px;border-radius:20px;--s1:#f9ffd0;--s2:#f1ff7c;margin-bottom:8px}.v3-empty p{max-width:420px;margin:6px auto 0}
/* nada cortado: textos longos e tabelas */
.main .card,.main section{overflow-wrap:anywhere}.main table{display:block;max-width:100%;overflow-x:auto}.main img,.main video,.main iframe,.main svg{max-width:100%}
.main pre{white-space:pre-wrap;overflow-wrap:anywhere}
/* títulos sobre fundos escuros */
html:not([data-theme=dark]) .main .ch-hero h1,html:not([data-theme=dark]) .main .hub-h h1,html:not([data-theme=dark]) .main .dh-hero .dh-title,html:not([data-theme=dark]) .main .sx-hero h1,html:not([data-theme=dark]) .main .dh-hero h3{color:#fff!important}
.nf-bar .eqtog{flex-basis:100%;display:flex!important;align-items:center;gap:8px}.nf-bar .eqtog input{flex:none;width:20px;height:20px}
.hub .nf-bar .eqtog{display:none!important}
html:not([data-theme=dark]) .ch-btn:not(.ghost){background:#111}
