/* ============================================================
   TREINO — TELA CHEIA (avançado). Identidade laranja/energia.
   Reaproveita .zwk-modal-section / .zwk-routine / .zwk-rest do modal.
============================================================ */
#fsWidget[data-type="widget-workout"] .zfs-body { padding: 0; }
.zwkf { display: flex; flex-direction: column; }
.zwkf-hero {
    margin: 0 0 14px; padding: 18px 18px 16px;
    background: linear-gradient(135deg, #5a9400 0%, #2f5600 100%);
    color: #fff; border-radius: 0 0 26px 26px; box-shadow: 0 10px 26px rgba(90,148,0,0.26);
}
.zwkf-hero-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.zwkf-eyebrow { font-size: 0.7rem; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; display: inline-flex; align-items: center; gap: 6px; }
.zwkf-weekchip { font-size: 0.74rem; font-weight: 700; background: rgba(255,255,255,0.2); padding: 4px 10px; border-radius: 99px; }
.zwkf-prog { display: flex; align-items: baseline; gap: 8px; }
.zwkf-prog-num { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 2.6rem; line-height: 1; letter-spacing: -1px; }
.zwkf-prog-num span { font-size: 1.1rem; opacity: 0.7; }
.zwkf-prog-lbl { font-size: 0.85rem; opacity: 0.85; font-weight: 600; }
.zwkf-bar { height: 8px; border-radius: 99px; background: rgba(255,255,255,0.25); overflow: hidden; margin: 12px 0 14px; }
.zwkf-bar > span { display: block; height: 100%; background: #fff; border-radius: 99px; transition: width 0.4s; }
.zwkf-weekrow { display: flex; gap: 5px; }
.zwkf-wd { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.zwkf-wd-dot { width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,0.18); display: flex; align-items: center; justify-content: center; font-size: 0.75rem; }
.zwkf-wd.done .zwkf-wd-dot { background: #fff; color: #2f5600; }
.zwkf-wd.today .zwkf-wd-dot { box-shadow: 0 0 0 2px #fff; }
.zwkf-wd-lbl { font-size: 0.62rem; font-weight: 800; opacity: 0.85; }
.zwkf-today { margin-top: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.zwkf-today.done { background: rgba(255,255,255,0.16); padding: 10px 12px; border-radius: 12px; font-weight: 700; font-size: 0.9rem; justify-content: space-between; }
.zwkf-sel { flex: 1; min-width: 0; padding: 11px 12px; border-radius: 12px; border: none; background: rgba(255,255,255,0.92); color: #0d0d0d; font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 0.9rem; }
.zwkf-train { border: none; cursor: pointer; background: #0d0d0d; color: #fff; font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 0.86rem; padding: 11px 16px; border-radius: 12px; display: inline-flex; align-items: center; gap: 7px; }
.zwkf-undo { border: none; cursor: pointer; background: rgba(255,255,255,0.25); color: #fff; font-weight: 700; font-size: 0.78rem; padding: 6px 12px; border-radius: 10px; }
.zwkf .zwk-modal-section { margin: 0 16px 14px; }
@media (min-width: 1025px) {
    .zwkf {
        display: grid;
        grid-template-columns: 320px 1fr 1fr;
        grid-template-rows: auto 1fr;
        gap: 24px;
        padding: 32px 40px;
        min-height: 100%;
        box-sizing: border-box;
        background: var(--bg-app);
    }
    .zwkf-hero {
        grid-column: 1 / 2;
        grid-row: 1 / 3;
        margin: 0;
        border-radius: 24px;
        padding: 32px 28px;
        display: flex;
        flex-direction: column;
    }
    .zwkf-content-wrap {
        display: contents;
    }
    /* Descanso */
    .zwkf .zwk-modal-section:nth-of-type(1) {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
        border-radius: 24px;
        border: 1px solid var(--border-color);
        padding: 24px;
        background: var(--bg-card);
        box-shadow: var(--shadow-sm);
        margin: 0;
    }
    /* Meta semanal */
    .zwkf .zwk-modal-section:nth-of-type(2) {
        grid-column: 3 / 4;
        grid-row: 1 / 2;
        border-radius: 24px;
        border: 1px solid var(--border-color);
        padding: 24px;
        background: var(--bg-card);
        box-shadow: var(--shadow-sm);
        margin: 0;
    }
    /* Meus treinos */
    .zwkf .zwk-modal-section:nth-of-type(3) {
        grid-column: 2 / 4;
        grid-row: 2 / 3;
        border-radius: 24px;
        border: 1px solid var(--border-color);
        padding: 24px;
        background: var(--bg-card);
        box-shadow: var(--shadow-sm);
        margin: 0;
    }
    /* Routine Cards */
    .zwkf .zwk-routine {
        border-radius: 16px;
        padding: 16px;
        transition: transform 0.2s, box-shadow 0.2s;
    }
    .zwkf .zwk-routine:hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 24px rgba(0,0,0,0.06);
    }
    body.dark-mode .zwkf .zwk-routine:hover {
        box-shadow: 0 8px 24px rgba(0,0,0,0.3);
    }
}

/* execução série a série */
.zwk-ex-live { padding: 9px 0; border-bottom: 1px solid var(--border-color); }
.zwk-ex-live:last-child { border-bottom: none; }
.zwk-ex-top { display: flex; align-items: center; gap: 10px; }
.zwk-ex-top .zwk-ex-name { flex: 1; min-width: 0; font-weight: 700; color: var(--text-main); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zwk-ex-top .zwk-ex-detail { font-size: 0.78rem; color: var(--text-sec); font-weight: 600; white-space: nowrap; }
.zwk-setdots { display: flex; gap: 7px; margin-top: 8px; flex-wrap: wrap; }
.zwk-setdot { width: 34px; height: 34px; border-radius: 10px; border: 1.5px solid var(--border-color); background: var(--bg-app); color: var(--text-sec); cursor: pointer; font-weight: 800; font-size: 0.82rem; font-family: 'Outfit', sans-serif; transition: all 0.15s; }
.zwk-setdot:hover { border-color: #5a9400; }
.zwk-setdot.on { background: #5a9400; border-color: #5a9400; color: #fff; }
.zwk-noset { font-size: 0.78rem; color: var(--text-sec); }

/* ============================================================
   WIDGET DE TREINO (.zwk-* & #workoutModal)
   Card claro (segue o padrão do widget da Bíblia).
============================================================ */
.widget-workout-host {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-sm) !important;
    padding: 0 !important;
    gap: 0 !important;
}
.widget-workout-host .w-content-wrap {
    padding: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.widget-workout-host .widget-actions-bottom { display: none !important; }

.zwk-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: var(--widget-pad, 20px);
    box-sizing: border-box;
    gap: 14px;
}

.zwk-header { display: flex; justify-content: space-between; align-items: flex-start; }
.zwk-header-left { display: flex; align-items: center; gap: 10px; }
.zwk-icon-box {
    width: 40px; height: 40px;
    background: rgba(90,148,0,.12);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; color: var(--green-deep);
}
body.dark-mode .zwk-icon-box { background: rgba(155,219,31,.14); color: var(--green); }
.zwk-titles { display: flex; flex-direction: column; }
.zwk-title { font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 1rem; letter-spacing: -.03em; margin: 0; color: var(--text-main); }
.zwk-meta { font-size: 0.75rem; color: var(--text-sec); margin-top: 2px; }

.zwk-weekchip {
    font-size: 0.72rem; font-weight: 800; color: #3d5a00;
    background: rgba(163, 255, 18, 0.18);
    padding: 4px 10px; border-radius: 999px; white-space: nowrap;
}

.zwk-progress-section { display: flex; flex-direction: column; gap: 6px; }
.zwk-progress-info { display: flex; justify-content: space-between; font-size: 0.8rem; color: var(--text-main); font-weight: 600; }
.zwk-progress-bar { width: 100%; height: 8px; background: rgba(0,0,0,0.05); border-radius: 4px; overflow: hidden; }
.zwk-progress-fill { height: 100%; background: linear-gradient(90deg, #a3ff12, #6ec800); border-radius: 4px; transition: width 0.4s cubic-bezier(0.4,0,0.2,1); }

/* Linha "treino de hoje" */
.zwk-today {
    background: var(--bg-app);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 10px 12px;
    display: flex; align-items: center; gap: 8px;
}
.zwk-today.done { background: rgba(163, 255, 18, 0.12); border-color: rgba(163, 255, 18, 0.4); }
.zwk-today-label { font-size: 0.78rem; color: var(--text-sec); font-weight: 600; flex-shrink: 0; }
.zwk-routine-select {
    flex: 1; min-width: 0;
    border: 1px solid var(--border-color); border-radius: 8px;
    background: var(--bg-card); color: var(--text-main);
    padding: 7px 8px; font-size: 0.82rem; font-weight: 600;
    font-family: 'Outfit', sans-serif; cursor: pointer;
}
.zwk-today-done-text { flex: 1; font-size: 0.85rem; font-weight: 700; color: #3d5a00; display: flex; align-items: center; gap: 6px; }

/* .zwk-btn-train: visual de .zbtn--primary / .zbtn--ghost (_core.css); só layout. */
.zwk-btn-train { flex-shrink: 0; }

.zwk-actions { display: flex; gap: 8px; margin-top: auto; }
/* .zwk-btn-open: visual de .zbtn--soft/.zbtn--block (_core.css); só padding extra. */
.zwk-btn-open { flex: 1; padding-top: 11px; padding-bottom: 11px; }

.zwk-empty { text-align: center; color: var(--text-sec); font-size: 0.82rem; padding: 6px 0; line-height: 1.4; }

/* ===== MODAL DE TREINO ===== */
#workoutModalBody { display: flex; flex-direction: column; gap: 18px; padding: 4px 2px; }
.zwk-modal-section { display: flex; flex-direction: column; gap: 10px; }
.zwk-modal-section-title {
    font-size: 0.78rem; font-weight: 800; color: var(--text-sec);
    text-transform: uppercase; letter-spacing: 0.5px; font-family: 'Outfit', sans-serif;
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
}

/* dots dos últimos 7 dias */
.zwk-week-dots { display: flex; gap: 6px; }
.zwk-week-dot {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px;
    font-size: 0.62rem; color: var(--text-sec); font-weight: 700;
}
.zwk-week-dot .dot {
    width: 100%; height: 26px; border-radius: 8px;
    background: rgba(0,0,0,0.05); display: flex; align-items: center; justify-content: center;
    font-size: 0.7rem; color: var(--text-sec);
}
.zwk-week-dot.done .dot { background: linear-gradient(135deg,#a3ff12,#6ec800); color: #0d0d0d; }
.zwk-week-dot.today .dot { outline: 2px solid #0d0d0d; outline-offset: 1px; }

/* timer de descanso */
.zwk-rest {
    background: linear-gradient(135deg,#111827,#0d0d0d); color: #fff;
    border-radius: 16px; padding: 16px; text-align: center;
    display: flex; flex-direction: column; gap: 12px;
}
.zwk-rest-display { font-size: 2.6rem; font-weight: 800; font-family: 'Outfit', sans-serif; letter-spacing: -1px; line-height: 1; font-variant-numeric: tabular-nums; }
.zwk-rest-display.running { color: #a3ff12; }
.zwk-rest-presets { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.zwk-rest-preset {
    background: rgba(255,255,255,0.1); color: #fff; border: none; cursor: pointer;
    padding: 7px 12px; border-radius: 9px; font-weight: 700; font-size: 0.8rem; font-family: 'Outfit', sans-serif;
}
.zwk-rest-preset:hover { background: rgba(163,255,18,0.25); }
.zwk-rest-stop { background: rgba(239,68,68,0.85); color: #fff; border: none; cursor: pointer; padding: 7px 16px; border-radius: 9px; font-weight: 800; font-size: 0.8rem; }

/* rotinas */
.zwk-routine { border: 1px solid var(--border-color); border-radius: 14px; padding: 12px; background: var(--bg-card); display: flex; flex-direction: column; gap: 8px; }
.zwk-routine-head { display: flex; align-items: center; gap: 8px; }
.zwk-routine-name {
    flex: 1; border: none; background: transparent; font-size: 0.95rem; font-weight: 800;
    color: var(--text-main); font-family: 'Outfit', sans-serif; padding: 4px 6px; border-radius: 8px;
}
.zwk-routine-name:focus { outline: none; background: var(--bg-app); }
.zwk-ex-row { display: flex; align-items: center; gap: 8px; padding: 7px 8px; background: var(--bg-app); border-radius: 9px; }
.zwk-ex-name { flex: 1; font-size: 0.85rem; font-weight: 600; color: var(--text-main); min-width: 0; }
.zwk-ex-detail { font-size: 0.75rem; color: var(--text-sec); font-weight: 600; white-space: nowrap; }
.zwk-icon-btn { background: none; border: none; color: var(--text-sec); cursor: pointer; padding: 4px 6px; border-radius: 6px; font-size: 0.85rem; }
.zwk-icon-btn:hover { color: #ef4444; background: rgba(239,68,68,0.08); }

.zwk-add-ex { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.zwk-add-ex input {
    border: 1px solid var(--border-color); border-radius: 8px; padding: 7px 8px;
    font-size: 0.8rem; font-family: 'Outfit', sans-serif; background: var(--bg-card); color: var(--text-main);
}
.zwk-add-ex .zwk-in-name { flex: 1; min-width: 90px; }
.zwk-add-ex .zwk-in-num { width: 52px; text-align: center; }
.zwk-add-ex-btn { background: #0d0d0d; color: #fff; border: none; cursor: pointer; width: 34px; height: 34px; border-radius: 8px; font-size: 0.85rem; flex-shrink: 0; }

.zwk-btn-add-routine, .zwk-goal-row .zwk-goal-input {
    font-family: 'Outfit', sans-serif;
}
.zwk-btn-add-routine {
    width: 100%; border: 1px dashed var(--border-color); background: var(--bg-app);
    color: var(--text-main); cursor: pointer; padding: 11px; border-radius: 11px; font-weight: 800; font-size: 0.85rem;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.zwk-btn-add-routine:hover { border-color: #6ec800; color: #3d5a00; }

.zwk-goal-row { display: flex; align-items: center; gap: 10px; }
.zwk-goal-input { width: 64px; text-align: center; border: 1px solid var(--border-color); border-radius: 9px; padding: 8px; font-size: 0.95rem; font-weight: 800; background: var(--bg-card); color: var(--text-main); }

/* ============================================================
   v7 "QUIET PREMIUM" — escala e pesos contidos
   ============================================================ */
.zwkf-eyebrow { font-weight: 600; letter-spacing: .09em; font-size: 0.62rem; }
.zwkf-prog-num { font-weight: 700; font-size: 2.1rem; letter-spacing: -0.02em; }
.zwkf-wd-lbl { font-weight: 600; }
.zwkf-train { font-weight: 600; font-size: 0.82rem; border-radius: 99px; }
.zwk-setdot { font-weight: 600; border-width: 1px; }
.zwk-rest-display { font-weight: 700; font-size: 2.2rem; letter-spacing: -0.02em; }
.zwk-rest-stop { font-weight: 600; border-radius: 99px; }
.zwk-goal-input { font-weight: 600; }

@media (min-width: 1024px) { .zwkf { display: grid; grid-template-columns: 380px 1fr; grid-template-rows: auto auto 1fr; gap: 0; min-height: 70vh; } .zwkf-hero { grid-column: 1 / 2; grid-row: 1 / 4; margin: 0; border-radius: 0; border-right: 1px solid var(--border-color); height: 100%; padding-right: 32px; } .zwkf > .zwk-modal-section:nth-of-type(1) { grid-column: 2 / 3; grid-row: 1 / 2; padding: 24px 32px 16px; margin: 0; } .zwkf > .zwk-modal-section:nth-of-type(2) { grid-column: 2 / 3; grid-row: 2 / 3; padding: 0 32px 16px; margin: 0; } .zwkf > .zwk-modal-section:nth-of-type(3) { grid-column: 2 / 3; grid-row: 3 / 4; padding: 0 32px 32px; margin: 0; } }
