    * { box-sizing: border-box; }

    html, body {
      margin: 0;
      min-height: 100%;
      background: var(--bg);
      color: var(--ink);
      font-family: var(--font-body);
      letter-spacing: 0;
    }

    body {
      -webkit-font-smoothing: antialiased;
      overscroll-behavior-y: none;
      background: var(--bg);
    }
    body.modal-open {
      height: 100dvh;
      overflow: hidden;
    }

    button, input, select {
      font: inherit;
    }

    button {
      border: 0;
      color: inherit;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }

    .app-shell {
      width: min(100%, 430px);
      height: 100vh;
      height: 100dvh;
      margin: 0 auto;
      background:
        linear-gradient(180deg, #16161a, rgba(247,248,245,0) 240px),
        var(--bg);
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
    }

    .screen {
      flex: 1 1 auto;
      min-height: 0;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior-y: contain;
      padding: 24px 20px;
    }

    .topbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 20px;
    }

    .brand h1 {
      margin: 0;
      font-size: 27px;
      line-height: 0.95;
      font-weight: 820;
      letter-spacing: 0;
    }

    .phase {
      margin-top: 8px;
      color: var(--muted);
      font-size: 18px;
      font-weight: 540;
    }

    .icon-button {
      width: 48px;
      height: 48px;
      border: 1px solid var(--faint);
      border-radius:var(--r-pill);
      background: #16161a;
      color: var(--ink);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 8px 18px rgba(20, 28, 36, 0.05);
      flex: 0 0 auto;
    }

    .icon {
      width: 22px;
      height: 22px;
      stroke: currentColor;
      stroke-width: 2.2;
      fill: none;
      stroke-linecap: round;
      stroke-linejoin: round;
      display: block;
    }

    .panel {
      background: #16161a;
      border: 1px solid var(--faint);
      border-radius:var(--r-sm);
      box-shadow: var(--elev-1);
    }

    .status-strip {
      padding: 16px;
      display: grid;
      grid-template-columns: 52px 1fr 108px;
      gap: 14px;
      align-items: center;
      margin-bottom: 28px;
    }

    .prototype-banner {
      display: grid;
      grid-template-columns: 34px 1fr;
      gap: 10px;
      align-items: center;
      margin: -6px 0 18px;
      padding: 12px 14px;
      border: 1px solid #26272d;
      border-radius:var(--r-sm);
      background: #16161a;
      color: #9aa0aa;
      font-size: 13px;
      line-height: 1.3;
    }

    .prototype-banner strong {
      display: block;
      color: var(--ink);
      font-size: 14px;
      margin-bottom: 2px;
    }

    .time-switcher {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      margin: -8px 0 18px;
    }

    .time-option {
      min-height: 42px;
      border-radius:var(--r-sm);
      border: 1px solid var(--faint);
      background: #16161a;
      color: var(--muted);
      font-weight: 760;
      font-size: 14px;
    }

    .time-option.active {
      color: var(--selection-ink);
      border-color: var(--selection-border);
      background: var(--selection-bg);
    }

    .status-icon {
      width: 48px;
      height: 48px;
      border-radius:var(--r-pill);
      display: grid;
      place-items: center;
      color: var(--neutral-fill);
      background: var(--neutral-soft);
    }

    .status-title {
      font-size: 24px;
      font-weight: 760;
      color: var(--ink);
      line-height: 1.1;
    }

    .status-sub {
      color: var(--muted);
      font-size: 18px;
      margin-top: 4px;
    }

    .spark {
      width: 100%;
      height: 44px;
    }

    .section-head {
      display: flex;
      justify-content: space-between;
      align-items: end;
      gap: 16px;
      margin: 24px 4px 12px;
    }

    .section-head h2 {
      margin: 0;
      font-size: 26px;
      line-height: 1.08;
      font-weight: 780;
    }

    .section-head p {
      margin: 4px 0 0;
      color: var(--muted);
      font-size: 16px;
    }

    .queue {
      overflow: hidden;
    }

    .action-row, .flow-row, .metric-row, .history-row {
      display: grid;
      grid-template-columns: 50px 1fr auto;
      gap: 14px;
      align-items: center;
      padding: 18px;
      min-height: 82px;
      border-bottom: 1px solid var(--faint);
      background: transparent;
      width: 100%;
      text-align: left;
      color: inherit;
    }

    .action-row:last-child,
    .flow-row:last-child,
    .metric-row:last-child,
    .history-row:last-child { border-bottom: 0; }

    .bubble {
      width: 46px;
      height: 46px;
      border-radius:var(--r-pill);
      display: grid;
      place-items: center;
      color: var(--neutral-fill);
      background: var(--neutral-soft);
      flex: 0 0 auto;
    }

    .bubble.blue,
    .bubble.amber,
    .bubble.violet { color: var(--neutral-fill); background: var(--neutral-soft); }
    .bubble.coral { color: var(--neutral-fill); background: var(--neutral-soft); }

    .row-title {
      font-weight: 760;
      font-size: 19px;
      line-height: 1.18;
    }

    .row-sub {
      margin-top: 4px;
      color: var(--muted);
      font-size: 16px;
      line-height: 1.25;
    }

    .import-err { color: var(--red); font-weight: 600; }
    .import-ok { color: var(--ink); font-weight: 700; margin-bottom: 4px; }
    .import-counts { margin: 4px 0 12px 18px; padding: 0; color: var(--muted); }
    .import-counts li { margin: 2px 0; }

    .pill-button {
      min-width: 74px;
      min-height: 44px;
      padding: 0 18px;
      border-radius:var(--r-sm);
      color: var(--action-secondary-ink);
      background: #16161a;
      border: 2px solid currentColor;
      font-weight: 760;
    }

    .pill-button.green { color: var(--accent); }
    .pill-button.blue,
    .pill-button.amber,
    .pill-button.violet { color: var(--accent); }
    .pill-button.fill {
      background: var(--cta);
      border-color: var(--cta);
      color: var(--cta-ink);
      box-shadow: 0 8px 18px transparent;
    }

    .pill-button:active,
    .primary-wide:active {
      transform: translateY(1px);
    }

    .primary-wide:active {
      background: color-mix(in srgb, var(--action-primary-bg) 88%, #000);
    }

    .coach-note {
      display: grid;
      grid-template-columns: 42px 1fr;
      gap: 14px;
      align-items: start;
      padding: 18px;
      border: 1px solid var(--faint);
      background: var(--neutral-soft);
      border-radius:var(--r-sm);
      margin-top: 18px;
    }

    .coach-note strong {
      display: block;
      color: var(--ink);
      font-size: 17px;
      margin-bottom: 4px;
    }

    .coach-note span {
      color: #f3f4f6;
      font-size: 16px;
      line-height: 1.35;
    }

    .signal-card {
      padding: 18px;
      display: grid;
      gap: 14px;
      margin-top: 16px;
    }

    .signal-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 14px;
      align-items: center;
    }

    .signal-title {
      font-size: 18px;
      font-weight: 780;
    }

    .signal-sub {
      color: var(--muted);
      font-size: 15px;
      line-height: 1.3;
      margin-top: 3px;
    }

    .signal-badge {
      border-radius:var(--r-pill);
      padding: 8px 10px;
      background: var(--neutral-soft);
      color: var(--muted);
      font-weight: 800;
      font-size: 13px;
      white-space: nowrap;
    }

    .chip-row {
      display: flex;
      gap: 8px;
      overflow-x: auto;
      padding: 2px 0 4px;
      scrollbar-width: none;
    }

    .chip-row::-webkit-scrollbar { display: none; }

    .quick-chip {
      min-height: 40px;
      white-space: nowrap;
      border-radius:var(--r-pill);
      padding: 0 14px;
      border: 1px solid var(--faint);
      background: #16161a;
      color: var(--ink);
      font-weight: 760;
      display: inline-flex;
      align-items: center;
      gap: 7px;
    }

    .quick-chip.green {
      border-color: var(--action-secondary-border);
      background: var(--action-secondary-bg);
      color: var(--action-secondary-ink);
    }

    .quick-chip.blue {
      border-color: var(--action-secondary-border);
      background: var(--action-secondary-bg);
      color: var(--action-secondary-ink);
    }

    .summary-band {
      display: grid;
      gap: 12px;
      padding: 16px;
      margin: 16px 0;
    }

    .mini-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
    }

    .mini-stat {
      border: 1px solid var(--faint);
      background: #16161a;
      border-radius:var(--r-sm);
      padding: 12px 10px;
      min-height: 72px;
    }

    .mini-stat strong {
      display: block;
      font-size: 18px;
      line-height: 1;
      margin-bottom: 6px;
    }

    .mini-stat span {
      color: var(--muted);
      font-size: 12px;
      font-weight: 720;
    }

    .flow-list { overflow: hidden; }

    .chev {
      color: #f3f4f6;
      font-size: 28px;
      line-height: 1;
      padding-left: 8px;
    }

    .bottom-nav {
      position: relative;
      flex: none;
      width: 100%;
      min-height: var(--nav-h);
      background: #16161a;
      border-top: 1px solid var(--faint);
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: 1fr;
      z-index: 20;
      padding-top: 12px;
      padding-bottom: max(14px, env(safe-area-inset-bottom));
      box-shadow: 0 -10px 24px rgba(16, 19, 24, 0.06);
    }

    .nav-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      color: #9aa0aa;
      background: transparent;
      font-size: 12px;
      font-weight: 680;
    }

    .nav-item.active { color: var(--selection-accent); }

    .view-title {
      margin: 4px 0 24px;
    }

    .view-title h2 {
      font-size: 23px;
      line-height: 1;
      margin: 0 0 8px;
      font-weight: 820;
    }

    .view-title p {
      margin: 0;
      color: var(--muted);
      font-size: 17px;
      line-height: 1.35;
    }

    .grid-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin: 16px 0;
    }

    .stat-card {
      padding: 16px;
      border: 1px solid var(--faint);
      background: #16161a;
      border-radius:var(--r-sm);
      min-height: 112px;
    }

    .stat-label {
      color: var(--muted);
      font-size: 14px;
      font-weight: 680;
    }

    .stat-value {
      margin-top: 8px;
      font-size: 30px;
      line-height: 1;
      font-weight: 820;
    }

    .stat-foot {
      margin-top: 8px;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.25;
    }

    .bar {
      height: 8px;
      border-radius:var(--r-pill);
      background: #26272d;
      overflow: hidden;
      margin-top: 12px;
    }

    .bar > i {
      display: block;
      height: 100%;
      width: var(--w);
      border-radius: inherit;
      background: var(--c, var(--data));
    }

    .primary-wide {
      width: 100%;
      min-height: 56px;
      padding: 16px 18px;
      border-radius:var(--r-md);
      background: var(--cta);
      color: var(--cta-ink);
      font-weight: 800;
      font-size: 16px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      box-shadow: none;
      margin-top: 16px;
    }

    .secondary-wide {
      width: 100%;
      min-height: 56px;
      padding: 16px 18px;
      border-radius:var(--r-md);
      border: 2px solid var(--action-secondary-border);
      color: var(--action-secondary-ink);
      background: #16161a;
      font-weight: 740;
      font-size: 16px;
      margin-top: 12px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
    }

    .calorie-hero {
      padding: 15px;
      margin-bottom: 16px;
    }

    .calorie-value {
      font-size: 30px;
      line-height: 1;
      font-weight: 840;
      color: var(--ink);
    }

    .calorie-label {
      margin-top: 7px;
      color: var(--ink);
      font-size: 18px;
      font-weight: 760;
    }

    .calorie-sub {
      margin-top: 8px;
      color: var(--muted);
      line-height: 1.35;
      font-size: 15px;
    }

    .segmented {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 8px;
      margin-top: 14px;
    }

    .segment {
      height: 48px;
      border-radius:var(--r-md);
      border: 1px solid var(--faint);
      background: #16161a;
      color: var(--muted);
      font-weight: 760;
    }

    .segment.active {
      border-color: var(--selection-border);
      background: var(--selection-bg);
      color: var(--selection-ink);
    }

    #gsSex.segmented { grid-template-columns: repeat(2, 1fr); }
    #gsDir.segmented { grid-template-columns: repeat(3, 1fr); }
    .rate-scale {
      display: flex;
      justify-content: space-between;
      margin-top: 4px;
      font-size: 12px;
      color: var(--muted);
    }
    .goal-readout {
      margin-top: 18px;
      padding: 14px 16px;
      border: 1px solid var(--faint);
      border-radius:var(--r-md);
      background: #16161a;
    }
    .gr-row {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      font-size: 15px;
      color: var(--muted);
    }
    .gr-row + .gr-row { margin-top: 8px; }
    .gr-row strong { font-size: 17px; color: var(--ink); font-weight: 800; }
    .gr-target {
      margin-top: 12px;
      padding-top: 12px;
      border-top: 1px solid var(--faint);
    }
    .gr-target span { color: var(--accent); font-weight: 700; }
    .gr-target strong { color: var(--accent); font-size: 22px; }
    .gr-note { margin-top: 8px; font-size: 13px; color: var(--muted); }

    .workout-card {
      padding: 18px;
    }

    .program-card {
      padding: 16px;
      display: grid;
      gap: 12px;
    }

    .program-picker {
      width: 100%;
      min-height: 50px;
      border: 1px solid var(--faint);
      border-radius:var(--r-sm);
      padding: 0 12px;
      color: var(--ink);
      background: #16161a;
      font-weight: 720;
    }

    .day-tabs {
      display: flex;
      gap: 8px;
      overflow-x: auto;
      padding-bottom: 2px;
      scrollbar-width: none;
    }

    .day-tabs::-webkit-scrollbar { display: none; }

    .day-tab {
      min-height: 38px;
      white-space: nowrap;
      border-radius:var(--r-pill);
      padding: 0 13px;
      border: 1px solid var(--faint);
      background: #16161a;
      color: var(--muted);
      font-weight: 760;
    }

    .day-tab.active {
      color: var(--selection-ink);
      border-color: var(--selection-border);
      background: var(--selection-bg);
    }

    .inline-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      margin-top: 12px;
    }

    .small-button {
      min-height: 40px;
      border-radius:var(--r-sm);
      border: 1px solid var(--faint);
      background: #16161a;
      color: var(--ink);
      font-weight: 740;
      padding: 0 10px;
    }

    .small-button.green {
      border-color: var(--action-secondary-border);
      color: var(--action-secondary-ink);
    }

    .lift-line {
      display: block;
      padding: 13px 0;
      border-bottom: 1px solid var(--faint);
    }

    .lift-line:last-child { border-bottom: 0; }

    .lift-line.tappable {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 10px;
      width: 100%;
      text-align: left;
      background: transparent;
      color: inherit;
      align-items: center;
      padding: 0 0 10px;
      border-bottom: 0;
    }

    .lift-name {
      font-weight: 760;
      font-size: 17px;
    }

    .lift-meta {
      color: var(--muted);
      margin-top: 3px;
      font-size: 14px;
    }

    .set-badge {
      align-self: center;
      padding: 7px 10px;
      border-radius:var(--r-sm);
      background: var(--surface-soft);
      font-weight: 760;
      color: #9aa0aa;
      font-size: 14px;
    }

    .muted-chip {
      display: inline-flex;
      align-items: center;
      align-self: center;
      padding: 7px 10px;
      border-radius:var(--r-sm);
      background: var(--surface-soft);
      color: var(--muted);
      font-size: 13px;
      font-weight: 760;
    }

    .log-affordance {
      color: var(--action-tertiary-ink);
      font-weight: 820;
      white-space: nowrap;
    }

    .exercise-actions {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-top: 10px;
    }

    .set-table {
      display: grid;
      gap: 8px;
      margin-top: 14px;
    }

    .set-row {
      display: grid;
      grid-template-columns: 44px 1fr 1fr;
      gap: 8px;
      align-items: center;
      padding: 10px 12px;
      border: 1px solid var(--faint);
      border-radius:var(--r-sm);
      background: #16161a;
      font-size: 14px;
      font-weight: 720;
    }

    .set-row span:first-child {
      color: var(--muted);
    }

    .timeline {
      padding: 6px 18px 10px;
    }

    .timeline-row {
      display: grid;
      grid-template-columns: 72px 1fr;
      gap: 12px;
      padding: 15px 0;
      border-bottom: 1px solid var(--faint);
    }

    .timeline-row:last-child { border-bottom: 0; }

    .time {
      color: var(--muted);
      font-size: 15px;
      padding-top: 2px;
    }

    .photo-vault {
      border: 1px solid var(--faint);
      background: #16161a;
      padding: 18px;
      border-radius:var(--r-sm);
      margin-top: 16px;
    }

    .photo-vault input {
      display: none;
    }

    .photo-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      margin-top: 14px;
    }

    .photo-slot {
      aspect-ratio: 3 / 4;
      border-radius:var(--r-sm);
      background: var(--neutral-soft);
      border: 1px solid var(--faint);
      display: grid;
      place-items: center;
      color: var(--muted);
      font-size: 12px;
      text-align: center;
      padding: 8px;
      overflow: hidden;
    }

    .photo-slot img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: inherit;
    }

    .modal-backdrop {
      position: fixed;
      inset: 0;
      background: rgba(16, 19, 24, 0.42);
      display: none;
      align-items: flex-end;
      justify-content: center;
      z-index: 50;
      padding: 18px;
      overscroll-behavior: contain;
    }

    .modal-backdrop.open { display: flex; }

    .sheet {
      width: min(100%, 390px);
      min-width: 0;
      max-width: 100%;
      background: #16161a;
      border-radius: var(--r-lg) var(--r-lg) var(--r-md) var(--r-md);
      padding: 16px;
      box-shadow: var(--elev-2);
      max-height: calc(100dvh - 28px);
      overflow-x: hidden;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
    }

    .sheet-x-row { position: sticky; top: 0; z-index: 5; height: 0; display: flex; justify-content: flex-end; pointer-events: none; }
    .sheet-x {
      pointer-events: auto;
      width: 44px; height: 44px;
      margin: -4px -4px 0 8px;
      border: none; border-radius:var(--r-pill);
      background: rgba(40,40,46,0.92);
      color: var(--ink); font-size: 22px; line-height: 1;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer;
    }
    .sheet h3 {
      margin: 0 6px 6px 0;
      font-size: 20px;
      padding-right: 40px;
    }

    .sheet p {
      margin: 0 0 16px;
      color: var(--muted);
      line-height: 1.35;
    }

    .field {
      margin: 11px 0;
    }

    .field label {
      display: block;
      font-size: 14px;
      color: var(--muted);
      font-weight: 700;
      margin-bottom: 8px;
    }

    .field input, .field select {
      width: 100%;
      min-height: 44px;
      border: 1px solid var(--faint);
      border-radius:var(--r-sm);
      padding: 0 12px;
      background: #16161a;
      color: var(--ink);
    }

    .toggle-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 14px;
      align-items: center;
      padding: 14px;
      border: 1px solid var(--faint);
      border-radius:var(--r-sm);
      background: #16161a;
    }

    .toggle-row strong {
      display: block;
      font-size: 16px;
      margin-bottom: 3px;
    }

    .toggle-row span {
      color: var(--muted);
      font-size: 14px;
      line-height: 1.3;
    }

    .toggle-row input[type="checkbox"] {
      appearance: none;
      -webkit-appearance: none;
      width: 24px;
      height: 24px;
      margin: 0;
      flex: none;
      border: 2px solid var(--muted);
      border-radius:var(--r-sm);
      background: transparent;
      display: grid;
      place-content: center;
      cursor: pointer;
    }

    .toggle-row input[type="checkbox"]::before {
      content: "";
      width: 13px;
      height: 13px;
      transform: scale(0);
      transition: transform .12s ease-in-out;
      background-color: var(--cta-ink);
      clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
    }

    .toggle-row input[type="checkbox"]:checked {
      background: var(--selection-bg);
      border-color: var(--selection-border);
    }

    .toggle-row input[type="checkbox"]:checked::before {
      transform: scale(1);
    }

    .sheet-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-top: 16px;
    }

    .toast {
      position: fixed;
      left: 50%;
      bottom: calc(var(--nav-h) + 16px);
      transform: translateX(-50%) translateY(12px);
      width: min(calc(100% - 36px), 390px);
      background: #202024;
      color:#ffffff;
      padding: 13px 15px;
      border-radius:var(--r-sm);
      opacity: 0;
      pointer-events: none;
      transition: opacity .18s ease, transform .18s ease;
      z-index: 70;
      font-weight: 680;
    }

    .toast.show {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
      pointer-events: auto;
    }
    .toast{display:flex;align-items:center;justify-content:space-between;gap:14px}
    .toast-action{flex:none;background:transparent;border:none;color:var(--accent);font-weight:800;font-size:14px;padding:4px 2px;cursor:pointer}

    @media (min-width: 760px) {
      body { background: #1c1c21; }
      .app-shell {
        margin-top: 24px;
        margin-bottom: 24px;
        height: calc(100vh - 48px);
        height: calc(100dvh - 48px);
        border: 1px solid var(--faint);
        border-radius: 24px;
        overflow: hidden;
        box-shadow: 0 28px 80px rgba(16, 19, 24, 0.16);
      }
      .bottom-nav {
        border-radius: 0 0 24px 24px;
      }
    }
    /* --- RP type system --- */
    .brand h1, .view-title h2, .section-head h2, .wk-ttl, .tp-name, .ex-name, .hist-day { font-family: var(--font-display); font-weight: 800; letter-spacing: -.01em; }
    .brand h1 { font-family: "Black Ops One", var(--font-display); font-weight: 400; letter-spacing: .01em; }
    .calorie-value, .bank-big, .chart-now { font-family: var(--font-display); font-weight: 900; }
    .macro-v, .sg-in, .sg-prev, .cal-meta strong, .week-foot strong, .chart-axis span, .ci-cell strong, .lh-sets, .lh-e1, .ex-row-meta, .wk-tmr, .rp-t { font-family: var(--font-num); font-variant-numeric: tabular-nums; }
    /* --- RP muscle-group color chip --- */
    .m-chip { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:4px 9px; border-radius:var(--r-sm); line-height:1; }
    .m-chip .m-bars { display:inline-block; width:12px; height:11px; background:
      linear-gradient(currentColor 0 0) 0/2.5px 100% no-repeat,
      linear-gradient(currentColor 0 0) 4.5px/2.5px 100% no-repeat,
      linear-gradient(currentColor 0 0) 9px/2.5px 100% no-repeat; }
    .m-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
    .ex-row { gap:11px; }
    .ex-chip-row { margin-bottom:8px; }
    .rp-target { display:inline-block; background:var(--neutral-soft); color:var(--ink); border-radius:var(--r-sm); padding:6px 10px; font-weight:700; font-size:12px; margin:0 0 10px; }
    .rp-target .ex-sug { color:var(--ink); font-weight:800; }
    .str-row { display:flex; align-items:center; gap:11px; padding:12px 2px; border-top:1px solid var(--faint); }
    .str-row:first-child { border-top:none; }
    .str-info { flex:1; display:flex; flex-direction:column; gap:2px; min-width:0; }
    .str-name { font-weight:700; font-size:15px; color:var(--ink); }
    .str-sub { font-size:12px; color:var(--muted); font-family:var(--font-num); }
    .str-spark { width:84px; flex-shrink:0; }
    .str-spark .mini-spark { height:30px; }
    .str-best { font-size:13px; color:var(--muted); font-family:var(--font-num); }
    .meal-edit-row { display:flex; gap:8px; align-items:center; margin-bottom:8px; }
    .meal-edit-name { flex:1; background:var(--surface-2); border:1px solid var(--faint); border-radius:var(--r-sm); padding:11px 12px; color:var(--ink); font-weight:600; font-size:15px; }

    /* Batch 10B: one three-tier action contract. Geometry remains unchanged in this pass. */
    .primary-wide,.wk-fin,.wk-foot-fin,.chat-send,.pill-button.fill{
      background:var(--action-primary-bg);color:var(--action-primary-ink);border-color:transparent;box-shadow:none
    }
    .secondary-wide,.ghost-wide,.small-button,.wk-addex,.manual-toggle,.it-preset,.sg-add,.mini-btn{
      background:var(--action-secondary-bg);color:var(--action-secondary-ink);border:1px solid var(--action-secondary-border);box-shadow:none
    }
    .link-btn,.fi-add,.kb-howto,.icon-button,.wk-x,.rp-skip,.chat-gif{
      background:transparent;color:var(--action-tertiary-ink);border:0;box-shadow:none
    }
    .danger-wide,.mini-btn.danger,.wk-foot-discard{
      background:transparent;color:var(--red);border-color:transparent;box-shadow:none
    }
    .pill-button,.quick-chip,.day-tab,.day-pill,.segment,.time-option,.it-preset{
      background:var(--action-secondary-bg);color:var(--action-secondary-ink);border-color:var(--action-secondary-border);box-shadow:none
    }
    .pill-button.fill{background:var(--action-primary-bg);color:var(--action-primary-ink);border-color:transparent}
    .pill-button.green,.pill-button.blue,.pill-button.amber,.pill-button.violet,.small-button.green{
      color:var(--action-secondary-ink);border-color:var(--action-secondary-border)
    }
    .quick-chip.active,.day-tab.active,.day-pill.active,.segment.active,.time-option.active{
      background:var(--selection-bg);color:var(--selection-ink);border-color:var(--selection-border)
    }
    body.theme-girlpower .primary-wide,body.theme-girlpower .wk-fin,body.theme-girlpower .wk-foot-fin,body.theme-girlpower .chat-send,body.theme-girlpower .pill-button.fill{
      background:var(--action-primary-bg);color:var(--action-primary-ink);border-color:transparent
    }
    body.theme-girlpower .secondary-wide,body.theme-girlpower .ghost-wide,body.theme-girlpower .small-button,body.theme-girlpower .wk-addex,body.theme-girlpower .manual-toggle,body.theme-girlpower .it-preset,body.theme-girlpower .sg-add,body.theme-girlpower .mini-btn{
      background:var(--action-secondary-bg);color:var(--action-secondary-ink);border-color:var(--action-secondary-border)
    }
    body.theme-girlpower .link-btn,body.theme-girlpower .fi-add,body.theme-girlpower .kb-howto,body.theme-girlpower .icon-button,body.theme-girlpower .wk-x,body.theme-girlpower .rp-skip,body.theme-girlpower .chat-gif{
      background:transparent;color:var(--action-tertiary-ink);border:0
    }

    /* Batch 10B: selective display and data hierarchy. The wordmark is unchanged. */
    .view-title h2,.section-head h2,.wk-ttl,.wh-day,.calorie-value,.bank-big,.chart-now{
      letter-spacing:-.02em
    }
    .macro-v,.sg-in,.sg-prev,.cal-meta strong,.week-foot strong,.chart-axis span,.ci-cell strong,.lh-sets,.lh-e1,.ex-row-meta,.wk-tmr,.rp-t,.stat-value,.kb-pts{
      font-family:var(--font-num);font-weight:700;letter-spacing:-.015em;font-variant-numeric:tabular-nums
    }
    .list-label,.schedule-kicker,.wh-kicker,.plan-today,.cp-dow,.macro-l,.cal-meta span,.week-foot span,.ci-cell span,.set-grid-h,.cc-tag,.chat-sub,.wk-dow{
      font-family:var(--font-display);font-weight:800;letter-spacing:.05em
    }
    .row-title,.tp-name,.ex-row-name,.ex-name,.fi-name,.crew-name,.cc-ttl,.hist-day,.pe-lift-name,.cp-ttl,.chat-ttl,.str-name,.plan-day{
      font-weight:800;letter-spacing:-.01em
    }
