/* BYM 5 — personal training OS */
:root {
  --bym-ink: #111214;
  --bym-ink-2: #1b1d20;
  --bym-gold: #d7b56c;
  --bym-gold-light: #f2dcaa;
  --bym-violet: #7d3eaa;
  --bym-violet-light: #d6a9ed;
  --bym-card-shadow: 0 18px 55px rgba(28, 22, 13, .07);
}

body { background: #f6f3ed; }
.app-main { padding-top: 28px; }
.bym5-today { padding-top: 22px; }

/* Shared top bar */
.bym5-topbar {
  position: sticky;
  z-index: 52;
  top: 0;
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: calc(11px + env(safe-area-inset-top, 0px)) max(22px, calc((100vw - 1180px) / 2)) 11px;
  border-bottom: 1px solid rgba(110, 93, 63, .14);
  background: rgba(250, 248, 243, .88);
  backdrop-filter: blur(22px) saturate(1.2);
  -webkit-backdrop-filter: blur(22px) saturate(1.2);
}
.bym5-brand,.bym5-profile { display: flex; align-items: center; border: 0; background: transparent; color: var(--text); }
.bym5-brand { gap: 11px; padding: 0; text-align: left; }
.bym5-brand img { width: 42px; height: 42px; border-radius: 13px; box-shadow: 0 8px 20px rgba(15,16,18,.16); }
.bym5-brand > span { display: grid; gap: 2px; }
.bym5-brand strong { font-size: 1.13rem; letter-spacing: -.05em; }
.bym5-brand small { color: var(--muted); font-size:var(--text-2xs); }
.bym5-profile { gap: 9px; padding: 5px 7px 5px 5px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.75); }
.bym5-profile > span { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: var(--bym-ink); color: var(--bym-gold-light); font-size: .8rem; font-weight: 850; }
.bym5-profile small { padding-right: 7px; color: var(--muted); font-size:var(--text-2xs); font-weight: 700; }

/* Onboarding */
.onboarding-shell {
  min-height: 100svh;
  padding: calc(24px + env(safe-area-inset-top,0px)) clamp(18px,5vw,68px) calc(30px + env(safe-area-inset-bottom,0px));
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 16%, rgba(207,164,80,.18), transparent 30%),
    radial-gradient(circle at 13% 92%, rgba(92,59,20,.22), transparent 34%),
    linear-gradient(145deg,#0d0e10 0%,#181a1e 55%,#101113 100%);
  color: #fff;
}
.onboarding-shell::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .34;
  background-image: linear-gradient(120deg,transparent 47%,rgba(255,255,255,.025) 47.2%,transparent 47.5%);
  background-size: 78px 78px;
}
.onboarding-brand,.onboarding-progress,.onboarding-card,.onboarding-foot { position: relative; z-index: 1; width: min(100%,780px); margin-inline: auto; }
.onboarding-brand { display: flex; align-items: center; gap: 13px; }
.onboarding-brand img { width: 52px; height: 52px; border-radius: 15px; box-shadow: 0 12px 38px rgba(0,0,0,.35); }
.onboarding-brand > div { display: grid; gap: 3px; }
.onboarding-brand strong { font-size: 1.4rem; letter-spacing: -.05em; }
.onboarding-brand span { color: #aaa7a1; font-size:var(--text-2xs); }
.onboarding-progress { height: 4px; margin-top: clamp(36px,8vh,75px); overflow: hidden; border-radius: 10px; background: rgba(255,255,255,.09); }
.onboarding-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#9e702b,#f0d79e); box-shadow: 0 0 18px rgba(236,202,133,.46); transition: width .25s ease; }
.onboarding-card { min-height: 470px; margin-top: 18px; padding: clamp(27px,5vw,50px); border: 1px solid rgba(234,207,148,.27); border-radius: 28px; background: rgba(255,255,255,.055); box-shadow: 0 28px 80px rgba(0,0,0,.26); backdrop-filter: blur(18px); }
.onboarding-card > .eyebrow { color: #d8b870; }
.onboarding-card h1 { max-width: 650px; margin: 14px 0 18px; font-size: clamp(2.1rem,6vw,4rem); line-height: 1.02; letter-spacing: -.065em; }
.onboarding-lead { max-width: 570px; color: #b9b7b1; line-height: 1.7; }
.onboarding-field { display: grid; gap: 9px; margin-top: 30px; color: #d9d6cf; font-size:var(--text-2xs); font-weight: 750; }
.onboarding-field input { width: 100%; min-height: 62px; padding: 12px 16px; border: 1px solid rgba(255,255,255,.2); border-radius: 14px; background: rgba(255,255,255,.08); color: #fff; font-size: 1.2rem; font-weight: 750; outline: 0; }
.onboarding-field input:focus { border-color: #d7b56c; box-shadow: 0 0 0 3px rgba(215,181,108,.15); }
.onboarding-field.compact { max-width: 240px; margin-top: 25px; }
.onboarding-field span small { color: #898782; font-weight: 500; }
.onboarding-privacy,.onboarding-foot { color: #8f8d88; font-size:var(--text-2xs); line-height: 1.6; }
.onboarding-choices { display: grid; gap: 10px; margin-top: 25px; }
.onboarding-choice { display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 13px; width: 100%; min-height: 72px; padding: 12px 16px; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; background: rgba(255,255,255,.045); color: #fff; text-align: left; }
.onboarding-choice > span { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #171717; }
.onboarding-choice svg { width: 15px; }
.onboarding-choice > div { display: grid; gap: 4px; }
.onboarding-choice strong { font-size: .91rem; }
.onboarding-choice small { color: #aaa8a3; font-size:var(--text-2xs); line-height: 1.45; }
.onboarding-choice.selected { border-color: #d0ad62; background: rgba(218,183,109,.12); box-shadow: inset 4px 0 #d0ad62; }
.onboarding-choice.selected > span { border-color: #e2c98e; background: linear-gradient(135deg,#efd699,#ad7c2c); }
.onboarding-pair { display: grid; gap: 27px; margin-top: 27px; }
.onboarding-pair > div { display: grid; gap: 12px; }
.onboarding-pair > div > span,.onboarding-theme > span { color: #c7c3bc; font-size:var(--text-2xs); font-weight: 750; }
.onboarding-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.onboarding-pills button { min-width: 58px; min-height: 48px; padding: 9px 13px; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; background: rgba(255,255,255,.05); color: #d9d7d2; font-size: .8rem; font-weight: 750; overflow-wrap: break-word; hyphens: auto; text-align: center; }
.onboarding-pills button.selected { border-color: #d7b56c; background: #d7b56c; color: #151515; }
.onboarding-theme { margin-top: 28px; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.1); }
.onboarding-theme > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 12px; }
.theme-card { display: grid; gap: 5px; min-height: 108px; padding: 13px; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; background: rgba(255,255,255,.04); color: #fff; text-align: left; }
.theme-card i { display: block; height: 27px; border-radius: 7px; }
.theme-card.gold i { background: linear-gradient(105deg,#161719 0 55%,#d8b56c 55%); }
.theme-card.violet i { background: linear-gradient(105deg,#f7f3ed 0 48%,#7e3fa8 48% 73%,#211328 73%); }
.theme-card strong { font-size: .79rem; }.theme-card small { color: #999690; font-size:var(--text-2xs); }
.theme-card.selected { border-color: #d8b86e; box-shadow: inset 0 0 0 1px rgba(216,184,110,.28); }
.onboarding-card footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 35px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); }
.onboarding-card footer > span { color: #87857f; font-size:var(--text-2xs); }
.onboarding-back { min-height: 48px; border: 0; background: transparent; color: #b9b5ae; font-size: .76rem; }
.onboarding-next { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 10px; padding: 0 21px; border: 1px solid #efd89f; border-radius: 12px; background: linear-gradient(115deg,#ead092,#b98939); color: #151515; font-size: .79rem; font-weight: 850; box-shadow: 0 10px 28px rgba(174,128,48,.18); }
.onboarding-next svg { width: 17px; }
.onboarding-foot { margin-top: 18px; text-align: center; }

/* Today */
.bym5-today .launch-brand-row { margin-bottom: 42px; }
.bym5-today .launch-heading { min-height: 210px; align-items: start; }
.bym5-today .launch-heading .eyebrow { color: var(--accent); }
.bym5-today .launch-heading .view-title { max-width: 800px; font-size: clamp(3.5rem,8vw,7.6rem); line-height: .86; letter-spacing: -.085em; }
.bym5-today .launch-heading .view-title span { color: #6f716f; }
.bym5-today .launch-heading .view-copy { margin-top: 25px; font-size: 1.05rem; }
.readiness-strip { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 13px; margin: 0 0 18px; padding: 14px 17px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.76); }
.readiness-strip > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; background: #ede9df; color: var(--accent); }
.readiness-strip svg { width: 18px; }.readiness-strip > div { display: grid; gap: 4px; min-width: 0; }
.readiness-strip strong { font-size: .82rem; }.readiness-strip small { color: var(--muted); font-size:var(--text-2xs); line-height: 1.45; }
.readiness-strip button { min-height: 38px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size:var(--text-2xs); font-weight: 750; }
.readiness-strip.easy { border-color: #ccb776; background: #fffaf0; }.readiness-strip.strong > span { background: #211f1b; color: #e1c27e; }
.today-journal { display: grid; grid-template-columns: 60px minmax(0,1fr) auto; align-items: center; gap: 19px; margin: 30px 0; padding: 26px; border: 1px solid #c9b277; border-radius: 23px; background: linear-gradient(120deg,#fffdf8,#f7f0df); box-shadow: var(--bym-card-shadow); }
.journal-orb { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 19px; background: #17181a; color: #e0bd72; box-shadow: 0 10px 25px rgba(18,18,18,.14); }
.journal-orb svg { width: 24px; }.today-journal h2 { margin: 6px 0; font-size: 1.35rem; letter-spacing: -.04em; }
.today-journal p { margin: 0; color: var(--muted); font-size: .79rem; line-height: 1.55; }
.today-journal > button { min-height: 45px; padding: 9px 15px; border: 1px solid #b99550; border-radius: 11px; background: #17181a; color: #fff; font-size:var(--text-2xs); font-weight: 780; }
.journal-values { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.journal-values span { padding: 6px 9px; border-radius: 999px; background: #fff; color: var(--muted); font-size:var(--text-2xs); }.journal-values strong { color: var(--text); }

/* Exercise library */
.exercise-library-view { max-width: 1040px; padding-bottom: 145px; }
.search-add-header { position: sticky; z-index: 55; top: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 3px 14px; margin: -28px -28px 28px; padding: calc(13px + env(safe-area-inset-top,0px)) 28px 13px; border-bottom: 1px solid #292b2e; background: rgba(20,21,24,.97); color: #fff; backdrop-filter: blur(20px); }
.search-add-header > button { grid-row: 1/3; display: flex; align-items: center; gap: 9px; width: fit-content; padding: 8px 0; border: 0; background: transparent; color: #d5b773; font-size:var(--text-2xs); font-weight: 750; }
.search-add-header svg { width: 17px; transform: rotate(180deg); }.search-add-header strong { font-size: .84rem; text-align: right; }.search-add-header small { color: #94969a; font-size:var(--text-2xs); text-align: right; }
.search-heading { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-bottom: 23px; }
.search-heading h1 { margin: 8px 0 10px; font-size: clamp(2.6rem,6vw,5.2rem); line-height: .95; letter-spacing: -.075em; }
.search-heading p:not(.eyebrow) { max-width: 590px; margin: 0; color: var(--muted); line-height: 1.6; }
.search-create { flex: 0 0 auto; min-height: 45px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; font-size:var(--text-2xs); font-weight: 750; }.search-create svg { width: 16px; vertical-align: middle; }
.library-searchbox { position: sticky; z-index: 20; top: 88px; display: grid; grid-template-columns: 24px minmax(0,1fr) 40px; align-items: center; gap: 8px; min-height: 62px; padding: 7px 9px 7px 16px; border: 1px solid #bba66f; border-radius: 17px; background: rgba(255,255,255,.95); box-shadow: 0 13px 35px rgba(43,33,18,.09); backdrop-filter: blur(18px); }
.add-mode .library-searchbox { top: 82px; }
.library-searchbox > svg { width: 20px; color: var(--accent); }
.library-searchbox input { min-width: 0; width: 100%; height: 46px; border: 0; background: transparent; color: var(--text); font-size:var(--text-md); font-weight: 650; outline: 0; }
.library-searchbox button { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 11px; background: #f1eee7; color: var(--muted); }.library-searchbox button svg { width: 16px; }
.library-filter-block { display: grid; gap: 8px; margin: 18px 0; }
.library-filters { display: flex; gap: 7px; overflow-x: auto; padding: 2px 2px 5px; scrollbar-width: none; }
.library-filters::-webkit-scrollbar { display: none; }
.library-filters button { flex: 0 0 auto; min-height: 39px; padding: 8px 13px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.72); color: var(--muted); font-size:var(--text-2xs); font-weight: 720; }
.library-filters button.active { border-color: #1c1d20; background: #1c1d20; color: #f1d99f; }
.library-filters.compact button { min-height: 33px; padding: 6px 11px; font-size:var(--text-2xs); }
.library-result-head { display: flex; justify-content: space-between; gap: 12px; margin: 22px 2px 9px; color: var(--muted); font-size:var(--text-2xs); }.library-result-head strong { color: var(--text); }
.exercise-library-results { display: grid; gap: 8px; }
.exercise-library-row { display: grid; grid-template-columns: minmax(0,1fr) 54px; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: #fff; transition: border .18s ease,transform .18s ease; }
.exercise-library-row:hover { border-color: #bda46d; transform: translateY(-1px); }.exercise-library-row.selected { border-color: #aa8238; box-shadow: inset 4px 0 #aa8238; }.exercise-library-row.existing { opacity: .58; }
.exercise-library-main { display: grid; grid-template-columns: 43px minmax(0,1fr) auto; align-items: center; gap: 12px; min-width: 0; min-height: 74px; padding: 10px 12px; border: 0; background: transparent; color: var(--text); text-align: left; }
.exercise-library-main:disabled { color: inherit; }
.exercise-library-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: #f1eee8; color: var(--accent); }.exercise-library-icon svg { width: 18px; }
.exercise-library-main > span:nth-child(2) { display: grid; gap: 5px; min-width: 0; }.exercise-library-main strong { font-size: .86rem; line-height: 1.3; overflow-wrap: anywhere; }.exercise-library-main small { color: var(--muted); font-size:var(--text-2xs); line-height: 1.45; overflow-wrap: anywhere; }
.exercise-library-main em { color: var(--accent); font-size:var(--text-2xs); font-style: normal; font-weight: 750; }
.exercise-favorite { display: grid; width: 54px; height: 100%; place-items: center; border: 0; border-left: 1px solid var(--line); background: #fcfbf8; color: #aaa59c; }.exercise-favorite svg { width: 19px; }.exercise-favorite.active { color: #a67825; background: #fff8e8; }
.library-empty { padding: 55px 20px; border: 1px dashed var(--line-strong); border-radius: 17px; text-align: center; }.library-empty > span { color: var(--accent); }.library-empty svg { width: 30px; }.library-empty h2 { margin: 13px 0 8px; }.library-empty p { color: var(--muted); }.library-empty button { min-height: 42px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size:var(--text-2xs); }
.search-add-dock { position: fixed; z-index: 70; right: 18px; bottom: calc(16px + env(safe-area-inset-bottom,0px)); left: 18px; display: grid; grid-template-columns: auto minmax(190px,430px); justify-content: center; gap: 9px; padding: 10px; border: 1px solid #34363a; border-radius: 17px; background: rgba(22,23,26,.96); box-shadow: 0 18px 50px rgba(0,0,0,.3); backdrop-filter: blur(18px); }
.search-add-dock button { min-height: 48px; padding: 9px 17px; border: 1px solid rgba(255,255,255,.15); border-radius: 11px; background: transparent; color: #d6d4cf; font-size:var(--text-2xs); font-weight: 750; }
.search-add-dock button:last-child { border-color: #dfc17f; background: linear-gradient(110deg,#e7cd91,#ae7e2f); color: #151515; }.search-add-dock button:disabled { opacity: .38; }

/* Journal */
.journal-scale { margin: 20px 0; padding: 0; border: 0; }.journal-scale legend { margin-bottom: 10px; font-size: .78rem; font-weight: 800; }
.journal-scale > div { display: grid; grid-template-columns: repeat(5,1fr); gap: 7px; }.journal-scale label { display: block; }.journal-scale input { position: absolute; opacity: 0; pointer-events: none; }.journal-scale label span { display: grid; min-height: 48px; place-items: center; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--muted); font-weight: 800; cursor: pointer; }.journal-scale input:checked + span { border-color: #a98037; background: #1a1b1d; color: #e5c57e; box-shadow: 0 7px 18px rgba(22,22,22,.14); }
.journal-scale > small { display: flex; justify-content: space-between; margin-top: 6px; color: var(--muted); font-size:var(--text-2xs); }.journal-note textarea { min-height: 110px; }
.journal-timeline { padding: clamp(20px,4vw,34px); border: 1px solid var(--line); border-radius: 23px; background: #fff; box-shadow: var(--bym-card-shadow); }.journal-timeline .section-heading button { min-height: 42px; padding: 8px 13px; border: 1px solid var(--line); border-radius: 10px; background: #17181a; color: #fff; font-size:var(--text-2xs); font-weight: 750; }.journal-intro { color: var(--muted); line-height: 1.65; }
.journal-entry-list { display: grid; gap: 10px; margin-top: 22px; }.journal-entry-list article { position: relative; display: grid; grid-template-columns: minmax(150px,.7fr) 1fr auto; align-items: center; gap: 12px 20px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #faf8f3; }.journal-entry-list time { font-size:var(--text-2xs); font-weight: 800; }.journal-entry-list article > div { display: flex; gap: 7px; }.journal-entry-list article > div span { padding: 6px 9px; border-radius: 999px; background: #fff; color: var(--muted); font-size:var(--text-2xs); }.journal-entry-list article > p { grid-column: 1/3; margin: 0; color: var(--muted); font-size:var(--text-2xs); line-height: 1.55; }.journal-entry-list article > button { grid-column: 3; grid-row: 1/3; border: 0; background: transparent; color: var(--accent); font-size:var(--text-2xs); font-weight: 750; }

/* Profile */
.profile-identity-card { display: grid; grid-template-columns: 68px minmax(0,1fr) auto; align-items: center; gap: 18px; margin: 0 0 20px; padding: 22px; border: 1px solid #292a2d; border-radius: 22px; background: linear-gradient(125deg,#141517,#202125); color: #fff; box-shadow: 0 18px 42px rgba(10,10,10,.16); }
.profile-avatar { display: grid; width: 64px; height: 64px; place-items: center; border: 1px solid #d5b66e; border-radius: 21px; background: linear-gradient(145deg,#2b2d31,#101113); color: #e8cb88; font-size: 1.4rem; font-weight: 900; }
.profile-identity-card > div { display: grid; gap: 3px; }.profile-identity-card small { color: #c9a75f; font-size:var(--text-2xs); font-weight: 850; letter-spacing: .16em; }.profile-identity-card h2 { margin: 0; font-size: 1.35rem; }.profile-identity-card p { margin: 0; color: #aeadb1; font-size:var(--text-2xs); }.profile-identity-card button { min-height: 43px; padding: 9px 13px; border: 1px solid rgba(255,255,255,.16); border-radius: 10px; background: rgba(255,255,255,.06); color: #eee; font-size:var(--text-2xs); font-weight: 740; }.profile-identity-card button svg { width: 15px; vertical-align: middle; }

/* Workout logger simplification */
.set-head.no-rir,.set-row.no-rir { grid-template-columns: 42px minmax(78px,1fr) minmax(72px,1fr) 28px; }
.training-active .exercise-body { position: relative; }
.training-active .set-field { min-height: 50px; font-size:var(--text-md); font-weight: 800; font-variant-numeric: tabular-nums; }
.training-active .set-complete { min-height: 48px; }
.training-active .training-cockpit { bottom: calc(12px + env(safe-area-inset-bottom,0px)); }
.training-active { padding-bottom: calc(118px + env(safe-area-inset-bottom,0px)); }
.training-active.timer-minimized { padding-bottom: calc(106px + env(safe-area-inset-bottom,0px)); }
.timer-mini { bottom: calc(12px + env(safe-area-inset-bottom,0px)); }

/* Four-tab navigation */
.bym5-nav .bottom-nav-inner { grid-template-columns: repeat(4,minmax(0,1fr)); }
.bym5-nav .nav-button { position: relative; }
.bym5-nav .nav-button.active::after { content: ""; position: absolute; right: 30%; bottom: 5px; left: 30%; height: 2px; border-radius: 3px; background: currentColor; opacity: .7; }

/* Violet personality */
html[data-theme="violet"] body { background-color: #f4f0f3; }
html[data-theme="violet"] .onboarding-shell { background: radial-gradient(circle at 78% 16%,rgba(151,76,192,.28),transparent 34%),radial-gradient(circle at 10% 90%,rgba(82,32,112,.24),transparent 35%),linear-gradient(145deg,#110f14,#211725 58%,#111013); }
html[data-theme="violet"] .onboarding-progress span { background: linear-gradient(90deg,#552574,#d7a7ee); }
html[data-theme="violet"] .onboarding-choice.selected { border-color:#a966c8;background:rgba(133,66,167,.18);box-shadow:inset 4px 0 #a966c8; }
html[data-theme="violet"] .onboarding-choice.selected > span { border-color:#d4a9e7;background:linear-gradient(135deg,#d9b6eb,#773b98);color:#fff; }
html[data-theme="violet"] .onboarding-next { border-color:#d8b2e9;background:linear-gradient(115deg,#c993e2,#6c338e);color:#fff; }
html[data-theme="violet"] .readiness-strip.strong > span,html[data-theme="violet"] .journal-orb { color:#d9afea; }
html[data-theme="violet"] .today-journal { border-color:#b899c5;background:linear-gradient(120deg,#fffdf9,#f1e7f4); }
html[data-theme="violet"] .exercise-library-row.selected { border-color:#8b50a8;box-shadow:inset 4px 0 #8b50a8; }
html[data-theme="violet"] .library-searchbox { border-color:#a77fba; }
html[data-theme="violet"] .library-filters button.active { border-color:#311a39;background:#211824;color:#dcb5ef; }
html[data-theme="violet"] .exercise-favorite.active { color:#7c3c9b;background:#f6edf8; }
html[data-theme="violet"] .search-add-dock button:last-child { border-color:#c58bdc;background:linear-gradient(110deg,#cfa1e4,#6d348e);color:#fff; }
html[data-theme="violet"] .journal-scale input:checked + span { border-color:#884ba6;background:#211824;color:#dcb5ef; }
html[data-theme="violet"] .profile-avatar { border-color:#a966c8;color:#dcb5ef; }

@media (min-width:1080px) {
  .bym5-topbar { margin-left: 226px; padding-inline: clamp(28px,4vw,58px); }
  .search-add-header { margin-left: 0; }
  .search-add-dock { left: calc(226px + 18px); }
  .bym5-nav .bottom-nav-inner { grid-template-columns: 1fr; }
  .bym5-nav .nav-button.active::after { inset: 18% auto 18% 0; width: 3px; height: auto; }
  .training-active .training-cockpit { left: calc(226px + clamp(24px,3.2vw,52px)); }
}

@media (max-width:760px) {
  .app-main { padding-inline: 16px; }
  .bym5-topbar { min-height: 68px; padding: calc(9px + env(safe-area-inset-top,0px)) 16px 9px; }
  .bym5-brand img { width: 38px; height: 38px; }.bym5-brand small { display: none; }.bym5-profile small { display: none; }.bym5-profile { padding-right: 5px; }
  .onboarding-shell { padding-inline: 15px; }.onboarding-brand img { width: 45px; height: 45px; }.onboarding-progress { margin-top: 35px; }.onboarding-card { min-height: 0; padding: 26px 18px; border-radius: 22px; }.onboarding-card h1 { font-size: clamp(2.15rem,11vw,3.25rem); }.onboarding-choice { padding-inline: 12px; }.onboarding-theme > div { grid-template-columns: 1fr; }.onboarding-card footer { align-items: stretch; }.onboarding-card footer > span { align-self: center; }.onboarding-next { padding-inline: 16px; }.onboarding-foot { padding-inline: 10px; }
  .bym5-today .launch-brand-row { margin-bottom: 35px; }.bym5-today .launch-heading { min-height: 180px; }.bym5-today .launch-heading .view-title { font-size: clamp(3.1rem,17vw,5.2rem); }.bym5-today .launch-heading .view-copy { font-size: .86rem; }
  .readiness-strip { grid-template-columns: 38px minmax(0,1fr); padding: 13px; }.readiness-strip > button { grid-column: 1/-1; width: 100%; }.readiness-strip small { font-size:var(--text-2xs); }
  .today-journal { grid-template-columns: 48px minmax(0,1fr); gap: 13px; padding: 21px 17px; }.journal-orb { width: 47px; height: 47px; border-radius: 15px; }.journal-orb svg { width: 20px; }.today-journal > button { grid-column: 1/-1; width: 100%; }.today-journal h2 { font-size: 1.16rem; }
  .search-add-header { margin: -28px -16px 24px; padding-right: 16px; padding-left: 16px; }.search-add-header > button span { display: none; }.search-heading { align-items: start; flex-direction: column; }.search-heading h1 { font-size: clamp(2.65rem,13vw,4rem); }.search-create { width: 100%; }.library-searchbox { top: 76px; }.add-mode .library-searchbox { top: 74px; }.library-filter-block { margin-right: -16px; }.library-filters { padding-right: 16px; }.exercise-library-main { grid-template-columns: 41px minmax(0,1fr); }.exercise-library-main em { grid-column: 2; }.exercise-library-row { grid-template-columns: minmax(0,1fr) 48px; }.exercise-favorite { width: 48px; }.search-add-dock { right: 10px; bottom: calc(9px + env(safe-area-inset-bottom,0px)); left: 10px; grid-template-columns: 1fr 1.5fr; }.search-add-dock button { padding-inline: 8px; }
  .journal-entry-list article { grid-template-columns: 1fr auto; }.journal-entry-list article > div { grid-column: 1/3; }.journal-entry-list article > p { grid-column: 1/3; }.journal-entry-list article > button { grid-column: 2; grid-row: 1; }.journal-timeline .section-heading { align-items: start; }.journal-timeline .section-heading button { width: 100%; }
  .profile-identity-card { grid-template-columns: 55px minmax(0,1fr); padding: 18px; }.profile-avatar { width: 52px; height: 52px; border-radius: 17px; }.profile-identity-card button { grid-column: 1/-1; width: 100%; }
  .training-active { padding-top: 8px; padding-bottom: calc(104px + env(safe-area-inset-bottom,0px)); }.training-active .training-cockpit { right: 8px; bottom: calc(8px + env(safe-area-inset-bottom,0px)); left: 8px; }.training-active.timer-minimized { padding-bottom: calc(92px + env(safe-area-inset-bottom,0px)); }.timer-mini { right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));left:8px; }
  .set-head.no-rir,.set-row.no-rir { grid-template-columns: 40px minmax(65px,1fr) minmax(62px,1fr) 28px; }
  .bym5-nav .bottom-nav-inner { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .bym5-nav .nav-button { min-height: 57px; }
}

@media (max-width:380px) {
  .onboarding-card footer { flex-direction: column-reverse; }.onboarding-back,.onboarding-next { width: 100%; }.onboarding-card footer > span { display:none; }
  .exercise-library-main { padding-inline:8px;gap:8px; }.exercise-library-icon { width:37px;height:37px; }.exercise-library-main small { font-size:var(--text-2xs); }
}

/* BYM 5.1 — profile truth, temporary comeback protocol and a compact Today surface. */
.onboarding-followup { display: grid; gap: 11px; margin-top: 18px; padding: 18px; border: 1px solid rgba(231,202,139,.22); border-radius: 16px; background: rgba(0,0,0,.18); }
.onboarding-followup > span { color: #ddd7cc; font-size: .82rem; font-weight: 800; }
.onboarding-followup > small { color: #9f9b94; font-size: .76rem; line-height: 1.6; }
.onboarding-pills.wrap button { flex: 1 1 92px; }
.onboarding-pills.wrap.avoids button { flex-basis: 45%; }
.onboarding-equipment { display: grid; gap: 11px; margin-top: 18px; padding: 18px; border: 1px solid rgba(231,202,139,.22); border-radius: 16px; background: rgba(0,0,0,.18); }
.onboarding-equipment > span { color: #ddd7cc; font-size: .82rem; font-weight: 800; }
.onboarding-equipment > span small { color: #9f9b94; font-weight: 600; }
.onboarding-equipment-warning { display: flex; gap: 9px; align-items: flex-start; margin: 4px 0 0; padding: 12px 14px; border-radius: 12px; background: rgba(214,138,84,.14); color: #e8c9a8; font-size: .78rem; line-height: 1.55; }
.onboarding-equipment-warning svg { width: 16px; flex: none; margin-top: 2px; }
.onboarding-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 25px; }
.onboarding-review-grid article { display: grid; align-content: start; gap: 7px; min-height: 134px; padding: 17px; border: 1px solid rgba(255,255,255,.13); border-radius: 15px; background: rgba(255,255,255,.045); }
.onboarding-review-grid span,.onboarding-plan-diff span { color: #d8b870; font-size:var(--text-2xs); font-weight: 850; letter-spacing: .12em; }
.onboarding-review-grid strong { font-size: .94rem; line-height: 1.35; }
.onboarding-review-grid small,.onboarding-plan-diff small { color: #aaa8a3; font-size: .76rem; line-height: 1.5; }
.onboarding-protocol { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 14px; margin-top: 14px; padding: 18px; border: 1px solid rgba(216,184,110,.3); border-radius: 15px; background: linear-gradient(115deg,rgba(218,183,109,.12),rgba(255,255,255,.035)); }
.onboarding-protocol > span { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: #d7b56c; color: #151515; }
.onboarding-protocol svg { width: 19px; }.onboarding-protocol strong { font-size: .9rem; }.onboarding-protocol p { margin: 6px 0 0; color: #aaa8a3; font-size: .78rem; line-height: 1.6; }
.onboarding-plan-diff { display: grid; grid-template-columns: minmax(0,1fr) 28px minmax(0,1fr); align-items: stretch; gap: 10px; margin-top: 14px; }
.onboarding-plan-diff > div { display: grid; align-content: start; gap: 7px; padding: 17px; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; background: rgba(255,255,255,.04); }
.onboarding-plan-diff > b { display: grid; place-items: center; color: #d7b56c; }.onboarding-plan-diff > b svg { width: 18px; }
.onboarding-plan-diff strong { font-size: .88rem; line-height: 1.4; }
.onboarding-review-note { margin: 18px 0 0; color: #aaa8a3; font-size: .78rem; line-height: 1.6; }
.onboarding-review-actions { display: flex; justify-content: flex-end; gap: 9px; }
.onboarding-profile-only { min-height: 52px; padding: 0 17px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: rgba(255,255,255,.05); color: #e1ddd5; font-size: .78rem; font-weight: 800; }

.return-status { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 18px; margin-bottom: 18px; padding: 21px 23px; border: 1px solid #a67d34; border-radius: 20px; background: linear-gradient(120deg,#17181b,#252015); color: #fff; }
.return-status h2 { margin: 7px 0; font-size: 1.2rem; letter-spacing: -.035em; }.return-status p { max-width: 760px; margin: 0; color: #beb9af; font-size: .82rem; line-height: 1.6; }
.return-status button { min-height: 43px; padding: 9px 13px; border: 1px solid rgba(232,201,135,.32); border-radius: 11px; background: rgba(255,255,255,.06); color: #f0d79e; font-size: .76rem; font-weight: 800; }
.return-status button svg { width: 15px; vertical-align: middle; }
.return-status-actions { display: flex; flex-direction: column; gap: 8px; }
.return-status-ready { display: flex; align-items: center; gap: 7px; margin-top: 10px !important; color: #e5c67f !important; font-weight: 700; }
.return-status-ready svg { width: 15px; }
.today-toolbox { margin: 27px 0; }.today-tool-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.today-tool-grid > button { display: grid; grid-template-columns: 42px minmax(0,1fr) 18px; align-items: center; gap: 4px 11px; min-height: 86px; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); color: var(--text); text-align: left; }
.today-tool-grid > button > span { grid-row: 1/3; display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: var(--surface-3); color: var(--accent); }
.today-tool-grid > button > span.violet-tool { color: #a660c8; }.today-tool-grid svg { width: 17px; }.today-tool-grid > button > svg { grid-column: 3; grid-row: 1/3; color: var(--muted); }
.today-tool-grid strong { font-size: .86rem; line-height: 1.3; }.today-tool-grid small { color: var(--muted); font-size:var(--text-2xs); line-height: 1.4; }
.time-budget { flex-wrap: wrap; }.time-budget button { flex: 1 1 70px; }

.profile-sections { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 20px; }
.profile-sections article { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; min-height: 128px; padding: 19px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: var(--bym-card-shadow); }
.profile-sections article.active-phase { border-color: color-mix(in srgb,var(--accent) 56%,var(--line)); box-shadow: inset 4px 0 var(--accent),var(--bym-card-shadow); }
.profile-sections article > div { display: grid; gap: 5px; min-width: 0; }.profile-sections span { color: var(--accent); font-size:var(--text-2xs); font-weight: 850; letter-spacing: .12em; }
.profile-sections h3 { margin: 0; font-size:var(--text-md); line-height: 1.35; }.profile-sections p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.5; }
.profile-sections button { min-height: 40px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-3); color: var(--text); font-size:var(--text-2xs); font-weight: 780; }

/* Obsidian Gold is a full dark system, not a light UI with one black card. */
html[data-theme="gold"] {
  --bg: #0d0e10; --bg-deep: #08090a; --surface: #15171a; --surface-2: #191b1f; --surface-3: #202329;
  --line: #2b2e34; --line-strong: #4c4435; --text: #f3efe7; --muted: #aaa69e; --faint: #8f8b83;
  --accent: #d0ad62; --accent-2: #f0d79e; --accent-soft: #2b2519; --positive: #d0ad62; --positive-soft: #272217;
  --info: #d0ad62; --shadow: 0 14px 40px rgba(0,0,0,.24); color-scheme: dark;
}
html[data-theme="gold"] body { background: radial-gradient(circle at 88% 5%,rgba(190,145,61,.09),transparent 23rem),linear-gradient(180deg,#090a0c,#101114 18rem,#0d0e10); color: var(--text); }
html[data-theme="gold"] .bym5-today .launch-heading .view-title span { color: #a9a49b; }
html[data-theme="gold"] .launch-brand,html[data-theme="gold"] .launch-menu,html[data-theme="gold"] .bym5-brand,html[data-theme="gold"] .bym5-profile { color: var(--text); }
html[data-theme="gold"] .bym5-topbar { border-color: var(--line); background: rgba(12,13,15,.88); }
html[data-theme="gold"] .bym5-profile { background: rgba(255,255,255,.035); }
html[data-theme="gold"] :is(.readiness-strip,.today-controls,.week-panel,.next-preview,.settings-card,.coach-preferences,.science-card,.recent-plan-card,.plan-library,.plan-builtins,.plan-card,.own-plan-card,.body-panel,.body-stat,.consistency-panel,.exercise-progress-card,.progress-empty,.history-card,.journal-timeline,.journal-entry-list article,.exercise-library-row,.library-searchbox,.library-empty,.extra-config,.extra-preview,.knowledge-card,.power-result,.power-setup,.power-test,.generator-step,.generator-preview,.program-summary,.rhythm-notice,.analysis-card,.plan-starter-library,.body-entry,.coach-empty,.coach-advice) { border-color: var(--line); background: var(--surface); color: var(--text); box-shadow: var(--shadow); }
/* DES-02: these components hardcode a light-theme background in
   styles.css and were missing from the retheme group above, leaving
   light text on a light card under the dark Obsidian Gold theme. */
html[data-theme="gold"] .progress-metric-tabs > button { background: var(--surface-3); color: var(--muted); }
html[data-theme="gold"] .progress-metric-tabs > button.active { background: linear-gradient(120deg,#d9b970,#9a6d28); color: #111214; border-color: transparent; }
html[data-theme="gold"] .consistency-bars > div > span { background: var(--surface-3); }
html[data-theme="gold"] .history-date { background: var(--surface-3); color: var(--text); }
html[data-theme="gold"] .chart-visual { background: linear-gradient(165deg,var(--surface-3) 0%,var(--surface) 72%); border-color: var(--line); }
html[data-theme="gold"] .chart-axis { fill: var(--muted); }
html[data-theme="gold"] .chart-grid { stroke: var(--line); }
html[data-theme="gold"] .chart-point { stroke: var(--surface); }
html[data-theme="gold"] .body-metric-tab { background: var(--surface-3); color: var(--muted); }
html[data-theme="gold"] .body-metric-tab.active { background: linear-gradient(120deg,#d9b970,#9a6d28); color: #111214; }
html[data-theme="gold"] .launch-notice { border-color: var(--line); background: var(--surface); box-shadow: var(--shadow); }
/* 5-W-Audit 2026-09-30 (Live-Check): Kurzeinheit/Wiedereinstieg-Ansicht und
   die Auswahl der Vergleichsuebungen im Power Check hatten unter Gold noch
   die hellen styles.css-Flaechen (#fff / #fbf4e3 / #f1e7f6) mit heller
   Schrift - Titel unlesbar. */
html[data-theme="gold"] :is(.extra-choices button,.extra-ready button,.extra-exercises .icon-button,.power-lift-picker button) { border-color: var(--line); background: var(--surface-3); color: var(--text); }
html[data-theme="gold"] .extra-ready { background: var(--surface-2); color: var(--text); }
html[data-theme="gold"] :is(.extra-choices button.selected,.extra-ready button.selected) { border-color: #b8944a; background: #1f1a12; color: var(--text); box-shadow: inset 3px 0 0 #b8944a; }
html[data-theme="gold"] .power-lift-picker button.selected { border-color: #8950aa; background: #231a2b; color: var(--text); box-shadow: inset 3px 0 #a06cc4; }
html[data-theme="gold"] :is(.launch-notice>button:not(.launch-dismiss),.plan-library-heading button,.plan-builtins-title button,.day-button.active) { border-color: #dfc17e; background: linear-gradient(110deg,#e4c57f,#a9772b); color: #111214; }
html[data-theme="gold"] :is(.secondary-button,.search-create,.library-empty button,.preview-row button,.plan-builtins-actions button:first-child,.profile-sections button) { border-color: var(--line); background: var(--surface-3); color: var(--text); }
html[data-theme="gold"] :is(input,textarea,select,.set-field,.journal-scale label span,.library-filters button,.segmented,.generator-options>button,.generator-chips>button) { border-color: var(--line); background-color: #121417; color: var(--text); }
html[data-theme="gold"] :is(.segmented button.active,.time-budget button.active,.library-filters button.active) { background: linear-gradient(120deg,#d9b970,#9a6d28); color: #111214; box-shadow: none; }
html[data-theme="gold"] .readiness-strip > span { background: #272218; color: #e5c67f; }
html[data-theme="gold"] .readiness-strip button { border-color: var(--line); background: #202329; color: var(--text); }
html[data-theme="gold"] .readiness-strip.easy { border-color: #775f31; background: #1d1a13; }
html[data-theme="gold"] .recent-plan-card.selected { border-color: #b98d3f; background: linear-gradient(145deg,#211e17,#17181a); }
html[data-theme="gold"] .recent-plan-card.create { background: #121417; }
html[data-theme="gold"] .exercise-library-icon,html[data-theme="gold"] .library-searchbox button,html[data-theme="gold"] .exercise-favorite,html[data-theme="gold"] .journal-entry-list article > div span { background: var(--surface-3); }
html[data-theme="gold"] .app-dialog,html[data-theme="gold"] .dialog-body,html[data-theme="gold"] .dialog-head { border-color: var(--line); background: #15171a; color: var(--text); }
html[data-theme="gold"] .training-cockpit { border-color: #5f4b28; background-color: #111316; color: var(--text); }
html[data-theme="gold"] .bottom-nav { border-color: #2d3035; background: rgba(11,12,14,.96); }
html[data-theme="gold"] .nav-button { color: #918e87; }html[data-theme="gold"] .nav-button.active { color: #e4c37d; }
html[data-theme="gold"] .primary-button,html[data-theme="gold"] .session-finish,html[data-theme="gold"] .set-complete { border-color: #dfc17e; background: linear-gradient(110deg,#e4c57f,#a9772b); color: #111214; }
html[data-theme="gold"] .profile-identity-card { border-color: #5b4827; background: linear-gradient(125deg,#111214,#211d14); }

/* The active workout still contains a few deliberately high-contrast BYM 4
   surfaces. Re-skin the whole workspace so Obsidian Gold never falls back to
   white cards with light text. */
html[data-theme="gold"] :is(.session-dashboard,.training-workspace .exercise-rail,.exercise-card,.exercise-card.open,.workout-paused-note) {
  border-color: var(--line);
  background: var(--surface);
  color: var(--text);
}
html[data-theme="gold"] :is(.exercise-rail-item,.rail-add,.set-check,.set-copy-button,.session-tools button) {
  border-color: var(--line);
  background: var(--surface-2);
  color: var(--text);
}
html[data-theme="gold"] .exercise-rail-item.selected {
  border-color: #8f6c30;
  background: linear-gradient(110deg,#2b2519,#1b1c1f);
  color: var(--text);
}
html[data-theme="gold"] :is(.insight-box,.training-quick-tools .subtle-button) {
  background: var(--surface-3);
  color: var(--text);
}
html[data-theme="gold"] .insight-box strong { color: var(--text); }
html[data-theme="gold"] .set-row.is-next {
  border-color: #70582f;
  background: linear-gradient(100deg,#272217,#181a1d);
}
html[data-theme="gold"] .set-check.done { border-color: #dfc17e; background: #dfc17e; color: #111214; }
html[data-theme="gold"] .set-row:has(.set-check.done) .set-field { border-color: var(--line); background: #202329; color: var(--muted); }
html[data-theme="gold"] .undo-bar { background: var(--accent-soft); color: var(--text); }
html[data-theme="gold"] .mobile-exercise-nav { border-color: #5f4b28; background: rgba(17,19,22,.96); color: var(--text); }
html[data-theme="gold"] .mobile-exercise-arrows button,
html[data-theme="gold"] .mobile-exercise-picker button { border-color: var(--line); background: var(--surface-3); color: var(--text); }
html[data-theme="gold"] .mobile-exercise-picker button.selected { border-color: #b98d3f; background: var(--accent-soft); box-shadow: inset 3px 0 #b98d3f; }
html[data-theme="gold"] .mobile-exercise-picker .mobile-add-exercise { background: var(--surface-2); }

html[data-theme="violet"] .return-status { border-color: rgba(126,71,158,.45); background: linear-gradient(115deg,#fffdf8,#eee2f3); color: var(--text); }
html[data-theme="violet"] .return-status p { color: var(--muted); }html[data-theme="violet"] .return-status button { border-color: rgba(126,71,158,.3); background: rgba(126,71,158,.07); color: #6f328f; }
html[data-theme="violet"] .today-tool-grid > button,html[data-theme="violet"] .profile-sections article { background-image: linear-gradient(108deg,rgba(255,253,248,.9),rgba(249,242,250,.7)),url('./bym-light-marble.svg'); background-size: auto,cover; }

@media (max-width:760px) {
  .bym5-today .launch-brand-row { margin-bottom: 22px; }.bym5-today .launch-heading { min-height: 135px; }.bym5-today .launch-heading .view-title { font-size: clamp(3rem,15vw,4.35rem); line-height: .91; }.bym5-today .launch-heading .view-copy { margin-top: 16px; }
  .readiness-strip strong { font-size: .86rem; }.readiness-strip small { font-size:var(--text-2xs); }
  .return-status { grid-template-columns: 1fr; padding: 19px 17px; }.return-status button { width: 100%; }
  .today-tool-grid { grid-template-columns: 1fr; }.today-tool-grid > button { min-height: 76px; }
  .profile-sections { grid-template-columns: 1fr; }.profile-sections article { min-height: 112px; }
  .onboarding-review-grid { grid-template-columns: 1fr; }.onboarding-review-grid article { min-height: 0; }
  .onboarding-plan-diff { grid-template-columns: 1fr; }.onboarding-plan-diff > b { transform: rotate(90deg); }.onboarding-review-actions { width: 100%; flex-direction: column; }.onboarding-profile-only,.onboarding-review-actions .onboarding-next { width: 100%; }
  .onboarding-card h1 { font-size: clamp(2rem,10vw,3rem); }.onboarding-lead { font-size: .88rem; }.onboarding-choice strong { font-size: .95rem; }.onboarding-choice small,.onboarding-foot { font-size: .76rem; }
  .time-budget button { flex-basis: 29%; }
}

/* The library is part of Training; the diary is a first-class destination. */
.plan-exercise-library { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--text); font-size: .78rem; font-weight: 800; }
.plan-exercise-library svg { width: 17px; color: var(--accent); }
.journal-view .journal-timeline { margin-bottom: 22px; }.journal-training-history { padding: clamp(18px,3vw,28px); border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow); }

/* Large equipment sets stay scannable through progressive disclosure. */
.generator-equipment-groups { display: grid; gap: 10px; margin-top: 18px; }
.generator-equipment-groups > details { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.generator-equipment-groups summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 13px 16px; cursor: pointer; list-style: none; }
.generator-equipment-groups summary::-webkit-details-marker { display: none; }.generator-equipment-groups summary > span { display: grid; gap: 4px; }.generator-equipment-groups summary strong { font-size: .86rem; }.generator-equipment-groups summary small { color: var(--muted); font-size:var(--text-2xs); }
.generator-equipment-groups summary > svg { width: 17px; color: var(--accent); transition: transform .2s ease; }.generator-equipment-groups details[open] summary > svg { transform: rotate(90deg); }
.generator-equipment-groups .generator-chips { margin: 0; padding: 0 14px 15px; }
.generator-swap-hint { margin: 20px 0 10px; padding: 12px 14px; border-left: 3px solid var(--accent); border-radius: 0 10px 10px 0; background: var(--accent-soft); color: var(--muted); font-size: .77rem; line-height: 1.5; }
.generated-exercises button { width: auto; min-width: 92px; padding: 0 11px; display: inline-flex; gap: 6px; font-size:var(--text-2xs); font-weight: 800; color: var(--text); }.generated-exercises button > span { color: inherit; font-size: inherit; }
.generated-exercises section > em { display: block; margin-top: 4px; color: var(--accent); font-size:var(--text-2xs); font-style: normal; font-weight: 750; line-height: 1.4; }
.custom-generator-toggle { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 11px; margin-top: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-3); cursor: pointer; }
.custom-generator-toggle input { width: 19px; height: 19px; margin-top: 2px; accent-color: var(--accent); }.custom-generator-toggle span { display: grid; gap: 4px; }.custom-generator-toggle strong { font-size: .82rem; }.custom-generator-toggle small { color: var(--muted); font-size:var(--text-2xs); line-height: 1.45; }

/* Finishing is the main action of an active session, not a tiny utility icon. */
.training-cockpit .session-finish { min-width: 142px; justify-content: center; box-shadow: 0 7px 20px rgba(190,145,61,.2); }
.training-cockpit.ready-to-finish .session-finish { box-shadow: 0 0 0 3px rgba(225,193,121,.15),0 9px 25px rgba(190,145,61,.3); }
.finish-intro { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 14px; align-items: start; margin-bottom: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 17px; background: linear-gradient(125deg,var(--surface-3),var(--surface)); }
.finish-intro > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; background: var(--accent); color: #111214; }.finish-intro svg { width: 22px; }.finish-intro .eyebrow { margin: 0 0 5px; }.finish-intro h3 { margin: 0 0 6px; font-size: 1.08rem; }.finish-intro p:last-child { margin: 0; color: var(--muted); font-size: .77rem; line-height: 1.55; }
.finish-dialog-actions .finish-confirm-button { min-height: 52px; padding-inline: 20px; }.completion-actions { display: grid; grid-template-columns: 1fr 1fr; }.completion-actions .primary-button { grid-column: 1/-1; min-height: 52px; }.completion-actions .text-button { justify-content: center; }
.finish-risk-warning { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 12px; align-items: start; margin-bottom: 18px; padding: 14px 16px; border-radius: 14px; background: var(--danger-soft); color: var(--danger); }.finish-risk-warning svg { width: 20px; margin-top: 1px; }.finish-risk-warning p { margin: 0; font-size: .82rem; line-height: 1.5; font-weight: 600; }

html[data-theme="gold"] :is(.journal-training-history,.generator-equipment-groups>details,.finish-intro) { border-color: var(--line); background-color: var(--surface); color: var(--text); }
html[data-theme="violet"] :is(.journal-training-history,.generator-equipment-groups>details,.finish-intro) { background-image: linear-gradient(108deg,rgba(255,253,248,.94),rgba(249,242,250,.84)),url('./bym-light-marble.svg'); background-size: auto,cover; }

/* M-43: the pause timer had no violet coverage at all - the base styles.css
   redesign block hardcodes the Obsidian Gold dark palette unscoped, so it
   rendered identically in both themes. Recolored to light marble + violet
   accents, keeping the same halo glow around the progress ring. */
html[data-theme="violet"] .timer-overlay { background-image: linear-gradient(108deg,rgba(255,253,248,.95),rgba(249,242,250,.88)),url('./bym-light-marble.svg'); background-size: auto,cover; color: var(--text); }
html[data-theme="violet"] .timer-top { border-bottom-color: rgba(126,71,158,.18); }
html[data-theme="violet"] .timer-kicker,html[data-theme="violet"] .timer-section-label { color: #7c3c9b; }
html[data-theme="violet"] .timer-close { color: var(--muted); background: rgba(126,71,158,.07); }
html[data-theme="violet"] .timer-ring-track { stroke: rgba(126,71,158,.14); }
html[data-theme="violet"] .timer-ring-progress { stroke: #a966c8; filter: drop-shadow(0 0 7px rgba(169,102,200,.45)); }
html[data-theme="violet"] .timer-clock>span,html[data-theme="violet"] .timer-clock small,html[data-theme="violet"] .timer-last-set>span,html[data-theme="violet"] .timer-undo { color: var(--muted); }
html[data-theme="violet"] .timer-adjust { border-color: rgba(126,71,158,.28); background: rgba(255,255,255,.6); color: var(--text); }
html[data-theme="violet"] .timer-stop { background: linear-gradient(110deg,#cfa1e4,#6d348e); color: #fff; }
html[data-theme="violet"] .timer-stop:focus-visible { outline-color: #6d348e; }
html[data-theme="violet"] .timer-set-position { color: #8a4aab; }
html[data-theme="violet"] .timer-set-position strong { color: var(--text); }
html[data-theme="violet"] .timer-session-time { border-color: rgba(126,71,158,.2); color: var(--muted); }
html[data-theme="violet"] .timer-session-time strong { color: #7c3c9b; }

@media (max-width:760px) {
  .view-heading .plan-exercise-library { width: 100%; margin-top: 8px; }.journal-training-history { padding: 18px 14px; }
  .training-cockpit { grid-template-columns: minmax(0,1fr) auto minmax(102px,auto) !important; }
  .training-cockpit .cockpit-time { display: none; }.training-cockpit .session-finish { width: auto; min-width: 102px; min-height: 43px; padding: 0 12px; border-radius: 12px; gap: 6px; }
  .training-cockpit .session-finish .cockpit-action-label { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: nowrap; font-size:var(--text-2xs); }
  .training-cockpit .session-finish svg { width: 15px; }.training-cockpit .cockpit-title strong { max-width: 34vw; }.training-cockpit .cockpit-title small { max-width: 36vw; }
  .finish-dialog-actions,.completion-actions { grid-template-columns: 1fr; }.finish-dialog-actions .finish-confirm-button,.completion-actions .primary-button { grid-column: auto; order: -1; }
  .generated-exercises button { min-width: 42px; width: 42px; padding: 0; }.generated-exercises button > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

@media (max-width:380px) {
  .training-cockpit { grid-template-columns: minmax(0,1fr) auto minmax(92px,auto) !important; }.training-cockpit .session-finish { min-width: 92px; padding-inline: 8px; }.training-cockpit .session-finish .cockpit-action-label { font-size:var(--text-2xs); }.training-cockpit .cockpit-title small { display: none; }
}
