/* Premium polish layer. Loaded last on purpose. */
:root {
  --bg: #0f171d;
  --bg-soft: #172128;
  --card: #f7f5ef;
  --card-strong: #fffdf8;
  --ink: #172229;
  --ink-soft: #5d6970;
  --accent: #f26a21;
  --accent-deep: #c84b0d;
  --accent-cool: #2f766c;
  --success: #2f7d57;
  --line: rgba(23, 36, 45, 0.1);
  --shadow: 0 12px 30px rgba(4, 9, 13, 0.18);
  --radius-xl: 16px;
  --radius-lg: 12px;
  --radius-md: 10px;
  --radius-sm: 8px;
  --font-body: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif;
  --font-heading: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif;
  --premium-border: rgba(23, 34, 41, 0.1);
  --premium-surface: #f7f5ef;
}

html {
  background: var(--bg);
}

body {
  font-family: var(--font-body);
  -webkit-tap-highlight-color: transparent;
}

button,
summary,
input,
select,
textarea {
  touch-action: manipulation;
}

button:active,
.chip-button:active,
.tab-button:active {
  transform: scale(0.985);
}

.primary-button {
  background: var(--accent);
  box-shadow:
    0 14px 30px rgba(207, 77, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.ghost-button,
.chip-button,
.icon-button {
  border: 1px solid rgba(23, 36, 45, 0.1);
  background: var(--card-strong);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.58);
}

.card,
.filter-row,
.session-header,
.exercise-card,
.history-summary-card,
.history-card,
.library-card,
.routine-builder-card,
.session-utility-panel,
.session-closeout,
.empty-state {
  border: 1px solid var(--premium-border) !important;
  background: var(--premium-surface) !important;
  box-shadow:
    0 10px 26px rgba(4, 9, 13, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.62) !important;
}

.field input,
.field select,
.field textarea,
.builder-mini-field input,
.builder-mini-field select {
  border: 1px solid rgba(23, 36, 45, 0.1);
  background: var(--card-strong);
  color: var(--ink);
  box-shadow: inset 0 1px 1px rgba(23, 36, 45, 0.05);
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.builder-mini-field input:focus,
.builder-mini-field select:focus {
  outline: none;
  border-color: rgba(244, 122, 40, 0.5);
  box-shadow:
    0 0 0 4px rgba(244, 122, 40, 0.14),
    0 12px 26px rgba(23, 36, 45, 0.1);
}

.status-pill.done,
.success-pill,
.set-row-done .set-compact-result {
  color: #1e6c54 !important;
}

.status-pill.live {
  color: var(--accent-deep);
}

.comparison-pill.better {
  background: rgba(47, 127, 98, 0.14);
  color: #1e6c54;
}

.comparison-pill.worse {
  background: rgba(184, 80, 66, 0.13);
  color: #a64135;
}

@media (max-width: 760px) {
  :root {
    --mobile-nav-height: 68px;
  }

  html {
    font-size: 14px;
    scroll-padding-top: calc(108px + env(safe-area-inset-top));
  }

  body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
      linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
    background-size: 28px 28px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.6), transparent 72%);
  }

  .hero-card,
  #overview {
    display: none !important;
  }

  .app-shell {
    width: min(100vw - 16px, 430px) !important;
    padding-top: max(10px, env(safe-area-inset-top)) !important;
    padding-bottom: calc(var(--mobile-nav-height) + 78px + env(safe-area-inset-bottom)) !important;
  }

  .panel-stack {
    gap: 12px !important;
    padding: 0 !important;
  }

  .panel-header {
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 10px !important;
    color: #fffaf2;
  }

  .panel-header .eyebrow,
  .panel-header p:not(.eyebrow) {
    display: none !important;
  }

  .panel-header h2 {
    font-size: 1.16rem !important;
    line-height: 1.08 !important;
    letter-spacing: 0;
  }

  .panel-header .inline-actions {
    width: auto !important;
    margin-left: auto;
    justify-content: flex-end;
    gap: 7px !important;
    overflow: visible !important;
  }

  .panel-header .inline-actions .field {
    display: none;
  }

  .week-create-button,
  #open-pdf-button,
  #delete-week-button,
  #new-library-exercise-button {
    min-height: 38px !important;
    padding: 8px 11px !important;
    border-radius: 14px !important;
    font-size: 0.76rem !important;
  }

  #delete-week-button {
    display: none;
  }

  .tab-nav {
    right: 10px !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    left: 10px !important;
    min-height: var(--mobile-nav-height) !important;
    max-height: 74px !important;
    padding: 7px !important;
    border-radius: 25px !important;
    background:
      linear-gradient(180deg, rgba(27, 39, 48, 0.96), rgba(10, 17, 22, 0.94)) !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    box-shadow:
      0 24px 64px rgba(0, 0, 0, 0.46),
      inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
    backdrop-filter: blur(22px);
  }

  .tab-button {
    min-height: 54px !important;
    grid-template-rows: 24px 1fr !important;
    gap: 3px !important;
    padding: 7px 2px !important;
    border-radius: 18px !important;
    color: rgba(255, 250, 242, 0.68) !important;
    font-size: 0.6rem !important;
    letter-spacing: 0;
  }

  .tab-button[data-tab="week"] {
    --tab-icon-premium: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 3v3M17 3v3M4 8h16M6 5h12a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E");
  }

  .tab-button[data-tab="session"] {
    --tab-icon-premium: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 9h3v6H3V9Zm4-2h3v10H7V7Zm4 4h2v2h-2v-2Zm3-4h3v10h-3V7Zm4 2h3v6h-3V9Z'/%3E%3C/svg%3E");
  }

  .tab-button[data-tab="history"] {
    --tab-icon-premium: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 19V5M4 19h16M7 15l4-4 3 3 5-8'/%3E%3C/svg%3E");
  }

  .tab-button[data-tab="library"] {
    --tab-icon-premium: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 5h4v14H5zM10 4h4v15h-4zM15 6h4v13h-4zM5 19h14'/%3E%3C/svg%3E");
  }

  .tab-button[data-tab="summary"] {
    --tab-icon-premium: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 3l1.4 4.2L17 8.5l-3.6 1.3L12 14l-1.4-4.2L7 8.5l3.6-1.3L12 3ZM6 18h12M8 21h8'/%3E%3C/svg%3E");
  }

  .tab-button::before {
    content: "" !important;
    width: 25px !important;
    height: 23px !important;
    border-radius: 0 !important;
    background: currentColor !important;
    -webkit-mask: var(--tab-icon-premium) center / 22px 22px no-repeat !important;
    mask: var(--tab-icon-premium) center / 22px 22px no-repeat !important;
    box-shadow: none !important;
  }

  .tab-button.active {
    background:
      linear-gradient(180deg, #fffaf2, #eee4d3) !important;
    color: #17242d !important;
    box-shadow:
      0 10px 22px rgba(0, 0, 0, 0.26),
      inset 0 1px 0 rgba(255, 255, 255, 0.72) !important;
  }

  .tab-button.active::before {
    background:
      linear-gradient(135deg, var(--accent), var(--accent-cool)) !important;
  }

  body[data-active-tab="session"] .panel[data-panel="session"] > .panel-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 12 !important;
    display: flex !important;
    height: auto !important;
    min-height: 48px !important;
    margin: 0 -8px 8px !important;
    padding: max(7px, env(safe-area-inset-top)) 8px 7px !important;
    overflow: visible !important;
    border-radius: 0 0 20px 20px;
    background:
      linear-gradient(180deg, rgba(18, 27, 33, 0.98), rgba(18, 27, 33, 0.84)) !important;
    backdrop-filter: blur(18px);
  }

  body[data-active-tab="session"] #complete-session-button:not(:disabled) {
    position: static !important;
    width: auto !important;
    min-height: 38px !important;
    padding: 8px 11px !important;
    border-radius: 14px !important;
    font-size: 0.75rem !important;
    white-space: nowrap;
  }

  .compact-session-header {
    position: sticky !important;
    top: calc(50px + env(safe-area-inset-top)) !important;
    z-index: 8;
    margin-bottom: 10px;
    padding: 11px 12px !important;
    border-radius: 20px !important;
    background:
      linear-gradient(145deg, rgba(255, 250, 242, 0.97), rgba(237, 229, 216, 0.92)) !important;
    backdrop-filter: blur(20px);
  }

  .session-title-row h3 {
    font-size: 1.02rem !important;
    letter-spacing: 0;
  }

  .session-live-progress {
    margin-top: 6px !important;
  }

  .session-progress-track {
    height: 7px !important;
    background: rgba(23, 36, 45, 0.09);
  }

  .session-progress-track span {
    background:
      linear-gradient(90deg, #2f7f62, #79a86a);
  }

  .exercise-section {
    gap: 9px !important;
  }

  .section-label {
    margin: 4px 2px 0;
    color: rgba(255, 250, 242, 0.64);
    font-size: 0.7rem;
    letter-spacing: 0;
  }

  .exercise-card {
    border-radius: 22px !important;
    overflow: hidden;
  }

  .exercise-card:not([open]) .exercise-summary {
    min-height: 62px !important;
    padding: 10px 11px !important;
  }

  .exercise-card[open] {
    border-color: rgba(244, 122, 40, 0.42) !important;
    background:
      radial-gradient(circle at 0% 0%, rgba(244, 122, 40, 0.12), transparent 32%),
      linear-gradient(180deg, rgba(255, 252, 247, 0.98), rgba(239, 232, 219, 0.95)) !important;
    box-shadow:
      0 24px 54px rgba(0, 0, 0, 0.28),
      inset 0 1px 0 rgba(255, 255, 255, 0.68) !important;
  }

  .exercise-card[open]::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--accent), var(--accent-cool));
  }

  .exercise-thumb.small-thumb {
    border-radius: 16px !important;
    background:
      linear-gradient(145deg, rgba(23, 36, 45, 0.08), rgba(255, 255, 255, 0.72)) !important;
    color: var(--accent-deep);
  }

  .exercise-card[open] .exercise-thumb.small-thumb {
    background:
      linear-gradient(135deg, var(--accent), #d95c18) !important;
    color: #fffaf2 !important;
  }

  .exercise-summary-main h3 {
    font-size: 1rem !important;
    letter-spacing: 0;
  }

  .exercise-compact-line {
    color: rgba(23, 36, 45, 0.58) !important;
  }

  .set-grid {
    gap: 7px !important;
  }

  .set-row {
    border-radius: 16px !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(249, 243, 233, 0.72)) !important;
  }

  .set-row:not([open]) .set-summary {
    min-height: 42px !important;
    padding: 7px 9px !important;
  }

  .set-row[open] {
    border-color: rgba(244, 122, 40, 0.32) !important;
    background:
      linear-gradient(180deg, rgba(255, 253, 248, 0.98), rgba(255, 247, 236, 0.92)) !important;
  }

  .ultra-compact-set-main .set-label {
    min-width: 36px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(23, 36, 45, 0.07);
    color: var(--ink-soft);
    font-size: 0.76rem;
  }

  .set-row-done .ultra-compact-set-main .set-label {
    background: rgba(47, 127, 98, 0.14);
    color: #1e6c54;
  }

  .set-compact-result {
    font-size: 0.84rem !important;
    letter-spacing: 0;
  }

  .set-logged-result {
    font-size: 0.72rem !important;
    letter-spacing: 0;
  }

  .set-plan-reference {
    border-color: rgba(244, 122, 40, 0.16);
    background:
      linear-gradient(135deg, rgba(244, 122, 40, 0.1), rgba(255, 255, 255, 0.58));
  }

  .gym-fields {
    gap: 8px !important;
  }

  .compact-entry-field {
    border-radius: 16px !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(250, 245, 236, 0.76)) !important;
  }

  .inline-stepper .step-button,
  .rir-chips .chip-button,
  .bw-button {
    min-height: 46px !important;
    border-radius: 15px !important;
  }

  .inline-stepper input,
  .rir-control input {
    min-height: 48px !important;
    border-radius: 16px !important;
    font-size: 1.18rem !important;
  }

  .set-row[open] .set-complete-button {
    min-height: 54px !important;
    border-radius: 18px !important;
    font-size: 0.98rem !important;
  }

  .exercise-swipe-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .exercise-swipe-actions .chip-button {
    justify-content: center;
    border-radius: 15px;
  }

  .session-add-exercise-card {
    padding: 8px !important;
    border-radius: 18px !important;
    background: transparent !important;
    border: 1px dashed rgba(255, 250, 242, 0.24) !important;
    box-shadow: none !important;
  }

  .add-exercise-inline-button {
    width: 100%;
    min-height: 42px !important;
    justify-content: center;
    border-radius: 15px !important;
  }

  .week-day-card,
  .library-card,
  .history-exercise-card,
  .history-card,
  .routine-builder-card,
  .routine-builder-item {
    border-radius: 21px !important;
  }

  .week-day-card.active {
    border-color: rgba(244, 122, 40, 0.44) !important;
  }

  .week-day-card.done {
    border-color: rgba(47, 127, 98, 0.38) !important;
  }

  .library-view-tabs {
    position: sticky;
    top: max(8px, env(safe-area-inset-top));
    z-index: 5;
    padding: 5px;
    border-radius: 18px;
    background: rgba(14, 22, 28, 0.82);
    backdrop-filter: blur(18px);
  }

  .library-view-tabs .chip-button.active {
    background: #fffaf2;
    color: var(--ink);
  }

  .history-record-strip,
  .history-record-hero {
    gap: 8px;
  }

  .record-card,
  .history-record-strip span,
  .history-record-hero article {
    border-radius: 17px !important;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.78), rgba(248, 241, 230, 0.76));
  }

  dialog {
    align-items: end;
  }

  .dialog-form {
    position: relative;
    border-radius: 28px 28px 0 0 !important;
    background:
      linear-gradient(180deg, #fffaf2, #efe5d5) !important;
  }

  .dialog-form::before {
    content: "";
    display: block;
    width: 42px;
    height: 5px;
    margin: 0 auto 12px;
    border-radius: 999px;
    background: rgba(23, 36, 45, 0.18);
  }

  #toast {
    bottom: calc(var(--mobile-nav-height) + 14px + env(safe-area-inset-bottom)) !important;
    border-radius: 18px !important;
  }
}

/* v119: restrained visual system and task-first mobile layouts. */
* {
  letter-spacing: 0;
}

html,
body {
  background: var(--bg) !important;
}

body::before {
  display: none !important;
}

.primary-button,
.ghost-button,
.status-button,
.icon-button,
.chip-button {
  min-height: 44px;
  border-radius: 8px !important;
}

.primary-button {
  border: 1px solid #dd5918 !important;
  background: var(--accent) !important;
  box-shadow: 0 8px 18px rgba(200, 75, 13, 0.2) !important;
}

.ghost-button,
.status-button,
.icon-button,
.chip-button {
  border-color: rgba(23, 34, 41, 0.12) !important;
  background: var(--card-strong) !important;
  box-shadow: none !important;
}

.card,
.filter-row,
.session-header,
.exercise-card,
.history-summary-card,
.history-card,
.history-focus-card,
.library-card,
.routine-builder-card,
.session-utility-panel,
.session-closeout,
.empty-state,
.week-summary-panel,
.week-day-card {
  border: 1px solid var(--premium-border) !important;
  border-radius: 8px !important;
  background: var(--premium-surface) !important;
  box-shadow: 0 8px 22px rgba(4, 9, 13, 0.14) !important;
}

.field input,
.field select,
.field textarea,
.builder-mini-field input,
.builder-mini-field select,
.compact-number-field input {
  border-radius: 8px !important;
  background: var(--card-strong) !important;
  box-shadow: none !important;
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.builder-mini-field input:focus,
.builder-mini-field select:focus,
.compact-number-field input:focus {
  border-color: rgba(242, 106, 33, 0.62) !important;
  box-shadow: 0 0 0 3px rgba(242, 106, 33, 0.14) !important;
}

.meta-pill,
.status-pill,
.comparison-pill,
.library-readiness,
.week-day-complete-mark {
  border-radius: 999px !important;
}

.panel-header h2,
.card h3,
.dialog-header h2,
.hero-copy h1 {
  line-height: 1.15 !important;
}

.tab-nav {
  border-radius: 14px !important;
  background: #121c22 !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.34) !important;
}

.tab-button {
  border-radius: 8px !important;
}

.tab-button.active {
  background: rgba(242, 106, 33, 0.14) !important;
  color: #fffdf8 !important;
  box-shadow: inset 0 0 0 1px rgba(242, 106, 33, 0.32) !important;
}

.tab-button.active::before {
  background: var(--accent) !important;
  color: #fffdf8 !important;
  box-shadow: none !important;
}

body[data-active-tab="week"] #week-days.week-overview-surface {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.week-summary-panel,
.week-day-card,
.week-add-day-card,
.week-closeout {
  border-radius: 8px !important;
  background: var(--card) !important;
}

.week-add-day-card {
  border-color: rgba(242, 106, 33, 0.34) !important;
}

.week-add-day-card span {
  background: var(--accent) !important;
}

.exercise-card,
.set-row,
.session-utility-panel,
.session-closeout,
.compact-session-header {
  border-radius: 8px !important;
}

.set-row,
.set-row-done,
.exercise-settings,
.session-active-exercise,
.session-complete-context,
.weight-mode-panel,
.set-plan {
  background: var(--card-strong) !important;
  border-color: rgba(23, 34, 41, 0.1) !important;
}

.exercise-more-actions {
  margin-top: 8px;
  border-top: 1px solid rgba(23, 34, 41, 0.08);
}

.exercise-more-actions > summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-soft);
  cursor: pointer;
  font-family: var(--font-heading);
  list-style: none;
}

.exercise-more-actions > summary::-webkit-details-marker {
  display: none;
}

.exercise-more-actions .exercise-swipe-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 0 12px 12px;
}

.history-filter-bar {
  grid-template-columns: minmax(0, 1fr) !important;
  max-width: 540px;
  padding: 12px !important;
}

.history-list {
  gap: 12px !important;
}

.history-focus-card {
  display: grid;
  gap: 16px;
  padding: 18px;
}

.history-focus-header,
.history-focus-status,
.history-session-row-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.history-focus-header h3 {
  margin: 3px 0 0;
  font-family: var(--font-heading);
  font-size: 1.2rem;
}

.history-focus-header .eyebrow {
  margin: 0;
  color: var(--ink-soft);
}

.history-focus-status {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.history-key-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(23, 34, 41, 0.1);
  border-radius: 8px;
  background: rgba(23, 34, 41, 0.1);
}

.history-key-values > span {
  min-width: 0;
  padding: 12px;
  background: var(--card-strong);
}

.history-key-values small,
.history-key-values strong {
  display: block;
}

.history-key-values small {
  margin-bottom: 5px;
  color: var(--ink-soft);
}

.mini-chart-card.weight-chart-card {
  margin: 0 !important;
  padding: 16px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(23, 34, 41, 0.1) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.chart-value-strip {
  gap: 1px !important;
  overflow: hidden;
  border: 1px solid rgba(23, 34, 41, 0.08);
  border-radius: 8px;
  background: rgba(23, 34, 41, 0.08);
}

.chart-value-strip > span {
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--card-strong) !important;
  box-shadow: none !important;
}

.weight-history-strip {
  display: flex !important;
  gap: 8px !important;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: none;
}

.weight-history-strip > span {
  flex: 0 0 126px;
  min-width: 0;
  border: 1px solid rgba(23, 34, 41, 0.09) !important;
  border-radius: 8px !important;
  background: var(--card-strong) !important;
  box-shadow: none !important;
}

.history-empty-chart {
  margin: 0;
  padding: 14px;
  border: 1px dashed rgba(47, 118, 108, 0.28);
  border-radius: 8px;
  color: var(--ink-soft);
}

.history-session-browser {
  overflow: hidden;
  border: 1px solid var(--premium-border);
  border-radius: 8px;
  background: var(--card);
}

.history-session-browser > summary,
.library-filter-disclosure > summary,
.library-card-detail > summary,
.summary-help-panel > summary,
.week-import-advanced > summary,
.summary-comparison-detail > summary,
.history-plan-detail > summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  color: var(--ink);
  cursor: pointer;
  font-family: var(--font-heading);
  list-style: none;
}

.history-session-browser summary::-webkit-details-marker,
.library-filter-disclosure summary::-webkit-details-marker,
.library-card-detail summary::-webkit-details-marker,
.summary-help-panel summary::-webkit-details-marker,
.week-import-advanced summary::-webkit-details-marker,
.summary-comparison-detail summary::-webkit-details-marker,
.history-plan-detail summary::-webkit-details-marker,
.library-card-menu summary::-webkit-details-marker {
  display: none;
}

.history-session-browser > summary small,
.library-filter-disclosure > summary small {
  color: var(--ink-soft);
}

.history-session-list {
  border-top: 1px solid rgba(23, 34, 41, 0.09);
}

.history-session-row {
  padding: 14px;
  border-bottom: 1px solid rgba(23, 34, 41, 0.08);
}

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

.history-session-row-heading span,
.history-session-row-heading small,
.history-session-row-heading strong {
  display: block;
}

.history-session-row-heading small,
.history-session-row > p,
.history-plan-detail p {
  color: var(--ink-soft);
}

.history-session-row > p {
  margin: 8px 0 0;
  line-height: 1.45;
}

.history-session-note {
  color: var(--ink) !important;
}

.history-plan-detail {
  margin-top: 6px;
}

.history-plan-detail > summary {
  padding-inline: 0;
  color: var(--accent-deep);
}

.history-plan-detail > div {
  padding: 0 0 6px;
}

.library-muscle-chip-row {
  flex-wrap: wrap !important;
  overflow: visible !important;
  mask-image: none !important;
}

.library-muscle-chip {
  flex: 0 0 auto;
  border-radius: 999px !important;
}

.library-catalog-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  color: rgba(255, 253, 248, 0.72);
}

.library-filter-disclosure[open] {
  grid-column: 1 / -1;
}

.library-filter-disclosure > summary {
  min-width: 116px;
  padding: 9px 11px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 8px;
  background: #172128;
  color: #fffdf8;
}

.library-filter-disclosure > summary small {
  color: rgba(255, 253, 248, 0.58);
}

.library-filter-dock {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-top: 10px;
  padding: 12px !important;
  overflow: visible !important;
  border-radius: 8px !important;
  background: var(--card) !important;
}

.library-filter-field {
  min-width: 0 !important;
}

.library-filter-field select {
  width: 100% !important;
  min-height: 44px !important;
  border-radius: 8px !important;
}

.library-clear-filter {
  align-self: end;
}

.library-card-header {
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: start !important;
}

.library-card-actions {
  grid-column: 1 / -1;
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) minmax(0, 1fr) 44px;
  gap: 8px !important;
}

.library-card-actions > .chip-button,
.library-card-menu > summary {
  width: 100% !important;
  min-height: 44px !important;
}

.library-card-menu {
  position: relative;
}

.library-card-menu > summary {
  display: grid;
  place-items: center;
  border: 1px solid rgba(23, 34, 41, 0.12);
  border-radius: 8px;
  background: var(--card-strong);
  color: var(--ink);
  cursor: pointer;
  font-family: var(--font-heading);
}

.library-card-menu > div {
  position: absolute;
  right: 0;
  bottom: calc(100% + 6px);
  z-index: 8;
  width: 154px;
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(23, 34, 41, 0.12);
  border-radius: 8px;
  background: var(--card-strong);
  box-shadow: 0 12px 28px rgba(4, 9, 13, 0.22);
}

.library-card-detail {
  margin-top: 6px;
  border-top: 1px solid rgba(23, 34, 41, 0.08);
}

.library-card-detail > summary {
  padding-inline: 0;
  color: var(--ink-soft);
}

.library-card-detail > div {
  display: grid;
  gap: 7px;
  padding-bottom: 8px;
}

.library-card-detail p {
  margin: 0;
}

.summary-grid {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px !important;
}

.summary-preview-card {
  padding: 18px !important;
}

.summary-preview-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(23, 34, 41, 0.09);
}

.summary-preview-heading span {
  color: var(--ink-soft);
  font-size: 0.78rem;
}

.summary-preview {
  max-height: 58vh;
  overflow-y: auto;
  padding: 14px 4px 4px;
  scrollbar-width: thin;
}

.summary-preview h3,
.summary-preview h4,
.summary-preview p {
  margin: 0;
}

.summary-preview h3,
.summary-preview h4 {
  font-family: var(--font-heading);
}

.summary-preview h3 {
  font-size: 1.1rem;
}

.summary-preview h4 {
  margin-top: 14px;
  font-size: 0.95rem;
}

.summary-preview p {
  margin-top: 7px;
  color: var(--ink-soft);
  line-height: 1.5;
}

.summary-preview-space {
  display: block;
  height: 7px;
}

.summary-preview-bullet {
  position: relative;
  padding-left: 16px;
}

.summary-preview-bullet::before {
  content: "";
  position: absolute;
  top: 0.62em;
  left: 2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
}

.summary-preview-set {
  padding: 8px 10px;
  border-left: 3px solid rgba(47, 118, 108, 0.54);
  background: rgba(47, 118, 108, 0.06);
  color: var(--ink) !important;
}

.summary-preview-stat {
  display: inline-flex;
  margin: 8px 8px 0 0;
  padding: 7px 9px;
  border-radius: 999px;
  background: rgba(47, 125, 87, 0.1);
  color: #226348;
}

.summary-comparison-detail {
  margin-top: 8px;
  border-bottom: 1px solid rgba(23, 34, 41, 0.08);
}

.summary-comparison-detail > summary {
  padding-inline: 0;
  color: var(--accent-deep);
}

.summary-comparison-detail > p {
  padding-bottom: 10px;
}

.summary-preview-empty {
  padding: 22px 8px;
  text-align: center;
}

.summary-help-panel {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 8px;
  background: #172128;
  color: #fffdf8;
}

.summary-help-panel > summary {
  color: #fffdf8;
}

.summary-help-panel > div {
  padding: 0 12px 12px;
}

.summary-help-panel p {
  color: rgba(255, 253, 248, 0.68);
}

.summary-help-panel pre {
  overflow-x: auto;
  border-radius: 8px;
  background: #0f171d;
}

.dialog-form {
  border-radius: 16px !important;
  background: var(--card) !important;
  box-shadow: 0 22px 56px rgba(0, 0, 0, 0.32) !important;
}

.dialog-close-button {
  width: 44px;
  min-width: 44px;
  padding: 0 !important;
  font-size: 1.45rem !important;
  line-height: 1;
}

.week-import-methods {
  display: grid;
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid rgba(23, 34, 41, 0.08);
  border-bottom: 1px solid rgba(23, 34, 41, 0.08);
}

.week-import-methods strong,
.week-import-methods p {
  display: block;
  margin: 0;
}

.week-import-methods p {
  margin-top: 3px;
  color: var(--ink-soft);
}

.week-import-actions,
.week-example-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.week-import-advanced {
  border-top: 1px solid rgba(23, 34, 41, 0.08);
  border-bottom: 1px solid rgba(23, 34, 41, 0.08);
}

.week-import-advanced > summary {
  padding-inline: 0;
}

.week-import-advanced > div {
  display: grid;
  gap: 12px;
  padding: 0 0 12px;
}

.week-import-advanced p {
  margin: 0;
}

@media (max-width: 760px) {
  html {
    font-size: 15px !important;
  }

  .app-shell {
    width: min(100vw - 16px, 430px) !important;
  }

  .panel-header h2 {
    font-size: 1.12rem !important;
  }

  .week-create-button,
  #open-pdf-button,
  #new-library-exercise-button,
  body[data-active-tab="session"] #complete-session-button:not(:disabled),
  .set-complete-button {
    min-height: 44px !important;
    border-radius: 8px !important;
  }

  .tab-nav {
    min-height: 70px !important;
    max-height: 76px !important;
    padding: 7px !important;
  }

  .tab-button {
    min-height: 56px !important;
    border-radius: 8px !important;
    font-size: 0.72rem !important;
  }

  .history-focus-card {
    padding: 14px;
  }

  .history-focus-header {
    align-items: flex-start;
  }

  .history-focus-status {
    max-width: 142px;
  }

  .history-key-values {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mini-chart {
    min-height: 132px;
  }

  .library-muscle-filter-card {
    padding: 14px !important;
    border-radius: 8px !important;
  }

  .library-filter-dock {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .library-clear-filter {
    grid-column: 1 / -1;
  }

  .library-card {
    padding: 14px !important;
  }

  .library-card-header {
    gap: 10px !important;
  }

  .library-card-actions {
    grid-template-columns: 44px minmax(0, 1fr) minmax(0, 1fr) 44px !important;
  }

  body[data-active-tab="summary"] .panel[data-panel="summary"] > .panel-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
  }

  .summary-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 8px !important;
    margin: 0 !important;
  }

  .summary-actions .summary-more-actions {
    grid-column: 1 / -1;
  }

  .summary-more-actions > summary {
    width: 100%;
    min-height: 44px;
    border-radius: 8px !important;
  }

  .summary-preview-card {
    padding: 14px !important;
  }

  .summary-preview {
    max-height: 60vh;
  }

  dialog {
    border-radius: 16px 16px 0 0 !important;
  }

  .dialog-form {
    max-height: calc(100dvh - 12px) !important;
    overflow-y: auto !important;
    border-radius: 16px 16px 0 0 !important;
  }

  .dialog-grid {
    gap: 14px !important;
  }

  .week-import-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .week-import-actions #paste-clipboard-button {
    grid-column: 1 / -1;
  }

  .week-example-actions {
    grid-template-columns: 1fr;
  }

  #week-source-input {
    min-height: 170px;
  }

  .dialog-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr) !important;
    gap: 8px !important;
  }

  .dialog-actions > * {
    width: 100% !important;
  }
}

@media (max-width: 390px) {
  .app-shell {
    width: min(100vw - 12px, 430px) !important;
  }

  .tab-button {
    font-size: 0.55rem !important;
  }

  .exercise-summary {
    grid-template-columns: 38px minmax(0, 1fr) auto !important;
  }

  .inline-stepper .step-button,
  .rir-chips .chip-button,
  .bw-button {
    min-height: 42px !important;
    padding-inline: 7px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Session v108: compact active-exercise context in the progress header. */
@media (max-width: 760px) {
  body[data-active-tab="session"] .panel[data-panel="session"] > .panel-header {
    display: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body[data-active-tab="session"] .compact-session-header {
    top: max(8px, env(safe-area-inset-top)) !important;
    z-index: 16 !important;
    margin-bottom: 12px !important;
  }

  body[data-active-tab="session"].session-scrolled .compact-session-header {
    top: max(8px, env(safe-area-inset-top)) !important;
  }

  body[data-active-tab="session"] .set-row-footer .set-complete-button {
    display: inline-flex !important;
  }

  body[data-active-tab="session"] .session-active-exercise {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 32px;
    padding: 6px 9px;
    border: 1px solid rgba(47, 127, 98, 0.12);
    border-radius: 14px;
    background:
      linear-gradient(135deg, rgba(47, 127, 98, 0.08), rgba(255, 255, 255, 0.52));
    color: #173a34;
  }

  body[data-active-tab="session"] .session-active-exercise span,
  body[data-active-tab="session"] .session-active-exercise small {
    color: rgba(23, 58, 52, 0.62);
    font-family: var(--font-heading);
    font-size: 0.68rem;
    white-space: nowrap;
  }

  body[data-active-tab="session"] .session-active-exercise strong {
    min-width: 0;
    overflow: hidden;
    font-family: var(--font-heading);
    font-size: 0.82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body[data-active-tab="session"].session-scrolled .session-active-exercise {
    min-height: 28px;
    padding-block: 4px;
  }

  body[data-active-tab="session"].session-scrolled .session-active-exercise span {
    display: none;
  }

  body[data-active-tab="session"].session-scrolled .session-active-exercise {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  body[data-active-tab="session"] .set-plan-reference span {
    letter-spacing: 0;
  }
}

/* v119 final safeguards: keep collapsed content hidden and all controls touch-safe. */
details:not([open]) > :not(summary) {
  display: none !important;
}

* {
  letter-spacing: 0;
}

@media (max-width: 760px) {
  .status-button,
  .library-view-tabs .chip-button,
  .library-muscle-chip,
  .library-clear-filter,
  .library-card-menu .chip-button,
  .inline-stepper .step-button,
  .rir-chips .chip-button,
  .bw-button,
  .set-note-panel > summary,
  .weight-mode-panel > summary,
  .weight-mode-strip .chip-button {
    min-height: 44px !important;
    border-radius: 8px !important;
  }

  .inline-stepper .step-button {
    width: 52px !important;
    min-width: 52px !important;
  }

  body[data-active-tab="session"] .session-active-exercise {
    border-radius: 8px !important;
    background: var(--card-strong) !important;
  }
}

/* v121: mobile-first workflow polish. Desktop keeps the existing composition. */
.mobile-week-actions,
.builder-advanced-fields,
.builder-advanced-grid {
  display: contents;
}

.mobile-week-actions > summary,
.builder-advanced-fields > summary,
.mobile-next-day-label,
.mobile-session-label,
.mobile-exercise-change,
.mobile-library-readiness,
.mobile-library-action-label,
.mobile-builder-catalog-button,
.mobile-history-delta,
.mobile-summary-snapshot,
.mobile-extra-source-field {
  display: none;
}

@media (max-width: 760px) {
  :root {
    --ink-soft: #4f5c63;
  }

  .desktop-session-label,
  .desktop-library-action-label,
  .desktop-summary-readable {
    display: none !important;
  }

  .mobile-session-label,
  .mobile-library-action-label {
    display: inline;
  }

  .app-shell {
    padding-bottom: calc(var(--mobile-nav-height) + 92px + env(safe-area-inset-bottom)) !important;
  }

  #toast {
    bottom: calc(var(--mobile-nav-height) + 28px + env(safe-area-inset-bottom)) !important;
    max-width: calc(100vw - 28px);
  }

  /* Week: one next-session signal and a compact management menu. */
  .mobile-week-actions {
    position: relative;
    display: block;
  }

  .mobile-week-actions > summary {
    width: 40px;
    min-width: 40px;
    min-height: 40px;
    display: grid;
    place-items: center;
    padding: 0 !important;
    list-style: none;
    cursor: pointer;
  }

  .mobile-week-actions > summary::-webkit-details-marker {
    display: none;
  }

  .mobile-week-actions > div {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 18;
    width: min(220px, calc(100vw - 28px));
    gap: 6px;
    padding: 8px;
    border: 1px solid rgba(23, 34, 41, 0.13);
    border-radius: 8px;
    background: var(--card-strong);
    box-shadow: 0 16px 34px rgba(4, 9, 13, 0.28);
  }

  .mobile-week-actions[open] > div {
    display: grid !important;
  }

  .mobile-week-actions > div > button,
  .mobile-week-actions #delete-week-button {
    width: 100%;
    min-height: 44px !important;
    display: inline-flex !important;
    justify-content: flex-start;
    padding: 9px 11px !important;
    font-size: 0.82rem !important;
  }

  .mobile-week-actions #delete-week-button {
    color: #9a3b32;
  }

  .week-summary-panel:not(.week-summary-panel-complete) {
    display: none !important;
  }

  .week-day-card.week-next-day {
    border-color: rgba(242, 106, 33, 0.56) !important;
    box-shadow: inset 3px 0 0 var(--accent), 0 8px 22px rgba(4, 9, 13, 0.14) !important;
  }

  .mobile-next-day-label {
    width: max-content;
    display: inline-flex;
    margin-top: 4px;
    color: var(--accent-deep);
    font-family: var(--font-heading);
    font-size: 0.68rem;
  }

  .week-compact-exercises li {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .week-compact-exercises li > span {
    display: none !important;
  }

  .week-add-day-card {
    grid-template-columns: 34px minmax(0, 1fr) !important;
    gap: 8px !important;
    padding: 9px 11px !important;
  }

  .week-add-day-card span {
    width: 34px !important;
    height: 34px !important;
  }

  .week-add-day-card small {
    display: none;
  }

  .week-closeout-card p {
    display: none;
  }

  /* Session: clearer close state and useful feedback, without touching an open set editor. */
  .compact-session-header .status-pill,
  .compact-session-action {
    white-space: nowrap;
  }

  .exercise-meta.compact-meta {
    display: none !important;
  }

  .mobile-exercise-change {
    width: max-content;
    max-width: 100%;
    display: block;
    margin: 4px 0 0;
    overflow: hidden;
    color: var(--ink-soft);
    font-size: 0.72rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-exercise-change.better {
    color: #226348;
  }

  .mobile-exercise-change.worse {
    color: #9a3b32;
  }

  .session-closeout-compact {
    display: none !important;
  }

  .mobile-session-feedback-dialog .dialog-form {
    gap: 18px;
    padding-bottom: calc(16px + env(safe-area-inset-bottom));
  }

  .mobile-feedback-group {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .mobile-feedback-group legend {
    margin-bottom: 8px;
    color: var(--ink);
    font-family: var(--font-heading);
    font-size: 0.82rem;
  }

  .mobile-feedback-segments {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .mobile-feedback-segments-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mobile-feedback-segments label {
    min-width: 0;
  }

  .mobile-feedback-segments input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }

  .mobile-feedback-segments span {
    min-height: 46px;
    display: grid;
    place-items: center;
    padding: 8px 6px;
    border: 1px solid rgba(23, 34, 41, 0.13);
    border-radius: 8px;
    background: var(--card-strong);
    color: var(--ink-soft);
    font-family: var(--font-heading);
    font-size: 0.76rem;
    text-align: center;
  }

  .mobile-feedback-segments input:checked + span {
    border-color: rgba(242, 106, 33, 0.68);
    background: rgba(242, 106, 33, 0.11);
    color: var(--accent-deep);
    box-shadow: inset 0 0 0 1px rgba(242, 106, 33, 0.2);
  }

  .mobile-feedback-summary {
    padding: 10px 11px;
    border-left: 3px solid var(--accent-cool);
    background: rgba(47, 118, 108, 0.08);
    color: var(--ink-soft);
    line-height: 1.4;
  }

  /* Library and builder: dense controls, progressive disclosure. */
  body[data-active-tab="library"] .panel[data-panel="library"] > .filter-row {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr) !important;
    gap: 8px !important;
    padding: 10px !important;
  }

  body[data-active-tab="library"] .panel[data-panel="library"] > .filter-row .field span {
    margin-bottom: 4px;
    font-size: 0.68rem;
  }

  body[data-active-tab="library"] .panel[data-panel="library"] > .filter-row input,
  body[data-active-tab="library"] .panel[data-panel="library"] > .filter-row select {
    min-height: 42px !important;
    padding-inline: 9px !important;
    font-size: 0.78rem;
  }

  .library-muscle-filter-card {
    display: none !important;
  }

  .library-view-tabs {
    top: max(6px, env(safe-area-inset-top));
    padding: 4px !important;
    border-radius: 8px !important;
  }

  .library-catalog-toolbar {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    font-size: 0.75rem;
  }

  .library-filter-disclosure > summary {
    min-width: 94px;
    min-height: 40px;
    padding: 7px 9px;
  }

  .library-filter-disclosure > summary small {
    font-size: 0;
  }

  .library-filter-disclosure > summary small[data-filter-count]:not([data-filter-count="0"])::after {
    content: attr(data-filter-count);
    min-width: 20px;
    height: 20px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(242, 106, 33, 0.18);
    color: #fffdf8;
    font-size: 0.68rem;
  }

  .library-filter-disclosure > summary small[data-filter-count="0"] {
    display: none;
  }

  .library-filter-dock {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 10px !important;
  }

  .library-card {
    padding: 11px !important;
  }

  .library-card-header {
    gap: 9px !important;
  }

  .library-readiness.ready {
    display: none !important;
  }

  .library-readiness.needs-work {
    display: none !important;
  }

  .mobile-library-readiness {
    display: inline-flex;
    color: #9a3b32;
    font-size: 0.7rem;
    font-weight: 700;
  }

  .library-chip-row .subtle-pill:nth-of-type(n + 3) {
    display: none;
  }

  .library-card-actions {
    grid-template-columns: 42px minmax(0, 0.9fr) minmax(0, 1.1fr) 42px !important;
    gap: 6px !important;
  }

  .library-card-actions > .chip-button,
  .library-card-menu > summary {
    min-height: 42px !important;
    padding-inline: 7px !important;
    font-size: 0.74rem;
  }

  .mobile-builder-catalog-button {
    width: 100%;
    display: inline-flex;
    justify-content: center;
    margin-top: 12px;
  }

  .routine-builder-empty .builder-toolbar {
    display: none !important;
  }

  .routine-builder-empty .routine-builder-header > .primary-button {
    display: none !important;
  }

  .routine-builder-item {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 11px !important;
  }

  .routine-builder-item > .builder-exercise-title,
  .routine-builder-item > .builder-order-actions {
    grid-column: 1 / -1 !important;
  }

  .builder-advanced-fields {
    grid-column: 1 / -1;
    display: block;
    overflow: hidden;
    border-top: 1px solid rgba(23, 34, 41, 0.09);
  }

  .builder-advanced-fields > summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--ink-soft);
    cursor: pointer;
    font-family: var(--font-heading);
    font-size: 0.78rem;
    list-style: none;
  }

  .builder-advanced-fields > summary::after {
    content: "+";
    font-size: 1rem;
  }

  .builder-advanced-fields[open] > summary::after {
    content: "−";
  }

  .builder-advanced-fields > summary::-webkit-details-marker {
    display: none;
  }

  .builder-advanced-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding-bottom: 8px;
  }

  .builder-advanced-grid .builder-wide-field {
    grid-column: 1 / -1;
  }

  .routine-builder-item > .icon-button {
    width: 44px !important;
    min-width: 44px !important;
  }

  .routine-builder-item > .icon-button:nth-last-child(2) {
    justify-self: end;
  }

  .routine-builder-item > .icon-button:last-child {
    justify-self: start;
  }

  /* History: compare with the previous workout and avoid clipped strips. */
  .mobile-history-delta {
    display: grid;
    gap: 3px;
    margin: 0;
    padding: 10px 11px;
    border-left: 3px solid var(--accent-cool);
    background: rgba(47, 118, 108, 0.08);
  }

  .mobile-history-delta span {
    color: var(--ink-soft);
    font-size: 0.68rem;
  }

  .mobile-history-delta strong {
    color: var(--ink);
    font-size: 0.86rem;
  }

  .mobile-history-delta.better {
    border-left-color: var(--success);
  }

  .mobile-history-delta.worse {
    border-left-color: #a64135;
  }

  .history-key-values {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .history-key-values > span:nth-child(2),
  .chart-value-strip,
  .history-focus-status .meta-pill {
    display: none !important;
  }

  .weight-history-strip {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible !important;
  }

  .weight-history-strip > span {
    width: auto !important;
    min-width: 0 !important;
  }

  .weight-history-strip > span:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  /* Summary: actionable snapshot first, full prompt on demand. */
  .mobile-summary-snapshot {
    display: grid;
    gap: 12px;
  }

  .summary-preview {
    max-height: none !important;
    overflow: visible !important;
    padding-inline: 0 !important;
  }

  .mobile-summary-lead {
    display: grid;
    gap: 3px;
    padding: 11px;
    border-left: 3px solid var(--accent-cool);
    background: rgba(47, 118, 108, 0.08);
  }

  .mobile-summary-lead span,
  .mobile-summary-metrics small {
    color: var(--ink-soft);
    font-size: 0.7rem;
  }

  .mobile-summary-lead strong {
    font-size: 1rem;
  }

  .mobile-summary-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(23, 34, 41, 0.1);
    border-radius: 8px;
    background: rgba(23, 34, 41, 0.1);
  }

  .mobile-summary-metrics > span {
    min-width: 0;
    display: grid;
    gap: 4px;
    padding: 10px 7px;
    background: var(--card-strong);
    text-align: center;
  }

  .mobile-summary-metrics strong,
  .mobile-summary-metrics small {
    display: block;
    overflow-wrap: anywhere;
  }

  .mobile-summary-full {
    overflow: hidden;
    border: 1px solid rgba(23, 34, 41, 0.1);
    border-radius: 8px;
  }

  .mobile-summary-full > summary {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 11px;
    color: var(--accent-deep);
    cursor: pointer;
    font-family: var(--font-heading);
    list-style: none;
  }

  .mobile-summary-full > summary::after {
    content: "+";
  }

  .mobile-summary-full[open] > summary::after {
    content: "−";
  }

  .mobile-summary-full > summary::-webkit-details-marker {
    display: none;
  }

  .mobile-summary-full > div {
    max-height: 52vh;
    overflow-y: auto;
    padding: 0 11px 12px;
  }

  /* Import and edit sheets: essential fields first, actions within thumb reach. */
  #week-dialog:not(.has-week-source):not(.manual-week-source) .week-source-field {
    display: none !important;
  }

  #week-dialog.has-week-source .week-source-field,
  #week-dialog.manual-week-source .week-source-field {
    display: grid !important;
  }

  .week-import-methods > div:first-child p {
    display: none;
  }

  .week-import-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #import-week-file-button {
    order: 1;
  }

  #paste-clipboard-button {
    order: 2;
    grid-column: auto !important;
  }

  #copy-compact-prompt-button {
    order: 3;
    grid-column: 1 / -1;
  }

  #week-source-input {
    min-height: 138px !important;
  }

  .mobile-extra-source-field {
    display: grid;
  }

  .dialog-header > .icon-button {
    width: 44px;
    min-width: 44px;
    padding: 0 !important;
    font-size: 0 !important;
  }

  .dialog-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: start !important;
    gap: 10px !important;
  }

  .dialog-header > .icon-button {
    grid-column: 2;
    grid-row: 1;
  }

  .dialog-header > .icon-button::before {
    content: "×";
    font-size: 1.35rem;
    line-height: 1;
  }

  .dialog-actions {
    position: sticky;
    bottom: 0;
    z-index: 4;
    margin: 4px -4px -4px;
    padding: 8px 4px calc(4px + env(safe-area-inset-bottom));
    background: rgba(247, 245, 239, 0.96);
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-name-input) {
    order: 1;
    grid-column: 1 / -1;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-muscle-input) {
    order: 2;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-secondary-muscle-input) {
    order: 3;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-equipment-input) {
    order: 4;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-laterality-input) {
    order: 5;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-weight-mode-input) {
    order: 6;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-increment-input) {
    order: 7;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-rest-input) {
    order: 8;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-image-input) {
    order: 9;
  }

  #exercise-meta-dialog .dialog-grid > label:has(#exercise-meta-notes-input) {
    order: 10;
    grid-column: 1 / -1;
  }

  #replace-exercise-dialog[data-mode="add"] .add-exercise-config:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
    padding: 10px;
  }

  #replace-exercise-dialog[data-mode="add"] .add-exercise-config > div {
    grid-column: 1 / -1;
  }

  .replace-exercise-option.selected-option {
    border-color: rgba(242, 106, 33, 0.68) !important;
    background: rgba(242, 106, 33, 0.1) !important;
    box-shadow: inset 3px 0 0 var(--accent);
  }

  .mobile-confirm-add-exercise:not(.hidden) {
    display: inline-flex;
    justify-content: center;
  }
}

/* v124: RIR is a quick mobile selector; manual entry stays available through Otro. */
.rir-other-button {
  display: none !important;
}

@media (max-width: 760px) {
  body[data-active-tab="session"] .set-row[open] .rir-entry-field {
    grid-template-columns: 24px minmax(0, 1fr) !important;
    gap: 4px !important;
    align-items: center;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field > span {
    align-self: center;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field .rir-control {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 5px !important;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field .rir-manual-input {
    display: none;
    order: 2;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field.manual-rir-open .rir-manual-input,
  body[data-active-tab="session"] .set-row[open] .rir-entry-field.has-custom-effort .rir-manual-input {
    display: block;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field.manual-rir-open > span,
  body[data-active-tab="session"] .set-row[open] .rir-entry-field.has-custom-effort > span {
    align-self: start;
    margin-top: 15px;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field .rir-chips {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 1px !important;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field .rir-chips .chip-button {
    min-width: 0 !important;
    min-height: 44px !important;
    padding-inline: 1px !important;
    font-size: 0.72rem;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field .rir-chips .chip-button.active {
    border-color: #245e56 !important;
    background: #2f766c !important;
    color: #fffdf8 !important;
    font-weight: 700;
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, 0.2),
      0 3px 8px rgba(25, 72, 66, 0.22) !important;
  }

  body[data-active-tab="session"] .set-row[open] .rir-entry-field .rir-other-button {
    display: inline-flex !important;
  }
}

@media (max-width: 370px) {
  body[data-active-tab="session"] .set-row[open] .rir-entry-field {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 5px !important;
  }
}

/* v125: mobile session cleanup without changing the desktop composition. */
.mobile-session-progress-label,
.mobile-exercise-compact-line,
.mobile-weight-input-label,
.mobile-weight-mode-panel,
.mobile-set-note-panel,
.mobile-set-reference-label,
.mobile-set-comparison-label {
  display: none;
}

@media (max-width: 760px) {
  body[data-active-tab="session"] .desktop-session-progress-label,
  body[data-active-tab="session"] .desktop-exercise-compact-line,
  body[data-active-tab="session"] .desktop-weight-input-label,
  body[data-active-tab="session"] .desktop-weight-mode-panel,
  body[data-active-tab="session"] .desktop-set-note-panel,
  body[data-active-tab="session"] .desktop-set-reference-label,
  body[data-active-tab="session"] .desktop-set-comparison-label {
    display: none !important;
  }

  body[data-active-tab="session"] .mobile-session-progress-label,
  body[data-active-tab="session"] .mobile-exercise-compact-line,
  body[data-active-tab="session"] .mobile-weight-input-label,
  body[data-active-tab="session"] .mobile-set-reference-label,
  body[data-active-tab="session"] .mobile-set-comparison-label {
    display: inline !important;
  }

  body[data-active-tab="session"] .mobile-weight-mode-panel,
  body[data-active-tab="session"] .mobile-set-note-panel {
    display: block;
  }

  body[data-active-tab="session"] .compact-session-header {
    gap: 4px 8px !important;
    margin-bottom: 8px !important;
    padding: 7px 9px !important;
  }

  body[data-active-tab="session"] .compact-session-header .eyebrow,
  body[data-active-tab="session"] .compact-session-header .session-title-row > div > span,
  body[data-active-tab="session"] .compact-session-header .session-title-row > .status-pill {
    display: none !important;
  }

  body[data-active-tab="session"] .compact-session-header .session-title-row {
    min-height: 40px;
    align-items: center !important;
  }

  body[data-active-tab="session"] .compact-session-header .session-title-row h3 {
    font-size: 0.86rem !important;
  }

  body[data-active-tab="session"] .compact-session-action {
    min-height: 40px !important;
    border-color: rgba(35, 53, 61, 0.16) !important;
    background: rgba(255, 253, 248, 0.86) !important;
    color: #33444a !important;
    font-weight: 700 !important;
  }

  body[data-active-tab="session"] .session-live-progress {
    gap: 3px !important;
  }

  body[data-active-tab="session"] .session-progress-track {
    height: 5px !important;
  }

  body[data-active-tab="session"] .session-active-exercise {
    min-height: 28px !important;
    padding: 4px 8px !important;
  }

  body[data-active-tab="session"] .exercise-section > .section-label,
  body[data-active-tab="session"] .collapsible-exercise .exercise-meta.compact-meta {
    display: none !important;
  }

  body[data-active-tab="session"] .collapsible-exercise:not([open]) .exercise-summary {
    min-height: 68px !important;
    align-items: center !important;
    padding: 8px 10px !important;
  }

  body[data-active-tab="session"] .collapsible-exercise:not([open]) .exercise-summary-main {
    display: grid;
    gap: 3px;
  }

  body[data-active-tab="session"] .collapsible-exercise:not([open]) .exercise-compact-line,
  body[data-active-tab="session"] .collapsible-exercise:not([open]) .mobile-exercise-change {
    margin: 0 !important;
  }

  body[data-active-tab="session"] .collapsible-exercise:not([open]) .mobile-exercise-change {
    font-size: 0.7rem;
    line-height: 1.2;
  }

  body[data-active-tab="session"] .mobile-weight-mode-panel {
    margin: 0 !important;
    border-radius: 8px !important;
  }

  body[data-active-tab="session"] .set-row[open] .set-row-footer {
    grid-template-columns: 44px minmax(0, 1fr) !important;
    gap: 8px !important;
    align-items: start !important;
  }

  body[data-active-tab="session"] .set-row[open] .mobile-set-note-panel {
    width: 44px;
    min-width: 44px;
    grid-column: 1 !important;
    margin: 0;
    overflow: visible;
    border-radius: 8px;
    background: rgba(255, 253, 248, 0.88);
  }

  body[data-active-tab="session"] .set-row[open] .mobile-set-note-panel > summary {
    width: 44px;
    min-width: 44px;
    min-height: 54px !important;
    display: grid;
    place-items: center;
    padding: 0 !important;
    color: #526168;
    font-size: 1.22rem !important;
  }

  body[data-active-tab="session"] .set-row[open] .mobile-set-note-panel.has-note > summary {
    background: rgba(47, 118, 108, 0.12);
    color: #245e56;
  }

  body[data-active-tab="session"] .set-row[open] .mobile-set-note-panel[open] {
    width: 100%;
    grid-column: 1 / -1 !important;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 8px;
    border: 0;
    background: transparent;
  }

  body[data-active-tab="session"] .set-row[open] .mobile-set-note-panel .set-note-field {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    background: transparent !important;
  }

  body[data-active-tab="session"] .set-row[open] .mobile-set-note-panel .set-note-field > span {
    display: none;
  }

  body[data-active-tab="session"] .set-row[open] .mobile-set-note-panel .set-note-field input {
    min-height: 54px !important;
  }

  body[data-active-tab="session"] .set-row[open] .set-complete-button {
    grid-column: 2;
  }

  body[data-active-tab="session"] .set-row[open] .mobile-set-note-panel[open] + .set-complete-button {
    grid-column: 1 / -1;
  }

  .mobile-session-feedback-dialog .mobile-feedback-segments input:checked + span {
    border-color: #245e56 !important;
    background: #2f766c !important;
    color: #fffdf8 !important;
    font-weight: 700;
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, 0.2),
      0 3px 8px rgba(25, 72, 66, 0.2) !important;
  }

  .mobile-session-feedback-dialog .mobile-feedback-segments input:focus-visible + span {
    outline: 3px solid rgba(47, 118, 108, 0.24);
    outline-offset: 2px;
  }

  .mobile-session-feedback-dialog .field > span {
    margin-bottom: 6px;
  }

  .mobile-feedback-summary.has-pending-sets {
    border-left-color: #c84b0d;
    background: rgba(242, 106, 33, 0.1);
    color: #6d381d;
    font-weight: 650;
  }
}

/* v126: clearer mobile steppers without competing with completion states. */
@media (max-width: 760px) {
  body[data-active-tab="session"] .set-row[open] .inline-stepper .step-button {
    border-color: #b8cec9 !important;
    background: #e5efec !important;
    color: #245e56 !important;
    font-weight: 700;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.72),
      0 1px 2px rgba(35, 53, 61, 0.08) !important;
    transition:
      background-color 120ms ease,
      border-color 120ms ease,
      color 120ms ease,
      transform 80ms ease;
  }

  body[data-active-tab="session"] .set-row[open] .inline-stepper .step-button:not(:disabled):active {
    border-color: #86aaa3 !important;
    background: #d3e5e0 !important;
    color: #1f514a !important;
    transform: translateY(1px);
  }

  body[data-active-tab="session"] .set-row[open] .inline-stepper .step-button:focus-visible {
    outline: 3px solid rgba(47, 118, 108, 0.24);
    outline-offset: 2px;
  }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  body[data-active-tab="session"] .set-row[open] .inline-stepper .step-button {
    transition: none;
  }
}

/* v127: denser mobile reference and clearer session microcopy. */
@media (max-width: 760px) {
  body[data-active-tab="session"] .set-row[open] .set-plan-reference {
    display: flex !important;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 5px !important;
    padding: 6px 9px !important;
    border-radius: 10px !important;
  }

  body[data-active-tab="session"] .set-row[open] .set-plan-reference .mobile-set-reference-label {
    flex: 0 0 auto;
    color: rgba(120, 73, 32, 0.78);
    font-size: 0.69rem;
    font-weight: 700;
    line-height: 1.25;
    text-transform: none;
    white-space: nowrap;
  }

  body[data-active-tab="session"] .set-row[open] .set-plan-reference strong {
    min-width: 0;
    font-size: 0.78rem !important;
    line-height: 1.25;
  }

  body[data-active-tab="session"] .set-row[open] .logbook-register-label small {
    font-size: 0.7rem !important;
    line-height: 1.2;
  }
}
