:root {
    --wf-bg: #e8ecf4;
    --wf-text-primary: #1a1e2a;
    --wf-text-secondary: #444c5c;
    --wf-text-muted: #7a8294;
    --wf-accent: #1C1EF8;
    --wf-offshore: #22C55E;
    --wf-cross: #FACC15;
    --wf-onshore: #EF4444;
    /* Versão "soft" das cores de vento: mesma saturação visual da barra
     * do gráfico desktop (canvas com globalAlpha 0.55). Usada nas caixas
     * de ícone do vento nas tabelas e no swatch do legend. */
    --wf-offshore-soft: rgba(34, 197, 94, 0.55);
    --wf-cross-soft: rgba(250, 204, 21, 0.55);
    --wf-onshore-soft: rgba(239, 68, 68, 0.55);
    --wf-sans: 'Helvetica Neue','Helvetica','Arial',sans-serif;
    --wf-glass-border: rgba(0,0,0,0.06);
    --wf-glass-radius: 16px;
}
.wf-chart *, .wf-chart *::before, .wf-chart *::after,
.wf-table *, .wf-table *::before, .wf-table *::after,
.wf-selector *, .wf-selector *::before, .wf-selector *::after {
    box-sizing: border-box;
}
.waves-forecast-empty {
    padding: 1rem;
    font-family: var(--wf-sans);
    color: var(--wf-text-muted);
    font-size: 0.9rem;
}
.wf-btn-wrap{font-family:var(--wf-sans)}
.wf-btn{
    display:inline-block;text-decoration:none;cursor:pointer;
    font-weight:700;font-size:0.9rem;line-height:1;
    padding:0.7rem 1.4rem;border-radius:100px;
    transition:background 0.15s,color 0.15s,border-color 0.15s,transform 0.1s;
}
.wf-btn:active{transform:translateY(1px)}
.wf-btn--primary{background:#FE0000;color:#fff;border:1.5px solid #FE0000}
.wf-btn--primary:hover{background:#e00000;border-color:#e00000;color:#fff}
.wf-btn--accent{background:var(--wf-accent);color:#fff;border:1.5px solid var(--wf-accent)}
.wf-btn--accent:hover{background:#1517d4;border-color:#1517d4;color:#fff}
.wf-btn--outline{background:transparent;color:var(--wf-text-primary);border:1.5px solid var(--wf-text-primary)}
.wf-btn--outline:hover{background:var(--wf-text-primary);color:#fff}

/* Layout helpers — applied via widget "Largura" control */
.wf-layout{display:block;width:100%}
.wf-layout--viewport{
    width:100vw;max-width:100vw;
    position:relative;
    left:50%;right:50%;
    margin-left:-50vw;margin-right:-50vw;
}

/* Unidade "m" inline em .mtb-height (col SURF) — mais leve, cinza,
 * 2px menor que o número. Aplica em mobile e desktop. */
.wf-chart__mob-table .mtb-height-unit,
.wf-table-modern .mtb-height-unit{
    font-size:calc(1em - 2px);font-weight:500;
    color:var(--wf-text-primary);margin-left:0.05em;
}

/* ──────────────────────────────────────────────────────────────────────
 * Tabela diária mobile (mtb-*) — compartilhada entre o widget Chart
 * (`.wf-chart__mob-table` dentro do gráfico) e o widget Tabela Moderna
 * standalone (`.wf-table-modern`). Estilos só aplicam ≤768px.
 * ──────────────────────────────────────────────────────────────────── */
@media(max-width:768px){
    .wf-chart__mob-table,
    .wf-table-modern{margin:0.5rem 0.25rem;font-family:var(--wf-sans);background:#fff;box-shadow:none;border-radius:0;border:none;padding:0}
    .wf-chart__mob-table .mtb-day,
    .wf-table-modern .mtb-day{padding:0.9rem 0.3rem 0.55rem;font-size:0.95rem;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;gap:0.5rem;color:var(--wf-text-primary)}
    .wf-chart__mob-table .mtb-day .mtb-arrow,
    .wf-table-modern .mtb-day .mtb-arrow{font-size:0.75rem;color:var(--wf-text-primary);transition:transform 0.2s;order:-1}
    .wf-chart__mob-table .mtb-day.open .mtb-arrow,
    .wf-table-modern .mtb-day.open .mtb-arrow{transform:rotate(0deg)}
    .wf-chart__mob-table .mtb-day:not(.open) .mtb-arrow,
    .wf-table-modern .mtb-day:not(.open) .mtb-arrow{transform:rotate(-90deg)}
    .wf-chart__mob-table .mtb-rows,
    .wf-table-modern .mtb-rows{display:none;flex-direction:column;gap:0.55rem}
    .wf-chart__mob-table .mtb-day.open + .mtb-rows,
    .wf-table-modern .mtb-day.open + .mtb-rows{display:flex}
    .wf-chart__mob-table .mtb-head,
    .wf-table-modern .mtb-head{display:flex;padding:0.15rem 0 0.5rem;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--wf-text-muted);background:transparent}
    .wf-chart__mob-table .mtb-head .mth-time,
    .wf-table-modern .mtb-head .mth-time{width:22px;flex-shrink:0}
    .wf-chart__mob-table .mtb-head .mth-col,
    .wf-table-modern .mtb-head .mth-col{flex:1;text-align:center}
    .wf-chart__mob-table .mtb-row,
    .wf-table-modern .mtb-row{display:flex;align-items:stretch;border:none;padding:0;gap:0.25rem}
    .wf-chart__mob-table .mtb-row .mtb-time,
    .wf-table-modern .mtb-row .mtb-time{width:22px;flex-shrink:0;font-size:0.95rem;font-weight:700;color:var(--wf-text-muted);letter-spacing:0.04em;writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;justify-content:center;padding:0}
    .wf-chart__mob-table .mtb-row .mtb-card,
    .wf-table-modern .mtb-row .mtb-card{flex:1;display:flex;align-items:stretch;background:#fff;border-radius:18px;box-shadow:0 4px 20px rgba(0,0,0,0.10),0 1px 3px rgba(0,0,0,0.05);padding:0.95rem 0.2rem;min-height:104px;min-width:0}
    .wf-chart__mob-table .mtb-row .mtb-col,
    .wf-table-modern .mtb-row .mtb-col{flex:1;display:flex;align-items:center;justify-content:center;gap:0.35rem;border-right:1px solid rgba(0,0,0,0.07);padding:0 0.1rem;min-width:0}
    .wf-chart__mob-table .mtb-row .mtb-col:last-child,
    .wf-table-modern .mtb-row .mtb-col:last-child{border-right:none}
    .wf-chart__mob-table .mtb-row .mtb-col-info,
    .wf-table-modern .mtb-row .mtb-col-info{display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1.05;min-width:0}
    .wf-chart__mob-table .mtb-row .mtb-height,
    .wf-table-modern .mtb-row .mtb-height{font-size:22px;font-weight:800;color:var(--wf-text-primary);line-height:1;letter-spacing:-0.02em;white-space:nowrap;order:0}
    .wf-chart__mob-table .mtb-row .mtb-score,
    .wf-table-modern .mtb-row .mtb-score{font-weight:700;font-size:1rem;margin-top:0.3rem;display:flex;align-items:center;gap:0.7rem;order:1}
    .wf-chart__mob-table .mtb-row .mtb-score .mtb-score-dot,
    .wf-table-modern .mtb-row .mtb-score .mtb-score-dot{width:12px;height:12px;border-radius:50%;position:relative}
    .wf-chart__mob-table .mtb-row .mtb-score .mtb-score-dot::after,
    .wf-table-modern .mtb-row .mtb-score .mtb-score-dot::after{content:'';position:absolute;left:100%;top:50%;transform:translateY(-50%);width:5px;height:2px;background-color:inherit;border-radius:0 1px 1px 0}
    .wf-chart__mob-table .mtb-row .mtb-period,
    .wf-table-modern .mtb-row .mtb-period{font-size:18px;font-weight:800;color:var(--wf-text-primary);letter-spacing:-0.02em;line-height:1}
    .wf-chart__mob-table .mtb-row .mtb-dir,
    .wf-table-modern .mtb-row .mtb-dir{font-weight:800;font-size:18px;color:var(--wf-text-primary);line-height:1;letter-spacing:-0.02em;white-space:nowrap}
    /* SWELL col: grid com ícone fixo no centro; período encosta à direita, direção/graus à esquerda */
    .wf-chart__mob-table .mtb-row .mtb-col--swell,
    .wf-table-modern .mtb-row .mtb-col--swell{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:0.3rem;justify-content:initial}
    .wf-chart__mob-table .mtb-row .mtb-col--swell .mtb-period,
    .wf-table-modern .mtb-row .mtb-col--swell .mtb-period{justify-self:end;text-align:right}
    .wf-chart__mob-table .mtb-row .mtb-col--swell .mtb-col-info,
    .wf-table-modern .mtb-row .mtb-col--swell .mtb-col-info{justify-self:start;align-items:flex-start}
    .wf-chart__mob-table .mtb-row .mtb-deg,
    .wf-table-modern .mtb-row .mtb-deg{font-size:0.65rem;color:var(--wf-text-muted);font-weight:600;margin-top:0.18rem;line-height:1;white-space:nowrap}
    .wf-chart__mob-table .mtb-row .mtb-kmh,
    .wf-table-modern .mtb-row .mtb-kmh{font-size:16px;color:var(--wf-text-primary);font-weight:800;margin-top:0.18rem;line-height:1;letter-spacing:-0.02em}
    .wf-chart__mob-table .mtb-row .mtb-icon,
    .wf-table-modern .mtb-row .mtb-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;flex-shrink:0}
    .wf-chart__mob-table .mtb-row .mtb-icon svg,
    .wf-table-modern .mtb-row .mtb-icon svg{width:65%;height:65%}
    .wf-chart__mob-table .mtb-row .mtb-icon.swell,
    .wf-table-modern .mtb-row .mtb-icon.swell{background:rgba(0,0,0,0.07)}
    .wf-chart__mob-table .mtb-row .mtb-icon.wind-t,
    .wf-table-modern .mtb-row .mtb-icon.wind-t{background:var(--wf-offshore-soft)}
    .wf-chart__mob-table .mtb-row .mtb-icon.wind-c,
    .wf-table-modern .mtb-row .mtb-icon.wind-c{background:var(--wf-cross-soft)}
    .wf-chart__mob-table .mtb-row .mtb-icon.wind-m,
    .wf-table-modern .mtb-row .mtb-icon.wind-m{background:var(--wf-onshore-soft)}
}
