/* Flat: Default's layout and behaviour on plain dark surfaces with thin borders, no depth or glow. */
:root[data-look="original"][data-flat]{
 --flat-card:#181b24;--flat-card-body:#13161f;--flat-done:#0f1218;--flat-panel:#0b0e14;--flat-field:#1c1f28;--flat-field-line:#262930;--flat-line:#262930;--flat-dash:#363840;--flat-chip:#1f222b;
 --flat-ink:#f5f6f8;--flat-muted:#8b8f9c;--flat-accent:#48ecf3;--flat-warn:#ed9728;--flat-danger:#ec2b5f;
 --lab-raised:none;--lab-recessed:none;--lab-field:var(--flat-field);
 color-scheme:dark;
}
:root[data-look="original"][data-flat] body{background:var(--bg)}
:root[data-look="original"][data-flat] *{text-shadow:none!important}
/* Default lights its exercise cards with ID-level !important rules, so Flat matches that weight. */
:root[data-look="original"][data-flat] :is(#main,#session-footer,#dialog,#notice,#rest,.mobile-dock,.topbar,.sidebar),
:root[data-look="original"][data-flat] :is(#main,#session-footer,#dialog,#notice,#rest,.mobile-dock,.topbar,.sidebar) *{box-shadow:none!important;filter:none!important}
:root[data-look="original"][data-flat] :is(#main,#session-footer,#dialog,#notice,#rest,.mobile-dock,.topbar,.sidebar) :is(button,.surface,.exercise,summary,.superset-group,.superset-group-exercises,.session-head,.stat,.set-rest,.rest-bar,.previous,.pass-card,.pass-recency-fill,.exercise-swipe,input:not([type="range"]),select,textarea){background-image:none!important}
:root[data-look="original"][data-flat] :is(#notice,#dialog,dialog,#session-footer,.mobile-dock,.topbar,.sidebar,.rest-bar,.set-rest){background-image:none!important}
:root[data-look="original"][data-flat] #notice-backdrop{background:#000a}
:root[data-look="original"][data-flat] #notice{text-align:center}
/* Completed-card rules in Default chain several classes after #exercise-list; the doubled ID outweighs them. */
:root[data-look="original"][data-flat] #exercise-list#exercise-list :is(.exercise,.exercise>summary,.superset-group-exercises){box-shadow:none!important;background-image:none!important}
:root[data-look="original"][data-flat] button:active:not(:disabled){transform:none}
/* No light sweep over touched buttons and cards. */
:root[data-look="original"][data-flat] .lab-sweep-overlay{display:none!important}
/* Only strongly coloured buttons keep a glow. */
:root[data-look="original"][data-flat] :is(#main,#session-footer,#dialog,#notice,.mobile-dock) :is(button.primary,.exercise-swipe-actions button.danger){box-shadow:0 0 18px -3px color-mix(in srgb,var(--flat-glow,var(--flat-accent)) 55%,transparent)!important}
:root[data-look="original"][data-flat] .exercise-swipe-actions button.danger{--flat-glow:var(--flat-danger)}

/* Cards */
:root[data-look="original"][data-flat] :is(.surface,.exercise,.session-head,.stat,dialog,.pass-card,.superset-group){background:var(--flat-card);border:1px solid var(--flat-line);border-radius:14px}
:root[data-look="original"][data-flat] #exercise-list .superset-group-exercises .exercise{border:0;border-radius:0}
/* An open card has a lighter header over a darker body. */
:root[data-look="original"][data-flat] #exercise-list .exercise{background:var(--flat-card-body)}
:root[data-look="original"][data-flat] #exercise-list .exercise>summary{background:var(--flat-card)}
/* A finished exercise sinks back: darker card, grey illustration, muted labels. */
:root[data-look="original"][data-flat] #exercise-list .exercise.is-complete{--illustration-tint:var(--flat-muted);background:var(--flat-done);border-color:color-mix(in srgb,var(--flat-line) 60%,var(--flat-done))}
:root[data-look="original"][data-flat] #exercise-list .exercise.is-complete>summary{background:var(--flat-done)}
:root[data-look="original"][data-flat] #exercise-list .exercise.is-complete>summary .exercise-illustration{opacity:.45}
:root[data-look="original"][data-flat] #exercise-list .exercise.is-complete>summary :is(.ex-name small,.exercise-link:not(.linked,.link-selected)){color:var(--flat-muted)}
:root[data-look="original"][data-flat] .pass-card.selected{border-color:var(--flat-accent)}
/* The pass choice is only a frame for the pass cards, as in Default. */
:root[data-look="original"][data-flat] .pass-choice{background:transparent;border:0;border-radius:0}
/* The card clips the header's focus ring to a stray line under it, so focus colours the name instead. */
:root[data-look="original"][data-flat] .exercise>summary:focus-visible{outline:none}
:root[data-look="original"][data-flat] .exercise>summary:focus-visible .ex-name h3{color:var(--flat-accent)}

/* Session heading: Default draws it as a light plate with dark text, Flat keeps it on a dark card */
:root[data-look="original"][data-flat] .session-head{color:var(--flat-ink)}
:root[data-look="original"][data-flat] .session-head :is(h2,.progress-label){color:var(--flat-ink)}
:root[data-look="original"][data-flat] .session-head small{color:var(--flat-muted)}
:root[data-look="original"][data-flat] .session-head .session-progress{background:var(--flat-field)}
:root[data-look="original"][data-flat] .session-head #session-progress{background:var(--flat-accent)}

/* Exercise heading: muscle group as a small accent label above the name */
:root[data-look="original"][data-flat] .ex-name{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
:root[data-look="original"][data-flat] .ex-name small{order:-1;color:var(--flat-accent);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
:root[data-look="original"][data-flat] .ex-name .ex-group-divider{display:none}
:root[data-look="original"][data-flat] .ex-name h3{color:var(--flat-ink);font-weight:800}

/* Previous-sets panel */
:root[data-look="original"][data-flat] .previous{background:var(--flat-panel)!important;border:0;border-left:4px solid var(--flat-muted)!important;border-radius:10px}
:root[data-look="original"][data-flat] .previous .eyebrow{color:var(--flat-muted);letter-spacing:.06em}

/* Supersets get the same left bracket as the previous-sets panel, slightly indented. */
:root[data-look="original"][data-flat] #exercise-list .superset-group-exercises{margin-left:10px;border-left:4px solid var(--flat-muted)!important}
:root[data-look="original"][data-flat] #exercise-list .superset-group-head{padding:0 8px 6px 14px}
/* The head buttons keep their 44px tap area without pushing the cards down. */
:root[data-look="original"][data-flat] #exercise-list .superset-group-head>button{margin-block:-12px}
:root[data-look="original"][data-flat] #exercise-list .superset-group-head h3{color:var(--flat-accent);font-size:.85rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
/* An unlinked superset link is grey; a linked one is accent and glows so it reads as on. */
:root[data-look="original"][data-flat] #exercise-list .exercise-link{color:var(--flat-muted)}
:root[data-look="original"][data-flat] #exercise-list .exercise-link:is(.linked,.link-selected){color:var(--flat-accent)}
:root[data-look="original"][data-flat] #exercise-list .exercise-link:is(.linked,.link-selected)>svg{filter:drop-shadow(0 0 2px color-mix(in srgb,var(--flat-accent) 85%,transparent)) drop-shadow(0 0 8px color-mix(in srgb,var(--flat-accent) 60%,transparent))!important}

/* Set table */
:root[data-look="original"][data-flat] .set-table th{color:var(--flat-muted);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
:root[data-look="original"][data-flat] .set-table .set-number{color:var(--flat-muted);font-weight:700}
:root[data-look="original"][data-flat] :is(input:not([type="range"]):not([type="checkbox"]):not([type="file"]),select,textarea){background:var(--flat-field)!important;border:1px solid var(--flat-field-line)!important;border-radius:10px;color:var(--flat-ink)}
:root[data-look="original"][data-flat] .set-table input{font-weight:800;text-align:center}
:root[data-look="original"][data-flat] :is(input,select,textarea):focus-visible{outline:2px solid var(--flat-accent);outline-offset:1px}

/* Buttons: solid fills or outlines, never raised */
:root[data-look="original"][data-flat] button.primary{background:var(--flat-accent);border:1px solid var(--flat-accent);color:#04161a}
:root[data-look="original"][data-flat] button.secondary{background:transparent;border:1px solid var(--flat-field-line);color:var(--flat-ink)}
:root[data-look="original"][data-flat] button.danger:not(.quiet){border-color:color-mix(in srgb,var(--flat-danger) 55%,transparent);color:var(--flat-danger)}
:root[data-look="original"][data-flat] .exercise-tools button.quiet{border:1px dashed var(--flat-dash);border-radius:10px;color:var(--flat-muted);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
/* Swap, remove, pause and cancel are plain labels; remove and cancel in pink. */
:root[data-look="original"][data-flat] :is(.exercise-tools button[data-swap],.exercise-tools button.quiet.danger,#session-pause,#session-cancel){border-color:transparent!important;background:transparent!important;color:var(--flat-muted);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
:root[data-look="original"][data-flat] :is(.exercise-tools button.quiet.danger,#session-cancel){color:var(--flat-danger)}
:root[data-look="original"][data-flat] #session-action{font-weight:700;letter-spacing:.04em;text-transform:uppercase}
:root[data-look="original"][data-flat] .exercise-tools>div{display:flex;gap:8px}
:root[data-look="original"][data-flat] button:focus-visible{outline:2px solid var(--flat-accent);outline-offset:2px}

/* Swipe actions behind the card keep their function, flat colours only */
:root[data-look="original"][data-flat] .exercise-swipe-actions button{border-radius:12px}
:root[data-look="original"][data-flat] .exercise-swipe-actions button.danger{background:var(--flat-danger);border-color:var(--flat-danger);color:#fff}
/* Swiping toward quick switch lights its arrows in the accent instead of darkening them on a clear button. */
:root[data-look="original"][data-flat] .exercise-swipe-actions [data-quick-swap].is-armed{background:var(--flat-accent);border-color:var(--flat-accent);color:#04161a;box-shadow:0 0 18px -3px color-mix(in srgb,var(--flat-accent) 55%,transparent)!important}
