/* Impulse v47. A single theme layer keeps the existing editor/modal behavior intact. */
:root {
  --bg:#111316; --panel:#1c2025; --panel-2:#252a30; --panel-3:#30363d;
  --text:#f4f5f1; --muted:#b0b7bf; --line:#343a42; --accent:#c7f464;
  --accent-text:#16200b; --danger:#ff858b;
}
body.impulse { background:var(--bg)!important; color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
body.impulse button,body.impulse input,body.impulse select { font-family:inherit; touch-action:manipulation; }
body.impulse input,body.impulse select,body.impulse textarea { font-size:16px!important; color:var(--text); accent-color:var(--accent); }
body.impulse button:focus-visible,body.impulse [tabindex]:focus-visible,body.impulse input:focus-visible,body.impulse select:focus-visible { outline:2px solid var(--accent)!important; outline-offset:3px; }
body.impulse .primary-button { background:var(--accent)!important; color:var(--accent-text)!important; border:0!important; box-shadow:none!important; border-radius:14px!important; min-height:52px; font-size:16px!important; font-weight:750; letter-spacing:0!important; }
body.impulse .secondary-button,body.impulse .circle-button { background:var(--panel)!important; border:1px solid var(--line)!important; color:var(--text)!important; box-shadow:none!important; min-height:44px; }
body.impulse .pink-text,body.impulse .eyebrow { color:var(--accent)!important; }
body.impulse .muted { color:var(--muted)!important; }
body.impulse .welcome-splash { display:none!important; }
body.impulse .app-shell { max-width:760px; padding:20px 16px 0!important; }
body.impulse .topbar { display:none!important; }
.impulse-home-header { padding:8px 0 20px; }
.impulse-brand { display:flex; gap:12px; align-items:center; font-size:18px; font-weight:850; letter-spacing:.035em; }
.impulse-brand span { color:var(--accent); }
.impulse-home-header h1 { font-size:32px; margin:18px 0 4px; letter-spacing:-.04em; }
#impulse-date { color:var(--muted); font-size:15px; text-transform:capitalize; }
body.impulse #training-screen { display:flex; flex-direction:column; padding:0!important; }
body.impulse #training-screen.hidden { display:none!important; }
body.impulse .impulse-home-header { order:0; }
body.impulse #week-days { order:1; display:grid!important; margin:0 0 18px; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
body.impulse .week-day-cell { background:var(--panel); border-radius:12px; min-height:64px; color:var(--muted); padding:9px 0; gap:4px; }
body.impulse .week-day-cell span { font-size:12px; }
body.impulse .week-day-cell b { font-size:16px; }
body.impulse .week-day-cell.selected { background:var(--accent); color:var(--accent-text); }
body.impulse .calendar-dot { width:4px; height:4px; background:transparent; }
body.impulse .has-workout .calendar-dot { background:currentColor!important; }
body.impulse .training-hero-v18 { order:2; display:block!important; min-height:0!important; max-height:none!important; margin:0!important; border:1px solid var(--line)!important; border-bottom:0!important; border-radius:16px 16px 0 0!important; background:var(--panel)!important; box-shadow:none!important; }
body.impulse .training-hero-copy-v18 { min-height:0!important; padding:18px 18px 12px!important; display:block!important; }
body.impulse #training-hero-title { font-size:26px!important; line-height:1.15!important; white-space:normal!important; overflow-wrap:anywhere; margin:0 0 12px!important; }
body.impulse .training-spartan-v18 { display:none!important; }
body.impulse .training-tags-v18 span { background:var(--panel-2)!important; border:0!important; color:var(--muted)!important; font-size:12px!important; min-height:26px!important; }
body.impulse .superset-toggle-v18 { width:100%!important; max-width:none!important; min-height:44px!important; margin:12px 0 0!important; padding:6px 10px!important; background:transparent!important; border:1px solid var(--line)!important; }
body.impulse .superset-toggle-v18 > span { font-size:12px!important; color:var(--muted); }
body.impulse .superset-toggle-v18.active > i { background:var(--accent)!important; }
body.impulse #sticky-action { order:3; position:static!important; width:100%; max-width:none!important; padding:0 18px 18px!important; background:var(--panel)!important; border:1px solid var(--line); border-top:0; border-radius:0 0 16px 16px; transform:none!important; margin:0 0 18px; }
body.impulse #start-workout { width:100%; margin:0!important; background:var(--accent)!important; color:var(--accent-text)!important; box-shadow:none!important; }
body.impulse .training-days-v18 { order:4; margin:0 0 12px!important; padding:0!important; }
body.impulse #day-selector { margin:0!important; gap:8px!important; }
body.impulse .day-button-v18 { background:var(--panel)!important; border:1px solid var(--line)!important; border-radius:12px!important; min-height:48px!important; box-shadow:none!important; }
body.impulse .day-button-v18 strong { font-size:13px!important; }
body.impulse .day-button-v18.active { color:var(--accent)!important; border-color:var(--accent)!important; }
body.impulse .training-content-v18 { order:5; margin:0!important; padding:0!important; }
body.impulse .training-summary-v18 { color:var(--muted)!important; padding:8px 2px 12px!important; font-size:13px!important; }
body.impulse .exercise-section-v18 { margin:0 0 14px!important; background:var(--panel); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
body.impulse .exercise-section-head-v18 { margin:0!important; padding:12px!important; min-height:44px; background:var(--panel-2); }
body.impulse .exercise-section-head-v18 i { display:none!important; }
body.impulse .exercise-section-head-v18 h2 { font-size:13px!important; letter-spacing:.015em!important; color:var(--muted)!important; }
body.impulse .superset-state-v18 { font-size:10px!important; color:var(--muted)!important; }
body.impulse .exercise-row-v18 { grid-template-columns:40px minmax(0,1fr) 44px!important; gap:10px!important; margin:0!important; padding:12px 10px!important; min-height:78px!important; background:transparent!important; border:0!important; border-bottom:1px solid var(--line)!important; border-radius:0!important; box-shadow:none!important; }
body.impulse .exercise-row-v18:last-child { border-bottom:0!important; }
body.impulse .exercise-image-v18 { width:40px!important; height:40px!important; border:1px solid var(--line)!important; border-radius:10px!important; box-shadow:none!important; }
body.impulse .exercise-copy-v18 strong { color:var(--text)!important; font-size:15px!important; font-weight:650!important; line-height:1.35!important; white-space:normal!important; overflow-wrap:anywhere; }
body.impulse .exercise-copy-v18 span { font-size:12px!important; color:var(--muted)!important; white-space:normal!important; line-height:1.5; }
body.impulse .exercise-more-v18 { width:44px!important; min-width:44px!important; height:44px!important; background:var(--panel-2)!important; color:var(--muted)!important; border:0!important; border-radius:12px!important; }
body.impulse .training-edit-v18,body.impulse .share-day-button { margin:10px 0 0!important; font-size:14px!important; min-height:48px!important; }
body.impulse .bottom-space { order:6; height:36px!important; }
body.impulse #bottom-nav { background:var(--bg)!important; border-top:1px solid var(--line)!important; box-shadow:none!important; padding:6px 12px calc(6px + env(safe-area-inset-bottom))!important; min-height:72px!important; max-width:760px; margin:auto; }
body.impulse #bottom-nav button { min-height:56px; padding:4px; gap:5px; color:var(--muted)!important; }
body.impulse #bottom-nav button.active { color:var(--accent)!important; background:transparent!important; }
body.impulse #bottom-nav button span { height:24px!important; width:auto!important; margin:0!important; font-size:24px!important; line-height:24px; background:none!important; border:0!important; box-shadow:none!important; }
body.impulse #bottom-nav small { font-size:12px!important; }
body.impulse #bottom-nav [data-tab=training] { order:-1; }
body.impulse .modal { background:var(--bg)!important; }
body.impulse .modal-card { background:var(--bg)!important; color:var(--text); padding:16px; }
body.impulse .modal-top { background:var(--bg)!important; gap:8px; }
body.impulse .modal-progress { font-size:14px!important; color:var(--muted)!important; min-width:0; overflow-wrap:anywhere; }
body.impulse .modal-top button { min-height:44px; }
body.impulse #workout-modal,body.impulse #workout-modal::before,body.impulse.workout-open { background:var(--bg)!important; }
body.impulse.workout-open #app,body.impulse.workout-open #bottom-nav { display:none!important; }
body.impulse #workout-modal .modal-card { max-width:640px!important; margin:0 auto!important; padding:12px 16px calc(106px + env(safe-area-inset-bottom))!important; background:var(--bg)!important; }
body.impulse #workout-modal .modal-top { margin:0 0 12px; }
body.impulse #finish-workout { color:var(--muted)!important; font-size:13px; }
.impulse-phases { display:flex; gap:8px; justify-content:space-between; margin:0 0 16px; border-bottom:1px solid var(--line); }
.impulse-phases span { font-size:12px; color:var(--muted); padding:12px 0; border-bottom:3px solid transparent; }
.impulse-phases [aria-current] { color:var(--accent); border-color:var(--accent); font-weight:700; }
body.impulse .workout-exercise-picker { margin:0 0 14px; }
body.impulse .workout-exercise-picker label { font-size:12px; color:var(--muted); margin-bottom:8px; }
body.impulse #workout-exercise-select { background:var(--panel)!important; border:1px solid var(--line)!important; border-radius:14px; color:var(--text); min-height:54px; font-size:16px!important; padding:12px!important; }
body.impulse #exercise-hero { display:grid; grid-template-columns:minmax(0,1fr); justify-items:stretch; gap:4px; text-align:left; padding:16px!important; margin:0 0 18px!important; background:var(--panel)!important; border:1px solid var(--line)!important; border-radius:14px; }
body.impulse .impulse-media { order:3; width:100%; color:var(--muted); font-size:13px; }
body.impulse .impulse-media summary { cursor:pointer; min-height:44px; display:flex; align-items:center; }
body.impulse .impulse-media summary::after { content:'＋'; margin-left:auto; }
body.impulse .impulse-media[open] summary::after { content:'−'; }
body.impulse #hero-image { width:100%; height:180px; border-radius:12px; border:0!important; margin:8px 0; }
body.impulse #hero-image img { object-fit:contain; }
body.impulse #hero-name { font-size:21px!important; line-height:1.3; margin:0 0 6px!important; overflow-wrap:anywhere; }
body.impulse #hero-plan { font-size:14px; }
body.impulse #workout-modal .exercise-action-buttons { margin:14px 0 0; gap:8px; }
body.impulse #workout-modal .exercise-action-buttons button { color:var(--text); background:var(--panel-2); border:1px solid var(--line); min-height:44px; }
body.impulse #sets-container { gap:0; margin:0!important; }
body.impulse #sets-container .set-row,.impulse-set-head { display:grid; grid-template-columns:24px minmax(0,1fr) minmax(0,1fr) 44px 44px!important; align-items:center; gap:6px!important; }
.impulse-set-head { font-size:12px; color:var(--muted); text-align:center; padding:10px 0; }
body.impulse #sets-container .set-row { padding:12px 0!important; border:0!important; border-bottom:1px solid var(--line)!important; border-radius:0!important; background:transparent!important; }
body.impulse #sets-container .set-number { width:24px!important; height:32px!important; background:none!important; color:var(--muted)!important; font-size:14px!important; }
body.impulse #sets-container input { min-width:0; width:100%; height:48px!important; background:var(--panel)!important; color:var(--text)!important; border:1px solid #505965!important; border-radius:10px!important; font-size:18px!important; font-variant-numeric:tabular-nums; padding:4px!important; }
body.impulse #sets-container .set-save,body.impulse #sets-container .set-delete { min-width:44px!important; width:44px!important; height:48px!important; border-radius:10px!important; font-size:21px!important; }
body.impulse #sets-container .set-save { border:1px solid #697480!important; color:var(--muted)!important; background:var(--panel)!important; box-shadow:none!important; }
body.impulse #sets-container .set-save.saved { background:var(--accent)!important; border-color:var(--accent)!important; color:var(--accent-text)!important; }
body.impulse #sets-container .set-delete { background:transparent!important; border:0!important; color:var(--muted); }
body.impulse #sets-container .set-delete.has-result { color:var(--danger); }
body.impulse #sets-container .fixed-single-set,.impulse-set-head.fixed { grid-template-columns:24px minmax(0,1fr) minmax(0,1fr) 44px!important; }
body.impulse #sets-container .time-only-set-row,.impulse-set-head.time-only { grid-template-columns:24px minmax(0,1fr) 44px 44px!important; }
body.impulse #sets-container .time-only-set-row.fixed-single-set,.impulse-set-head.time-only.fixed { grid-template-columns:24px minmax(0,1fr) 44px!important; }
body.impulse #add-set-button { min-height:48px!important; margin:16px 0!important; color:var(--accent)!important; background:var(--panel)!important; border:1px solid var(--line)!important; border-radius:12px!important; font-size:15px!important; }
body.impulse .workout-exercise-navigation { position:fixed; bottom:0; left:0; right:0; z-index:20; max-width:640px; margin:auto; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); background:var(--bg); border-top:1px solid var(--line); grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); }
body.impulse .workout-exercise-navigation button { min-height:52px; font-size:15px!important; }
body.impulse #previous-exercise { background:var(--panel); color:var(--text); border:1px solid var(--line); }
body.impulse #previous-exercise:disabled { opacity:.4; }
body.impulse .finish-now-button { background:transparent!important; color:var(--muted)!important; border:1px solid var(--line)!important; font-size:12px; min-height:44px; }
body.impulse.impulse-keyboard-open .workout-exercise-navigation { position:static; padding-left:0; padding-right:0; margin-top:18px; }
body.impulse .editor-exercise-card,body.impulse .library-item,body.impulse .quick-replace-current,body.impulse .history-workout-card,body.impulse .history-exercise,body.impulse .exercise-actions-sheet { background:var(--panel)!important; border-color:var(--line)!important; box-shadow:none!important; }
body.impulse .editor-input,body.impulse .library-search,body.impulse .history-set-input { background:var(--panel-2)!important; border:1px solid #505965!important; color:var(--text)!important; min-height:44px; }
body.impulse .editor-controls { grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px; gap:8px; }
body.impulse .editor-controls label,body.impulse .editor-section-control label { min-width:0; }
body.impulse .editor-delete,body.impulse .mini-round,body.impulse .library-add { min-width:44px; width:44px; min-height:44px; }
body.impulse .editor-exercise-name,body.impulse .library-copy strong { font-size:15px!important; white-space:normal!important; overflow-wrap:anywhere; }
body.impulse .library-copy span,body.impulse .editor-controls label>span,body.impulse .editor-section-control label>span { font-size:12px!important; color:var(--muted)!important; }
body.impulse .editor-add-sections { display:grid; grid-template-columns:1fr; gap:8px; }
body.impulse .history-sheet-surface { background:var(--panel); }
body.impulse .history-sheet-scroll { padding-left:16px; padding-right:16px; }
body.impulse .history-set-row.editable { grid-template-columns:24px minmax(0,1fr) 44px 44px; padding:10px 8px; gap:5px; }
body.impulse .history-set-units { display:none; }
body.impulse .history-set-save,body.impulse .history-set-delete { width:44px; min-height:44px; }
body.impulse .history-set-save.saved { background:var(--accent); color:var(--accent-text); border-color:var(--accent); }
body.impulse .history-set-fields { min-width:0; }
body.impulse .progress-tab { font-size:12px!important; min-height:48px; }
body.impulse .progress-tab.active,body.impulse .library-category.active { color:var(--accent)!important; border-color:var(--accent)!important; background:var(--panel)!important; }
body.impulse .profile-hero-v17,body.impulse .nutrition-card-v17,body.impulse .profile-menu-v17,body.impulse .profile-settings-v17,body.impulse .profile-info-v17 { background:var(--panel)!important; border-color:var(--line)!important; box-shadow:none!important; }
body.impulse .web-auth-shell { background:var(--panel)!important; border:1px solid var(--line); border-radius:20px; }
body.impulse .web-auth-logo { display:none; }
body.impulse .web-auth-heading>span { color:var(--accent)!important; font-size:18px; letter-spacing:.04em; }
body.impulse .web-auth-form input { background:var(--bg)!important; color:var(--text); border:1px solid #505965!important; min-height:48px; }
body.impulse #week-days .week-day-cell.selected { background:var(--accent)!important; color:var(--accent-text)!important; border-color:var(--accent)!important; }
body.impulse #week-days .week-day-cell.selected span,body.impulse #week-days .week-day-cell.selected b { color:var(--accent-text)!important; }
body.impulse #day-selector { background:transparent!important; border:0!important; padding:0!important; }
body.impulse .editor-controls { display:grid!important; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px!important; }
body.impulse .reorder-buttons { display:grid!important; gap:4px; }
body.impulse .mini-round { font-size:18px; }
body.impulse .profile-menu-row-v17,body.impulse .profile-setting-row-v17 { background:var(--panel)!important; border:1px solid var(--line)!important; min-height:64px; }
body.impulse .profile-menu-row-v17>span:nth-child(2),body.impulse .profile-setting-row-v17 strong { font-size:15px!important; font-weight:650; }
body.impulse .profile-setting-row-v17 div>span,body.impulse .profile-info-v17 span,body.impulse .nutrition-subtitle-v17 { color:var(--muted)!important; font-size:12px!important; line-height:1.5; }
body.impulse .profile-menu-icon-v17 { color:var(--accent)!important; background:var(--panel-2)!important; box-shadow:none!important; }
body.impulse .profile-avatar-v17 { background:var(--panel-2)!important; border:1px solid var(--accent); box-shadow:none!important; }
body.impulse .switch-v17.active { background:var(--accent)!important; box-shadow:none; }
body.impulse .switch-v17.active i { background:var(--accent-text); }
body.impulse #add-set-button .add-set-plus { background:none!important; border:0!important; color:var(--accent)!important; box-shadow:none!important; width:24px; height:24px; }
body.impulse #sticky-action .primary-button { background:var(--accent)!important; box-shadow:none!important; }
body.impulse.compact-program .exercise-row-v18 { min-height:60px!important; padding-top:7px!important; padding-bottom:7px!important; }
body.impulse.compact-program .exercise-section-v18 { margin-bottom:8px!important; }
body.impulse .exercise-row-v18 { content-visibility:visible; }
@media(max-width:359px) {
  body.impulse .app-shell { padding-left:12px!important; padding-right:12px!important; }
  body.impulse #workout-modal .modal-card { padding-left:12px!important; padding-right:12px!important; }
  body.impulse .exercise-row-v18 { grid-template-columns:32px minmax(0,1fr) 44px!important; gap:8px!important; padding:10px 8px!important; }
  body.impulse .exercise-image-v18 { width:32px!important; height:32px!important; }
  body.impulse .training-head-v18 { flex-wrap:wrap; gap:6px; }
  body.impulse .history-set-row.editable { padding-left:2px; padding-right:2px; }
}
@media(min-width:800px) {
  body.impulse .app-shell { padding-top:32px!important; }
  body.impulse #exercise-list { display:grid; grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { body.impulse *,body.impulse *::before,body.impulse *::after { scroll-behavior:auto!important; transition:none!important; } }
