:root {
  --ink: #14211f;
  --muted: #687875;
  --paper: #f4f7f5;
  --panel: #ffffff;
  --line: #dce5e1;
  --dark: #071c1a;
  --dark-2: #0d2b27;
  --mint: #35d0a1;
  --mint-soft: #dff8ef;
  --run: #ef675f;
  --bike: #3c88e8;
  --swim: #20b7c9;
  --strength: #aa72e6;
  --hyrox: #e89d38;
  --shadow: 0 12px 40px rgba(15, 42, 36, .07);
  --radius: 18px;
  --athletic-orange: #ff6b00;
  --athletic-dark: #0d1117;
}

/* Gift-card wallet and private checkout. */
.gift-card-summary,
.gift-card-grid,
.gift-card-admin-grid {
  display: grid;
  gap: 1rem;
}
.gift-card-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gift-card-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin: 1rem 0; }
.gift-card-admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gift-card-summary > *,
.gift-card-tile {
  border: 1px solid rgba(52, 211, 153, .24);
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
  padding: 1rem;
}
.gift-card-tile { box-shadow: 0 18px 44px rgba(0, 30, 25, .12); }
.gift-card-balance { font-size: clamp(1.7rem, 4vw, 2.8rem); font-weight: 900; }
.gift-card-code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .12em; }
.gift-card-checkout {
  min-height: calc(100vh - 80px);
  color: #fff;
  background: #020706;
  padding: clamp(1rem, 4vw, 3rem);
}
.gift-card-checkout-panel {
  max-width: 900px;
  margin: 1.5rem auto;
  border: 1px solid rgba(52, 211, 153, .4);
  border-radius: 28px;
  background: #071612;
  padding: clamp(1rem, 4vw, 2.5rem);
}
.gift-card-checkout-balance { font-size: clamp(2.4rem, 8vw, 5rem); font-weight: 950; }
.gift-card-barcode { min-height: 180px; display: grid; place-items: center; border-radius: 18px; background: #fff; color: #071612; padding: 1rem; }
.gift-card-barcode img { width: min(100%, 700px); max-height: 260px; object-fit: contain; }

@media (max-width: 760px) {
  .gift-card-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gift-card-admin-grid { grid-template-columns: 1fr; }
  .gift-card-checkout { padding: .75rem; }
}

/* Liste de courses intelligente */
.shopping-hero-actions {
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
  align-items: center;
}

.shopping-store-progress {
  display: grid;
  gap: .4rem;
  min-width: 190px;
  color: #0b2823;
}

.shopping-progress-track {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #dce9e6;
}

.shopping-progress-value {
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #19bd8e, #25d8a5);
  transition: width .2s ease;
}

.shopping-offline-banner {
  position: sticky;
  top: 78px;
  z-index: 1100;
  max-width: 1680px;
  margin: 0 auto 1rem;
  padding: .85rem 1rem;
  border: 1px solid #e3b858;
  border-radius: 14px;
  background: #fff1c9;
  color: #684700;
  font-weight: 800;
}

.shopping-offline-banner[hidden] { display: none; }

.shopping-intelligence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.shopping-intelligence-panel {
  min-width: 0;
  padding: 1.2rem;
  border: 1px solid rgba(7, 70, 58, .13);
  border-radius: 24px;
  background: #fff;
  color: #0b2823;
  box-shadow: 0 18px 42px rgba(2, 30, 25, .12);
}

.shopping-intelligence-panel h2,
.shopping-intelligence-panel h3,
.shopping-intelligence-panel strong,
.shopping-suggestion-card,
.shopping-price-row { color: #0b2823; }

.shopping-suggestion-card,
.shopping-price-row {
  display: flex;
  gap: .8rem;
  align-items: center;
  justify-content: space-between;
  margin-top: .65rem;
  padding: .85rem;
  border: 1px solid #d9e5e2;
  border-radius: 16px;
  background: #f5faf8;
}

body.shopping-store-mode .shopping-intelligence-grid,
body.shopping-store-mode .shopping-recipes-panel { display: none; }

body.shopping-store-mode .shopping-list-layout { grid-template-columns: 1fr; }
body.shopping-store-mode .shopping-item { min-height: 70px; }
body.shopping-store-mode .shopping-check {
  width: 52px;
  height: 52px;
  font-size: 1.45rem;
}

@media (max-width: 900px) {
  .shopping-intelligence-grid { grid-template-columns: 1fr; }
  .shopping-hero-actions { width: 100%; }
  .shopping-suggestion-card,
  .shopping-price-row { align-items: flex-start; flex-direction: column; }
}

/* Secondary navigation shared by Map and Nutrition. */
.section-primary-tabs {
  display: grid;
  gap: .45rem;
  margin: 0 auto 1rem;
  max-width: 1680px;
  padding: .35rem;
  border: 1px solid rgba(90, 226, 190, .2);
  border-radius: 18px;
  background: rgba(2, 37, 32, .72);
  box-shadow: 0 14px 36px rgba(0, 18, 16, .18);
  backdrop-filter: blur(14px);
}

.section-primary-tabs--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.section-primary-tabs a {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .7rem 1rem;
  border-radius: 13px;
  color: #cde0dc;
  font-weight: 800;
  text-decoration: none;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

.section-primary-tabs a:hover { color: #fff; transform: translateY(-1px); }
.section-primary-tabs a.is-active {
  color: #062f28;
  background: linear-gradient(135deg, #56e2ba, #a8f3d9);
  box-shadow: 0 8px 20px rgba(66, 220, 177, .2);
}

/* Grocery checklist and recipe library. */
.shopping-hero { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.shopping-hero-stats { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: .65rem; }
.shopping-hero-stats > div {
  min-width: 132px;
  padding: .85rem 1rem;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 15px;
  background: rgba(255,255,255,.08);
}
.shopping-hero-stats strong { display: block; color: #fff; font-size: 1.45rem; line-height: 1; }
.shopping-hero-stats span { color: #bcd2cd; font-size: .72rem; font-weight: 800; text-transform: uppercase; }

.shopping-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: .85rem 1rem;
}
.shopping-toolbar > div { display: flex; flex-wrap: wrap; gap: .55rem; }
.shopping-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: 1rem; align-items: start; }
.shopping-list-column { display: grid; gap: .8rem; }
.shopping-category-card { overflow: hidden; padding: 0; color: #0b2823; background: #fff; }
.shopping-category-card > header {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .9rem 1rem;
  border-bottom: 1px solid #dbe8e4;
  background: linear-gradient(90deg, #f6fbf9, #fff);
}
.shopping-category-card h2 { margin: 0; font-size: 1.02rem; }
.shopping-category-icon {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border-radius: 12px;
  color: #0d735f;
  background: #dff7ef;
}
.shopping-category-icon svg { width: 21px; height: 21px; }
.shopping-items { display: grid; }
.shopping-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .7rem;
  min-height: 58px;
  padding: .55rem 1rem;
  border-bottom: 1px solid #e4ece9;
}
.shopping-item:last-child { border-bottom: 0; }
.shopping-item--checked { background: #f3f7f5; }
.shopping-item--checked .shopping-item-main { opacity: .55; text-decoration: line-through; }
.shopping-check-form { margin: 0; }
.shopping-check {
  display: grid;
  width: 29px;
  height: 29px;
  padding: 0;
  place-items: center;
  border: 2px solid #a9bcb7;
  border-radius: 10px;
  color: #053c33;
  background: #fff;
  cursor: pointer;
  font-weight: 900;
}
.shopping-item--checked .shopping-check { border-color: #47d8b0; background: #47d8b0; }
.shopping-item-main strong { display: block; line-height: 1.15; color: #0b2823; }
.shopping-item-main small { color: #72847f; }
.temporary-badge {
  display: inline-flex;
  margin-left: .35rem;
  padding: .18rem .4rem;
  border-radius: 999px;
  color: #8a5700;
  background: #fff0c8;
  font-size: .62rem;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
}
.shopping-quantity-form { display: flex; align-items: center; gap: .35rem; margin: 0; }
.shopping-quantity-form input { width: 72px; padding: .45rem .5rem; }
.shopping-quantity-form select { width: 86px; padding: .45rem .35rem; }
.shopping-item-actions { display: flex; gap: .3rem; }
.shopping-item-actions a { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; text-decoration: none; }
.shopping-item-actions a:hover { background: #edf5f2; }

.shopping-recipe-column { display: grid; gap: 1rem; }
.shopping-recipes { padding: 1rem; }
.shopping-side-heading { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-bottom: .8rem; }
.shopping-side-heading h2 { margin: 0; font-size: 1.1rem; }
.shopping-recipe-grid { display: grid; gap: .7rem; }
.shopping-recipe-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid #dbe8e4;
  border-radius: 15px;
  background: #fff;
  color: #0b2823;
}
.shopping-category-card input,
.shopping-category-card select,
.shopping-recipe-card input,
.shopping-recipe-card select,
.shopping-import-panel input,
.shopping-import-panel select {
  color: #0b2823;
  background: #fff;
}
.shopping-recipe-card > img { width: 92px; height: 100%; min-height: 118px; object-fit: cover; }
.shopping-recipe-body { padding: .75rem; }
.shopping-recipe-body h3 { margin: 0 0 .25rem; font-size: .96rem; }
.shopping-recipe-body p { margin: .2rem 0; color: #6b7d78; font-size: .78rem; }
.shopping-recipe-body form { display: flex; align-items: center; gap: .35rem; margin-top: .55rem; }
.shopping-recipe-body input { width: 62px; padding: .42rem; }
.shopping-import-panel { padding: 1rem; }
.shopping-import-panel > summary { cursor: pointer; font-weight: 900; }
.shopping-import-panel form { display: grid; gap: .65rem; margin-top: .8rem; }
.shopping-example-link { margin: .65rem 0 0; }
.shopping-format-help { margin-top: .6rem; color: #61746f; font-size: .8rem; }

@media (max-width: 980px) {
  .shopping-layout { grid-template-columns: 1fr; }
  .shopping-hero { align-items: flex-start; flex-direction: column; }
  .shopping-recipe-card { grid-template-columns: 76px minmax(0, 1fr); }
  .shopping-recipe-card > img { width: 76px; }
}

@media (max-width: 680px) {
  .section-primary-tabs { margin-inline: .25rem; }
  .section-primary-tabs a { min-height: 42px; padding: .55rem .45rem; font-size: .82rem; }
  .shopping-hero-stats { width: 100%; }
  .shopping-toolbar { align-items: stretch; flex-direction: column; }
  .shopping-toolbar .button { flex: 1; }
  .shopping-item { grid-template-columns: 32px minmax(0, 1fr) auto; padding-inline: .7rem; }
  .shopping-quantity-form { grid-column: 2 / -1; justify-self: start; }
  .shopping-item-actions { grid-column: 3; grid-row: 1; }
}

* { box-sizing: border-box; }

html { background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }

body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 85% 0%, #e5f7ef 0, transparent 32rem), var(--paper); }

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.topbar {
  align-items: center;
  background: rgba(7, 28, 26, .97);
  color: #eaf5f1;
  display: flex;
  height: 72px;
  justify-content: space-between;
  padding: 0 max(24px, calc((100vw - 1400px) / 2));
  position: sticky;
  top: 0;
  z-index: 20;
}

.brand { align-items: center; display: flex; gap: 12px; min-width: 210px; }
.brand span:last-child { display: flex; flex-direction: column; }
.brand strong { font-size: 1rem; letter-spacing: .01em; }
.brand small { color: #92aaa5; font-size: .72rem; margin-top: 2px; }
.brand-mark {
  align-items: center;
  background: var(--mint);
  border-radius: 10px;
  color: #06211d;
  display: inline-flex;
  font-size: .75rem;
  font-weight: 900;
  height: 34px;
  justify-content: center;
  letter-spacing: -.04em;
  width: 34px;
}
.brand-mark.large { border-radius: 16px; font-size: 1.2rem; height: 58px; width: 58px; }

.desktop-nav { align-items: center; align-self: stretch; display: flex; gap: 4px; }
.desktop-nav a { align-items: center; border-bottom: 2px solid transparent; color: #9eb2ae; display: flex; font-size: .78rem; font-weight: 650; height: 100%; padding: 0 9px; }
.desktop-nav a:hover, .desktop-nav a.active { border-color: var(--mint); color: #fff; }

.top-actions { align-items: center; display: flex; gap: 14px; justify-content: flex-end; min-width: 210px; }
.top-actions form { margin: 0; }
.icon-link, .quiet-button { background: transparent; border: 0; color: #9eb2ae; font-size: .8rem; padding: 5px; }
.icon-link:hover, .quiet-button:hover { color: white; }
.version-pill {
  background: rgba(53,208,161,.12);
  border: 1px solid rgba(53,208,161,.28);
  border-radius: 999px;
  color: #bff4e2;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .05em;
  padding: 5px 9px;
  text-transform: uppercase;
}
.app-footer {
  color: #7d918d;
  font-size: .72rem;
  font-weight: 750;
  margin-top: 36px;
  text-align: center;
}

.page-shell { margin: 0 auto; max-width: 1400px; padding: 42px 28px 80px; }
.athletic-hero {
  align-items: stretch;
  background:
    radial-gradient(circle at 80% 15%, rgba(255,107,0,.34), transparent 24rem),
    linear-gradient(135deg, #111827, #071c1a 62%, #08130f);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 28px;
  box-shadow: 0 22px 70px rgba(7,28,26,.22);
  color: #f5fbf8;
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1.4fr) 380px;
  margin-bottom: 22px;
  overflow: hidden;
  padding: clamp(24px, 4vw, 42px);
  position: relative;
}
.athletic-hero::after {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 50%;
  content: "";
  height: 220px;
  position: absolute;
  right: -90px;
  top: -110px;
  width: 220px;
}
.athletic-hero h1 {
  font-size: clamp(2.35rem, 5vw, 4.7rem);
  letter-spacing: -.07em;
  line-height: .92;
  margin: 8px 0 16px;
}
.athletic-hero p:last-child {
  color: #b7c9c5;
  font-size: 1rem;
  line-height: 1.6;
  max-width: 720px;
}
.athletic-hero .eyebrow { color: var(--athletic-orange); }
.athletic-hero-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 220px;
  padding: 22px;
}
.athletic-hero-card span {
  color: #b7c9c5;
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.athletic-hero-card strong {
  font-size: 1.35rem;
  letter-spacing: -.035em;
  line-height: 1.1;
  margin: 12px 0 8px;
}
.athletic-hero-card small { color: #b7c9c5; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.hero-actions .button.soft {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.16);
  color: #f5fbf8;
}
.hero-actions .button.primary {
  background: var(--athletic-orange);
  color: #fff;
}
.athletic-quick-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 18px;
}
.quick-card {
  background: rgba(255,255,255,.96);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  min-height: 116px;
  padding: 20px;
}
.quick-card span {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.quick-card strong {
  font-size: 1.5rem;
  letter-spacing: -.045em;
  margin: 12px 0 4px;
}
.quick-card small { color: var(--muted); }
.quick-card:hover { border-color: rgba(255,107,0,.45); transform: translateY(-1px); }
.page-heading { margin-bottom: 26px; }
.page-heading h1 { font-size: clamp(2rem, 4vw, 3.35rem); letter-spacing: -.055em; line-height: 1; margin: 5px 0 10px; }
.page-heading p:last-child { color: var(--muted); margin: 0; }
.split-heading { align-items: flex-end; display: flex; gap: 20px; justify-content: space-between; }
.heading-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.eyebrow { color: #317d68; font-size: .68rem; font-weight: 850; letter-spacing: .16em; margin: 0 0 4px; text-transform: uppercase; }

.button {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 10px;
  display: inline-flex;
  font-size: .84rem;
  font-weight: 750;
  justify-content: center;
  min-height: 42px;
  padding: 9px 15px;
}
.button.primary { background: var(--dark); color: white; }
.button.primary:hover { background: var(--dark-2); transform: translateY(-1px); }
.button.soft { background: white; border-color: var(--line); color: var(--ink); }
.button.soft:hover { border-color: #a7bdb6; }
.button.compact { font-size: 1rem; min-height: 36px; padding: 5px 12px; }
.button.wide { width: 100%; }
.text-link { color: #17775e; font-size: .8rem; font-weight: 800; }
.text-link:hover { text-decoration: underline; }

.week-nav {
  align-items: center;
  background: rgba(255,255,255,.72);
  border: 1px solid var(--line);
  border-radius: 14px;
  display: flex;
  gap: 12px;
  margin-bottom: 22px;
  padding: 10px 12px;
  width: fit-content;
}
.week-nav div { display: flex; flex-direction: column; min-width: 205px; text-align: center; }
.week-nav .eyebrow { font-size: .58rem; }
.week-nav strong { font-size: .9rem; }
.week-nav .text-link { margin-left: 5px; }

.stat-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, 1fr); margin-bottom: 18px; }
.stat-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  min-height: 136px;
  overflow: hidden;
  padding: 23px;
  position: relative;
}
.stat-card::after { background: var(--card-color); border-radius: 50%; content: ""; height: 85px; opacity: .13; position: absolute; right: -24px; top: -25px; width: 85px; }
.stat-card > span { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.stat-card strong { font-size: 1.65rem; letter-spacing: -.045em; margin: 14px 0 4px; }
.stat-card small { color: var(--muted); }
.stat-card.run { --card-color: var(--run); border-top: 3px solid var(--run); }
.stat-card.bike { --card-color: var(--bike); border-top: 3px solid var(--bike); }
.stat-card.swim { --card-color: var(--swim); border-top: 3px solid var(--swim); }
.stat-card.strength { --card-color: var(--strength); border-top: 3px solid var(--strength); }

.dashboard-grid { display: grid; gap: 18px; grid-template-columns: 2fr 1fr; }
.provisional-quick-card { border-color: #f0c66b; }
.provisional-activity-section { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 20px; }
.status-pill.provisional { background: #fff4d8; color: #8a5a00; }
.reconciliation-quick-card.needs-attention { border-color: #ef675f; box-shadow: 0 0 0 2px rgba(239, 103, 95, .1); }
.planning-journal-link { border-top: 1px solid var(--line); color: #176b57; display: block; font-size: .76rem; font-weight: 750; padding: 10px 12px; text-align: center; }
.planning-journal-link:hover { background: var(--mint-soft); }
.journal-top-grid { display: grid; gap: 18px; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); margin-bottom: 18px; }
.fuel-total-panel h2 { margin: 3px 0 16px; }
.fuel-total-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 16px; }
.fuel-total-grid div { background: #f6faf8; border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.fuel-total-grid strong, .fuel-total-grid small { display: block; }
.fuel-total-grid strong { font-size: 1.12rem; }
.fuel-total-grid small { color: var(--muted); font-size: .72rem; margin-top: 3px; }
.fuel-picker-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fuel-picker-column.hydration { border-top: 4px solid var(--swim); }
.fuel-picker-column.solid { border-top: 4px solid var(--hyrox); }
.fuel-product-list, .fuel-library-list { display: grid; gap: 10px; }
.fuel-product-card, .fuel-library-card { background: #f8fbfa; border: 1px solid var(--line); border-radius: 14px; padding: 13px; }
.fuel-product-card.needs-verification, .fuel-library-card.needs-verification { border-color: #f0c66b; }
.fuel-product-card strong, .fuel-product-card small, .fuel-library-card strong, .fuel-library-card small, .fuel-library-card > span:last-child { display: block; }
.fuel-product-card > small, .fuel-library-card > small { color: var(--muted); font-size: .74rem; margin: 3px 0 8px; }
.fuel-category-label { color: #176b57; font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.verification-pill { background: #fff2cf; border-radius: 999px; color: #8a5a00; float: right; font-size: .65rem; font-weight: 800; padding: 3px 7px; }
.fuel-macro-line { color: var(--muted); display: flex; flex-wrap: wrap; font-size: .74rem; gap: 9px; margin-bottom: 11px; }
.fuel-stepper { align-items: center; display: flex; gap: 10px; justify-content: flex-end; margin: 0; }
.fuel-stepper strong { min-width: 24px; text-align: center; }
.fuel-routine-drawer { margin-top: 18px; }
.fuel-routine-drawer summary { cursor: pointer; font-weight: 800; }
.fuel-routine-drawer .fuel-product-list { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: 14px; }
.fuel-library-tools { display: grid; gap: 13px; margin-bottom: 18px; }
.fuel-library-tools details summary { color: #176b57; cursor: pointer; font-weight: 750; }
.fuel-library-tools details form { margin-top: 10px; }
.fuel-library-list { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.fuel-library-card:hover { border-color: var(--mint); box-shadow: var(--shadow); transform: translateY(-1px); }
.fuel-library-card > div { min-height: 20px; }
.fuel-library-card > span:last-child { font-size: .75rem; font-weight: 700; margin-top: 8px; }
.fuel-routine-library { margin-top: 18px; }
.provisional-nutrition-panel { border-top: 4px solid #f0c66b; }
.reconciliation-list { display: grid; gap: 14px; }
.reconciliation-card { align-items: center; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) minmax(300px, .8fr); }
.reconciliation-card h2 { margin: 3px 0 5px; }
.reconciliation-form { align-items: center; display: flex; gap: 8px; }
.reconciliation-form .field-control { min-width: 0; }
@media (max-width: 780px) {
  .journal-top-grid, .fuel-picker-grid, .reconciliation-card { grid-template-columns: 1fr; }
  .fuel-library-list { grid-template-columns: 1fr; }
  .reconciliation-form { align-items: stretch; flex-direction: column; }
}
.panel {
  background: rgba(255,255,255,.96);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 22px;
}
.span-2 { min-width: 0; }
.panel-heading { align-items: flex-start; display: flex; gap: 15px; justify-content: space-between; margin-bottom: 18px; }
.panel-heading h2, .panel > h2 { font-size: 1.1rem; letter-spacing: -.025em; margin: 0; }

.session-list { display: flex; flex-direction: column; }
.session-row { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 13px; min-height: 72px; padding: 12px 2px; }
.session-row:first-child { border-top: 0; }
.session-row:hover { background: #f8fbfa; }
.session-row time { align-items: center; background: #f0f5f3; border-radius: 9px; display: flex; flex-direction: column; min-width: 43px; padding: 6px; text-transform: uppercase; }
.session-row time strong { color: var(--muted); font-size: .59rem; }
.session-row time span { font-size: 1.05rem; font-weight: 850; }
.session-main { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.session-main strong { font-size: .9rem; }
.session-main small { color: var(--muted); font-size: .75rem; margin-top: 3px; }
.session-main em { color: var(--muted); font-size: .76rem; font-style: normal; margin-top: 8px; }
.duration { color: var(--muted); font-size: .76rem; font-weight: 750; white-space: nowrap; }
.sport-dot { background: var(--muted); border-radius: 50%; height: 9px; width: 9px; }
.sport-dot.run { background: var(--run); }.sport-dot.bike { background: var(--bike); }.sport-dot.swim { background: var(--swim); }.sport-dot.strength { background: var(--strength); }.sport-dot.hyrox { background: var(--hyrox); }
.status-pill { background: #eef2f1; border-radius: 100px; color: var(--muted); font-size: .65rem; font-weight: 800; padding: 5px 9px; text-transform: uppercase; white-space: nowrap; }
.status-pill.done { background: var(--mint-soft); color: #167358; }
.status-pill.error { background: #fff0ef; color: #a33d36; }
.spacious .session-row { min-height: 92px; }

.goal-list, .record-list { display: flex; flex-direction: column; }
.goal-row, .record-row { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 12px; padding: 13px 0; }
.goal-row:first-child, .record-row:first-child { border-top: 0; }
.goal-row > span:last-child, .record-row > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.goal-row strong, .record-row strong { font-size: .82rem; }
.goal-row small, .record-row small { color: var(--muted); font-size: .72rem; margin-top: 3px; }
.priority { align-items: center; background: var(--dark); border-radius: 8px; color: white; display: flex; font-size: .72rem; font-weight: 900; height: 30px; justify-content: center; min-width: 30px; }

.metric-list { display: flex; flex-direction: column; margin: 0 0 20px; }
.metric-list div { align-items: center; border-top: 1px solid var(--line); display: flex; justify-content: space-between; padding: 13px 0; }
.metric-list div:first-child { border-top: 0; }
.metric-list dt { color: var(--muted); font-size: .78rem; }
.metric-list dd { font-size: .85rem; font-weight: 850; margin: 0; }

.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; min-width: 680px; width: 100%; }
th { color: var(--muted); font-size: .62rem; letter-spacing: .1em; padding: 8px; text-align: left; text-transform: uppercase; }
td { border-top: 1px solid var(--line); font-size: .8rem; padding: 12px 8px; }
td strong, td small { display: block; }
td small { color: var(--muted); font-size: .7rem; margin-top: 3px; }
.sport-tag { align-items: center; background: #eef2f1; border-radius: 100px; display: inline-flex; gap: 5px; font-size: .63rem; font-weight: 850; padding: 5px 8px; }
.sport-tag.run { background: #fff0ef; color: #ac4039; }.sport-tag.bike { background: #eaf3ff; color: #2868b6; }.sport-tag.swim { background: #e4f9fb; color: #087784; }.sport-tag.strength { background: #f4ebfd; color: #7445a7; }.sport-tag.triathlon { background: #eef2ff; color: #5145a7; }.sport-tag.hyrox { background: #fff5e5; color: #95601a; }.sport-tag.steps { background: #eff9f5; color: #17775e; }.sport-tag.hike { background: #f1f6e8; color: #617d18; }.sport-tag.other { background: #eef2f1; color: #53635f; }
.sport-tag.supplement { background: #eff9f5; color: #17775e; }
.sport-icon {
  align-items: center;
  background: currentColor;
  border-radius: 8px;
  color: inherit;
  display: inline-flex;
  flex-shrink: 0;
  height: 26px;
  justify-content: center;
  width: 26px;
}
.sport-icon svg {
  color: #fff;
  fill: currentColor;
  height: 17px;
  width: 17px;
}
.session-row > .sport-icon {
  background: #eef2f1;
  color: var(--muted);
}
.session-row > .sport-icon.run { background: #fff0ef; color: var(--run); }
.session-row > .sport-icon.bike { background: #eaf3ff; color: var(--bike); }
.session-row > .sport-icon.swim { background: #e4f9fb; color: var(--swim); }
.session-row > .sport-icon.strength { background: #f4ebfd; color: var(--strength); }
.session-row > .sport-icon.hyrox { background: #fff5e5; color: var(--hyrox); }
.session-row > .sport-icon.hike { background: #f1f6e8; color: #7a9f25; }
.sport-tag .sport-icon {
  background: rgba(255,255,255,.72);
  height: 18px;
  width: 18px;
}
.sport-tag .sport-icon svg {
  color: currentColor;
  height: 12px;
  width: 12px;
}

.empty-state { align-items: center; color: var(--muted); display: flex; flex-direction: column; justify-content: center; min-height: 150px; padding: 20px; text-align: center; }
.empty-state strong { color: var(--ink); font-size: .95rem; }
.empty-state p { font-size: .8rem; }
.muted { color: var(--muted); font-size: .78rem; }

.search-bar { align-items: center; display: flex; gap: 10px; margin-bottom: 18px; padding: 14px; }
.search-bar input { flex: 1; }
.search-bar select { max-width: 210px; }
.bulk-actions { display: grid; gap: 12px; grid-template-columns: 220px 240px 1fr; margin-bottom: 10px; }
.bulk-actions .form-field { min-width: 0; }
.bulk-actions textarea.field-control { min-height: 42px; }
.bulk-toolbar {
  align-items: center;
  display: flex;
  gap: 10px;
}
.bulk-toolbar .field-control {
  min-width: 210px;
}
.selectable-row {
  gap: 10px;
}
.goal-row-link {
  align-items: center;
  display: flex;
  flex: 1;
  gap: 12px;
  min-width: 0;
}
.row-checkbox, .select-chip {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  flex-shrink: 0;
}
.row-checkbox input, .select-chip input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}
.row-checkbox span {
  background: #fff;
  border: 1px solid #bfd0ca;
  border-radius: 7px;
  display: inline-flex;
  height: 24px;
  width: 24px;
}
.row-checkbox input:checked + span {
  background: var(--dark);
  border-color: var(--dark);
  box-shadow: inset 0 0 0 6px var(--mint);
}
.select-chip {
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(207,218,214,.9);
  border-radius: 999px;
  color: var(--muted);
  font-size: .63rem;
  font-weight: 850;
  padding: 5px 8px;
  position: absolute;
  right: 10px;
  top: 10px;
  z-index: 2;
}
.select-chip input:checked + span {
  color: var(--dark);
}
.select-chip:has(input:checked) {
  background: var(--mint-soft);
  border-color: var(--mint);
  color: var(--dark);
}
.activity-metrics-line {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px !important;
}
.activity-metrics-line span {
  background: #f0f5f3;
  border-radius: 999px;
  color: #46615b;
  font-size: .64rem;
  font-weight: 850;
  padding: 4px 7px;
}
.field-control {
  background: #fff;
  border: 1px solid #cfdad6;
  border-radius: 9px;
  color: var(--ink);
  min-height: 42px;
  padding: 9px 11px;
  width: 100%;
}
.field-control:focus { border-color: #2aa980; box-shadow: 0 0 0 3px rgba(53,208,161,.13); outline: 0; }
textarea.field-control { min-height: 95px; resize: vertical; }

.form-panel { max-width: 860px; }
.model-form { display: grid; gap: 17px; grid-template-columns: repeat(2, 1fr); }
.form-grid { display: grid; gap: 14px; }
.form-grid label { display: flex; flex-direction: column; gap: 6px; }
.form-grid label > span { font-size: .72rem; font-weight: 850; }
.filters-bar { align-items: center; display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) minmax(180px, auto) auto; }
.form-field { display: flex; flex-direction: column; gap: 6px; }
.form-field:has(textarea), .checkbox-field, .form-actions, .model-form > .button.wide { grid-column: 1 / -1; }
.form-field label, .stacked-form label { font-size: .72rem; font-weight: 800; }
.form-field small, .stacked-form small { color: var(--muted); font-size: .68rem; }
.form-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 5px; }
.form-error { color: #ae3e38; font-size: .73rem; }
.checkbox-field { align-items: center; flex-direction: row-reverse; justify-content: flex-end; }
.checkbox { height: 18px; width: 18px; }
.garmin-summary-panel, .effort-nutrition-panel {
  margin-top: 18px;
}
.garmin-summary-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.garmin-summary-grid article {
  background: #f7fbf9;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 12px;
}
.garmin-summary-grid span {
  color: var(--muted);
  display: block;
  font-size: .68rem;
  font-weight: 850;
  text-transform: uppercase;
}
.garmin-summary-grid strong {
  display: block;
  font-size: .92rem;
  margin-top: 5px;
}
.activity-editor-layout {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) 360px;
}
.activity-advanced-panel {
  position: sticky;
  top: 92px;
}
.advanced-tab summary {
  cursor: pointer;
  list-style: none;
}
.advanced-tab summary::-webkit-details-marker {
  display: none;
}
.advanced-tab summary span {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.advanced-tab summary strong {
  font-size: 1rem;
}
.advanced-tab summary small {
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.4;
}
.advanced-form-grid {
  gap: 12px;
  grid-template-columns: 1fr;
  margin-top: 16px;
}
.compact-garmin-summary {
  grid-template-columns: 1fr;
  margin-top: 16px;
}

.card-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); }
.library-card { background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px; }
.library-card:hover { border-color: #a4bbb4; }
.library-card > div { align-items: center; display: flex; justify-content: space-between; }
.library-card h2 { font-size: 1.05rem; letter-spacing: -.02em; margin: 18px 0 5px; }
.library-card > strong { color: #17775e; font-size: .7rem; text-transform: uppercase; }
.library-card p { color: var(--muted); font-size: .78rem; line-height: 1.55; margin-bottom: 0; }
.library-actions { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 14px; }
.library-drawer {
  position: relative;
}
.library-drawer > summary {
  list-style: none;
}
.library-drawer > summary::-webkit-details-marker {
  display: none;
}
.library-drawer-panel {
  background: rgba(255,255,255,.98);
  border-left: 1px solid var(--line);
  bottom: 0;
  box-shadow: -24px 0 80px rgba(15,42,36,.18);
  max-width: 460px;
  overflow-y: auto;
  padding: 24px;
  position: fixed;
  right: 0;
  top: 72px;
  width: min(460px, 100vw);
  z-index: 40;
}
.compact-drawer-panel {
  display: grid;
  gap: 14px;
}
.drawer-separator {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 4px 0;
}
.drawer-card-list {
  display: grid;
  gap: 12px;
}
.drawer-session-template {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 15px;
}
.drawer-session-template > div:first-child {
  align-items: center;
  display: flex;
  justify-content: space-between;
}
.drawer-session-template h3 {
  font-size: .98rem;
  letter-spacing: -.02em;
  margin: 14px 0 5px;
}
.drawer-session-template > strong {
  color: #17775e;
  font-size: .68rem;
  text-transform: uppercase;
}
.drawer-session-template p {
  color: var(--muted);
  font-size: .75rem;
  line-height: 1.5;
}
.drawer-full-link {
  display: inline-flex;
  margin-top: 16px;
}
.supplement-card .compact-metrics { margin: 16px 0 0; }
.record-card > strong { color: var(--ink); display: block; font-size: 1.55rem; letter-spacing: -.04em; margin: 8px 0 14px; text-transform: none; }
.compact-metrics { display: flex; flex-direction: column; gap: 8px; }
.compact-metrics div { display: grid; gap: 10px; grid-template-columns: 74px 1fr; }
.compact-metrics dt { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.compact-metrics dd { font-size: .78rem; font-weight: 700; margin: 0; }

.preset-list { display: grid; gap: 12px; }
.preset-list div { border-top: 1px solid var(--line); padding-top: 12px; }
.preset-list div:first-child { border-top: 0; padding-top: 0; }
.preset-list p { color: var(--muted); font-size: .76rem; line-height: 1.5; margin: 7px 0 0; }

.review-grid, .import-grid { align-items: start; display: grid; gap: 18px; grid-template-columns: 1fr 1.2fr; }
.summary-panel { position: sticky; top: 94px; }
.summary-text { background: #0c211e; border: 0; border-radius: 12px; color: #d8eee7; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .76rem; line-height: 1.55; min-height: 610px; padding: 18px; resize: vertical; width: 100%; }
.sunday-heading h1 {
  background: linear-gradient(105deg, #0f2a24, #1c8064 55%, #35d0a1);
  -webkit-background-clip: text;
  color: transparent;
}
.sunday-status-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 18px 0;
}
.sunday-status-card {
  background: white;
  border: 1px solid var(--line);
  border-top: 4px solid #94a3b8;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(15,42,36,.05);
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 122px;
  padding: 15px;
  text-decoration: none;
}
.sunday-status-card:hover { border-color: #d79534; transform: translateY(-1px); }
.sunday-status-card.ready { border-top-color: #20a464; }
.sunday-status-card.warning { border-top-color: #d79534; }
.sunday-status-card.missing { border-top-color: #d95049; }
.status-number {
  color: var(--ink);
  font-size: 1.65rem;
  font-weight: 950;
  letter-spacing: -.055em;
}
.sunday-status-card strong { font-size: .78rem; }
.sunday-status-card small { color: var(--muted); font-size: .68rem; line-height: 1.4; }
.sunday-warning-panel {
  background: #fff8e9;
  border: 1px solid #efd7a7;
  border-radius: 15px;
  margin-bottom: 18px;
  padding: 14px 17px;
}
.sunday-warning-panel strong { color: #825413; font-size: .78rem; }
.sunday-warning-panel p { color: #8a651f; font-size: .72rem; margin: 6px 0 0; }
.warning-action-list { display: grid; gap: 8px; margin-top: 10px; }
.warning-action-card { background: #fffdf7; border: 1px solid #f0dda9; border-radius: 11px; color: #6f4c10; display: grid; gap: 3px; padding: 10px 12px; text-decoration: none; }
.warning-action-card:hover { border-color: #d79534; transform: translateY(-1px); }
.warning-action-card span { font-size: .76rem; font-weight: 900; }
.warning-action-card small { color: #8a651f; font-size: .68rem; line-height: 1.35; }
.issue-grid { display: grid; gap: 18px; margin-bottom: 18px; }
.issue-list { display: grid; gap: 11px; }
.issue-card { align-items: start; background: #f8fbfa; border: 1px solid var(--line); border-radius: 15px; display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) auto; padding: 13px; }
.issue-card.expected { background: #fff8ee; border-color: #edd4a1; }
.issue-card h3 { font-size: .96rem; margin: 3px 0 7px; }
.expected-action { background: #fff0ed; border: 1px solid #efc9c1; border-radius: 10px; color: #b64034; font-size: .7rem; font-weight: 850; line-height: 1.4; margin: 7px 0; padding: 8px; }
.issue-actions { align-items: end; display: flex; flex-wrap: wrap; gap: 7px; justify-content: end; }
.issue-actions form, .inline-ignore-form { margin: 0; }
.issue-card.muted-card { align-items: center; grid-template-columns: minmax(0, 1fr) auto; opacity: .75; }
.issue-card.muted-card strong, .issue-card.muted-card small { display: block; }
.sunday-import-panel { margin-bottom: 18px; }
.sunday-import-panel > .panel-heading > small { color: var(--muted); font-size: .7rem; }
.sunday-import-grid {
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sunday-import-card {
  background: #f8fbfa;
  border: 1px solid var(--line);
  border-radius: 16px;
  display: grid;
  gap: 11px;
  padding: 14px;
}
.sunday-import-card .sport-visual {
  height: 40px;
  width: 40px;
}
.sunday-import-card .sport-icon { height: 22px; width: 22px; }
.sunday-import-card strong { display: block; font-size: .82rem; }
.sunday-import-card small { color: var(--muted); display: block; font-size: .68rem; margin-top: 3px; }
.sunday-import-card input[type="file"] { font-size: .7rem; min-width: 0; width: 100%; }
.sunday-control-grid {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: 1.25fr .75fr;
  margin-bottom: 18px;
}
.sunday-sport-list { display: grid; gap: 8px; margin-bottom: 15px; }
.sunday-sport-row {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(140px, 1fr) auto auto;
  padding: 9px 0;
}
.sunday-sport-row:last-child { border-bottom: 0; }
.sunday-sport-row strong { font-size: .78rem; }
.sunday-sport-row small { color: var(--muted); font-size: .7rem; }
.compact-activity-preview { max-height: 360px; overflow: auto; }
.sunday-review-grid { margin-top: 0; }
.segmented-tabs {
  background: #eef4f2;
  border: 1px solid var(--line);
  border-radius: 12px;
  display: flex;
  gap: 4px;
  padding: 4px;
}
.segmented-tabs a {
  border-radius: 9px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 850;
  padding: 8px 11px;
}
.segmented-tabs a.active {
  background: #fff;
  box-shadow: 0 5px 15px rgba(15,42,36,.08);
  color: var(--ink);
}
.chart-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, 1fr);
}
.chart-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 15px;
  min-height: 178px;
  padding: 15px;
}
.chart-card > div {
  align-items: baseline;
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.chart-card span {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.chart-card strong {
  font-size: 1.1rem;
  letter-spacing: -.03em;
}
.chart-card svg {
  height: 88px;
  margin: 14px 0 8px;
  width: 100%;
}
.chart-card line {
  stroke: #d9e4e0;
  stroke-width: 1;
}
.chart-card polyline {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3.2;
  vector-effect: non-scaling-stroke;
}
.chart-card small {
  color: var(--muted);
  font-size: .68rem;
}
.health-metric-list {
  max-height: 470px;
  overflow: auto;
}
.stacked-form { display: flex; flex-direction: column; gap: 12px; }
.tip { background: #eff9f5; border-radius: 12px; margin-top: 20px; padding: 15px; }
.tip strong { color: #17775e; font-size: .73rem; text-transform: uppercase; }
.tip p { color: var(--muted); font-size: .76rem; line-height: 1.5; margin: 5px 0 0; }
.tip-panel { margin-bottom: 18px; }
.path-chip { background: #0c211e; border-radius: 8px; color: #d8eee7; display: block; font-size: .78rem; overflow-x: auto; padding: 10px 12px; white-space: nowrap; }
.search-results { display: grid; gap: 18px; }

.messages { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.message { background: white; border: 1px solid var(--line); border-left: 4px solid #65827a; border-radius: 10px; box-shadow: var(--shadow); font-size: .8rem; padding: 12px 14px; }
.message.success { border-left-color: #26a57d; }.message.error { border-left-color: #d95049; }.message.warning { border-left-color: #d79534; }

.record-discipline-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, 1fr);
}
.record-discipline-card {
  overflow: hidden;
  position: relative;
}
.record-discipline-card::after {
  background: var(--card-color, var(--mint));
  border-radius: 50%;
  content: "";
  height: 120px;
  opacity: .1;
  position: absolute;
  right: -38px;
  top: -42px;
  width: 120px;
}
.record-discipline-card.run { --card-color: var(--run); }
.record-discipline-card.bike { --card-color: var(--bike); }
.record-discipline-card.swim { --card-color: var(--swim); }
.record-discipline-card.strength { --card-color: var(--strength); }
.record-discipline-card.hyrox { --card-color: var(--hyrox); }
.record-discipline-card.steps { --card-color: var(--mint); }
.record-discipline-head {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 14px;
  position: relative;
  z-index: 1;
}
.record-discipline-head h2 {
  font-size: 1.45rem;
  letter-spacing: -.045em;
  margin: 12px 0 2px;
}
.record-discipline-head small {
  color: var(--muted);
  font-size: .75rem;
}
.record-mini-list {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 1;
}
.record-mini-row {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  min-height: 62px;
  padding: 11px 0;
}
.record-mini-row:first-child { border-top: 0; }
.record-mini-link {
  align-items: center;
  display: flex;
  flex: 1;
  gap: 12px;
  justify-content: space-between;
  min-width: 0;
}
.record-mini-row span, .record-mini-link span {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.record-mini-row strong {
  font-size: .86rem;
}
.record-mini-row small {
  color: var(--muted);
  font-size: .72rem;
  margin-top: 3px;
}
.record-mini-row b {
  color: var(--ink);
  font-size: 1rem;
  letter-spacing: -.025em;
  white-space: nowrap;
}
.selection-header-panel {
  margin-bottom: 16px;
}

.records-hero-heading h1 {
  background: linear-gradient(105deg, #0f2a24, #18785d 55%, #2aa980);
  -webkit-background-clip: text;
  color: transparent;
}
.record-sport-tabs {
  display: flex;
  gap: 10px;
  margin: -8px 0 18px;
  overflow-x: auto;
  padding-bottom: 6px;
}
.record-sport-tab {
  align-items: center;
  background: rgba(255,255,255,.76);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  display: inline-flex;
  flex: 0 0 auto;
  gap: 7px;
  font-size: .76rem;
  font-weight: 900;
  padding: 10px 13px;
}
.record-sport-tab.active {
  background: #0c211e;
  border-color: #0c211e;
  color: white;
  box-shadow: 0 10px 28px rgba(15,42,36,.16);
}
.record-sport-tab .sport-icon { height: 17px; width: 17px; }
.record-status-tabs {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-bottom: 16px;
}
.record-status-tabs a {
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 900;
  padding: 7px 10px;
}
.record-status-tabs a.active {
  background: #e8f8f2;
  border-color: rgba(42,169,128,.3);
  color: #17775e;
}
.record-showcase {
  display: grid;
  gap: 22px;
}
.record-universe {
  --record-color: var(--mint);
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(246,251,249,.9));
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--shadow);
  overflow: hidden;
  padding: 20px;
  position: relative;
}
.record-universe::before {
  background: radial-gradient(circle, var(--record-color), transparent 64%);
  content: "";
  height: 250px;
  opacity: .14;
  position: absolute;
  right: -80px;
  top: -110px;
  width: 250px;
}
.record-universe.run, .record-pr-card.run { --record-color: var(--run); }
.record-universe.bike, .record-pr-card.bike { --record-color: var(--bike); }
.record-universe.swim, .record-pr-card.swim { --record-color: var(--swim); }
.record-universe.strength, .record-pr-card.strength { --record-color: var(--strength); }
.record-universe.triathlon, .record-pr-card.triathlon { --record-color: #6366f1; }
.record-universe.hyrox, .record-pr-card.hyrox { --record-color: var(--hyrox); }
.record-universe.steps, .record-pr-card.steps { --record-color: var(--mint); }
.record-universe-head {
  align-items: center;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.record-universe-title {
  align-items: center;
  display: flex;
  gap: 13px;
}
.record-universe-icon {
  align-items: center;
  background: var(--record-color);
  border-radius: 18px;
  color: white;
  display: inline-flex;
  height: 48px;
  justify-content: center;
  width: 48px;
}
.record-universe-icon .sport-icon { height: 27px; width: 27px; }
.record-universe-head h2 {
  font-size: 1.75rem;
  letter-spacing: -.055em;
  margin: 4px 0 0;
}
.record-showcase-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  position: relative;
  z-index: 1;
}
.record-pr-card {
  background: #fff;
  border: 1px solid rgba(15,42,36,.09);
  border-radius: 20px;
  box-shadow: 0 12px 32px rgba(15,42,36,.07);
  color: var(--ink);
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 172px;
  overflow: hidden;
  padding: 16px;
  position: relative;
}
.record-pr-card:hover {
  border-color: color-mix(in srgb, var(--record-color) 35%, var(--line));
  box-shadow: 0 16px 38px rgba(15,42,36,.12);
  transform: translateY(-2px);
}
.record-pr-glow {
  background: radial-gradient(circle, var(--record-color), transparent 68%);
  height: 120px;
  opacity: .16;
  position: absolute;
  right: -42px;
  top: -50px;
  width: 120px;
}
.record-pr-top {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}
.record-pr-card strong {
  color: var(--ink);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: -.07em;
  line-height: 1;
  margin-top: 4px;
  position: relative;
  z-index: 1;
}
.record-pr-name {
  color: var(--ink);
  font-size: .9rem;
  font-weight: 950;
  position: relative;
  z-index: 1;
}
.record-pr-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
  position: relative;
  z-index: 1;
}
.record-pr-meta b, .record-pr-meta small, .record-archive-pill {
  background: #f4f8f7;
  border-radius: 999px;
  color: var(--muted);
  font-size: .67rem;
  font-weight: 900;
  padding: 6px 8px;
}
.record-pr-meta b {
  background: color-mix(in srgb, var(--record-color) 14%, white);
  color: color-mix(in srgb, var(--record-color) 72%, #0f2a24);
}
.record-empty-state {
  text-align: center;
}

.planning-panel {
  overflow: hidden;
}
.planning-calendar {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin-top: 18px;
}
.planning-day-card {
  background: #f8fbfa;
  border: 1px solid var(--line);
  border-radius: 16px;
  min-height: 220px;
  padding: 12px;
}
.planning-day-card.empty-day {
  background: rgba(255,255,255,.58);
}
.planning-day-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 12px;
}
.planning-day-head time {
  align-items: center;
  display: flex;
  gap: 8px;
}
.planning-day-head time span {
  color: var(--muted);
  font-size: .62rem;
  font-weight: 850;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.planning-day-head time strong {
  align-items: center;
  background: var(--dark);
  border-radius: 10px;
  color: #fff;
  display: inline-flex;
  font-size: .95rem;
  height: 32px;
  justify-content: center;
  width: 32px;
}
.planning-day-head small {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
}
.planning-day-sessions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.planning-session-card {
  --session-color: var(--muted);
  background: #fff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--session-color);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(15,42,36,.05);
  min-height: 142px;
  position: relative;
}
.planning-session-card.run { --session-color: var(--run); }
.planning-session-card.bike { --session-color: var(--bike); }
.planning-session-card.swim { --session-color: var(--swim); }
.planning-session-card.strength { --session-color: var(--strength); }
.planning-session-card.hyrox { --session-color: var(--hyrox); }
.planning-session-card.hike { --session-color: #7a9f25; }
.planning-session-card.done {
  opacity: .74;
}
.planning-session-link {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 142px;
  padding: 42px 12px 12px;
}
.sport-visual {
  align-items: center;
  background: color-mix(in srgb, var(--session-color) 16%, white);
  border: 1px solid color-mix(in srgb, var(--session-color) 28%, white);
  border-radius: 12px;
  color: color-mix(in srgb, var(--session-color) 76%, #071c1a);
  display: inline-flex;
  gap: 7px;
  font-size: .62rem;
  font-weight: 950;
  height: 34px;
  justify-content: center;
  letter-spacing: .02em;
  width: fit-content;
  min-width: 52px;
  padding: 0 8px;
}
.sport-visual .sport-icon {
  background: color-mix(in srgb, var(--session-color) 84%, #071c1a);
  color: #fff;
  height: 22px;
  width: 22px;
}
.sport-visual .sport-icon svg {
  height: 14px;
  width: 14px;
}
.sport-visual b {
  font-size: .62rem;
}
.planning-session-main {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
.planning-session-main strong {
  font-size: .85rem;
  line-height: 1.18;
}
.planning-session-main small, .planning-session-main em {
  color: var(--muted);
  font-size: .69rem;
  font-style: normal;
  line-height: 1.35;
  margin-top: 5px;
}
.planning-session-meta {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}
.planning-session-meta b {
  font-size: .72rem;
  white-space: nowrap;
}
.planning-rest-card {
  align-items: center;
  border: 1px dashed #cbd9d4;
  border-radius: 12px;
  color: var(--muted);
  display: flex;
  font-size: .74rem;
  justify-content: center;
  min-height: 84px;
}
.structured-summary {
  color: #17775e !important;
  font-weight: 800;
}
.run-builder-layout {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) 320px;
}
.run-builder-main {
  display: grid;
  gap: 14px;
}
.run-builder-header {
  align-items: center;
  display: grid;
  gap: 18px;
  grid-template-columns: auto 1fr;
}
.builder-action-bar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.highlight-step {
  box-shadow: 0 0 0 3px rgba(53,208,161,.22), 0 12px 36px rgba(15,42,36,.09);
}
.workout-step-card, .workout-repeat-card {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 6px solid var(--bike);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(15,42,36,.05);
  padding: 0;
  overflow: hidden;
}
.workout-step-card > header, .workout-repeat-card > header {
  align-items: center;
  background: #f8fbfa;
  display: flex;
  gap: 12px;
  min-height: 48px;
  padding: 12px 16px;
}
.workout-step-card > header strong, .workout-repeat-card > header strong {
  font-size: .9rem;
}
.workout-step-card.warmup { border-left-color: var(--run); }
.workout-step-card.work { border-left-color: var(--bike); }
.workout-step-card.recovery { border-left-color: #6b7280; }
.workout-step-card.cooldown { border-left-color: #20a464; }
.workout-repeat-card {
  background: #f4f6f5;
  border-left-color: #6b7280;
  display: grid;
  gap: 10px;
  padding: 0 10px 10px;
}
.workout-repeat-card > header {
  margin: 0 -10px;
}
.drag-dot {
  color: #17211f;
  font-weight: 950;
  letter-spacing: .08em;
}
.workout-step-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 16px;
}
.strength-step-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.strength-exercise-field {
  grid-column: span 2;
}
.exercise-search-helper {
  display: grid;
  gap: 12px;
}
.exercise-target-help {
  color: #17775e;
  font-size: .7rem;
  font-weight: 850;
}
.exercise-suggestion-list {
  display: grid;
  gap: 7px;
  max-height: 260px;
  overflow: auto;
}
.exercise-suggestion {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 11px;
  cursor: pointer;
  display: grid;
  gap: 3px;
  padding: 9px 10px;
  text-align: left;
}
.exercise-suggestion:hover {
  border-color: rgba(42,169,128,.45);
  box-shadow: 0 6px 18px rgba(15,42,36,.06);
}
.exercise-suggestion strong {
  color: var(--ink);
  font-size: .78rem;
}
.exercise-suggestion small {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 750;
}
.workout-step-grid label, .repeat-inline {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.workout-step-grid label > span, .repeat-inline > span {
  font-size: .72rem;
  font-weight: 850;
}
.repeat-inline {
  align-items: center;
  flex-direction: row;
  margin-left: auto;
}
.repeat-inline .field-control {
  min-height: 34px;
  padding: 6px 9px;
  width: 78px;
}
.repeat-inline small {
  color: var(--muted);
  font-weight: 800;
}
.checkbox-inline {
  align-items: center;
  color: var(--muted);
  display: flex;
  gap: 8px;
  font-size: .74rem;
  font-weight: 800;
  margin-left: auto;
}
.skip-recovery {
  justify-content: flex-start;
  margin: 0 16px 16px;
}
.run-builder-side {
  display: grid;
  gap: 14px;
  position: sticky;
  top: 92px;
}
.planned-editor-layout {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) 420px;
}
.planned-structure-panel {
  position: sticky;
  top: 92px;
}

.session-structure-summary {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 14px;
}
.session-structure-summary span {
  background: var(--surface-soft, #eef5f2);
  border: 1px solid var(--line);
  border-radius: 14px;
  display: grid;
  gap: 3px;
  padding: 10px 12px;
}
.session-structure-summary small { color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.session-structure-summary strong { font-size: .92rem; }
.import-source-tabs {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 18px;
  display: flex;
  gap: 8px;
  margin: 0 0 16px;
  padding: 7px;
  width: fit-content;
}
.import-source-tabs a {
  align-items: center;
  border-radius: 13px;
  color: rgba(255,255,255,.78);
  display: flex;
  font-weight: 850;
  gap: 8px;
  padding: 9px 15px;
  text-decoration: none;
}
.import-source-tabs a span {
  align-items: center;
  background: rgba(255,255,255,.16);
  border-radius: 50%;
  display: inline-flex;
  height: 24px;
  justify-content: center;
  width: 24px;
}
.import-source-tabs a.active { background: #fff; color: var(--ink); }
.import-source-tabs a.active span { background: var(--mint-soft); color: var(--green); }
.import-source-hero {
  align-items: center;
  background: linear-gradient(125deg, rgba(4,38,32,.96), rgba(8,88,75,.88));
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 20px 24px;
}
.import-source-hero h2, .import-source-hero .eyebrow { color: #fff; margin: 0; }
.withings-source-hero { background: linear-gradient(125deg, #172d4d, #2f77bd); }
.import-primary-card { border-top: 5px solid var(--mint); }
.import-history-panel { margin-top: 18px; }
@media (max-width: 760px) {
  .import-source-hero { align-items: stretch; flex-direction: column; gap: 14px; }
  .import-source-tabs { width: 100%; }
  .import-source-tabs a { flex: 1; justify-content: center; }
  .session-structure-summary { grid-template-columns: 1fr; }
}

/* Dashboard cockpit */
.dashboard-cockpit { display: grid; gap: 16px; }
.dashboard-hero-v2 {
  align-items: center;
  background:
    radial-gradient(circle at 82% 20%, rgba(255,112,65,.24), transparent 28%),
    radial-gradient(circle at 48% 120%, rgba(45,145,229,.22), transparent 42%),
    linear-gradient(125deg, #061f1b, #073f36 62%, #152d25);
  border: 1px solid rgba(77,224,180,.18);
  border-radius: 26px;
  color: #fff;
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 390px) auto;
  min-height: 178px;
  overflow: hidden;
  padding: 26px 30px;
  position: relative;
}
.dashboard-hero-v2::before { background: repeating-linear-gradient(135deg, transparent 0 28px, rgba(255,255,255,.025) 28px 29px); content: ""; inset: 0; pointer-events: none; position: absolute; }
.dashboard-hero-v2 > * { position: relative; z-index: 1; }
.dashboard-hero-copy h1 { color: #fff; font-size: clamp(2.35rem, 5vw, 4.2rem); letter-spacing: -.055em; line-height: .95; margin: 3px 0 9px; }
.dashboard-hero-copy > p:last-child { color: #c9dcd7; font-size: .9rem; margin: 0; }
.dashboard-goal-compact { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); border-radius: 20px; display: grid; gap: 5px; padding: 18px 20px; }
.dashboard-goal-compact span { color: #a8c5be; font-size: .64rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.dashboard-goal-compact strong { font-size: 1.12rem; }
.dashboard-goal-compact small { color: #c3d6d1; }
.dashboard-goal-compact b { background: rgba(48,211,161,.16); border: 1px solid rgba(48,211,161,.42); border-radius: 999px; color: #8ff2d3; font-size: .72rem; justify-self: start; margin-top: 5px; padding: 5px 9px; }
.dashboard-hero-actions { align-content: start; display: grid; gap: 7px; justify-items: stretch; }
.dashboard-hero-actions form { margin: 0; }
.dashboard-sync-button,.dashboard-link-button,.dashboard-customize { align-items: center; border-radius: 999px; cursor: pointer; display: flex; font-size: .68rem; font-weight: 900; justify-content: center; padding: 9px 12px; white-space: nowrap; }
.dashboard-sync-button { background: #35d0a1; border: 1px solid #67e5bf; color: #06251f; width: 100%; }
.dashboard-link-button { background: rgba(54,141,232,.18); border: 1px solid rgba(109,174,244,.48); color: #d9edff; }
.dashboard-customize { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); color: #fff; }

.dashboard-sport-grid-v2 { display: grid; gap: 11px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dashboard-sport-card { background: rgba(255,255,255,.94); border: 1px solid rgba(10,65,55,.13); border-radius: 18px; color: var(--ink); display: grid; gap: 6px; overflow: hidden; padding: 15px 17px; position: relative; }
.dashboard-sport-card::before { background: currentColor; content: ""; height: 3px; inset: 0 0 auto; opacity: .75; position: absolute; }
.dashboard-sport-card.run { color: #ef654e; }.dashboard-sport-card.bike { color: #368de8; }.dashboard-sport-card.swim { color: #22aebc; }.dashboard-sport-card.strength { color: #8a68da; }
.dashboard-sport-card span { align-items: center; display: flex; font-size: .68rem; font-weight: 950; gap: 6px; text-transform: uppercase; }
.dashboard-sport-card span svg { height: 16px; width: 16px; }
.dashboard-sport-card strong { color: var(--ink); font-size: 1.38rem; }
.dashboard-sport-card small { color: var(--muted); font-size: .68rem; }

.dashboard-widget-grid { display: grid; gap: 16px; grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr); }
.dashboard-widget { background: rgba(255,255,255,.96); border: 1px solid rgba(10,65,55,.14); border-radius: 22px; box-shadow: 0 14px 35px rgba(2,33,28,.08); min-width: 0; padding: 20px; }
.dashboard-widget-head { align-items: start; display: flex; gap: 12px; justify-content: space-between; margin-bottom: 15px; }
.dashboard-widget-head h2 { font-size: 1.28rem; margin: 2px 0 0; }
.dashboard-widget-head a { color: var(--green); font-size: .68rem; font-weight: 900; }
.dashboard-today { align-self: start; grid-column: 1; }
.dashboard-performance { grid-column: 2; }
.dashboard-trend.body { grid-column: 1; }
.dashboard-trend.sleep { grid-column: 2; }
.dashboard-timeline { display: grid; max-height: 244px; overflow-y: auto; padding-right: 4px; scrollbar-width: thin; }
.dashboard-timeline-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 11px; grid-template-columns: 58px 10px minmax(0, 1fr) auto; min-height: 58px; padding: 7px 0; }
.dashboard-timeline-row:last-child { border-bottom: 0; }
.dashboard-timeline-row time { color: var(--muted); font-size: .68rem; font-weight: 900; }
.dashboard-timeline-dot { background: #8ca39e; border-radius: 50%; height: 8px; width: 8px; }
.dashboard-timeline-row.session .dashboard-timeline-dot { background: var(--mint); box-shadow: 0 0 0 4px rgba(46,211,162,.13); }
.dashboard-timeline-row > div { display: grid; gap: 3px; min-width: 0; }
.dashboard-timeline-row strong { font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-timeline-row small { color: var(--muted); font-size: .66rem; }
.dashboard-row-action { background: #eef6f3; border: 0; border-radius: 9px; color: var(--green); cursor: pointer; font-size: .62rem; font-weight: 900; padding: 7px 9px; }
.dashboard-empty-compact { align-content: center; background: #f3f8f6; border-radius: 15px; color: var(--muted); display: grid; gap: 5px; min-height: 72px; padding: 14px; text-align: center; }
.dashboard-empty-compact strong { color: var(--ink); }

.dashboard-readiness { align-items: center; display: grid; gap: 15px; grid-template-columns: 92px 1fr; margin-bottom: 15px; }
.dashboard-readiness > div:last-child { display: grid; gap: 5px; }
.dashboard-readiness small { color: var(--muted); font-size: .65rem; }
.readiness-ring { align-content: center; aspect-ratio: 1; background: radial-gradient(circle, #fff 56%, transparent 58%), conic-gradient(var(--mint) 0 72%, #dce9e5 72%); border-radius: 50%; display: grid; justify-items: center; }
.readiness-ring strong { font-size: 1.5rem; line-height: 1; }.readiness-ring span { color: var(--muted); font-size: .52rem; font-weight: 900; }
.dashboard-metric-tiles { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-metric-tiles > div { background: #f0f7f5; border-radius: 12px; display: grid; gap: 3px; padding: 10px; }
.dashboard-metric-tiles small { color: var(--muted); font-size: .58rem; font-weight: 900; text-transform: uppercase; }.dashboard-metric-tiles strong { font-size: .85rem; }
.dashboard-metric-tiles.compact { margin-top: 7px; }
.dashboard-performance-top { align-items: stretch; display: grid; gap: 12px; grid-template-columns: minmax(200px, .72fr) minmax(280px, 1fr); }
.dashboard-performance-top .dashboard-readiness { margin-bottom: 0; }
.performance-metrics { align-content: stretch; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.performance-metrics > div { align-content: center; min-height: 64px; }
.ftp-metric small { align-items: center; display: flex; gap: 5px; }
.metric-info-popover { display: inline-block; position: relative; }
.metric-info-popover summary { align-items: center; background: #d8ebe6; border-radius: 50%; color: var(--green); cursor: pointer; display: inline-flex; font-size: .56rem; font-style: normal; font-weight: 950; height: 17px; justify-content: center; list-style: none; width: 17px; }
.metric-info-popover summary::-webkit-details-marker { display: none; }
.metric-info-popover > div { background: #082a24; border: 1px solid rgba(255,255,255,.16); border-radius: 13px; box-shadow: 0 18px 45px rgba(0,0,0,.28); color: #fff; display: grid; gap: 5px; left: 0; min-width: 220px; padding: 12px; position: absolute; top: 24px; z-index: 30; }
.metric-info-popover > div strong { font-size: .68rem; margin-bottom: 3px; }.metric-info-popover > div span { display: flex; font-size: .62rem; gap: 9px; justify-content: space-between; }.metric-info-popover > div b { color: var(--mint); }
.dashboard-garmin-grid { display: grid; gap: 12px; grid-template-columns: minmax(280px, 1fr) minmax(250px, .85fr); margin-top: 13px; }
.dashboard-intensity-card,.dashboard-load-card { background: #f1f7f5; border: 1px solid #dbe9e5; border-radius: 15px; padding: 12px; }
.dashboard-mini-title { align-items: baseline; display: flex; gap: 8px; justify-content: space-between; margin-bottom: 9px; }.dashboard-mini-title strong { font-size: .76rem; }.dashboard-mini-title small { color: var(--muted); font-size: .56rem; }
.dashboard-intensity-row { align-items: center; display: grid; gap: 7px; grid-template-columns: minmax(105px, 1fr) auto; margin-top: 7px; }.dashboard-intensity-row span,.dashboard-intensity-row b { font-size: .62rem; }.dashboard-intensity-row b { color: var(--muted); }.dashboard-intensity-row i { background: #dce7e4; border-radius: 99px; grid-column: 1 / -1; height: 7px; overflow: hidden; }.dashboard-intensity-row em { background: #8f68e8; border-radius: inherit; display: block; height: 100%; min-width: 2px; }.dashboard-intensity-row.high-aerobic em { background: #ff9d38; }.dashboard-intensity-row.low-aerobic em { background: #32bcc8; }
.dashboard-load-value { align-items: baseline; display: flex; gap: 7px; }.dashboard-load-value strong { font-size: 1.35rem; }.dashboard-load-value span { color: var(--muted); font-size: .58rem; font-weight: 800; }
.dashboard-load-sparkline { height: 55px; margin-top: 4px; width: 100%; }.dashboard-load-sparkline polyline { fill: none; stroke: #181d1c; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; vector-effect: non-scaling-stroke; }.dashboard-load-empty { color: var(--muted); font-size: .6rem; padding: 14px 0; }
.dashboard-threshold-strip { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 12px; }.dashboard-threshold-strip span { background: #092d27; border-radius: 11px; color: #fff; display: grid; gap: 2px; padding: 9px 11px; }.dashboard-threshold-strip small { color: #a9c5be; font-size: .53rem; font-weight: 900; text-transform: uppercase; }.dashboard-threshold-strip strong { font-size: .76rem; }
.dashboard-trend-value { align-items: baseline; display: flex; gap: 10px; justify-content: space-between; }.dashboard-trend-value > strong { font-size: 1.75rem; }.dashboard-trend-value > span { background: #eff6f4; border-radius: 999px; color: var(--muted); font-size: .64rem; font-weight: 900; padding: 5px 8px; }
.dashboard-trend-value > span.up.good,.dashboard-trend-value > span.down { color: #16835f; }.dashboard-trend-value > span.up,.dashboard-trend-value > span.down.bad { color: #d65c45; }
.dashboard-sparkline { height: 64px; margin: 8px 0 2px; overflow: visible; width: 100%; }.dashboard-sparkline polyline { fill: none; stroke: var(--mint); stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; vector-effect: non-scaling-stroke; }.dashboard-trend.sleep .dashboard-sparkline polyline { stroke: #7767e7; }

.dashboard-nutrition { grid-column: 1 / -1; }
.dashboard-meal-grid { display: grid; gap: 9px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dashboard-meal-slot { align-items: center; background: #f4f8f7; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 9px; grid-template-columns: 34px 1fr auto; min-width: 0; padding: 10px; }
.dashboard-meal-slot.done { background: #eefaf5; border-color: rgba(46,211,162,.4); }
.dashboard-meal-slot > span { align-items: center; background: #dfece8; border-radius: 9px; color: var(--green); display: flex; font-size: .58rem; font-weight: 950; height: 32px; justify-content: center; width: 32px; }
.dashboard-meal-slot > div { display: grid; gap: 2px; min-width: 0; }.dashboard-meal-slot strong { font-size: .72rem; }.dashboard-meal-slot small { color: var(--muted); font-size: .6rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-meal-slot a,.dashboard-meal-slot button { align-items: center; background: var(--ink); border: 0; border-radius: 8px; color: #fff; cursor: pointer; display: flex; font-size: .58rem; font-weight: 950; height: 28px; justify-content: center; min-width: 28px; padding: 0 6px; }
.dashboard-nutrition-actions { align-items: center; display: flex; gap: 10px; justify-content: space-between; margin-top: 12px; }.dashboard-nutrition-actions form { display: flex; flex: 1; gap: 8px; }.dashboard-nutrition-actions select { min-width: 0; }

.dashboard-dialog { border: 0; border-radius: 22px; box-shadow: 0 24px 70px rgba(0,0,0,.35); color: var(--ink); max-height: min(760px, 88vh); max-width: 620px; padding: 0; width: calc(100% - 28px); }
.dashboard-dialog::backdrop { backdrop-filter: blur(4px); background: rgba(1,20,17,.72); }
.dashboard-dialog > form,.dashboard-dialog.session-decision-dialog { padding: 22px; }
.dashboard-dialog header { align-items: start; display: flex; justify-content: space-between; }.dashboard-dialog header h2 { margin: 2px 0 0; }.dashboard-dialog header > button { background: #edf4f2; border: 0; border-radius: 50%; cursor: pointer; font-size: 1.15rem; height: 34px; width: 34px; }
.dashboard-dialog footer { display: flex; gap: 9px; justify-content: flex-end; margin-top: 18px; }
.dashboard-widget-picker { display: grid; gap: 8px; margin-top: 15px; }.dashboard-widget-picker label { align-items: center; background: #f3f8f6; border-radius: 13px; cursor: pointer; display: grid; gap: 10px; grid-template-columns: auto 1fr; padding: 11px; }.dashboard-widget-picker label span { display: grid; gap: 2px; }.dashboard-widget-picker small { color: var(--muted); }
.planning-decision-note { display: block; margin-top: .35rem; color: #9a5b00; font-weight: 800; }
.session-decision-options { display: grid; gap: 12px; margin-top: 18px; }.session-decision-options form { background: #f3f8f6; border-radius: 15px; display: grid; gap: 10px; padding: 13px; }.session-decision-options label { display: grid; font-size: .68rem; font-weight: 900; gap: 5px; }.session-decision-options textarea { min-height: 62px; }
.button.danger { background: #b84236; color: #fff; }

@media (max-width: 980px) {
  .dashboard-hero-v2 { grid-template-columns: 1fr minmax(250px, .7fr); }.dashboard-hero-actions { grid-column: 1 / -1; grid-template-columns: repeat(3, max-content); justify-content: end; }
  .dashboard-widget-grid { grid-template-columns: 1fr 1fr; }.dashboard-today,.dashboard-performance,.dashboard-nutrition { grid-column: 1 / -1; }.dashboard-trend.body { grid-column: 1; }.dashboard-trend.sleep { grid-column: 2; }
  .dashboard-meal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .dashboard-cockpit { gap: 11px; }.dashboard-hero-v2 { border-radius: 20px; grid-template-columns: 1fr; padding: 22px 18px 18px; }.dashboard-hero-copy h1 { font-size: 2.55rem; }.dashboard-hero-actions { grid-column: auto; grid-template-columns: 1fr; justify-content: stretch; }.dashboard-goal-compact { padding: 14px 16px; }
  .dashboard-sport-grid-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }.dashboard-widget-grid { grid-template-columns: 1fr; }.dashboard-today,.dashboard-performance,.dashboard-trend.body,.dashboard-trend.sleep,.dashboard-nutrition { grid-column: auto; }
  .dashboard-performance-top,.dashboard-garmin-grid { grid-template-columns: 1fr; }.performance-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }.dashboard-threshold-strip { grid-template-columns: 1fr; }
  .dashboard-widget { border-radius: 18px; padding: 16px; }.dashboard-meal-grid { grid-template-columns: 1fr; }.dashboard-nutrition-actions,.dashboard-nutrition-actions form { align-items: stretch; flex-direction: column; }.dashboard-nutrition-actions .button { justify-content: center; width: 100%; }
  .dashboard-timeline-row { grid-template-columns: 48px 9px minmax(0, 1fr); }.dashboard-row-action { grid-column: 3; justify-self: start; }.dashboard-dialog { max-height: 92vh; overflow-y: auto; }
}
.structured-step-list {
  display: grid;
  gap: 10px;
}
.structured-step-list.compact {
  gap: 6px;
  margin-top: 8px;
}
.structured-step-card {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 5px solid var(--bike);
  border-radius: 13px;
  overflow: hidden;
}
.structured-step-card > header {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: auto 1fr;
  padding: 10px 12px;
}
.structured-step-card header strong {
  font-size: .82rem;
}
.structured-step-card header small {
  color: var(--muted);
  display: block;
  font-size: .68rem;
  font-weight: 750;
  margin-top: 3px;
}
.structured-step-card em, .structured-child-card em {
  color: #526a64;
  display: block;
  font-size: .64rem;
  font-style: normal;
  font-weight: 650;
  line-height: 1.35;
  margin-top: 3px;
}
.structured-step-card > header > em { grid-column: 2; margin-top: -5px; }
.structured-step-card.warmup { border-left-color: var(--run); }
.structured-step-card.work { border-left-color: var(--bike); }
.structured-step-card.recovery { border-left-color: #6b7280; }
.structured-step-card.cooldown { border-left-color: #20a464; }
.structured-step-card.repeat {
  background: #f4f6f5;
  border-left-color: #6b7280;
  padding-bottom: 8px;
}
.structured-repeat-children {
  display: grid;
  gap: 7px;
  padding: 0 10px;
}
.structured-child-card {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 11px;
  display: grid;
  gap: 8px;
  grid-template-columns: auto 1fr;
  padding: 9px;
}
.structured-child-card strong {
  display: block;
  font-size: .76rem;
}
.structured-child-card small {
  color: var(--muted);
  display: block;
  font-size: .66rem;
  margin-top: 3px;
}
.step-color-dot {
  border-radius: 999px;
  display: inline-flex;
  height: 10px;
  width: 10px;
}
.step-color-dot.warmup { background: var(--run); }
.step-color-dot.work { background: var(--bike); }
.step-color-dot.recovery, .step-color-dot.repeat { background: #6b7280; }
.step-color-dot.cooldown { background: #20a464; }
.structured-step-list.compact .structured-step-card {
  box-shadow: none;
}
.structured-step-list.compact .structured-step-card > header {
  padding: 7px 8px;
}
.structured-step-list.compact .structured-repeat-children {
  padding: 0 7px 7px;
}
.nutrition-side .button.wide {
  margin-top: 16px;
}
.nutrition-command-panel {
  margin-bottom: 18px;
}
.nutrition-prefill-form {
  display: grid;
  gap: 14px;
}
.site-day-selector {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.site-day-selector label {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 13px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 88px;
  padding: 10px;
}
.site-day-selector label.site {
  background: #fff5e5;
  border-color: rgba(232,157,56,.45);
}
.site-day-selector label.leave {
  background: #eef6ff;
  border-color: rgba(60,136,232,.35);
}
.site-day-selector label.weekend {
  background: #f5f3ff;
  border-color: rgba(124,58,237,.25);
}
.site-day-selector span {
  font-size: .78rem;
  font-weight: 850;
}
.site-day-selector small {
  color: var(--muted);
  font-size: .66rem;
  font-weight: 800;
  text-transform: uppercase;
}
.nutrition-prefill-footer {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}
.nutrition-prefill-footer p {
  margin: 0;
}
.nutrition-week-summary {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 18px;
}
.nutrition-calendar {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(7, minmax(220px, 1fr));
  overflow-x: auto;
  padding-bottom: 6px;
}
.nutrition-day-card {
  background: rgba(255,255,255,.96);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px;
}
.nutrition-day-card.site-day {
  border-top: 3px solid var(--hyrox);
}
.nutrition-day-card.weekend {
  border-top: 3px solid #7c3aed;
}
.nutrition-day-card.leave {
  border-top: 3px solid var(--bike);
}
.day-kind-pill.site { background: #fff5e5; color: #95601a; }
.day-kind-pill.telework { background: var(--mint-soft); color: #167358; }
.day-kind-pill.weekend { background: #f5f3ff; color: #6d35bd; }
.day-kind-pill.leave { background: #eaf3ff; color: #2868b6; }
.nutrition-day-head {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}
.nutrition-day-head h2 {
  font-size: 1.28rem;
  letter-spacing: -.035em;
  margin: 3px 0 0;
}
.nutrition-day-total {
  background: #f7fbf9;
  border: 1px solid var(--line);
  border-radius: 13px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 14px 0;
  padding: 12px;
}
.nutrition-day-total strong {
  font-size: 1.15rem;
}
.nutrition-day-total small {
  color: var(--muted);
  font-size: .75rem;
}
.nutrition-meal-list {
  display: grid;
  gap: 10px;
}
.nutrition-meal-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 13px;
}
.nutrition-meal-head {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.nutrition-meal-head strong {
  font-size: .9rem;
}
.meal-type-pill {
  background: var(--mint-soft);
  border-radius: 999px;
  color: #167358;
  font-size: .62rem;
  font-weight: 900;
  padding: 5px 8px;
  text-transform: uppercase;
}
.nutrition-macro-line {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 10px 0;
}
.nutrition-macro-line span {
  background: #f0f5f3;
  border-radius: 999px;
  color: var(--muted);
  font-size: .67rem;
  font-weight: 850;
  padding: 5px 8px;
}
.ingredient-details {
  border-top: 1px solid var(--line);
  margin-top: 10px;
  padding-top: 10px;
}
.ingredient-details summary {
  color: #17775e;
  cursor: pointer;
  font-size: .74rem;
  font-weight: 850;
}
.ingredient-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.ingredient-row {
  align-items: center;
  background: #f8fbfa;
  border: 1px solid #e5eeea;
  border-radius: 11px;
  display: grid;
  gap: 10px;
  grid-template-columns: 1.2fr .9fr auto;
  padding: 9px;
}
.ingredient-row strong {
  font-size: .76rem;
}
.ingredient-row small {
  color: var(--muted);
  display: block;
  font-size: .66rem;
  margin-top: 2px;
}
.ingredient-macros {
  text-align: right;
}
.ingredient-macros b {
  font-size: .75rem;
}
.nutrition-meal-actions {
  display: flex;
  gap: 12px;
  margin-top: 10px;
}
.meal-icon, .food-icon {
  align-items: center;
  border-radius: 12px;
  display: inline-flex;
  flex: 0 0 auto;
  height: 34px;
  justify-content: center;
  width: 34px;
}
.meal-icon svg, .food-icon svg {
  fill: none;
  height: 20px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 20px;
}
.meal-icon.breakfast { background: #fff4dc; color: #a86a09; }
.meal-icon.lunch { background: var(--mint-soft); color: #167358; }
.meal-icon.dinner { background: #eef6ff; color: #2868b6; }
.meal-icon.snack { background: #f5f3ff; color: #6d35bd; }
.meal-icon.other { background: #eef2f0; color: var(--muted); }
.food-icon.dairy { background: #eaf3ff; color: #2868b6; }
.food-icon.fruit { background: #fff1f2; color: #d64d61; }
.food-icon.vegetable { background: var(--mint-soft); color: #167358; }
.food-icon.carb { background: #fff4dc; color: #a86a09; }
.food-icon.protein { background: #fff0e7; color: #b95417; }
.food-icon.fat { background: #f5f3ff; color: #6d35bd; }
.food-icon.drink { background: #e8fbff; color: #148aa0; }
.food-icon.supplement { background: #eff6ff; color: #3c88e8; }
.food-icon.prepared, .food-icon.other { background: #eef2f0; color: var(--muted); }
.ingredient-section-title {
  color: #17775e;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .08em;
  margin: 8px 0 0;
  text-transform: uppercase;
}
.meal-title-line {
  align-items: center;
  display: flex;
  gap: 12px;
}
.meal-editor-grid {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1.45fr) minmax(310px, .55fr);
}
.compact-form-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.wide-field {
  grid-column: 1 / -1;
}
.meal-section-list {
  display: grid;
  gap: 12px;
  margin: 18px 0;
}
.meal-section-card {
  background: #f8fbfa;
  border: 1px solid #e5eeea;
  border-radius: 15px;
  padding: 12px;
}
.meal-section-card.empty {
  background: #fbfdfc;
  border-style: dashed;
}
.meal-section-card header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}
.meal-section-card header strong {
  font-size: .82rem;
}
.meal-section-card header small {
  color: var(--muted);
  font-size: .67rem;
  font-weight: 800;
}
.meal-ingredient-row {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 13px;
  display: grid;
  gap: 10px;
  grid-template-columns: auto 1fr minmax(130px, auto) auto;
  margin-top: 8px;
  padding: 10px;
}
.ingredient-dot {
  background: var(--mint);
  border-radius: 999px;
  height: 9px;
  width: 9px;
}
.meal-ingredient-row strong {
  font-size: .78rem;
}
.meal-ingredient-row small {
  color: var(--muted);
  display: block;
  font-size: .67rem;
  margin-top: 2px;
}
.meal-nutrition-panel {
  position: sticky;
  top: 92px;
}
.meal-macro-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 16px;
}
.meal-macro-grid article {
  background: #f7fbf9;
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 13px;
}
.meal-macro-grid span {
  color: var(--muted);
  display: block;
  font-size: .68rem;
  font-weight: 850;
  text-transform: uppercase;
}
.meal-macro-grid strong {
  display: block;
  font-size: 1.35rem;
  letter-spacing: -.04em;
  margin-top: 6px;
}
.meal-macro-grid small {
  color: var(--muted);
  font-size: .7rem;
}
.manual-macro-box {
  border-top: 1px solid var(--line);
  margin-top: 12px;
  padding-top: 12px;
}
.mini-empty {
  margin: 18px 0;
  padding: 18px;
}
.food-picker-panel {
  margin-top: 18px;
}
.inline-search {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-bottom: 14px;
}
.food-library-list {
  display: grid;
  gap: 10px;
}
.food-library-row {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 15px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1fr) minmax(220px, auto) minmax(320px, auto);
  padding: 12px;
}
.food-library-main {
  align-items: center;
  display: flex;
  gap: 11px;
  min-width: 0;
}
.food-library-main span {
  min-width: 0;
}
.food-library-main strong {
  display: block;
  font-size: .84rem;
}
.food-library-main small {
  color: var(--muted);
  display: block;
  font-size: .68rem;
  margin-top: 3px;
}
.food-add-form {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: 86px 145px auto auto;
}
.nutrition-food-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 18px;
}
.nutrition-food-card header {
  align-items: center;
  display: flex;
  gap: 12px;
}
.nutrition-food-card header strong {
  display: block;
}
.nutrition-food-card header small {
  color: var(--muted);
  display: block;
  font-size: .7rem;
  margin-top: 3px;
}
.nutrition-lower-grid {
  grid-template-columns: repeat(3, 1fr);
  margin-top: 18px;
}
.compact-list .record-row {
  min-height: 58px;
}

.login-shell { align-items: center; display: flex; justify-content: center; min-height: 100vh; padding: 24px; }
.login-card { background: white; border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 24px 80px rgba(15,42,36,.14); max-width: 470px; padding: 34px; width: 100%; }
.login-brand { align-items: flex-start; display: flex; gap: 18px; margin-bottom: 28px; }
.login-brand h1 { font-size: 2rem; letter-spacing: -.05em; margin: 2px 0 7px; }
.login-brand p:last-child { color: var(--muted); font-size: .82rem; line-height: 1.5; margin: 0; }

.mobile-nav { display: none; }

@media (max-width: 1050px) {
  .athletic-hero { grid-template-columns: 1fr; }
  .athletic-quick-grid { grid-template-columns: repeat(2, 1fr); }
  .desktop-nav { display: none; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .activity-editor-layout { grid-template-columns: 1fr; }
  .activity-advanced-panel { position: static; }
  .garmin-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chart-grid { grid-template-columns: repeat(2, 1fr); }
  .record-discipline-grid { grid-template-columns: 1fr; }
  .planning-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planned-editor-layout { grid-template-columns: 1fr; }
  .planned-structure-panel { position: static; }
  .run-builder-layout { grid-template-columns: 1fr; }
  .run-builder-side { position: static; }
  .site-day-selector { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nutrition-week-summary { grid-template-columns: repeat(2, 1fr); }
  .nutrition-calendar { grid-template-columns: repeat(7, minmax(210px, 1fr)); }
  .nutrition-lower-grid { grid-template-columns: 1fr; }
  .meal-editor-grid { grid-template-columns: 1fr; }
  .meal-nutrition-panel { position: static; }
  .food-library-row { grid-template-columns: 1fr; }
  .nutrition-food-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sunday-status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sunday-import-grid { grid-template-columns: 1fr; }
  .sunday-control-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .athletic-hero { border-radius: 22px; padding: 22px; }
  .athletic-quick-grid { grid-template-columns: 1fr; }
  .topbar { height: 62px; padding: 0 16px; }
  .brand small, .top-actions { display: none; }
  .page-shell { padding: 26px 14px 92px; }
  .page-heading { margin-bottom: 20px; }
  .page-heading h1 { font-size: 2.25rem; }
  .split-heading { align-items: flex-start; flex-direction: column; }
  .heading-actions { width: 100%; }
  .heading-actions .button { flex: 1; }
  .stat-grid, .dashboard-grid, .review-grid, .import-grid, .card-grid { grid-template-columns: 1fr; }
  .garmin-summary-grid { grid-template-columns: 1fr; }
  .stat-grid { gap: 10px; grid-template-columns: repeat(2, 1fr); }
  .stat-card { min-height: 122px; padding: 17px; }
  .stat-card strong { font-size: 1.25rem; }
  .stat-card small { font-size: .68rem; }
  .panel { border-radius: 15px; padding: 16px; }
  .week-nav { width: 100%; }
  .week-nav div { flex: 1; min-width: 0; }
  .week-nav .text-link { display: none; }
  .session-row { gap: 9px; }
  .session-row .duration { display: none; }
  .session-row .status-pill { padding: 5px 7px; }
  .search-bar { align-items: stretch; flex-direction: column; }
  .search-bar select { max-width: none; }
  .bulk-actions { grid-template-columns: 1fr; }
  .bulk-toolbar { align-items: stretch; flex-direction: column; width: 100%; }
  .bulk-toolbar .field-control { min-width: 0; }
  .planning-calendar { grid-template-columns: 1fr; }
  .run-builder-header, .workout-step-grid { grid-template-columns: 1fr; }
  .repeat-inline, .checkbox-inline { margin-left: 0; }
  .library-drawer-panel { top: 62px; width: 100vw; }
  .site-day-selector, .nutrition-week-summary, .nutrition-lower-grid { grid-template-columns: 1fr; }
  .nutrition-calendar { grid-template-columns: 1fr; overflow-x: visible; }
  .nutrition-prefill-footer { align-items: stretch; flex-direction: column; }
  .ingredient-row { grid-template-columns: 1fr; }
  .ingredient-macros { text-align: left; }
  .compact-form-grid { grid-template-columns: 1fr; }
  .meal-macro-grid, .nutrition-food-grid { grid-template-columns: 1fr; }
  .meal-ingredient-row { grid-template-columns: 1fr; }
  .inline-search, .food-add-form, .filters-bar { grid-template-columns: 1fr; }
  .model-form { grid-template-columns: 1fr; }
  .form-field { grid-column: 1; }
  .summary-panel { position: static; }
  .summary-text { min-height: 480px; }
  .chart-grid { grid-template-columns: 1fr; }
  .segmented-tabs { overflow-x: auto; width: 100%; }
  .record-mini-row { align-items: flex-start; }
  .record-mini-link { align-items: flex-start; flex-direction: column; }
  .record-mini-row b { white-space: normal; }
  .sunday-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sunday-sport-row { align-items: flex-start; grid-template-columns: 1fr; }
  .mobile-nav {
    align-items: center;
    background: rgba(7,28,26,.98);
    backdrop-filter: blur(14px);
    bottom: 0;
    color: #afc1bd;
    display: flex;
    gap: 8px;
    height: auto;
    justify-content: flex-start;
    left: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding: 9px 12px calc(9px + env(safe-area-inset-bottom));
    position: fixed;
    right: 0;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    z-index: 30;
  }
  .mobile-nav::-webkit-scrollbar { display: none; }
  .mobile-nav a {
    align-items: center;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 999px;
    color: #afc1bd;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .66rem;
    font-weight: 850;
    justify-content: center;
    min-height: 42px;
    min-width: 78px;
    padding: 9px 11px;
    scroll-snap-align: center;
    white-space: nowrap;
  }
  .mobile-nav a.active {
    background: rgba(53,208,161,.16);
    border-color: rgba(53,208,161,.38);
    color: #f4fffb;
  }
  .mobile-nav .mobile-add {
    background: var(--mint);
    border-color: var(--mint);
    color: var(--dark);
    font-weight: 950;
    min-width: 92px;
  }
}

/* Integration settings: synchronization first, manual imports as fallback. */
.integration-settings-hero {
  margin-bottom: 18px;
}

.integration-settings-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 20px;
  position: relative;
  z-index: 2;
}

.zone-settings-grid {
  grid-template-columns: minmax(280px, .82fr) repeat(2, minmax(280px, 1fr));
}

.training-zones-card {
  overflow: hidden;
}

.training-zone-list {
  display: grid;
  gap: 9px;
}

.training-zone-row {
  --zone-color: #38bdf8;
  align-items: center;
  background: color-mix(in srgb, var(--zone-color) 9%, #f7fbf9);
  border: 1px solid color-mix(in srgb, var(--zone-color) 28%, transparent);
  border-left: 6px solid var(--zone-color);
  border-radius: 13px;
  display: grid;
  gap: 11px;
  grid-template-columns: 44px minmax(0, 1fr);
  min-height: 55px;
  padding: 9px 12px;
}

.training-zone-row.zone-1 { --zone-color: #8b9a97; }
.training-zone-row.zone-2 { --zone-color: #3b9bf2; }
.training-zone-row.zone-3 { --zone-color: #35c26b; }
.training-zone-row.zone-4 { --zone-color: #f6a21a; }
.training-zone-row.zone-5 { --zone-color: #ef4444; }
.training-zone-row.zone-6 { --zone-color: #a855f7; }
.training-zone-row.zone-7 { --zone-color: #24212d; }

.training-zone-number {
  color: var(--zone-color);
  font-size: 1.05rem;
  font-weight: 950;
}

.training-zone-row strong,
.training-zone-row small {
  display: block;
}

.training-zone-row small {
  color: #687d78;
  font-size: .72rem;
  margin-top: 2px;
}

.activity-heart-rate strong,
.activity-heart-rate small {
  display: block;
}

.activity-heart-rate small {
  color: #71817d;
  margin-top: 3px;
}

@media (max-width: 1180px) {
  .integration-settings-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .zone-settings-grid { grid-template-columns: 1fr 1fr; }
  .zone-settings-grid > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .integration-settings-tabs { grid-template-columns: 1fr 1fr; }
  .zone-settings-grid { grid-template-columns: 1fr; }
  .zone-settings-grid > :first-child { grid-column: auto; }
}

.integration-settings-tab {
  align-items: center;
  background: rgba(247, 251, 249, .94);
  border: 1px solid rgba(7, 56, 49, .15);
  border-radius: 18px;
  color: #082f2a;
  cursor: pointer;
  display: flex;
  gap: 12px;
  min-height: 76px;
  padding: 13px 16px;
  text-align: left;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.integration-settings-tab:hover {
  box-shadow: 0 12px 28px rgba(0, 31, 27, .12);
  transform: translateY(-2px);
}

.integration-settings-tab.active {
  background: #062d27;
  border-color: #35ddb0;
  box-shadow: 0 14px 32px rgba(0, 30, 26, .2);
  color: #fff;
}

.integration-settings-tab strong,
.integration-settings-tab small {
  display: block;
}

.integration-settings-tab strong {
  font-size: 1rem;
}

.integration-settings-tab small {
  color: #687d78;
  font-size: .72rem;
  margin-top: 3px;
}

.integration-settings-tab.active small {
  color: rgba(255, 255, 255, .7);
}

.integration-tab-icon {
  align-items: center;
  background: #dff8f0;
  border-radius: 12px;
  color: #073d35;
  display: flex;
  font-size: .82rem;
  font-weight: 950;
  height: 40px;
  justify-content: center;
  min-width: 40px;
}

.integration-settings-tab.active .integration-tab-icon {
  background: #35ddb0;
  color: #04251f;
}

.integration-settings-panel[hidden] {
  display: none !important;
}

.integration-settings-summary {
  align-items: center;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 18px;
}

.integration-settings-summary h2,
.integration-settings-summary p {
  margin: 0;
}

.integration-settings-summary p {
  color: #687d78;
  margin-top: 5px;
}

.integration-settings-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
}

.integration-settings-grid > .card,
.integration-operations-card,
.integration-legacy {
  border-radius: 22px;
}

.integration-settings-actions {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 14px;
}

.integration-settings-actions > *,
.integration-settings-actions .button {
  width: 100%;
}

.integration-operations-card {
  margin-top: 18px;
}

.integration-openai-kpis {
  margin-bottom: 18px;
}

.integration-legacy {
  background: rgba(247, 251, 249, .92);
  border: 1px solid rgba(7, 56, 49, .15);
  margin-top: 20px;
  padding: 0 20px;
}

.integration-legacy summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 12px;
  list-style: none;
  padding: 17px 0;
}

.integration-legacy summary::-webkit-details-marker {
  display: none;
}

.integration-legacy summary::after {
  content: "+";
  font-size: 1.25rem;
  font-weight: 900;
  margin-left: auto;
}

.integration-legacy[open] summary::after {
  content: "-";
}

.integration-legacy summary strong,
.integration-legacy summary small {
  display: block;
}

.integration-legacy summary small {
  color: #687d78;
  margin-top: 3px;
}

.integration-legacy-actions {
  border-top: 1px solid rgba(7, 56, 49, .12);
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 18px 0 20px;
}

@media (max-width: 900px) {
  .integration-settings-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .integration-settings-tabs {
    display: flex;
    margin-left: -2px;
    margin-right: -2px;
    overflow-x: auto;
    padding: 2px 2px 10px;
  }

  .integration-settings-tab {
    flex: 0 0 180px;
  }

  .integration-settings-summary {
    align-items: stretch;
    flex-direction: column;
  }

  .integration-settings-actions {
    grid-template-columns: 1fr;
  }

  .integration-legacy-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* V7.8: agenda-driven nutrition cockpit. */
.nutrition-hero { align-items: center; display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr) auto; }
.nutrition-hero-status { align-items: flex-start; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 18px; display: flex; flex-direction: column; gap: 7px; min-width: 300px; padding: 16px 18px; }
.nutrition-hero-status span { align-items: center; color: #67e3bd; display: flex; font-size: .67rem; font-weight: 900; gap: 7px; letter-spacing: .06em; text-transform: uppercase; }
.nutrition-hero-status svg { fill: none; height: 17px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 17px; }
.nutrition-hero-status strong { color: #fff; font-size: .83rem; }
.nutrition-hero-status a { color: #bde9db; font-size: .72rem; font-weight: 850; }
.nutrition-import-warning { border-top: 1px solid var(--line); display: grid; gap: 4px; margin-top: 4px; padding: 10px; }
.nutrition-import-warning strong { color: #9a6516; font-size: .68rem; }
.nutrition-import-warning a { color: var(--muted); font-size: .67rem; }
.nutrition-agenda-panel, .nutrition-week-overview, .nutrition-resource-hub { margin-bottom: 18px; }
.nutrition-section-title { align-items: center; display: grid; gap: 13px; grid-template-columns: auto minmax(0, 1fr) auto; }
.nutrition-section-title h2 { font-size: 1.25rem; letter-spacing: -.035em; margin: 2px 0 3px; }
.nutrition-section-title p { color: var(--muted); font-size: .72rem; margin: 0; }
.nutrition-section-title .eyebrow { color: #168061; }
.nutrition-section-icon, .nutrition-resource-icon { align-items: center; background: var(--mint-soft); border-radius: 13px; color: #147259; display: inline-flex; flex: 0 0 auto; height: 42px; justify-content: center; width: 42px; }
.nutrition-section-icon svg, .nutrition-resource-icon svg, .nutrition-agenda-origin svg { fill: none; height: 20px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 20px; }
.nutrition-agenda-days { display: grid; gap: 8px; grid-template-columns: repeat(7, minmax(0, 1fr)); margin-top: 16px; }
.nutrition-agenda-day { background: #f7faf9; border: 1px solid var(--line); border-radius: 12px; min-width: 0; padding: 10px; }
.nutrition-agenda-day.site { border-top: 3px solid #ef9a3c; }
.nutrition-agenda-day.telework { background: #f0faf6; border-top: 3px solid var(--mint); }
.nutrition-agenda-day.leave { background: #f2f7ff; border-top: 3px solid var(--bike); }
.nutrition-agenda-day.weekend { background: #f7f4ff; border-top: 3px solid #7c3aed; }
.nutrition-agenda-day span, .nutrition-agenda-day strong, .nutrition-agenda-day small { display: block; }
.nutrition-agenda-day span { color: var(--muted); font-size: .62rem; font-weight: 900; text-transform: uppercase; }
.nutrition-agenda-day strong { font-size: .76rem; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nutrition-agenda-day small { color: var(--muted); font-size: .59rem; line-height: 1.35; margin-top: 5px; min-height: 2.7em; }
.nutrition-agenda-action { align-items: center; background: #eff9f5; border: 1px solid #cce9de; border-radius: 12px; color: #41695e; display: flex; font-size: .7rem; font-weight: 750; gap: 14px; justify-content: space-between; margin-top: 12px; padding: 9px 11px; }
.nutrition-agenda-action form { flex: 0 0 auto; margin: 0; }
.nutrition-week-overview { overflow: visible; position: relative; z-index: 8; }
.nutrition-settings-popover { position: relative; }
.nutrition-settings-popover > summary { list-style: none; }
.nutrition-settings-popover > summary::-webkit-details-marker { display: none; }
.nutrition-settings-panel { background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 22px 65px rgba(7,28,26,.2); min-width: 520px; padding: 16px; position: absolute; right: 0; top: calc(100% + 8px); z-index: 40; }
.nutrition-week-summary.compact-summary { gap: 9px; margin: 16px 0 0; }
.nutrition-week-summary.compact-summary article { background: linear-gradient(145deg, #f6faf8, #edf6f2); border: 1px solid var(--line); border-radius: 13px; padding: 12px; }
.nutrition-week-summary.compact-summary span { color: var(--muted); display: block; font-size: .63rem; font-weight: 900; text-transform: uppercase; }
.nutrition-week-summary.compact-summary strong { display: block; font-size: 1.2rem; letter-spacing: -.04em; margin-top: 5px; }
.nutrition-calendar-heading { align-items: end; color: #fff; display: flex; justify-content: space-between; margin: 25px 2px 12px; }
.nutrition-calendar-heading h2 { color: #fff; font-size: 1.35rem; margin: 2px 0 0; }
.nutrition-calendar-heading .eyebrow { color: #66e4bb; margin: 0; }
.nutrition-calendar-heading > span { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.12); border-radius: 999px; color: #d5ebe4; font-size: .65rem; font-weight: 850; padding: 7px 10px; }
.nutrition-agenda-origin { align-items: flex-start; color: #627a73; display: flex; font-size: .61rem; gap: 5px; line-height: 1.35; margin: 9px 0 0; }
.nutrition-agenda-origin svg { flex: 0 0 auto; height: 14px; width: 14px; }
.nutrition-day-card { transition: transform .18s ease, box-shadow .18s ease; }
.nutrition-day-card:hover { box-shadow: 0 20px 50px rgba(0,0,0,.17); transform: translateY(-2px); }
.nutrition-day-head .day-kind-pill { max-width: 118px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nutrition-suggestion-note { color: var(--muted); font-size: .65rem; font-weight: 800; margin: 14px 0 0; text-align: center; }
.nutrition-resource-hub { overflow: visible; }
.nutrition-resource-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 16px; }
.nutrition-resource-card { align-content: start; background: #f8fbfa; border: 1px solid var(--line); border-radius: 16px; display: grid; gap: 10px; min-height: 230px; padding: 15px; position: relative; }
.nutrition-resource-card.effort { border-top: 4px solid #1db8c9; }
.nutrition-resource-card.meals { border-top: 4px solid var(--mint); }
.nutrition-resource-card.supplements { border-top: 4px solid #7c63e8; }
.nutrition-resource-card.photos { border-top: 4px solid #ef9a3c; }
.nutrition-resource-card > div > small { color: #168061; font-size: .58rem; font-weight: 950; letter-spacing: .08em; }
.nutrition-resource-card h3 { font-size: 1rem; margin: 3px 0 10px; }
.nutrition-resource-card strong { font-size: 1.2rem; }
.nutrition-resource-card p { color: var(--muted); font-size: .68rem; line-height: 1.45; margin: 5px 0; }
.nutrition-resource-card > a { color: #16755d; font-size: .7rem; font-weight: 850; }
.nutrition-resource-card details { border-top: 1px solid var(--line); padding-top: 9px; }
.nutrition-resource-card details summary { color: #16755d; cursor: pointer; font-size: .68rem; font-weight: 850; }
.nutrition-resource-card .record-list { margin-top: 8px; max-height: 230px; overflow-y: auto; }
.nutrition-resource-card .record-row { background: #fff; border-radius: 9px; padding: 8px; }

@media (max-width: 1100px) {
  .nutrition-resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nutrition-agenda-days { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .nutrition-hero { grid-template-columns: 1fr; }
  .nutrition-hero-status { min-width: 0; width: 100%; }
  .nutrition-section-title { align-items: start; grid-template-columns: auto minmax(0, 1fr); }
  .nutrition-section-title > .button, .nutrition-section-title > details { grid-column: 1 / -1; width: 100%; }
  .nutrition-settings-popover > summary { width: 100%; }
  .nutrition-settings-panel { min-width: 0; position: static; width: 100%; }
  .nutrition-agenda-days { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nutrition-agenda-action { align-items: stretch; flex-direction: column; }
  .nutrition-agenda-action .button { width: 100%; }
  .nutrition-resource-grid { grid-template-columns: 1fr; }
  .nutrition-resource-card { min-height: 0; }
}

/* V7.6: day-status backgrounds, range leave entry and agenda navigation. */
.agenda-has-day-status {
  background: linear-gradient(to bottom, var(--agenda-am) 0 50%, var(--agenda-pm) 50% 100%) !important;
}
.agenda-day-cell.agenda-has-day-status:hover,
.agenda-month-large-day.agenda-has-day-status:hover {
  filter: brightness(.985);
}
.agenda-day-cell.agenda-has-day-status.today,
.agenda-month-large-day.agenda-has-day-status.today {
  box-shadow: inset 0 0 0 3px var(--mint);
}
.agenda-timeline-day.agenda-has-day-status {
  background:
    repeating-linear-gradient(to bottom, transparent 0 29px, rgba(14,71,60,.055) 29px 30px, transparent 30px 59px, rgba(14,71,60,.13) 59px 60px),
    linear-gradient(to bottom, var(--agenda-am) 0 50%, var(--agenda-pm) 50% 100%) !important;
}

/* Compact CoachGPT workout cards. */
.compact-workout-blocks {
  background: rgba(255,255,255,.72);
  border: 1px solid var(--line);
  border-radius: 14px;
  display: grid;
  margin-top: 9px;
  overflow: hidden;
}
.compact-workout-block {
  align-items: start;
  display: grid;
  gap: 9px;
  grid-template-columns: auto minmax(0,1fr);
  padding: 9px 10px;
}
.compact-workout-block + .compact-workout-block { border-top: 1px solid var(--line); }
.compact-workout-block-main { display: grid; gap: 2px; min-width: 0; }
.compact-workout-block-main strong { font-size: .75rem; }
.compact-workout-block-main small,
.compact-workout-block-main em,
.compact-workout-items { color: var(--muted); font-size: .65rem; font-style: normal; line-height: 1.35; }
.compact-workout-items { color: #254f45; font-weight: 700; margin-top: 2px; }
.structured-item-list { color: #254f45; display: block; font-size: .68rem; font-weight: 700; grid-column: 2; line-height: 1.45; }
.workout-details-disclosure {
  background: rgba(238,247,244,.86);
  border: 1px solid var(--line);
  border-radius: 13px;
  margin-top: 8px;
  overflow: hidden;
}
.workout-details-disclosure summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-size: .7rem;
  font-weight: 900;
  justify-content: space-between;
  list-style: none;
  padding: 9px 11px;
}
.workout-details-disclosure summary::-webkit-details-marker { display: none; }
.workout-details-disclosure summary::after { content: "+"; font-size: 1rem; line-height: 1; }
.workout-details-disclosure[open] summary::after { content: "-"; }
.workout-details-disclosure summary small { color: var(--muted); font-size: .6rem; margin-left: auto; margin-right: 8px; }
.workout-details-grid { border-top: 1px solid var(--line); display: grid; gap: 0; padding: 3px 10px 8px; }
.workout-detail-row { display: grid; gap: 8px; grid-template-columns: 118px minmax(0,1fr); padding: 6px 0; }
.workout-detail-row + .workout-detail-row { border-top: 1px dashed rgba(40,90,78,.18); }
.workout-detail-row strong { color: #176b57; font-size: .62rem; text-transform: uppercase; }
.workout-detail-row span { color: var(--muted); font-size: .67rem; line-height: 1.4; }

@media (max-width: 820px) {
  .planning-session-actions { grid-template-columns: 1fr; }
  .workout-detail-row { grid-template-columns: 1fr; gap: 2px; }
}

/* External calendars and Garmin NAS integration */
.integration-layout { display: grid; gap: 18px; grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr); margin-bottom: 18px; }
.calendar-source-list { display: grid; gap: 10px; }
.calendar-source-row { align-items: center; background: rgba(245,250,248,.9); border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 12px; grid-template-columns: 12px minmax(0,1fr) auto; padding: 14px; }
.calendar-source-row > span:nth-child(2) { display: grid; gap: 3px; }
.calendar-source-row small { color: var(--muted); }
.calendar-source-dot { background: var(--calendar-source-color); border-radius: 999px; box-shadow: 0 0 0 4px color-mix(in srgb, var(--calendar-source-color) 18%, transparent); height: 10px; width: 10px; }
.garmin-connection-state { align-items: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); border-radius: 999px; display: flex; gap: 8px; padding: 10px 14px; }
.garmin-connection-state > span { background: #94a3b8; border-radius: 50%; height: 9px; width: 9px; }
.garmin-connection-state.state-ready > span { background: #33d3a0; box-shadow: 0 0 0 5px rgba(51,211,160,.15); }
.garmin-connection-state.state-error > span { background: #fb7a70; }
.setup-steps { color: var(--muted); display: grid; gap: 9px; margin: 0 0 18px; padding-left: 22px; }
.setup-steps code { background: var(--mint-soft); border-radius: 5px; color: var(--ink); font-size: .78rem; padding: 2px 5px; }
.inline-settings-form { align-items: end; display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.inline-settings-form label { display: grid; flex: 1 1 220px; font-size: .76rem; font-weight: 850; gap: 6px; }
.garmin-sync-actions { display: grid; gap: 9px; grid-template-columns: 1fr 1fr; }
.integration-kpis { display: grid; gap: 10px; grid-template-columns: repeat(3, 1fr); margin-top: 18px; }
.integration-kpis span { background: var(--mint-soft); border: 1px solid var(--line); border-radius: 13px; display: grid; gap: 4px; padding: 13px; }
.integration-kpis small { color: var(--muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.google-calendar-list { display: grid; gap: 10px; margin: 16px 0; }
.google-calendar-row { align-items: center; background: var(--mint-soft); border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 12px; grid-template-columns: 10px minmax(0,1fr) auto; padding: 12px; }
.google-calendar-color { background: var(--calendar-color); border-radius: 999px; height: 42px; width: 10px; }
.google-calendar-copy { display: grid; gap: 3px; min-width: 0; }
.google-calendar-copy small { color: var(--muted); font-size: .68rem; }
.google-calendar-copy .google-calendar-error { color: #bd4c43; }
.google-calendar-actions { display: flex; gap: 6px; }
.google-calendar-actions form { margin: 0; }
.garmin-job-row { grid-template-columns: 110px minmax(0,1fr); }
.garmin-direct-card { grid-column: 1 / -1; }
.planning-session-actions { align-items: stretch; display: grid; gap: 2px; grid-template-columns: repeat(auto-fit, minmax(92px,1fr)); }
.planning-session-actions > * { align-items: center; display: flex; justify-content: center; min-width: 0; }
.planning-garmin-link { background: transparent; border: 0; color: #176b57; cursor: pointer; font: inherit; font-size: .68rem; font-weight: 900; padding: 5px 0; }
.planning-garmin-link.status-sent { color: #0d8b68; }
.planning-garmin-link.status-error { color: #c84a40; }
.planning-garmin-link.status-pending,
.planning-garmin-link.status-running { color: #b46c08; }

@media (max-width: 820px) {
  .integration-layout { grid-template-columns: 1fr; }
  .garmin-sync-actions, .integration-kpis { grid-template-columns: 1fr; }
  .calendar-source-row { align-items: start; grid-template-columns: 12px minmax(0,1fr); }
  .calendar-source-row form { grid-column: 2; }
  .google-calendar-row { align-items: start; grid-template-columns: 10px minmax(0,1fr); }
  .google-calendar-actions { grid-column: 2; }
}

/* Goal chronology */
.goal-countdown { background: rgba(31,171,135,.12); border-radius: 999px; color: #12634f; font-size: .66rem; font-weight: 950; padding: 6px 9px; white-space: nowrap; }
.goal-countdown.late { background: rgba(235,93,82,.13); color: #b53f37; }
.goal-timeline-panel { overflow: hidden; }
.goal-timeline-scroll { overflow-x: auto; padding: 18px 4px 8px; }
.goal-timeline { height: 285px; min-width: max(1120px, 100%); position: relative; }
.goal-timeline-arrow { background: linear-gradient(90deg, #2ed3a2, #2d91e5, #ff7041); border-radius: 999px; height: 6px; left: 3%; position: absolute; right: 3%; top: 107px; }
.goal-timeline-arrow::after { border-bottom: 9px solid transparent; border-left: 16px solid #ff7041; border-top: 9px solid transparent; content: ""; position: absolute; right: -4px; top: -6px; }
.goal-timeline-event { color: var(--ink); display: grid; gap: 4px; justify-items: center; left: var(--timeline-position); max-width: 170px; position: absolute; text-align: center; top: 16px; transform: translateX(-50%); width: 150px; }
.goal-timeline-event.lane-1 { top: 142px; }
.goal-timeline-event.lane-1::after { height: 31px; top: -31px; }
.goal-timeline-event.lane-1 i { top: -55px; }
.goal-timeline-event.lane-1 strong { margin-top: 0; }
.goal-timeline-event::after { background: rgba(13,57,49,.22); content: ""; height: 36px; position: absolute; top: 63px; width: 2px; }
.goal-timeline-event i { align-items: center; background: #fff; border: 4px solid #2ed3a2; border-radius: 50%; box-shadow: 0 8px 22px rgba(7,28,26,.2); display: flex; height: 42px; justify-content: center; position: absolute; top: 70px; width: 42px; z-index: 2; }
.goal-timeline-event i svg { height: 19px; width: 19px; }
.goal-timeline-event strong { font-size: .73rem; line-height: 1.15; margin-top: 105px; }
.goal-timeline-event small { background: rgba(255,255,255,.75); border-radius: 999px; color: var(--muted); font-size: .63rem; font-weight: 900; padding: 4px 7px; }
.goal-timeline-date { color: var(--muted); font-size: .64rem; font-weight: 850; }
.goal-timeline-event.completed { opacity: .58; }
.goal-timeline-event.discipline-bike i { border-color: #3988ec; }
.goal-timeline-event.discipline-swim i { border-color: #27b9ca; }
.goal-timeline-event.discipline-hyrox i { border-color: #e8b522; }
.goal-timeline-event.discipline-triathlon i { border-color: #7568ed; }
.goal-timeline-event.discipline-hike i { border-color: #5b9d55; }
.goal-timeline-tick { color: var(--muted); left: var(--timeline-position); position: absolute; top: 102px; transform: translateX(-50%); }
.goal-timeline-tick > i { background: rgba(255,255,255,.92); border: 2px solid rgba(7,45,39,.32); border-radius: 50%; display: block; height: 13px; margin: 0 auto; width: 13px; }
.goal-timeline-tick > small { display: block; font-size: .58rem; font-weight: 850; margin-top: 7px; white-space: nowrap; }

/* Consistent chart trend language */
.trend-arrow { border-right: 2px solid currentColor; border-top: 2px solid currentColor; display: inline-block; height: 7px; margin-right: 7px; transform: rotate(-45deg); width: 7px; }
.trend-arrow.down { transform: rotate(135deg); }
.trend-arrow.stable { border-right: 0; height: 0; transform: none; width: 9px; }
.trend-arrow.stable::after { background: currentColor; content: ""; display: block; height: 2px; width: 9px; }
.chart-trend-value[data-trend="up"] { color: #15805f; }
.chart-trend-value[data-trend="down"] { color: #c44b42; }
.chart-trend-value[data-trend="stable"] { color: var(--muted); }
.health-chart-stage svg text,
.activity-chart-stage svg text,
#activity-lap-chart text { fill: var(--muted); font-family: inherit; font-size: 12px; font-weight: 750; }
.health-grid-line,
.chart-grid-line { stroke: rgba(38,74,67,.14); stroke-width: 1; }

/* Body measurements */
.health-indicator-groups { display: grid; gap: 18px; }
.health-indicator-group { display: grid; gap: 9px; }
.health-indicator-group-heading { align-items: baseline; display: flex; gap: 10px; }
.health-indicator-group-heading strong { font-size: .75rem; letter-spacing: .03em; text-transform: uppercase; }
.health-indicator-group-heading small { color: var(--muted); font-size: .7rem; }
.body-measurement-studio { background: linear-gradient(145deg, #fff 0%, #f4fbf8 58%, #eef8f5 100%); border-top: 4px solid var(--mint); display: grid; gap: 22px; overflow: hidden; }
.measurement-studio-header { align-items: end; display: flex; gap: 24px; justify-content: space-between; }
.measurement-studio-header h2 { font-size: clamp(1.65rem, 3vw, 2.5rem); margin: 3px 0 7px; }
.measurement-studio-header .muted { margin: 0; max-width: 760px; }
.measurement-studio-actions { display: flex; flex-shrink: 0; gap: 9px; }
.measurement-latest-banner { background: var(--dark); border-radius: 18px; color: #fff; display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); overflow: hidden; }
.measurement-latest-banner > div { background: linear-gradient(145deg, rgba(255,255,255,.07), transparent); display: grid; gap: 3px; min-height: 105px; padding: 19px 21px; }
.measurement-latest-banner > div + div { border-left: 1px solid rgba(255,255,255,.12); }
.measurement-latest-banner span { color: #8fb8ad; font-size: .64rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.measurement-latest-banner strong { font-size: 1.18rem; }
.measurement-latest-banner small { color: #b5c9c4; font-size: .68rem; line-height: 1.4; }
.measurement-dashboard-grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr) 270px; }
.measurement-summary-grid { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.measurement-summary-card { background: #fff; border: 1px solid var(--line); border-radius: 15px; display: grid; min-height: 135px; padding: 16px; position: relative; }
.measurement-summary-card::before { background: linear-gradient(90deg, var(--mint), #8ce9cf); border-radius: 0 0 8px 8px; content: ""; height: 4px; left: 14px; position: absolute; right: 14px; top: 0; }
.measurement-summary-card > span { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.measurement-summary-card > strong { font-size: 1.65rem; letter-spacing: -.04em; }
.measurement-summary-card > strong small { color: var(--muted); font-size: .72rem; }
.measurement-summary-card > small { color: var(--muted); font-size: .65rem; }
.measurement-summary-card em { color: #697a76; font-size: .62rem; font-style: normal; margin-top: 8px; }
.measurement-summary-card em.down { color: #138563; }
.measurement-summary-card em.up { color: #b96b20; }
.measurement-ratio-panel { background: linear-gradient(160deg, #0a2420, #123b34); border-radius: 17px; color: #fff; display: grid; gap: 8px; padding: 19px; }
.measurement-ratio-panel .eyebrow { color: #7ce5c7; margin: 0 0 4px; }
.measurement-ratio-panel > div { align-items: center; border-bottom: 1px solid rgba(255,255,255,.12); display: flex; justify-content: space-between; padding: 9px 0; }
.measurement-ratio-panel > div span { color: #b9d0ca; font-size: .72rem; }
.measurement-ratio-panel > div strong { font-size: 1.2rem; }
.measurement-ratio-panel > p:last-child { color: #9fbab3; font-size: .64rem; line-height: 1.45; margin: 7px 0 0; }
.measurement-empty-state { align-items: center; background: var(--mint-soft); border: 1px dashed #81d9bf; border-radius: 18px; display: grid; gap: 18px; grid-template-columns: auto 1fr auto; padding: 22px; }
.measurement-empty-number { color: #15916e; font-size: 2.8rem; font-weight: 950; letter-spacing: -.08em; }
.measurement-empty-state h3, .measurement-empty-state p { margin: 0; }
.measurement-empty-state p { color: var(--muted); font-size: .76rem; margin-top: 4px; }
.measurement-guide-disclosure { border: 1px solid var(--line); border-radius: 17px; overflow: hidden; }
.measurement-guide-disclosure > summary { align-items: center; cursor: pointer; display: grid; gap: 10px; grid-template-columns: auto auto 1fr; list-style: none; padding: 15px 18px; }
.measurement-guide-disclosure > summary::-webkit-details-marker { display: none; }
.measurement-guide-disclosure > summary small { color: var(--muted); font-size: .7rem; }
.measurement-info-dot { align-items: center; background: var(--dark); border-radius: 50%; color: #fff; display: inline-flex; font-family: Georgia, serif; font-weight: 800; height: 27px; justify-content: center; width: 27px; }
.measurement-guide-inline { background: #f8fbfa; border-top: 1px solid var(--line); display: grid; gap: 30px; grid-template-columns: minmax(260px, .75fr) 1fr; padding: 25px; }
.measurement-guide-visual { align-items: center; background: radial-gradient(circle at 50% 42%, #e2faf2, #eef4f2 68%); border-radius: 22px; display: flex; justify-content: center; min-height: 390px; overflow: hidden; }
.measurement-guide-visual svg { height: 390px; max-width: 100%; width: 330px; }
.measurement-body-shape { fill: url(#measurement-body-gradient); stroke: #0b5d4c; stroke-width: 3; }
.measurement-body-limb { fill: none; stroke: #0b5d4c; stroke-linecap: round; stroke-width: 20; }
.measurement-guide-lines line { stroke: #ff7354; stroke-dasharray: 5 4; stroke-width: 3; }
.measurement-guide-lines circle { fill: #ff7354; }
.measurement-guide-lines text { fill: #31524b; font-size: 15px; font-weight: 800; }
.measurement-guide-copy { align-content: center; display: grid; }
.measurement-guide-copy h2 { font-size: 1.6rem; margin: 3px 0 14px; }
.measurement-guide-steps { display: grid; gap: 10px; margin: 0 0 16px; padding-left: 20px; }
.measurement-guide-steps li { color: var(--muted); font-size: .76rem; line-height: 1.5; padding-left: 4px; }
.measurement-guide-steps strong { color: var(--ink); }
.measurement-sites-details { border-top: 1px solid var(--line); padding-top: 13px; }
.measurement-sites-details summary { color: #10765c; cursor: pointer; font-size: .76rem; font-weight: 850; }
.measurement-sites-details dl { display: grid; gap: 8px; margin: 13px 0 0; }
.measurement-sites-details dl div { display: grid; gap: 7px; grid-template-columns: 80px 1fr; }
.measurement-sites-details dt { font-size: .7rem; font-weight: 850; }
.measurement-sites-details dd { color: var(--muted); font-size: .7rem; line-height: 1.4; margin: 0; }
.measurement-guide-source { color: var(--muted); font-size: .62rem; line-height: 1.45; margin: 17px 0 0; }
.measurement-guide-source a { color: #087c60; font-weight: 800; text-decoration: underline; }
.measurement-history-heading { align-items: end; border-top: 1px solid var(--line); display: flex; justify-content: space-between; padding-top: 19px; }
.measurement-history-heading h3, .measurement-history-heading p { margin: 0; }
.measurement-history-heading > span { color: var(--muted); font-size: .68rem; }
.measurement-history-list { display: grid; gap: 8px; }
.measurement-history-row { align-items: center; background: rgba(255,255,255,.82); border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 17px; grid-template-columns: 140px 1fr auto; padding: 13px 15px; }
.measurement-history-date { display: grid; gap: 3px; }
.measurement-history-date strong { font-size: .82rem; }
.measurement-history-date span { color: #14805f; font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.measurement-history-values { display: grid; gap: 8px; grid-template-columns: repeat(5, minmax(70px, 1fr)); }
.measurement-history-values span { display: grid; gap: 2px; }
.measurement-history-values small { color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.measurement-history-values strong { font-size: .74rem; }
.measurement-history-actions { align-items: center; display: flex; gap: 9px; }
.measurement-history-actions form { margin: 0; }
.measurement-history-actions button { background: #fff0ed; border: 0; border-radius: 8px; color: #c64a35; font-size: 1.1rem; height: 30px; width: 30px; }

.measurement-form-heading { background: linear-gradient(135deg, #092923, #0c4a3d); border-radius: 24px; color: #fff; padding: 34px; }
.measurement-form-heading .eyebrow { color: #6de5c2; }
.measurement-form-heading p:last-child { color: #b8d4cc; }
.measurement-form-layout { align-items: start; display: grid; gap: 20px; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); }
.measurement-entry-panel { border-top: 4px solid var(--mint); }
.protocol-native-field { display: none; }
.measurement-form-topline { align-items: end; display: grid; gap: 18px; grid-template-columns: 190px 1fr; }
.measurement-protocol-switch { display: grid; gap: 9px; grid-template-columns: 1fr 1fr; }
.measurement-protocol-switch button { background: #f4f8f6; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); display: grid; gap: 2px; padding: 13px 15px; text-align: left; }
.measurement-protocol-switch button > span { color: var(--muted); font-size: .57rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.measurement-protocol-switch button > strong { font-size: .78rem; }
.measurement-protocol-switch button > small { color: var(--muted); font-size: .62rem; }
.measurement-protocol-switch button.active { background: var(--dark); border-color: var(--dark); color: #fff; box-shadow: 0 8px 22px rgba(7,28,26,.16); }
.measurement-protocol-switch button.active > span { color: var(--mint); }
.measurement-protocol-switch button.active > small { color: #aac3bc; }
.measurement-entry-form { display: grid; gap: 23px; }
.measurement-field-section { border-top: 1px solid var(--line); display: grid; gap: 14px; padding-top: 19px; }
.measurement-section-heading h2, .measurement-section-heading p { margin: 0; }
.measurement-section-heading h2 { font-size: 1.2rem; margin-top: 2px; }
.measurement-field-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.measurement-field-grid .form-field { margin: 0; }
.measurement-field-grid label { font-size: .68rem; }
.unit-input { position: relative; }
.unit-input .field-control { padding-right: 42px; width: 100%; }
.unit-input > span { color: var(--muted); font-size: .66rem; font-weight: 800; pointer-events: none; position: absolute; right: 13px; top: 50%; transform: translateY(-50%); }
.measurement-detail-field[hidden] { display: none !important; }
.measurement-notes-field { margin: 0; }
.measurement-form-actions { border-top: 1px solid var(--line); margin: 0; padding-top: 18px; }
.measurement-delete-form { border-top: 1px dashed var(--line); margin-top: 14px; padding-top: 13px; text-align: right; }
.danger-link { background: none; border: 0; color: #bd4b39; font-size: .7rem; font-weight: 800; }
.measurement-form-error { background: #fff0ed; border-radius: 10px; padding: 10px 12px; }
.measurement-guide-panel { position: sticky; top: 92px; }
.measurement-guide-panel .measurement-guide-visual { min-height: 330px; }
.measurement-guide-panel .measurement-guide-visual svg { height: 330px; }
.measurement-guide-panel .measurement-guide-copy { margin-top: 18px; }

@media (max-width: 1050px) {
  .measurement-dashboard-grid, .measurement-form-layout { grid-template-columns: 1fr; }
  .measurement-guide-panel { position: static; }
  .measurement-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .measurement-history-row { grid-template-columns: 120px 1fr auto; }
  .measurement-history-values { grid-template-columns: repeat(3, minmax(70px, 1fr)); }
}

@media (max-width: 720px) {
  .measurement-studio-header, .measurement-history-heading { align-items: stretch; flex-direction: column; }
  .measurement-studio-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .measurement-latest-banner { grid-template-columns: 1fr; }
  .measurement-latest-banner > div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .measurement-summary-grid { grid-template-columns: 1fr 1fr; }
  .measurement-guide-inline { grid-template-columns: 1fr; padding: 15px; }
  .measurement-guide-disclosure > summary { grid-template-columns: auto 1fr; }
  .measurement-guide-disclosure > summary small { grid-column: 2; }
  .measurement-history-row { align-items: start; grid-template-columns: 1fr auto; }
  .measurement-history-values { grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(3, 1fr); }
  .measurement-form-heading { padding: 24px 20px; }
  .measurement-form-topline { grid-template-columns: 1fr; }
  .measurement-field-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 470px) {
  .measurement-summary-grid, .measurement-protocol-switch, .measurement-field-grid { grid-template-columns: 1fr; }
  .measurement-history-values { grid-template-columns: 1fr 1fr; }
  .measurement-empty-state { grid-template-columns: auto 1fr; }
  .measurement-empty-state .button { grid-column: 1 / -1; }
}

/* World map */
.leaflet-container { overflow: hidden; outline: 0; -webkit-tap-highlight-color: transparent; }
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer { left: 0; position: absolute; top: 0; }
.leaflet-container .leaflet-tile { max-height: none !important; max-width: none !important; padding: 0; width: 256px; }
.leaflet-tile { user-select: none; visibility: hidden; }
.leaflet-tile-loaded { visibility: inherit; }
.leaflet-pane { z-index: 400; }
.leaflet-tile-pane { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane { z-index: 500; }
.leaflet-marker-pane { z-index: 600; }
.leaflet-tooltip-pane { z-index: 650; }
.leaflet-popup-pane { z-index: 700; }
.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg { z-index: 200; }
.leaflet-control { clear: both; pointer-events: auto; position: relative; z-index: 800; }
.leaflet-top, .leaflet-bottom { pointer-events: none; position: absolute; z-index: 1000; }
.leaflet-top { top: 0; }
.leaflet-right { right: 0; }
.leaflet-bottom { bottom: 0; }
.leaflet-left { left: 0; }
.leaflet-left .leaflet-control { float: left; margin-left: 10px; }
.leaflet-right .leaflet-control { float: right; margin-right: 10px; }
.leaflet-top .leaflet-control { margin-top: 10px; }
.leaflet-bottom .leaflet-control { margin-bottom: 10px; }
.leaflet-bar { border-radius: 8px; box-shadow: 0 1px 5px rgba(0,0,0,.28); overflow: hidden; }
.leaflet-bar a { background: #fff; border-bottom: 1px solid #d7dfdc; color: #17322d; display: block; font: 700 18px/30px Arial,sans-serif; height: 30px; text-align: center; text-decoration: none; width: 30px; }
.leaflet-bar a:last-child { border-bottom: 0; }
.leaflet-bar a:hover { background: #eef5f2; }
.leaflet-control-attribution { background: rgba(255,255,255,.8); color: #49625b; font-size: 9px; padding: 2px 5px; }
.leaflet-control-attribution a { color: #16765c; }
.leaflet-popup { margin-bottom: 20px; position: absolute; text-align: center; }
.leaflet-popup-content-wrapper { background: #fff; border-radius: 13px; box-shadow: 0 3px 14px rgba(0,0,0,.25); padding: 1px; text-align: left; }
.leaflet-popup-content { line-height: 1.35; margin: 13px 20px; min-width: 170px; }
.leaflet-popup-tip-container { height: 20px; left: 50%; margin-left: -20px; overflow: hidden; pointer-events: none; position: absolute; width: 40px; }
.leaflet-popup-tip { background: #fff; box-shadow: 3px 3px 5px rgba(0,0,0,.18); height: 17px; margin: -10px auto 0; transform: rotate(45deg); width: 17px; }
.leaflet-popup-close-button { color: #60736e; font: 20px/24px Arial,sans-serif; padding: 4px 5px 0 0; position: absolute; right: 0; text-align: center; text-decoration: none; top: 0; z-index: 1; }
.world-map-page { display: grid; gap: 16px; }
.world-map-hero {
  align-items: center;
  background:
    radial-gradient(circle at 84% 18%, rgba(232,157,56,.25), transparent 27%),
    radial-gradient(circle at 58% 110%, rgba(60,136,232,.27), transparent 35%),
    repeating-linear-gradient(132deg, transparent 0 48px, rgba(255,255,255,.035) 48px 49px),
    linear-gradient(120deg, #061b18, #0a3a34 66%, #102723);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 28px;
  box-shadow: 0 25px 75px rgba(3,19,16,.24);
  color: #fff;
  display: flex;
  justify-content: space-between;
  min-height: 210px;
  overflow: hidden;
  padding: 34px 38px;
  position: relative;
}
.world-map-hero .eyebrow { color: #65ddb8; }
.world-map-hero h1 { font-size: clamp(2.8rem, 5vw, 5.2rem); letter-spacing: -.08em; line-height: .9; margin: 6px 0 13px; }
.world-map-hero p:last-child { color: #bad1cb; margin: 0; max-width: 650px; }
.world-map-hero-stats { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(105px, 1fr)); position: relative; z-index: 1; }
.world-map-hero-stats span { backdrop-filter: blur(8px); background: rgba(255,255,255,.085); border: 1px solid rgba(255,255,255,.12); border-radius: 17px; display: grid; padding: 15px 17px; }
.world-map-hero-stats strong { font-size: 1.55rem; letter-spacing: -.05em; }
.world-map-hero-stats small { color: #b7cbc6; font-size: .58rem; font-weight: 900; text-transform: uppercase; }
.world-map-toolbar { align-items: center; display: flex; gap: 14px; justify-content: space-between; padding: 13px 15px; }
.world-map-filter-group { display: flex; flex-wrap: wrap; gap: 7px; }
.world-map-sport-filter { align-items: center; background: #edf3f1; border: 1px solid #d9e4e1; border-radius: 999px; color: #647571; display: inline-flex; font-size: .65rem; font-weight: 900; gap: 6px; padding: 8px 10px; }
.world-map-sport-filter > span { background: var(--route-color); border-radius: 50%; height: 9px; opacity: .35; width: 9px; }
.world-map-sport-filter small { background: rgba(255,255,255,.72); border-radius: 999px; font-size: .52rem; padding: 2px 5px; }
.world-map-sport-filter.active { background: color-mix(in srgb, var(--route-color) 14%, white); border-color: color-mix(in srgb, var(--route-color) 45%, white); color: #17322d; }
.world-map-sport-filter.active > span { opacity: 1; }
.world-map-toolbar-actions { align-items: end; display: flex; gap: 8px; }
.world-map-year-field { color: var(--muted); display: grid; font-size: .55rem; font-weight: 950; gap: 2px; text-transform: uppercase; }
.world-map-year-field select, .world-map-search-field input { background: #f4f8f6; border: 1px solid #d7e1de; border-radius: 10px; color: var(--ink); font: inherit; min-height: 39px; padding: 8px 10px; }
.world-map-search-field input { min-width: 220px; }
.world-map-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 340px; min-height: 650px; overflow: hidden; padding: 0; }
.world-map-canvas-wrap { min-height: 650px; position: relative; }
#world-map { background: #dce9e4; height: 650px; min-height: 650px; position: relative; width: 100%; }
.world-map-live-stats { align-items: center; backdrop-filter: blur(10px); background: rgba(7,28,26,.88); border: 1px solid rgba(255,255,255,.13); border-radius: 13px; bottom: 18px; color: #fff; display: flex; gap: 14px; left: 50%; padding: 9px 13px; position: absolute; transform: translateX(-50%); z-index: 500; }
.world-map-live-stats span { color: #bcd0cb; font-size: .61rem; white-space: nowrap; }
.world-map-live-stats strong { color: #fff; font-size: .82rem; }
.world-map-route-panel { background: #f6f9f8; border-left: 1px solid #dce5e2; display: flex; flex-direction: column; min-width: 0; }
.world-map-route-heading { align-items: center; border-bottom: 1px solid #dce5e2; display: flex; justify-content: space-between; padding: 19px; }
.world-map-route-heading .eyebrow { margin: 0 0 3px; }
.world-map-route-heading h2 { font-size: 1.15rem; margin: 0; }
.world-map-route-heading a { color: #18775c; font-size: .62rem; font-weight: 950; }
.world-map-route-list { display: grid; overflow-y: auto; padding: 8px; }
.world-map-route-card { align-items: center; background: transparent; border: 0; border-bottom: 1px solid #dfe7e4; color: inherit; cursor: pointer; display: grid; gap: 10px; grid-template-columns: 5px minmax(0, 1fr) auto; padding: 14px 9px; text-align: left; width: 100%; }
.world-map-route-card:hover { background: #eaf3ef; border-radius: 12px; }
.world-map-route-line { align-self: stretch; background: var(--route-color); border-radius: 999px; min-height: 43px; }
.world-map-route-copy { display: grid; min-width: 0; }
.world-map-route-copy small { color: #667a75; font-size: .55rem; font-weight: 850; text-transform: uppercase; }
.world-map-route-copy strong { font-size: .72rem; margin: 3px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.world-map-route-copy em { color: #74847f; font-size: .59rem; font-style: normal; }
.world-map-route-arrow { color: #5e7770; font-size: 1.4rem; }
.world-map-empty { padding: 34px 18px; text-align: center; }
.world-map-empty p { color: var(--muted); font-size: .68rem; line-height: 1.55; }
.world-map-info { padding: 0; }
.world-map-info summary { cursor: pointer; font-size: .72rem; font-weight: 950; padding: 16px 18px; }
.world-map-info > div { border-top: 1px solid var(--line); color: var(--muted); font-size: .68rem; line-height: 1.55; padding: 4px 18px 16px; }
.world-map-popup { display: grid; min-width: 180px; }
.world-map-popup small { color: #688078; font-size: .65rem; }
.world-map-popup strong { font-size: .82rem; margin: 3px 0; }
.world-map-popup span { font-size: .67rem; }
.world-map-popup a { color: #117b5c; font-size: .65rem; font-weight: 950; margin-top: 8px; }

@media (max-width: 1050px) {
  .world-map-hero { align-items: stretch; flex-direction: column; gap: 23px; }
  .world-map-toolbar { align-items: stretch; flex-direction: column; }
  .world-map-toolbar-actions { flex-wrap: wrap; }
  .world-map-workspace { grid-template-columns: 1fr; }
  .world-map-route-panel { border-left: 0; border-top: 1px solid #dce5e2; max-height: 360px; }
}
@media (max-width: 760px) {
  .world-map-hero { border-radius: 22px; min-height: 0; padding: 25px 20px; }
  .world-map-hero h1 { font-size: 3rem; }
  .world-map-hero-stats { grid-template-columns: repeat(3, 1fr); }
  .world-map-hero-stats span { padding: 11px; }
  .world-map-hero-stats strong { font-size: 1.15rem; }
  .world-map-filter-group { flex-wrap: nowrap; margin: 0 -3px; overflow-x: auto; padding: 3px 3px 8px; }
  .world-map-sport-filter { flex: 0 0 auto; }
  .world-map-toolbar-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .world-map-year-field, .world-map-search-field { grid-column: 1 / -1; }
  .world-map-search-field input, .world-map-year-field select { width: 100%; }
  .world-map-workspace, .world-map-canvas-wrap, #world-map { min-height: 520px; }
  #world-map { height: 520px; }
  .world-map-route-panel { max-height: 330px; }
}

/* Agenda event management */
.agenda-manage-event {
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}
.agenda-all-day-chip.agenda-manage-event {
  border: 0;
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.agenda-all-day-chip.agenda-manage-event:hover,
.agenda-current-day-event:hover { filter: brightness(.94); transform: translateY(-1px); }
.agenda-timed-event.agenda-manage-event { font-family: inherit; text-align: left; width: auto; }
.agenda-current-day-events { display: grid; gap: 7px; }
.agenda-current-day-event {
  border: 0;
  border-radius: 10px;
  color: #fff;
  cursor: pointer;
  display: flex;
  font-family: inherit;
  gap: 10px;
  justify-content: space-between;
  padding: 10px 12px;
  text-align: left;
}
.agenda-current-day-event strong { font-size: .66rem; white-space: nowrap; }
.agenda-event-dialog {
  background: #f8fbfa;
  border: 1px solid rgba(18, 70, 58, .18);
  border-radius: 22px;
  box-shadow: 0 28px 90px rgba(2, 24, 20, .34);
  color: var(--ink);
  max-width: min(540px, calc(100vw - 28px));
  padding: 0;
  width: 100%;
}
.agenda-event-dialog::backdrop { background: rgba(2, 19, 16, .67); backdrop-filter: blur(3px); }
.agenda-event-dialog-head {
  align-items: start;
  background: linear-gradient(135deg, #072c25, #0d5444);
  color: #fff;
  display: flex;
  justify-content: space-between;
  padding: 22px 24px;
}
.agenda-event-dialog-head h2 { color: #fff; font-size: 1.65rem; margin: 3px 0 0; }
.agenda-dialog-close {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  font-size: 1.4rem;
  height: 38px;
  line-height: 1;
  width: 38px;
}
.agenda-event-dialog-summary {
  display: grid;
  gap: 4px;
  grid-template-columns: 1fr auto;
  padding: 20px 24px 5px;
}
.agenda-event-dialog-summary span { color: var(--muted); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.agenda-event-dialog-summary strong { font-size: .82rem; }
.agenda-event-dialog > p { color: var(--muted); font-size: .78rem; line-height: 1.5; margin: 0; padding: 9px 24px 20px; }
.agenda-event-dialog-actions { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 9px; justify-content: flex-end; padding: 16px 24px 22px; }
.agenda-event-dialog-actions form { margin: 0; }
.agenda-danger-button { background: #b83c32; border-color: #b83c32; color: #fff; }
.agenda-danger-button:hover { background: #9d2e26; border-color: #9d2e26; }
.agenda-event-edit-page { margin: 0 auto; max-width: 1040px; }
.agenda-event-edit-hero {
  align-items: center;
  background: linear-gradient(130deg, #062720, #0c5243 70%, #12372f);
  border-radius: 25px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
  padding: 26px 29px;
}
.agenda-event-edit-hero h1 { color: #fff; font-size: clamp(2rem, 5vw, 3.5rem); letter-spacing: -.06em; margin: 4px 0 8px; }
.agenda-event-edit-hero p:last-child { color: rgba(236, 253, 247, .72); margin: 0; }
.agenda-event-edit-panel { margin: 0 auto; max-width: none; }
.agenda-edit-notice { background: #eef8f4; border: 1px solid #c6e3d8; border-radius: 12px; font-size: .78rem; margin-bottom: 17px; padding: 11px 13px; }
.agenda-delete-zone {
  align-items: center;
  border-top: 1px solid #edcac5;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-top: 24px;
  padding-top: 18px;
}
.agenda-delete-zone strong, .agenda-delete-zone small { display: block; }
.agenda-delete-zone small { color: var(--muted); font-size: .7rem; margin-top: 3px; }

@media (max-width: 700px) {
  .agenda-event-dialog-actions { align-items: stretch; display: grid; grid-template-columns: 1fr 1fr; }
  .agenda-event-dialog-actions > button:first-child { grid-column: 1 / -1; }
  .agenda-event-dialog-actions form,
  .agenda-event-dialog-actions form .button { width: 100%; }
  .agenda-event-edit-hero { align-items: stretch; flex-direction: column; gap: 18px; padding: 22px 19px; }
  .agenda-delete-zone { align-items: stretch; flex-direction: column; }
  .agenda-delete-zone form,
  .agenda-delete-zone .button { width: 100%; }
}
.agenda-timeline-day-title.agenda-has-day-status.selected {
  box-shadow: inset 0 -4px 0 var(--mint);
}
.agenda-range-form { display: grid; gap: 9px; padding: 9px 10px 12px; }
.agenda-range-grid { display: grid; gap: 8px; grid-template-columns: 1fr 1fr; }
.agenda-range-grid label { color: var(--muted); display: grid; font-size: .64rem; font-weight: 850; gap: 4px; }
.agenda-range-grid .errorlist { color: #b83224; font-size: .62rem; margin: 0; padding-left: 16px; }
.agenda-menu-divider { border-top: 1px solid var(--line); margin: 2px 8px; }
.agenda-inline-title,
.agenda-inline-wide,
.agenda-inline-drawer-form > button { grid-column: 1 / -1 !important; }
.agenda-legend-panel { min-width: 270px; padding: 12px; }
.agenda-legend-line { align-items: center; color: var(--ink); display: flex; font-size: .72rem; font-weight: 800; gap: 9px; padding: 5px; }
.agenda-legend-line i { background: var(--legend-color); border: 1px solid rgba(7,28,26,.18); border-radius: 7px; display: inline-block; height: 23px; width: 34px; }
.agenda-day-type-settings { border-top: 1px solid var(--line); display: grid; gap: 7px; padding: 12px 10px 4px; }
.agenda-day-type-row { align-items: center; display: grid; gap: 7px; grid-template-columns: minmax(130px,1fr) 42px auto auto; }
.agenda-day-type-row .field-control { min-height: 34px; padding: 6px 8px; }
.agenda-color-input { background: #fff; border: 1px solid var(--line); border-radius: 8px; height: 34px; padding: 3px; width: 42px; }
.agenda-active-check { align-items: center; color: var(--muted); display: flex; font-size: .65rem; font-weight: 800; gap: 4px; white-space: nowrap; }
.agenda-period-nav { align-items: center; background: linear-gradient(135deg, #071c1a, #103e36); color: #fff; display: grid; gap: 12px; grid-template-columns: 42px 1fr 42px; padding: 13px 18px; text-align: center; }
.agenda-period-nav .icon-button { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.16); color: #fff; }
.agenda-day-heading { display: grid; grid-template-columns: 42px 1fr auto; padding: 16px 18px; }
.agenda-day-heading > div:nth-child(2) { text-align: center; }
.agenda-day-heading-actions { align-items: center; display: flex; gap: 7px; }
.agenda-projected-balance { border-left-color: #ff7a1a !important; color: #ffd7bd; }

@media (max-width: 760px) {
  .agenda-range-grid,
  .agenda-day-type-row { grid-template-columns: 1fr; }
  .agenda-inline-title,
  .agenda-inline-wide,
  .agenda-inline-drawer-form > button { grid-column: auto !important; }
  .agenda-period-nav { padding: 11px 10px; }
  .agenda-period-nav strong { font-size: .72rem; }
  .agenda-day-heading { grid-template-columns: 36px 1fr; }
  .agenda-day-heading-actions { grid-column: 1 / -1; justify-content: flex-end; }
}

/* V7.0: training-week identity, difficulty and 12-week roadmap. */
.training-week-banner { display: grid; gap: 16px; margin-bottom: 18px; overflow: hidden; position: relative; }
.training-week-banner::before { background: linear-gradient(90deg, var(--mint), var(--bike), var(--run)); content: ""; height: 5px; inset: 0 0 auto; position: absolute; }
.training-week-identity { align-items: center; display: flex; gap: 18px; }
.training-week-identity h2 { margin: 3px 0; }
.training-week-identity p { margin: 4px 0 0; }
.week-type-badge { align-items: center; background: #e8efed; border: 1px solid #c7d6d1; border-radius: 999px; color: #34534b; display: inline-flex; font-size: .68rem; font-weight: 950; justify-content: center; letter-spacing: .04em; min-height: 31px; padding: 7px 12px; text-transform: uppercase; white-space: nowrap; }
.week-type-badge.type-recovery, .week-type-badge.type-easy_rebuild { background: #dff7ee; border-color: #8ddfc5; color: #11674f; }
.week-type-badge.type-deload { background: #e8f7e4; border-color: #9fd18f; color: #376d29; }
.week-type-badge.type-flexible { background: #eeeaff; border-color: #b8acef; color: #584a9d; }
.week-type-badge.type-base { background: #dff4f7; border-color: #88d5df; color: #116576; }
.week-type-badge.type-build { background: #fff0d9; border-color: #f6c56e; color: #8c5700; }
.week-type-badge.type-build_compressed { background: #ffe8c2; border-color: #edaa3d; color: #804700; }
.week-type-badge.type-hyrox_build { background: #fff6a8; border-color: #dcc600; color: #2c2900; }
.week-type-badge.type-hike_block { background: #e8f0d9; border-color: #9db571; color: #486126; }
.week-type-badge.type-peak { background: #ffe2df; border-color: #fa9187; color: #a12d24; }
.week-type-badge.type-taper { background: #e8e5ff; border-color: #aaa1ef; color: #5146a5; }
.week-type-badge.type-race { background: #161616; border-color: #ff5d2a; color: #fff; }
.week-type-badge.type-test { background: #f5e4ff; border-color: #d39be8; color: #7e319d; }
.training-week-stats, .difficulty-legend, .session-coach-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.difficulty-chip { background: #eef3f1; border: 1px solid #d3dfdb; border-radius: 12px; font-size: .69rem; padding: 8px 11px; }
.difficulty-chip b { font-size: .92rem; margin-right: 4px; }
.difficulty-chip.easy, .difficulty-dot.easy, .session-difficulty-marker.green { background: #dff7e9; border-color: #7fd7a2; color: #11653b; }
.difficulty-chip.medium, .difficulty-dot.medium, .session-difficulty-marker.orange { background: #fff0d8; border-color: #f2bd61; color: #8a5200; }
.difficulty-chip.hard, .difficulty-dot.hard, .session-difficulty-marker.red { background: #ffe2df; border-color: #ef8b82; color: #a02b24; }
.difficulty-chip.unknown, .session-difficulty-marker.neutral { color: #60746f; }
.difficulty-dot { align-items: center; border: 1px solid; border-radius: 50%; display: inline-flex; font-size: .62rem; font-style: normal; font-weight: 950; height: 22px; justify-content: center; width: 22px; }
.difficulty-legend { border-top: 1px solid var(--line); padding-top: 12px; }
.difficulty-legend > span { align-items: center; display: inline-flex; font-size: .66rem; font-weight: 800; gap: 5px; }
.difficulty-legend small { color: var(--muted); margin-left: auto; }
.training-week-warning, .roadmap-week-warning { background: #fff4dd; border: 1px solid #efc56e; border-radius: 12px; color: #805100; font-size: .72rem; font-weight: 800; padding: 10px 12px; }
.planning-session-card { position: relative; }
.session-difficulty-marker { align-items: center; border: 1px solid #cad7d3; border-radius: 50%; display: inline-flex; font-size: .64rem; font-weight: 950; height: 25px; justify-content: center; left: 7px; position: absolute; top: 7px; width: 25px; z-index: 3; }
.session-coach-meta { margin-top: 5px; }
.session-coach-meta small { background: #eef5f2; border-radius: 999px; color: #42645b; font-size: .59rem; font-style: normal; font-weight: 800; padding: 4px 7px; }
.coach-priority.priority-key { background: #ffe3da; color: #a93e1b; }
.coach-priority.priority-optional { background: #eceff1; color: #62706c; }
.planning-session-meta small { color: var(--muted); font-size: .58rem; font-weight: 700; max-width: 180px; }
.roadmap-heading { background: linear-gradient(120deg, rgba(3,18,16,.92), rgba(13,65,55,.82), rgba(255,95,31,.35)) !important; }
.roadmap-nav { align-items: center; background: rgba(255,255,255,.9); border: 1px solid var(--line); border-radius: 15px; display: flex; justify-content: space-between; margin-bottom: 14px; padding: 9px; }
.roadmap-summary-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 16px; }
.roadmap-summary-grid article { background: rgba(255,255,255,.92); border: 1px solid rgba(255,255,255,.5); border-radius: 17px; box-shadow: 0 12px 34px rgba(0,0,0,.12); display: flex; flex-direction: column; padding: 16px; }
.roadmap-summary-grid strong { color: var(--dark); font-size: 1.35rem; }
.roadmap-summary-grid span { color: var(--muted); font-size: .66rem; font-weight: 850; }
.roadmap-track { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(280px, 1fr)); }
.roadmap-week-card { background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.65); border-radius: 20px; box-shadow: 0 15px 40px rgba(0,0,0,.13); display: flex; flex-direction: column; min-height: 330px; overflow: hidden; padding: 18px; position: relative; }
.roadmap-week-card::before { background: #9eb1ac; content: ""; height: 5px; inset: 0 0 auto; position: absolute; }
.roadmap-week-card.type-recovery::before, .roadmap-week-card.type-easy_rebuild::before { background: #32bf8f; }
.roadmap-week-card.type-deload::before { background: #77b864; }
.roadmap-week-card.type-flexible::before { background: #8878d8; }
.roadmap-week-card.type-base::before { background: #28b8ca; }
.roadmap-week-card.type-build::before { background: #f0a128; }
.roadmap-week-card.type-build_compressed::before { background: #e98a16; }
.roadmap-week-card.type-hyrox_build::before { background: linear-gradient(90deg, #111, #ffe900); }
.roadmap-week-card.type-hike_block::before { background: #779548; }
.roadmap-week-card.type-peak::before { background: #ef5f54; }
.roadmap-week-card.type-taper::before { background: #7667d8; }
.roadmap-week-card.type-race::before { background: linear-gradient(90deg, #111, #ff5424); }
.roadmap-week-card.type-test::before { background: #b45bd5; }
.roadmap-week-card > header, .roadmap-week-card > footer { align-items: center; display: flex; gap: 10px; justify-content: space-between; }
.roadmap-week-card > header small { color: var(--muted); display: block; font-weight: 900; }
.roadmap-week-focus { margin: 22px 0 12px; min-height: 90px; }
.roadmap-week-focus h2 { font-size: 1.2rem; margin: 3px 0 7px; }
.roadmap-week-focus p { color: var(--muted); font-size: .72rem; margin: 0; }
.roadmap-week-metrics { display: grid; gap: 7px; grid-template-columns: repeat(3, 1fr); }
.roadmap-week-metrics span { background: #eff5f3; border-radius: 11px; color: var(--muted); font-size: .58rem; padding: 9px; text-align: center; }
.roadmap-week-metrics b { color: var(--dark); display: block; font-size: .9rem; }
.roadmap-week-metrics .hard b { color: #b3372d; }
.roadmap-week-details { display: grid; gap: 7px; margin: 12px 0; }
.roadmap-week-details > div { border-bottom: 1px solid var(--line); display: grid; gap: 8px; grid-template-columns: 78px 1fr; padding-bottom: 6px; }
.roadmap-week-details dt { color: var(--muted); font-size: .59rem; font-weight: 900; text-transform: uppercase; }
.roadmap-week-details dd { font-size: .68rem; font-weight: 750; margin: 0; }
.roadmap-week-card > footer { margin-top: auto; padding-top: 14px; }
.roadmap-week-card > footer > a:first-child { color: #167158; font-size: .68rem; font-weight: 900; }
.roadmap-week-form { max-width: 1080px; }
.review-training-context { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 18px; }
.review-week-types { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 13px; }
.review-week-types > div { background: #eef5f2; border-radius: 13px; padding: 12px; }
.review-week-types small { color: var(--muted); display: block; font-size: .6rem; font-weight: 900; text-transform: uppercase; }
.review-week-types strong { display: block; margin-top: 3px; }
.future-context-list { display: grid; gap: 8px; }
.future-context-list > div { align-items: center; background: #f5f8f7; border: 1px solid var(--line); border-radius: 11px; display: flex; gap: 9px; padding: 9px; }
.future-context-list strong { font-size: .69rem; }

@media (max-width: 1100px) {
  .roadmap-track { grid-template-columns: repeat(2, minmax(280px, 1fr)); }
}
@media (max-width: 760px) {
  .training-week-identity { align-items: flex-start; flex-direction: column; }
  .difficulty-legend small { margin-left: 0; width: 100%; }
  .roadmap-nav { gap: 8px; }.roadmap-nav strong { font-size: .67rem; text-align: center; }
  .roadmap-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .roadmap-track { grid-template-columns: 1fr; }
  .roadmap-week-card { min-height: 0; }
  .review-training-context { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .stat-grid { grid-template-columns: 1fr; }
  .stat-card { min-height: 106px; }
  .stat-card strong { margin-top: 9px; }
  .sunday-status-grid { grid-template-columns: 1fr; }
}

/* V4.9: quick effort-fuel logging and private mobile photo inbox. */
.activity-fuel-picker { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.activity-fuel-column { border-top: 4px solid var(--mint); min-width: 0; }
.activity-fuel-column.drink { border-top-color: var(--swim); }
.activity-fuel-column.gel { border-top-color: #ed7054; }
.activity-fuel-column.bar { border-top-color: #a86a09; }
.activity-fuel-column.compote { border-top-color: #d64d61; }
.activity-fuel-column.solid { border-top-color: var(--hyrox); }
.activity-fuel-product-list { display: grid; gap: 10px; }
.activity-fuel-product-card { align-items: center; background: #f8fbfa; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 10px; grid-template-columns: 52px minmax(0, 1fr); padding: 9px; }
.fuel-product-photo, .fuel-product-placeholder { align-items: center; background: #eaf4f1; border-radius: 11px; display: flex; font-size: .6rem; font-weight: 900; height: 52px; justify-content: center; object-fit: cover; overflow: hidden; text-align: center; text-transform: uppercase; width: 52px; }
.fuel-product-placeholder.gel, .fuel-library-placeholder.gel { background: #fff0eb; color: #bb543f; }
.fuel-product-placeholder.bar, .fuel-library-placeholder.bar { background: #fff6dc; color: #9b650a; }
.fuel-product-placeholder.compote, .fuel-library-placeholder.compote { background: #fff0f2; color: #c04658; }
.fuel-product-placeholder.drink_mix, .fuel-product-placeholder.electrolyte, .fuel-product-placeholder.drink_other, .fuel-library-placeholder.drink_mix, .fuel-library-placeholder.electrolyte, .fuel-library-placeholder.drink_other { background: #e8fbff; color: #148aa0; }
.activity-fuel-product-name { min-width: 0; }
.activity-fuel-product-name strong { display: block; font-size: .78rem; line-height: 1.25; }
.activity-fuel-product-name small { color: var(--muted); display: block; font-size: .66rem; margin-top: 3px; }
.activity-fuel-stepper { align-items: center; display: flex; gap: 8px; grid-column: 1 / -1; justify-content: flex-end; margin: 0; }
.activity-fuel-stepper strong { min-width: 26px; text-align: center; }
.activity-fuel-logged-panel { margin-top: 18px; }
.activity-fuel-logged-list { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); }
.activity-fuel-logged-list div { align-items: center; background: #f8fbfa; border: 1px solid var(--line); border-radius: 12px; display: flex; font-size: .78rem; gap: 10px; justify-content: space-between; padding: 10px; }
.activity-fuel-logged-list span { color: #176b57; font-weight: 850; white-space: nowrap; }
.activity-fuel-logged-row form, .journal-fuel-summary-row form { margin: 0 0 0 auto; }
.activity-fuel-logged-row .button, .journal-fuel-summary-row .button { white-space: nowrap; }

.fuel-current-summary { align-items: center; background: var(--mint-soft); border: 1px solid #cbe8dc; border-radius: 13px; display: flex; gap: 10px; padding: 11px 13px; }
.fuel-current-summary strong { color: #176b57; font-size: 1.25rem; }
.fuel-current-summary span { color: #35695b; font-size: .76rem; font-weight: 700; }
.fuel-library-card { display: grid; gap: 10px; }
.fuel-library-main { align-items: center; display: grid; gap: 10px; grid-template-columns: 48px minmax(0, 1fr); min-width: 0; }
.fuel-library-main > span:last-child { min-width: 0; }
.fuel-library-photo, .fuel-library-placeholder { align-items: center; background: #eaf4f1; border-radius: 10px; display: flex; font-size: .56rem; font-weight: 900; height: 48px; justify-content: center; object-fit: cover; overflow: hidden; text-align: center; text-transform: uppercase; width: 48px; }
.fuel-library-main .fuel-category-label { display: inline-block; margin-right: 5px; }
.fuel-library-main strong, .fuel-library-main small, .fuel-library-macros { display: block; }
.fuel-library-main strong { font-size: .77rem; line-height: 1.25; }
.fuel-library-main small { color: var(--muted); font-size: .66rem; margin-top: 3px; }
.fuel-library-macros { color: var(--muted); font-size: .68rem; font-weight: 700; margin-top: 6px; }
.fuel-current-toggle { margin: 0; }
.current-product-button { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 10px; color: #5a6d67; cursor: pointer; display: flex; font: inherit; font-size: .68rem; font-weight: 800; gap: 7px; padding: 8px 10px; width: 100%; }
.current-product-button span { align-items: center; border: 1px solid #b8c9c3; border-radius: 4px; display: flex; font-size: .56rem; height: 15px; justify-content: center; width: 15px; }
.current-product-button.selected { background: #eaf8f2; border-color: #8ad5b9; color: #167358; }
.current-product-button.selected span { background: #23a477; border-color: #23a477; color: #fff; }

.fuel-product-editor { display: grid; gap: 18px; max-width: 980px; }
.product-photo-edit-grid { align-items: center; display: grid; gap: 18px; grid-template-columns: minmax(200px, .7fr) minmax(0, 1fr) 110px; }
.fuel-product-edit-photo { border: 1px solid var(--line); border-radius: 14px; height: 110px; object-fit: cover; width: 110px; }
.photo-capture-layout { align-items: start; display: grid; gap: 18px; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); }
.photo-capture-tip { background: #eff8f4; border-color: #cce9dc; }
.photo-capture-tip h2 { margin: 3px 0 9px; }
.photo-capture-tip p { font-size: .8rem; line-height: 1.55; }
.photo-capture-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(245px, 1fr)); margin-top: 18px; }
.nutrition-photo-card { overflow: hidden; padding: 0; }
.nutrition-photo-card > img { background: #f3f6f5; display: block; height: 190px; object-fit: cover; width: 100%; }
.nutrition-photo-card.processed { opacity: .72; }
.nutrition-photo-card-body { padding: 14px; }
.nutrition-photo-card-body > div:first-child { min-height: 22px; }
.nutrition-photo-card-body > strong { display: block; font-size: .86rem; margin-top: 5px; }
.nutrition-photo-card-body p { color: var(--muted); font-size: .73rem; line-height: 1.45; margin: 7px 0 0; }
.photo-status { border-radius: 999px; font-size: .6rem; font-weight: 850; margin-left: 5px; padding: 3px 7px; text-transform: uppercase; }
.photo-status.to_process { background: #fff4dc; color: #9b650a; }
.photo-status.processed { background: #eaf8f2; color: #167358; }
.photo-capture-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }

@media (max-width: 1050px) {
  .activity-fuel-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo-capture-layout { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .activity-fuel-picker { grid-template-columns: 1fr; }
  .activity-fuel-product-card { grid-template-columns: 52px minmax(0, 1fr) auto; }
  .activity-fuel-stepper { grid-column: auto; }
  .product-photo-edit-grid { grid-template-columns: 1fr; }
  .fuel-product-edit-photo { height: 140px; width: 140px; }
  .fuel-current-summary { align-items: flex-start; }
}

/* V5.0: validated competition history, splits and automatic records. */
.goal-result-action { margin-left: auto; }
.competition-strip { margin: 18px 0; }
.competition-strip-list { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); }
.competition-strip-card { align-items: center; background: #f8fbfa; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 10px; grid-template-columns: 34px minmax(0, 1fr) auto; padding: 11px; }
.competition-strip-card:hover { border-color: var(--mint); }
.competition-strip-card .record-universe-icon { height: 34px; width: 34px; }
.competition-strip-card .record-universe-icon .sport-icon { height: 18px; width: 18px; }
.competition-strip-card strong, .competition-strip-card small { display: block; }
.competition-strip-card strong { font-size: .77rem; }
.competition-strip-card small { color: var(--muted); font-size: .66rem; margin-top: 3px; }
.competition-strip-card b { color: #176b57; font-size: .9rem; white-space: nowrap; }

.competition-history-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(255px, 1fr)); }
.competition-history-card { --competition-color: var(--mint); display: flex; flex-direction: column; min-height: 220px; overflow: hidden; position: relative; }
.competition-history-card::after { background: radial-gradient(circle, var(--competition-color), transparent 66%); content: ""; height: 175px; opacity: .15; position: absolute; right: -55px; top: -70px; width: 175px; }
.competition-history-card.run { --competition-color: var(--run); }
.competition-history-card.bike { --competition-color: var(--bike); }
.competition-history-card.swim { --competition-color: var(--swim); }
.competition-history-card.triathlon { --competition-color: #6366f1; }
.competition-history-card.hyrox { --competition-color: var(--hyrox); }
.competition-history-top { align-items: center; display: flex; justify-content: space-between; position: relative; z-index: 1; }
.competition-history-top .record-universe-icon { background: var(--competition-color); }
.competition-history-card > strong { font-size: 1rem; line-height: 1.2; margin: 20px 0 8px; position: relative; z-index: 1; }
.competition-history-time { font-size: 2rem; font-weight: 900; letter-spacing: -.06em; position: relative; z-index: 1; }
.competition-history-card > small { color: var(--muted); font-size: .73rem; margin-top: 6px; position: relative; z-index: 1; }
.competition-history-card footer { border-top: 1px solid var(--line); color: var(--muted); display: flex; font-size: .68rem; font-weight: 800; justify-content: space-between; margin-top: auto; padding-top: 12px; position: relative; text-transform: uppercase; z-index: 1; }

.competition-form-panel { max-width: 920px; }
.fit-validation-notice { background: #edf9f4; border: 1px solid #c9e8db; border-radius: 12px; color: #286757; font-size: .76rem; line-height: 1.45; margin-top: 16px; padding: 11px 13px; }
.competition-detail-hero { --competition-color: var(--mint); align-items: center; background: linear-gradient(125deg, #0c2823, #113d33); border-radius: 24px; color: #fff; display: flex; gap: 24px; justify-content: space-between; margin-bottom: 16px; overflow: hidden; padding: 30px; position: relative; }
.competition-detail-hero::after { background: radial-gradient(circle, var(--competition-color), transparent 67%); content: ""; height: 290px; opacity: .43; position: absolute; right: -110px; top: -150px; width: 290px; }
.competition-detail-hero.run { --competition-color: var(--run); }
.competition-detail-hero.bike { --competition-color: var(--bike); }
.competition-detail-hero.swim { --competition-color: var(--swim); }
.competition-detail-hero.triathlon { --competition-color: #818cf8; }
.competition-detail-hero.hyrox { --competition-color: var(--hyrox); }
.competition-detail-hero > div { position: relative; z-index: 1; }
.competition-detail-hero .eyebrow { color: #a9dfce; }
.competition-detail-hero h1 { font-size: clamp(2rem, 4.5vw, 3.6rem); letter-spacing: -.06em; line-height: 1; margin: 4px 0 10px; }
.competition-detail-hero p:last-child { color: #c0d5ce; font-size: .83rem; margin: 0; }
.competition-total { align-items: flex-end; display: flex; flex-direction: column; min-width: 170px; }
.competition-total span { color: #b6d8cd; font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.competition-total strong { font-size: clamp(2.15rem, 4vw, 3.2rem); letter-spacing: -.07em; margin-top: 6px; }
.competition-total small { color: #d5ebe4; font-size: .78rem; margin-top: 5px; }
.competition-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.competition-fit-proof { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.competition-fit-proof strong { font-size: .82rem; }
.competition-fit-proof small { color: var(--muted); font-size: .72rem; }
.competition-segments-section { margin-top: 18px; }
.section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 12px; }
.section-heading h2 { margin: 2px 0 0; }
.section-heading > span { color: var(--muted); font-size: .73rem; font-weight: 800; }
.competition-segment-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.competition-segment-card { --segment-color: #869a94; min-height: 190px; overflow: hidden; position: relative; }
.competition-segment-card::before { background: var(--segment-color); content: ""; height: 4px; left: 0; position: absolute; right: 0; top: 0; }
.competition-segment-card.swim { --segment-color: var(--swim); }
.competition-segment-card.bike { --segment-color: var(--bike); }
.competition-segment-card.run, .competition-segment-card.hyrox_run { --segment-color: var(--run); }
.competition-segment-card.hyrox_station { --segment-color: var(--hyrox); }
.competition-segment-card.t1, .competition-segment-card.t2 { --segment-color: #8b5cf6; }
.competition-segment-order { align-items: center; background: color-mix(in srgb, var(--segment-color) 16%, white); border-radius: 999px; color: color-mix(in srgb, var(--segment-color) 78%, #0f2a24); display: inline-flex; font-size: .68rem; font-weight: 900; height: 25px; justify-content: center; width: 25px; }
.competition-segment-card .sport-tag { float: right; }
.competition-segment-card h3 { clear: both; font-size: .94rem; line-height: 1.25; margin: 20px 0 9px; }
.competition-segment-card > strong { display: block; font-size: 1.52rem; letter-spacing: -.05em; }
.competition-segment-card > small { color: var(--muted); display: block; font-size: .7rem; margin-top: 5px; }
.competition-segment-card .segment-fit-link { color: #176b57; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.competition-segment-card footer { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 12px; margin-top: 16px; padding-top: 10px; }
.competition-segment-card footer form { margin: 0; }
.danger-link { background: transparent; border: 0; cursor: pointer; padding: 0; }
.competition-records-panel { margin-top: 18px; }
.competition-generated-records { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.competition-generated-records a { align-items: center; background: #f8fbfa; border: 1px solid var(--line); border-radius: 13px; display: grid; gap: 5px; padding: 11px; }
.competition-generated-records a:hover { border-color: var(--mint); }
.competition-generated-records strong { font-size: .78rem; }
.competition-generated-records b { color: #176b57; font-size: 1.02rem; }

/* V6.4: structured goals and segment-based race validation. */
.primary-goal-banner { align-items: center; background: linear-gradient(135deg, #0d2b27, #0f3d35); color: #f5fffb; display: flex; justify-content: space-between; margin-bottom: 18px; overflow: hidden; position: relative; }
.primary-goal-banner::after { background: radial-gradient(circle, rgba(53,208,161,.34), transparent 68%); content: ""; height: 220px; position: absolute; right: -80px; top: -100px; width: 220px; }
.primary-goal-banner > * { position: relative; z-index: 1; }
.primary-goal-banner .eyebrow { color: #9be8d0; }
.primary-goal-banner h2 { color: #fff; font-size: 1.55rem; letter-spacing: -.05em; margin: 3px 0 6px; }
.primary-goal-banner p { color: #cfe5de; font-size: .78rem; margin: 0; }
.primary-goal-row { background: linear-gradient(90deg, rgba(53,208,161,.14), transparent); border-radius: 14px; padding-left: 8px; padding-right: 8px; }
.goal-row .goal-result-action { align-items: center; display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; }

.goal-builder-form, .competition-validation-form { display: grid; gap: 18px; }
.goal-builder-summary, .objective-segment-planner, .competition-validation-top, .competition-validation-identity, .competition-segment-validation { box-shadow: var(--shadow); }
.objective-segment-table, .competition-segment-validation-table { display: grid; gap: 10px; }
.objective-segment-head, .competition-segment-validation-head { color: var(--muted); display: grid; font-size: .66rem; font-weight: 900; gap: 10px; letter-spacing: .08em; padding: 0 10px; text-transform: uppercase; }
.objective-segment-head { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
.competition-segment-validation-head { grid-template-columns: 1.2fr 1.8fr .8fr .8fr .6fr 1.2fr; }
.objective-segment-row, .competition-segment-validation-row { --segment-color: #869a94; align-items: end; background: #f9fcfb; border: 1px solid var(--line); border-left: 5px solid var(--segment-color); border-radius: 16px; display: grid; gap: 10px; padding: 13px; }
.objective-segment-row { grid-template-columns: 1.5fr 1.35fr .8fr .8fr .7fr; }
.competition-segment-validation-row { grid-template-columns: 1.2fr 1.8fr .8fr .8fr .6fr 1.2fr; }
.objective-segment-row.swim, .competition-segment-validation-row.swim { --segment-color: var(--swim); }
.objective-segment-row.bike, .competition-segment-validation-row.bike { --segment-color: var(--bike); }
.objective-segment-row.run, .competition-segment-validation-row.run,
.objective-segment-row.hyrox_run, .competition-segment-validation-row.hyrox_run { --segment-color: var(--run); }
.objective-segment-row.hyrox, .competition-segment-validation-row.hyrox,
.objective-segment-row.hyrox_station, .competition-segment-validation-row.hyrox_station { --segment-color: var(--hyrox); }
.objective-segment-row.t1, .objective-segment-row.t2, .competition-segment-validation-row.t1, .competition-segment-validation-row.t2 { --segment-color: #8b5cf6; }
.objective-segment-title { align-items: center; display: grid; gap: 5px 9px; grid-template-columns: 28px minmax(0, 1fr); }
.objective-segment-title .competition-segment-order { grid-row: span 2; }
.objective-segment-title strong { display: block; font-size: .84rem; line-height: 1.15; }
.objective-segment-title small { color: var(--muted); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
.objective-segment-row label { display: flex; flex-direction: column; gap: 5px; }
.objective-segment-row label span { color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.competition-validation-grid { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); }
.fit-upload-zone { background: #f4fbf8; border: 1px dashed #b7d8ce; border-radius: 16px; display: grid; gap: 8px; padding: 16px; }
.fit-upload-zone label { font-size: .88rem; font-weight: 900; }
.fit-upload-zone small { color: var(--muted); font-size: .72rem; }
.competition-linked-goal { background: #f4fbf8; border: 1px solid var(--line); border-radius: 16px; display: grid; gap: 4px; padding: 14px 16px; }
.competition-linked-goal .field-label { color: var(--muted); font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.competition-linked-goal small { color: var(--muted); }
.competition-manual-segment { align-items: center; background: #eef5f2; border-radius: 12px; color: var(--muted); display: flex; font-size: .72rem; font-weight: 900; min-height: 43px; padding: 9px 12px; }
.compact-model-form { gap: 12px; grid-template-columns: 1fr; }
.sticky-actions { bottom: 16px; position: sticky; z-index: 6; }

/* V6.5: race-style objective builder with GPX course panels. */
.goal-event-hero {
  --goal-accent: var(--mint);
  --goal-dark: #071c1a;
  align-items: stretch;
  background: var(--goal-dark);
  border-radius: 30px;
  box-shadow: var(--shadow-premium);
  color: #fff;
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(280px, .72fr) minmax(380px, 1.18fr) minmax(300px, .9fr);
  margin: 0 0 22px;
  overflow: hidden;
  padding: 24px;
  position: relative;
}
.goal-event-hero::before {
  background:
    linear-gradient(135deg, rgba(255,255,255,.08) 25%, transparent 25%) 0 0 / 34px 34px,
    radial-gradient(circle at 85% 0%, color-mix(in srgb, var(--goal-accent) 42%, transparent), transparent 30rem);
  content: "";
  inset: 0;
  opacity: .68;
  position: absolute;
}
.goal-event-hero > * { position: relative; z-index: 1; }
.goal-event-brand { align-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 22px; display: grid; justify-items: center; padding: 20px; text-align: center; }
.goal-event-logo { color: var(--goal-accent); font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(2.3rem, 4vw, 3.7rem); letter-spacing: .02em; line-height: .9; text-transform: uppercase; }
.goal-event-brand small { color: rgba(255,255,255,.78); font-size: .72rem; font-weight: 900; letter-spacing: .08em; margin-top: 10px; text-transform: uppercase; }
.goal-event-copy { align-self: center; }
.goal-event-copy .eyebrow { color: var(--goal-accent); }
.goal-event-copy h1 { color: #fff; font-size: clamp(2.3rem, 5vw, 4.4rem); line-height: .9; margin: 0 0 12px; }
.goal-event-copy p:not(.eyebrow) { color: rgba(255,255,255,.78); max-width: 680px; }
.goal-event-stats { align-content: center; display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.goal-event-stats span, .goal-calculated-total span {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 18px;
  display: grid;
  gap: 2px;
  padding: 14px;
}
.goal-event-stats strong, .goal-calculated-total strong { color: #fff; font-size: 1.35rem; letter-spacing: -.04em; }
.goal-event-stats small, .goal-calculated-total small { color: rgba(255,255,255,.72); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.theme-ironman { --goal-accent: #ff4b1f; --goal-dark: #050505; }
.theme-hyrox { --goal-accent: #ffe500; --goal-dark: #050505; }
.theme-run { --goal-accent: #f97316; --goal-dark: #171717; }
.theme-bike { --goal-accent: #3b82f6; --goal-dark: #071c1a; }
.theme-swim { --goal-accent: #06b6d4; --goal-dark: #082f49; }
.theme-hike { --goal-accent: #22c55e; --goal-dark: #10231b; }
.theme-other { --goal-accent: var(--mint); --goal-dark: #071c1a; }
.goal-builder-form .button.primary { background: var(--goal-dark); }
.goal-builder-form .button.primary:hover { background: color-mix(in srgb, var(--goal-dark) 88%, var(--goal-accent)); }
.goal-identity-grid { grid-template-columns: minmax(0, 2fr) minmax(180px, .8fr) minmax(230px, 1fr) repeat(3, minmax(150px, .55fr)); }
.goal-official-route-panel { box-shadow: var(--shadow); }
.gpx-upload-zone {
  background: linear-gradient(135deg, color-mix(in srgb, var(--goal-accent) 10%, #fff), #fff);
  border: 1px dashed color-mix(in srgb, var(--goal-accent) 44%, var(--line));
  border-radius: 18px;
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
  padding: 16px;
}
.gpx-upload-zone > span { color: #10231f; font-size: .82rem; font-weight: 900; }
.official-route-tabs {
  background: #edf5f2;
  border: 1px solid var(--line);
  border-radius: 20px;
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  margin-bottom: 14px;
  padding: 6px;
}
.official-route-tab {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 16px;
  color: #35534d;
  cursor: pointer;
  display: flex;
  gap: 8px;
  justify-content: center;
  min-height: 46px;
  padding: 8px 10px;
}
.official-route-tab strong { font-size: .75rem; line-height: 1.1; }
.official-route-tab.active {
  background: var(--goal-dark);
  color: #fff;
  box-shadow: 0 10px 22px rgba(7, 28, 26, .16);
}
.official-route-panels { display: grid; }
.official-route-detail { display: none; }
.official-route-detail.active { display: grid; }
.official-route-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.official-route-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  display: grid;
  gap: 12px;
  overflow: hidden;
  padding: 14px;
}
.route-card-head { align-items: center; display: flex; gap: 10px; }
.route-card-head strong { display: block; font-size: .84rem; }
.route-card-head small { color: var(--muted); display: block; font-size: .7rem; margin-top: 2px; }
.route-mini-map { background: #091512; border-radius: 16px; height: 170px; width: 100%; }
.route-mini-map rect { fill: #0e241f; }
.route-mini-map polyline { fill: none; stroke: var(--goal-accent); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.6; vector-effect: non-scaling-stroke; }
.route-mini-map text { fill: rgba(255,255,255,.45); font-size: 10px; font-weight: 900; letter-spacing: .2em; }
.route-mini-profile { background: #fff9f6; border: 1px solid color-mix(in srgb, var(--goal-accent) 25%, var(--line)); border-radius: 12px; height: 64px; width: 100%; }
.route-mini-profile line { stroke: var(--line); stroke-width: 1; }
.route-mini-profile polyline { fill: none; stroke: var(--goal-accent); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; vector-effect: non-scaling-stroke; }
.goal-target-strip {
  align-items: end;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(260px, 1fr) minmax(420px, .9fr);
  margin-bottom: 16px;
}
.goal-calculated-total {
  background: var(--goal-dark);
  border-radius: 22px;
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, 1fr);
  padding: 12px;
}
.objective-segment-head { grid-template-columns: 1.05fr 1.35fr .7fr .72fr .78fr .55fr minmax(260px, 1.25fr); }
.objective-segment-row { grid-template-columns: 1.05fr 1.35fr .7fr .72fr .78fr .55fr minmax(260px, 1.25fr); }
.objective-segment-row .segment-derived { color: var(--segment-color); font-size: .64rem; font-weight: 900; min-height: 15px; }
.segment-fit-cell { align-self: center; display: grid; gap: 7px; justify-self: stretch; }
.segment-fit-cell .compact-select { font-size: .72rem; min-height: 34px; padding: 7px 9px; }
.segment-fit-upload { justify-self: end; min-height: 32px; padding: 7px 11px; }
.segment-fit-summary { color: var(--muted); font-size: .68rem; font-weight: 750; line-height: 1.25; }
.segment-fit-mini {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-size: .65rem;
  font-weight: 900;
  justify-content: center;
  min-height: 32px;
  min-width: 58px;
  text-transform: uppercase;
}
.segment-fit-mini.disabled, .segment-fit-mini.muted {
  background: #edf4f1;
  color: var(--muted);
  padding: 0 10px;
}
.goal-builder-form.theme-ironman .objective-segment-planner,
.goal-builder-form.theme-ironman .goal-official-route-panel { border-top: 4px solid #ff4b1f; }
.goal-builder-form.theme-hyrox .objective-segment-planner,
.goal-builder-form.theme-hyrox .goal-official-route-panel { border-top: 4px solid #ffe500; }

@media (max-width: 760px) {
  .goal-result-action { margin-left: 0; }
  .competition-detail-hero { align-items: flex-start; flex-direction: column; padding: 23px; }
  .competition-total { align-items: flex-start; }
  .competition-fit-proof { align-items: flex-start; flex-direction: column; }
  .primary-goal-banner { align-items: flex-start; flex-direction: column; gap: 14px; }
  .goal-event-hero { grid-template-columns: 1fr; padding: 18px; }
  .goal-event-brand { align-items: start; justify-items: start; }
  .goal-event-stats, .goal-calculated-total, .goal-target-strip { grid-template-columns: 1fr; }
  .objective-segment-head, .competition-segment-validation-head { display: none; }
  .objective-segment-row, .competition-segment-validation-row, .competition-validation-grid { grid-template-columns: 1fr; }
  .segment-fit-cell { justify-self: stretch; }
  .segment-fit-upload { justify-self: stretch; }
  .segment-fit-mini { width: 100%; }
}

/* V5.1: wider performance cockpit and private athlete profiles. */
:root {
  --page-laptop: 1280px;
  --page-desktop: 1600px;
  --page-ultra: 1680px;
  --radius-card: 22px;
  --shadow-premium: 0 18px 48px rgba(7, 28, 26, .11);
}

body {
  background:
    radial-gradient(circle at 8% -8%, rgba(53, 208, 161, .17), transparent 26rem),
    radial-gradient(circle at 94% 12%, rgba(60, 136, 232, .13), transparent 30rem),
    linear-gradient(120deg, #f6faf8 0%, #edf5f1 48%, #f7faf8 100%);
}

.page-shell {
  max-width: none;
  padding: 38px 0 88px;
  width: min(calc(100% - 48px), var(--page-laptop));
}

@media (min-width: 1450px) {
  .page-shell { width: min(calc(100% - 64px), var(--page-desktop)); }
  .topbar { padding-left: max(30px, calc((100vw - var(--page-desktop)) / 2)); padding-right: max(30px, calc((100vw - var(--page-desktop)) / 2)); }
}

@media (min-width: 1810px) {
  .page-shell { width: min(calc(100% - 88px), var(--page-ultra)); }
  .topbar { padding-left: max(42px, calc((100vw - var(--page-ultra)) / 2)); padding-right: max(42px, calc((100vw - var(--page-ultra)) / 2)); }
}

.topbar {
  background: linear-gradient(110deg, rgba(5, 24, 22, .97), rgba(7, 36, 32, .94));
  border-bottom: 1px solid rgba(135, 230, 199, .12);
  box-shadow: 0 10px 34px rgba(4, 23, 20, .18);
  height: 74px;
  backdrop-filter: blur(18px);
}
.brand { min-width: 222px; }
.brand-mark { box-shadow: 0 0 0 5px rgba(53, 208, 161, .1), 0 8px 22px rgba(53, 208, 161, .16); }
.desktop-nav { gap: 5px; }
.desktop-nav a { border-bottom: 0; border-radius: 9px; height: auto; margin: auto 0; padding: 10px 10px; position: relative; }
.desktop-nav a:hover, .desktop-nav a.active { background: rgba(255, 255, 255, .07); border-color: transparent; color: #fff; }
.desktop-nav a.active::after { background: var(--mint); border-radius: 999px; bottom: -7px; content: ""; height: 3px; left: 20%; position: absolute; right: 20%; }

.profile-menu-link { align-items: center; color: #d8ece6; display: inline-flex; gap: 8px; min-width: 0; }
.profile-menu-link:hover { color: #fff; }
.profile-menu-label { font-size: .72rem; font-weight: 800; max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.header-icon-link { align-items: center; border-radius: 9px; color: #9eb2ae; display: inline-flex; height: 34px; justify-content: center; width: 34px; }
.header-icon-link:hover, .header-icon-link.active { background: rgba(255, 255, 255, .08); color: #fff; }
.header-icon-link svg { fill: none; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 18px; }
.header-profile-menu { position: relative; }
.header-profile-menu > summary { cursor: pointer; list-style: none; }
.header-profile-menu > summary::-webkit-details-marker { display: none; }
.header-profile-panel { background: #fff; border: 1px solid #d5e1dd; border-radius: 14px; box-shadow: 0 18px 50px rgba(0, 23, 20, .24); color: #102823; display: grid; gap: 4px; min-width: 190px; padding: 10px; position: absolute; right: 0; top: calc(100% + 10px); z-index: 1300; }
.header-profile-panel strong { border-bottom: 1px solid #e1e9e6; font-size: .78rem; margin-bottom: 3px; padding: 7px 9px 10px; }
.header-profile-panel a, .header-profile-panel button { background: transparent; border: 0; border-radius: 9px; color: #183a33; cursor: pointer; display: block; font: inherit; font-size: .76rem; font-weight: 800; padding: 9px; text-align: left; width: 100%; }
.header-profile-panel a:hover, .header-profile-panel button:hover { background: #edf6f3; color: #006b55; }
.profile-avatar { align-items: center; background: #dff8ef; border-radius: 50%; color: #0c352c; display: inline-flex; flex: 0 0 auto; font-size: .68rem; font-weight: 950; height: 34px; justify-content: center; letter-spacing: -.03em; width: 34px; }
.profile-avatar.mint { background: linear-gradient(135deg, #a7f3d0, #35d0a1); color: #06382e; }
.profile-avatar.blue { background: linear-gradient(135deg, #b6dcff, #4a97f4); color: #0b3568; }
.profile-avatar.orange { background: linear-gradient(135deg, #ffd39b, #ff7a1a); color: #653000; }
.profile-avatar.violet { background: linear-gradient(135deg, #e4c9ff, #a56de1); color: #452163; }
.profile-avatar.rose { background: linear-gradient(135deg, #ffd2dc, #ed7193); color: #671c36; }
.profile-avatar.large { font-size: 1.25rem; height: 70px; width: 70px; }

.athletic-hero {
  background:
    radial-gradient(circle at 84% 13%, rgba(255, 122, 26, .35), transparent 24rem),
    radial-gradient(circle at 58% 100%, rgba(60, 136, 232, .24), transparent 30rem),
    linear-gradient(128deg, #071d1a 0%, #0a302a 55%, #071713 100%);
  border-radius: 30px;
  box-shadow: 0 28px 78px rgba(7, 28, 26, .24);
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, .72fr);
  min-height: 292px;
}
.athletic-hero::before {
  background:
    repeating-linear-gradient(135deg, transparent 0 34px, rgba(255,255,255,.035) 35px 36px),
    linear-gradient(90deg, transparent 0 18%, rgba(53,208,161,.13) 18.2% 18.5%, transparent 18.7% 100%);
  content: "";
  inset: 0;
  opacity: .8;
  pointer-events: none;
  position: absolute;
}
.athletic-hero > * { position: relative; z-index: 1; }
.athletic-hero::after { border-color: rgba(53, 208, 161, .22); box-shadow: 0 0 0 40px rgba(53,208,161,.035), 0 0 0 82px rgba(60,136,232,.025); }
.hero-copy { align-self: center; }
.hero-sport-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 23px; }
.hero-sport-strip span { align-items: center; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); border-radius: 999px; color: #eaf6f2; display: inline-flex; font-size: .68rem; font-weight: 850; gap: 6px; padding: 7px 10px; }
.hero-sport-strip span.run { border-color: rgba(239,103,95,.42); }
.hero-sport-strip span.bike { border-color: rgba(60,136,232,.42); }
.hero-sport-strip span.swim { border-color: rgba(32,183,201,.42); }
.hero-sport-strip span.hyrox { border-color: rgba(232,157,56,.42); }
.hero-sport-strip .sport-icon { height: 16px; width: 16px; }
.athletic-hero-card { backdrop-filter: blur(10px); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.hero-countdown { align-self: flex-start; background: rgba(53,208,161,.15); border: 1px solid rgba(53,208,161,.3); border-radius: 999px; color: #ccf9e9; font-size: .78rem; font-weight: 950; margin-top: 17px; padding: 7px 11px; }

.athletic-quick-grid { gap: 16px; grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); }
.quick-card { border-radius: var(--radius-card); box-shadow: var(--shadow-premium); min-height: 128px; overflow: hidden; position: relative; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.quick-card::before { background: var(--quick-color, var(--mint)); content: ""; height: 4px; left: 0; position: absolute; right: 0; top: 0; }
.quick-card.planning { --quick-color: var(--bike); }.quick-card.activity { --quick-color: var(--run); }.quick-card.provisional { --quick-color: #d79534; }.quick-card.nutrition { --quick-color: var(--mint); }.quick-card.duration { --quick-color: var(--swim); }.quick-card.review { --quick-color: var(--strength); }
.quick-card:hover { box-shadow: 0 18px 32px rgba(15,42,36,.13); transform: translateY(-3px); }

.stat-grid { gap: 16px; grid-template-columns: repeat(auto-fit, minmax(225px, 1fr)); }
.stat-card { border-radius: var(--radius-card); box-shadow: var(--shadow-premium); min-height: 145px; transition: transform .18s ease, box-shadow .18s ease; }
.stat-card:hover { box-shadow: 0 19px 35px rgba(15,42,36,.13); transform: translateY(-2px); }
.stat-card > span { align-items: center; display: flex; gap: 8px; }
.stat-card .sport-icon { height: 18px; width: 18px; }
.dashboard-grid { gap: 20px; grid-template-columns: minmax(0, 1.7fr) minmax(320px, .8fr); }
.panel { border-radius: var(--radius-card); box-shadow: var(--shadow-premium); }

.login-shell { background: radial-gradient(circle at 12% 10%, rgba(53,208,161,.2), transparent 28rem), radial-gradient(circle at 88% 90%, rgba(60,136,232,.15), transparent 32rem), #edf5f1; }
.profile-login-card { max-width: 620px; }
.profile-choice-heading { display: flex; flex-direction: column; gap: 4px; margin: 2px 0 14px; }
.profile-choice-heading strong { font-size: 1.02rem; }.profile-choice-heading span { color: var(--muted); font-size: .76rem; }
.profile-choice-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.profile-choice-card { align-items: center; background: #f7fbf9; border: 1px solid var(--line); border-radius: 16px; display: grid; gap: 11px; grid-template-columns: 38px minmax(0, 1fr) auto; padding: 12px; transition: border-color .15s ease, transform .15s ease; }
.profile-choice-card:hover { border-color: var(--mint); transform: translateY(-1px); }.profile-choice-card strong, .profile-choice-card small { display: block; }.profile-choice-card strong { font-size: .83rem; }.profile-choice-card small { color: var(--muted); font-size: .67rem; margin-top: 3px; }.profile-choice-card b { color: #17775e; }
.change-profile-link { color: #17775e; display: inline-block; font-size: .75rem; font-weight: 850; margin: -8px 0 14px; }
.selected-profile-card { align-items: center; background: #eff9f5; border: 1px solid #cae8dc; border-radius: 16px; display: flex; gap: 12px; margin-bottom: 18px; padding: 13px; }.selected-profile-card strong, .selected-profile-card small { display: block; }.selected-profile-card small { color: var(--muted); font-size: .7rem; margin-top: 3px; }
.manual-login-panel { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 16px; }.manual-login-panel summary { color: #57706a; cursor: pointer; font-size: .75rem; font-weight: 800; }.manual-login-panel form { margin-top: 15px; }

.profile-hero { align-items: center; background: linear-gradient(125deg, #08221f, #0c4238 64%, #145c66); border-radius: 26px; box-shadow: 0 22px 64px rgba(7,28,26,.2); color: #effbf7; display: flex; gap: 22px; justify-content: space-between; margin-bottom: 20px; overflow: hidden; padding: 28px 30px; position: relative; }.profile-hero::after { border: 1px solid rgba(255,255,255,.11); border-radius: 50%; content: ""; height: 180px; position: absolute; right: -68px; top: -92px; width: 180px; }.profile-hero-identity { align-items: center; display: flex; gap: 17px; position: relative; z-index: 1; }.profile-hero h1 { font-size: clamp(2rem, 4vw, 3.3rem); letter-spacing: -.06em; line-height: .95; margin: 4px 0 9px; }.profile-hero p:last-child { color: #b9d7d0; font-size: .82rem; line-height: 1.5; margin: 0; max-width: 580px; }.profile-security-badge { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; font-size: .7rem; font-weight: 850; padding: 8px 11px; position: relative; text-transform: uppercase; z-index: 1; }
.profile-settings-grid { align-items: start; display: grid; gap: 20px; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); }.profile-settings-panel .model-form { margin-top: 16px; }.profile-tips-panel { background: linear-gradient(145deg, #f5fbf8, #ebf7f1); }.profile-tips-panel h2 { font-size: 1.25rem; letter-spacing: -.035em; margin: 4px 0 11px; }.profile-tips-panel p { color: var(--muted); font-size: .78rem; line-height: 1.6; }.profile-roster-panel { margin-top: 20px; }.profile-roster-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }.profile-roster-card { align-items: center; background: #f8fbfa; border: 1px solid var(--line); border-radius: 16px; display: flex; gap: 11px; min-height: 72px; padding: 12px; }.profile-roster-card.current { background: #eff9f5; border-color: #bfe5d4; }.profile-roster-card strong, .profile-roster-card small { display: block; }.profile-roster-card strong { font-size: .82rem; }.profile-roster-card small { color: var(--muted); font-size: .68rem; margin-top: 3px; }.profile-create-panel { max-width: 760px; }

@media (max-width: 1050px) {
  .athletic-hero { grid-template-columns: 1fr; }
  .dashboard-grid, .profile-settings-grid { grid-template-columns: 1fr; }
  .profile-tips-panel { display: grid; grid-template-columns: 180px 1fr; gap: 16px; }
  .profile-tips-panel .eyebrow, .profile-tips-panel h2 { grid-column: 1; }.profile-tips-panel p { grid-column: 2; margin: 0; }
}

@media (max-width: 760px) {
  .page-shell { padding: 25px 0 92px; width: calc(100% - 28px); }
  .topbar { height: 62px; padding: 0 15px; }.brand { min-width: 0; }.brand small { display: none; }
  .top-actions { display: flex; gap: 5px; min-width: 0; }.top-actions .version-pill { display: none; }.profile-menu-label { display: none; }.profile-menu-link { padding: 2px; }
  .athletic-hero { border-radius: 23px; min-height: 0; padding: 24px; }.athletic-hero h1 { font-size: clamp(2.35rem, 12vw, 3.4rem); }.hero-sport-strip { margin-top: 18px; }.athletic-hero-card { min-height: 0; }.hero-countdown { margin-top: 13px; }
  .athletic-quick-grid { grid-template-columns: 1fr; }.stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.quick-card, .stat-card { border-radius: 17px; }.quick-card { min-height: 112px; }.dashboard-grid { gap: 14px; }
  .profile-login-card { padding: 25px 20px; }.profile-choice-grid { grid-template-columns: 1fr; }.profile-hero { align-items: flex-start; border-radius: 20px; flex-direction: column; padding: 23px; }.profile-security-badge { font-size: .63rem; }.profile-settings-grid { gap: 14px; }.profile-tips-panel { display: block; }.profile-tips-panel p { margin: 9px 0; }.profile-roster-grid { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .stat-grid { grid-template-columns: 1fr; }.profile-hero-identity { align-items: flex-start; }.profile-avatar.large { height: 54px; width: 54px; }
}

/* V5.2: race-week fuelling, price visibility and tyre pressure starting point. */
.fuel-journal-main { align-items: center; display: grid; gap: 10px; grid-template-columns: 52px minmax(0, 1fr); }
.fuel-journal-main > div:last-child { min-width: 0; }
.fuel-journal-main strong { display: block; font-size: .78rem; line-height: 1.28; }
.fuel-journal-main small { color: var(--muted); display: block; font-size: .68rem; margin: 3px 0 7px; }
.fuel-journal-main .fuel-macro-line { margin-bottom: 0; }
.journal-fuel-summary-row { align-items: center; }
.journal-fuel-summary-photo { border-radius: 8px; height: 34px; object-fit: cover; width: 34px; }
.fuel-library-price { color: #176b57; display: block; font-size: .66rem; font-weight: 850; margin-top: 5px; }
.fuel-cost-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); margin: 0 0 18px; }
.fuel-cost-card { background: linear-gradient(145deg, #f7fcf9, #edf8f3); padding: 17px; }
.fuel-cost-card h2 { font-size: .94rem; margin: 5px 0 10px; }
.fuel-cost-card strong { color: #176b57; display: block; font-size: 1.17rem; }
.fuel-cost-card p, .fuel-cost-card small { color: var(--muted); display: block; font-size: .7rem; line-height: 1.45; margin: 9px 0 0; }
.import-drawer { margin-bottom: 18px; }
.import-drawer summary { color: #176b57; cursor: pointer; font-weight: 850; }
.import-drawer p { margin: 10px 0; }
.race-plan-card { min-height: 175px; }
.race-plan-overview { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 18px; }
.race-plan-overview article { background: linear-gradient(145deg, #f9fcfa, #eaf7f0); border: 1px solid #d5e9e0; border-radius: 17px; padding: 16px; }
.race-plan-overview span, .race-plan-overview strong, .race-plan-overview small { display: block; }
.race-plan-overview span { color: #487168; font-size: .65rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.race-plan-overview strong { color: #113b32; font-size: 1.22rem; line-height: 1.2; margin: 8px 0 4px; overflow-wrap: anywhere; }
.race-plan-overview small { color: var(--muted); font-size: .67rem; }
.race-week-grid { display: grid; gap: 15px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.race-day-card { border-top: 4px solid #63a88d; }
.race-day-card.done { border-top-color: #28a97d; }.race-day-card.modified { border-top-color: #e5962c; }.race-day-card.skipped { border-top-color: #c06262; }
.race-day-card .panel-heading { margin-bottom: 12px; }.race-day-card .panel-heading h2 { line-height: 1.25; }
.race-day-macros { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 13px; }
.race-day-macros span { background: #edf7f2; border-radius: 999px; color: #176b57; font-size: .67rem; font-weight: 850; padding: 5px 8px; }
.race-meals { display: grid; gap: 10px; }.race-meals > div { background: #f8fbfa; border: 1px solid var(--line); border-radius: 11px; padding: 10px; }
.race-meals strong, .race-meals small { display: block; }.race-meals strong { font-size: .76rem; }.race-meals small { color: #176b57; font-size: .67rem; font-weight: 800; margin-top: 3px; }
.race-meals ul { color: #506660; font-size: .7rem; line-height: 1.4; margin: 7px 0 0; padding-left: 16px; }
.race-day-card > p { color: #475e57; font-size: .72rem; line-height: 1.45; }
.race-day-actual { background: #eaf8f2; border: 1px solid #bee5d2; border-radius: 11px; display: grid; gap: 4px; margin-top: 12px; padding: 10px; }.race-day-actual strong, .race-day-actual span { font-size: .72rem; }.race-day-actual span { color: #4c655e; }
.race-fueling-grid { display: grid; gap: 15px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 18px 0; }
.race-fueling-grid .panel { border-top: 4px solid var(--mint); }.race-fueling-grid .panel:nth-child(2) { border-top-color: var(--bike); }.race-fueling-grid .panel:nth-child(3) { border-top-color: var(--run); }
.race-fueling-grid h2 { font-size: 1.05rem; margin: 6px 0 12px; }.race-fueling-grid ul { color: #405a52; font-size: .74rem; line-height: 1.45; margin: 0; padding-left: 18px; }.race-fueling-grid p { font-size: .72rem; line-height: 1.45; }
.race-shopping-list { margin-top: 18px; }.race-shopping-list > div { display: grid; gap: 9px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }.race-shopping-list > div > span { background: #f8fbfa; border: 1px solid var(--line); border-radius: 10px; padding: 10px; }.race-shopping-list strong, .race-shopping-list small { display: block; }.race-shopping-list strong { font-size: .75rem; }.race-shopping-list small { color: var(--muted); font-size: .67rem; margin-top: 3px; }
.tyre-calculator-panel { border-top: 4px solid var(--bike); margin-bottom: 20px; }.tyre-form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }.tyre-form-actions { align-items: end; display: flex; }
.tyre-result-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 18px; }.tyre-result-grid article { background: linear-gradient(145deg, #f0f7ff, #eaf5fb); border: 1px solid #c8e1ef; border-radius: 15px; padding: 14px; }.tyre-result-grid span, .tyre-result-grid strong, .tyre-result-grid small { display: block; }.tyre-result-grid span { color: #33718a; font-size: .65rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }.tyre-result-grid strong { color: #154b63; font-size: 1.45rem; margin: 7px 0 3px; }.tyre-result-grid small { color: #557782; font-size: .68rem; line-height: 1.35; }.tyre-disclaimer { font-size: .7rem; line-height: 1.45; margin: 15px 0 0; }

@media (max-width: 900px) { .tyre-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.race-fueling-grid { grid-template-columns: 1fr; } }
@media (max-width: 650px) { .race-plan-overview, .tyre-result-grid, .tyre-form-grid { grid-template-columns: 1fr; }.race-week-grid { grid-template-columns: 1fr; }.fuel-journal-main { grid-template-columns: 44px minmax(0, 1fr); }.fuel-journal-main .fuel-product-photo, .fuel-journal-main .fuel-product-placeholder { height: 44px; width: 44px; } }

/* V5.3: athlete nutrition ranges and equipment lifecycle. */
.nutrition-target-layout { align-items: stretch; display: grid; gap: 16px; grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr); margin: 0 0 18px; }
.nutrition-target-intro { background: linear-gradient(135deg, #eaf8f1, #f8fcfa); border-left: 4px solid var(--mint); }.nutrition-target-intro h2 { margin: 4px 0 8px; }.nutrition-target-intro p { color: #47665d; font-size: .78rem; line-height: 1.55; margin: 0; }.nutrition-target-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }.nutrition-target-legend span { border-radius: 999px; font-size: .65rem; font-weight: 850; padding: 5px 8px; }.nutrition-target-legend .low { background: #fff0e6; color: #a74c19; }.nutrition-target-legend .good { background: #e7f8ef; color: #167358; }.nutrition-target-legend .high { background: #fff1e1; color: #a56a00; }
.nutrition-target-drawer { padding: 0; }.nutrition-target-drawer details { padding: 18px; }.nutrition-target-drawer summary { color: #176b57; cursor: pointer; font-weight: 900; }.nutrition-target-drawer details > p { font-size: .72rem; line-height: 1.45; }.nutrition-target-form { gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }.nutrition-target-form .form-field label { font-size: .66rem; }.nutrition-target-form .form-field small { color: var(--muted); font-size: .62rem; }.nutrition-target-form .button { grid-column: 1 / -1; }
.nutrition-macro-gauges { display: grid; gap: 7px; margin: 12px 0; }.macro-gauge { --gauge: #e38c29; background: #f8fbfa; border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 5px; grid-template-columns: minmax(0, 1fr) auto; padding: 8px; }.macro-gauge.good { --gauge: #24a478; background: #f1faf5; border-color: #c7ead9; }.macro-gauge.low { --gauge: #df6e42; background: #fff7f1; border-color: #f2d3c2; }.macro-gauge.high { --gauge: #d28a19; background: #fff9ed; border-color: #f0dda9; }.macro-gauge strong, .macro-gauge small { display: block; }.macro-gauge strong { font-size: .68rem; }.macro-gauge small { color: var(--muted); font-size: .61rem; margin-top: 2px; }.macro-gauge > span { align-self: center; color: var(--gauge); font-size: .75rem; font-weight: 900; }.macro-gauge-track { background: #dfeae5; border-radius: 999px; grid-column: 1 / -1; height: 5px; overflow: hidden; }.macro-gauge-track i { background: var(--gauge); border-radius: inherit; display: block; height: 100%; max-width: 100%; width: var(--progress); }
.gear-library-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(305px, 1fr)); }.gear-card { display: flex; flex-direction: column; gap: 13px; min-height: 260px; }.gear-card.needs-attention { border-color: #e7b96a; box-shadow: 0 0 0 2px rgba(231,185,106,.13), var(--shadow-premium); }.gear-card-head { align-items: center; display: grid; gap: 12px; grid-template-columns: 72px minmax(0, 1fr); }.gear-card-head > img, .gear-photo-placeholder { background: #edf6f2; border-radius: 15px; display: flex; height: 72px; object-fit: cover; overflow: hidden; width: 72px; }.gear-photo-placeholder { align-items: center; color: #176b57; font-size: .7rem; font-weight: 950; justify-content: center; text-align: center; text-transform: uppercase; }.gear-photo-placeholder.bike { background: #eaf3ff; color: #2768a1; }.gear-photo-placeholder.shoes { background: #fff0ed; color: #bd5b45; }.gear-card h2 { font-size: 1rem; line-height: 1.2; margin: 5px 0 4px; }.gear-card-head strong { color: var(--muted); font-size: .68rem; }.gear-default-label { background: #eaf8f2; border-radius: 999px; color: #167358; font-size: .64rem; font-weight: 850; margin: -3px 0 0; padding: 5px 8px; width: fit-content; }.gear-card .notice { font-size: .68rem; margin: 0; padding: 9px; }.gear-maintenance-block { border-top: 1px solid var(--line); display: grid; gap: 8px; margin-top: auto; padding-top: 11px; }.gear-maintenance-heading { align-items: center; display: flex; font-size: .76rem; justify-content: space-between; }.gear-maintenance-row { align-items: center; background: #fff9ed; border: 1px solid #f0dda9; border-radius: 10px; display: flex; gap: 9px; justify-content: space-between; padding: 8px; }.gear-maintenance-row span { min-width: 0; }.gear-maintenance-row strong, .gear-maintenance-row small { display: block; }.gear-maintenance-row strong { font-size: .68rem; }.gear-maintenance-row small { color: #866417; font-size: .6rem; margin-top: 2px; }.gear-maintenance-row form, .heading-actions form { margin: 0; }
.activity-editor-layout .form-field ul { display: grid; gap: 7px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); list-style: none; margin: 7px 0 0; padding: 0; }.activity-editor-layout .form-field li { align-items: center; background: #f7fbf9; border: 1px solid var(--line); border-radius: 9px; display: flex; font-size: .72rem; gap: 7px; padding: 7px; }.activity-editor-layout .form-field li input { accent-color: #169a70; }

@media (max-width: 900px) { .nutrition-target-layout { grid-template-columns: 1fr; }.nutrition-target-form { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 650px) { .nutrition-target-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }.gear-library-grid { grid-template-columns: 1fr; } }

/* V5.4: current-fuel journal, profile deletion and bike configuration cockpit. */
.profile-roster-card { justify-content: space-between; }
.profile-roster-card form { margin-left: auto; }
.danger-link { color: #b64034; font-weight: 900; }
.bike-components-block { border-top: 1px solid var(--line); display: grid; gap: 10px; padding-top: 11px; }
.bike-component-map { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bike-core-visual { align-items: center; background: radial-gradient(circle at 50% 20%, rgba(53,208,161,.2), transparent 58%), linear-gradient(135deg, #0a2824, #113f38); border-radius: 18px; color: #effbf7; display: flex; flex-direction: column; grid-column: 1 / -1; justify-content: center; min-height: 110px; padding: 18px; text-align: center; }
.bike-core-visual span { color: #aee7d4; font-size: .67rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.bike-core-visual strong { font-size: 1.05rem; line-height: 1.15; margin: 5px 0; }
.bike-core-visual small { color: #c6ded7; font-size: .68rem; }
.bike-component-group { background: #f8fbfa; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 7px; padding: 10px; }
.bike-component-group h3 { color: #176b57; font-size: .68rem; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.bike-component-chip { background: #fff; border: 1px solid #dce9e4; border-radius: 10px; color: #09231f; display: grid; gap: 2px; padding: 8px; text-decoration: none; transition: border-color .15s ease, transform .15s ease; }
.bike-component-chip:hover { border-color: var(--mint); transform: translateY(-1px); }
.bike-component-chip.inactive { opacity: .58; }
.bike-component-chip strong { font-size: .68rem; line-height: 1.25; }
.bike-component-chip small { color: var(--muted); font-size: .6rem; line-height: 1.35; }
.bike-component-group.frame { border-color: #cce9dc; }
.bike-component-group.drivetrain { border-color: #d7dff0; }
.bike-component-group.tyres, .bike-component-group.wheels { border-color: #cce2f1; }
.bike-component-group.brakes { border-color: #efd6ce; }
.bike-component-group.cockpit, .bike-component-group.saddle { border-color: #e4dfef; }
.tyre-form-grid { grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); }

@media (max-width: 650px) {
  .bike-component-map { grid-template-columns: 1fr; }
  .profile-roster-card { align-items: flex-start; }
}

/* V6.2: bike service logbook. */
.gear-service-block { border-top: 1px solid var(--line); display: grid; gap: 10px; padding-top: 11px; }
.gear-maintenance-link { color: inherit; display: grid; flex: 1; min-width: 0; text-decoration: none; }
.gear-maintenance-link em { color: #8a651f; font-size: .58rem; font-style: normal; font-weight: 750; margin-top: 3px; }
.gear-maintenance-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.service-bundle-drawer { background: #f8fbfa; border: 1px dashed #cfe2dc; border-radius: 12px; padding: 10px; }
.service-bundle-drawer summary { color: #176b57; cursor: pointer; font-size: .72rem; font-weight: 900; }
.service-bundle-form { display: grid; gap: 9px; margin-top: 10px; }
.service-bundle-form label { color: #173b35; display: grid; font-size: .64rem; font-weight: 850; gap: 4px; }
.service-bundle-tasks { background: #fff; border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 5px; padding: 8px; }
.service-bundle-tasks label { align-items: center; display: flex; flex-direction: row; font-size: .64rem; gap: 6px; }
.gear-service-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.gear-service-mini-list { display: grid; gap: 7px; }
.gear-service-mini-list a { background: #f8fbfa; border: 1px solid var(--line); border-radius: 10px; color: inherit; display: flex; gap: 8px; justify-content: space-between; padding: 8px; text-decoration: none; }
.gear-service-mini-list a:hover { border-color: var(--mint); }
.gear-service-mini-list strong, .gear-service-mini-list small { display: block; }
.gear-service-mini-list strong { font-size: .68rem; }
.gear-service-mini-list small { color: var(--muted); font-size: .6rem; }
.gear-service-dashboard { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 18px; }
.gear-service-dashboard .quick-card { margin: 0; }
.gear-maintenance-due-grid { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.service-timeline { display: grid; gap: 13px; }
.service-record-card { background: #f8fbfa; border: 1px solid var(--line); border-radius: 16px; display: grid; gap: 14px; grid-template-columns: 130px minmax(0, 1fr); padding: 14px; }
.service-record-date { background: #082a25; border-radius: 13px; color: #eaf8f2; display: grid; gap: 5px; place-content: center; text-align: center; }
.service-record-date strong { font-size: .95rem; }
.service-record-date small { color: #aee7d4; font-size: .66rem; font-weight: 800; }
.service-record-body h2 { font-size: 1.08rem; margin: 2px 0 5px; }
.service-record-body h2 a { color: var(--ink); text-decoration: none; }
.service-record-body h2 a:hover { color: #176b57; }
.service-record-body p { font-size: .75rem; line-height: 1.5; margin: 8px 0; }
.service-parts { background: #fffaf0; border: 1px solid #f0dda9; border-radius: 10px; padding: 8px; }
.service-measure-grid { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0; }
.service-measure-grid span { background: #eef8f4; border: 1px solid #cbe9dd; border-radius: 999px; color: #176b57; font-size: .63rem; font-weight: 850; padding: 5px 8px; }
.service-report-hero { border-top: 5px solid var(--mint); display: grid; gap: 18px; }
.report-component-map { margin-top: 4px; }
.service-report-table { border-collapse: collapse; font-size: .72rem; width: 100%; }
.service-report-table th { color: #176b57; font-size: .65rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.service-report-table th, .service-report-table td { border-bottom: 1px solid var(--line); padding: 10px 8px; vertical-align: top; }
.service-report-table small { color: var(--muted); }
@media print {
  .app-header, .mobile-bottom-nav, .service-report-actions .heading-actions, .app-footer { display: none !important; }
  .page-shell { padding: 0; }
  .panel { box-shadow: none; break-inside: avoid; }
  body { background: #fff; }
}
@media (max-width: 760px) {
  .issue-card { grid-template-columns: 1fr; }
  .issue-actions { justify-content: start; }
  .gear-maintenance-row { align-items: stretch; flex-direction: column; }
  .gear-maintenance-actions { justify-content: start; }
  .gear-service-dashboard { grid-template-columns: 1fr; }
  .service-record-card { grid-template-columns: 1fr; }
  .service-record-date { min-height: 72px; }
}

/* V5.5: fuller mobile navigation, closer to the desktop cockpit. */
@media (max-width: 760px) {
  .page-shell { padding-bottom: 112px; }
}

/* V6.0: Live & safety portal. */
.live-help-panel { align-items: start; display: grid; gap: 18px; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); margin-bottom: 18px; }
.live-help-panel details { background: #f8fbfa; border: 1px solid var(--line); border-radius: 14px; padding: 13px; }
.live-help-panel summary { color: #176b57; cursor: pointer; font-weight: 900; }
.live-help-panel ol { color: var(--muted); font-size: .74rem; line-height: 1.55; margin: 10px 0 0; padding-left: 18px; }
.inline-heading { margin: 0 0 12px; }
.live-layout { align-items: start; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) minmax(300px, .36fr); margin-bottom: 18px; }
.live-session-grid { display: grid; gap: 14px; }
.live-card { border-top: 5px solid var(--mint); display: grid; gap: 12px; }
.live-card.active { border-top-color: var(--bike); }
.live-card.delayed { border-top-color: #e08b26; }
.live-card.alert { border-top-color: #d64d47; }
.live-card.cancelled { opacity: .75; }
.live-card-head { align-items: center; display: flex; gap: 9px; justify-content: space-between; }
.live-card h2 { font-size: 1.25rem; letter-spacing: -.035em; margin: 0; }
.live-status { border-radius: 999px; font-size: .66rem; font-weight: 950; padding: 6px 9px; text-transform: uppercase; }
.live-status.planned { background: #eef6f3; color: #176b57; }
.live-status.active { background: #eaf3ff; color: #2768a1; }
.live-status.finished { background: #eff7ef; color: #447d31; }
.live-status.delayed { background: #fff4df; color: #a66512; }
.live-status.alert { background: #fff0ed; color: #b64034; }
.live-status.cancelled { background: #eef2f1; color: #61716d; }
.live-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.live-link-box { align-items: end; display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; }
.live-link-box label { color: #176b57; font-size: .67rem; font-weight: 900; grid-column: 1 / -1; letter-spacing: .08em; text-transform: uppercase; }
.live-link-box input { font-size: .72rem; }
.live-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.live-actions form { margin: 0; }
.live-contacts-panel { position: sticky; top: 92px; }

.public-live-body { background: radial-gradient(circle at 10% 0, rgba(53,208,161,.18), transparent 28rem), #edf5f1; color: var(--ink); margin: 0; }
.public-live-shell { margin: 0 auto; max-width: 760px; min-height: 100vh; padding: 22px; }
.public-live-card { background: #fff; border: 1px solid rgba(9,35,31,.08); border-radius: 26px; box-shadow: 0 24px 65px rgba(12,45,39,.13); display: grid; gap: 18px; padding: 24px; }
.public-live-card.status-active { border-top: 7px solid var(--bike); }
.public-live-card.status-delayed, .public-live-card.status-expired { border-top: 7px solid #e08b26; }
.public-live-card.status-alert { border-top: 7px solid #d64d47; }
.public-live-card.status-finished { border-top: 7px solid #6fae50; }
.public-live-header { align-items: center; display: flex; gap: 13px; }
.public-live-header h1 { font-size: clamp(2rem, 8vw, 3.6rem); letter-spacing: -.07em; line-height: .95; margin: 2px 0 0; }
.public-live-status { border-radius: 999px; font-size: .78rem; font-weight: 950; justify-self: start; margin: 0; padding: 8px 11px; text-transform: uppercase; }
.public-live-status.active { background: #eaf3ff; color: #2768a1; }
.public-live-status.planned { background: #eff9f5; color: #176b57; }
.public-live-status.delayed, .public-live-status.expired { background: #fff4df; color: #a66512; }
.public-live-status.alert, .public-live-status.disabled { background: #fff0ed; color: #b64034; }
.public-live-status.finished { background: #eff7ef; color: #447d31; }
.public-live-title h2 { font-size: 1.35rem; margin: 10px 0 0; }
.public-live-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.public-live-actions { display: grid; gap: 9px; }
.public-live-section { background: #f8fbfa; border: 1px solid var(--line); border-radius: 15px; padding: 14px; }
.public-live-section h3 { font-size: .9rem; margin: 0 0 7px; }
.public-live-section p { color: #47665d; font-size: .8rem; line-height: 1.55; margin: 0; }
.public-live-footnote { color: var(--muted); font-size: .7rem; line-height: 1.45; margin: 0; text-align: center; }

@media (max-width: 900px) {
  .live-help-panel, .live-layout { grid-template-columns: 1fr; }
  .live-contacts-panel { position: static; }
}

@media (max-width: 650px) {
  .live-metrics, .public-live-metrics { grid-template-columns: 1fr; }
  .live-link-box { grid-template-columns: 1fr; }
  .live-actions .button, .live-actions form, .live-actions form button { width: 100%; }
  .public-live-shell { padding: 12px; }
  .public-live-card { border-radius: 20px; padding: 18px; }
}

/* V6.1: personal food pack and OpenAI integration settings. */
.quick-card.good { --quick-color: var(--mint); background: linear-gradient(145deg, #f1fbf6, #e8f7f0); border-color: #bee8d5; }
.quick-card.warning { --quick-color: #e39a2f; background: linear-gradient(145deg, #fff8ee, #f8f2e5); border-color: #edd4a1; }
.nutrition-personal-pack-panel { border-top: 4px solid var(--mint); margin-bottom: 18px; }
.nutrition-personal-pack-panel .panel-heading { align-items: center; }

.agenda-hero {
  align-items: end;
  background:
    linear-gradient(135deg, rgba(7,28,26,.96), rgba(13,43,39,.92)),
    radial-gradient(circle at 82% 20%, rgba(53,208,161,.24), transparent 28rem);
  border-radius: 30px;
  box-shadow: var(--shadow);
  color: #f4fffb;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 20px;
  overflow: hidden;
  padding: clamp(24px, 4vw, 42px);
}
.agenda-hero h1 { font-size: clamp(2.4rem, 5vw, 4.8rem); letter-spacing: -.08em; line-height: .9; margin: 6px 0 12px; }
.agenda-hero p:not(.eyebrow) { color: #b7ccc7; margin: 0; max-width: 720px; }
.agenda-year-nav { align-items: center; display: flex; gap: 12px; white-space: nowrap; }
.agenda-year-nav strong { font-size: 2rem; letter-spacing: -.05em; }
.agenda-stats-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; }
.agenda-stat-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-top: 5px solid var(--mint);
  border-radius: 22px;
  box-shadow: var(--shadow);
  padding: 20px;
}
.agenda-stat-card small { color: var(--muted); display: block; font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.agenda-stat-card strong { display: block; font-size: 2.1rem; letter-spacing: -.06em; line-height: 1; margin: 8px 0; }
.agenda-stat-card span { color: var(--muted); font-size: .82rem; font-weight: 750; }
.agenda-stat-card.leave { border-top-color: #16a34a; }
.agenda-stat-card.rtt { border-top-color: #f59e0b; }
.agenda-stat-card.telework { border-top-color: #2563eb; }
.agenda-stat-card.presence { border-top-color: #0f766e; }
.agenda-alert-panel { background: #fff7ed; border-color: #fed7aa; margin-bottom: 18px; }
.agenda-alert-panel p { color: #8a4b0f; margin: 6px 0; }
.agenda-toolbar { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin: 18px 0; }
.agenda-view-tabs { background: #e8f1ee; border: 1px solid var(--line); border-radius: 999px; display: inline-flex; gap: 4px; padding: 4px; }
.agenda-view-tabs a { border-radius: 999px; color: var(--muted); font-size: .78rem; font-weight: 900; padding: 9px 14px; }
.agenda-view-tabs a.active { background: var(--dark); color: white; }
.agenda-drawer { position: relative; }
.agenda-drawer > summary {
  background: var(--dark);
  border-radius: 999px;
  color: white;
  cursor: pointer;
  font-size: .8rem;
  font-weight: 900;
  list-style: none;
  padding: 10px 15px;
}
.agenda-drawer[open] > summary { background: var(--mint); color: var(--dark); }
.agenda-drawer-grid {
  background: rgba(244,247,245,.96);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: 0 18px 70px rgba(7,28,26,.16);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(260px, 360px) minmax(420px, 1fr);
  padding: 14px;
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: min(980px, calc(100vw - 48px));
  z-index: 12;
}
.compact-panel { margin: 0; padding: 18px; }
.agenda-settings-grid { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.agenda-settings-grid label { display: flex; flex-direction: column; gap: 4px; }
.agenda-settings-grid span { color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.agenda-quick-add { margin-bottom: 18px; }
.agenda-event-inline-form { align-items: end; display: grid; gap: 12px; grid-template-columns: 150px 180px minmax(260px, 1fr) 150px 120px; }
.agenda-year-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.agenda-month-card {
  background: rgba(255,255,255,.9);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--shadow);
  padding: 16px;
}
.agenda-month-card h2 { font-size: 1.25rem; letter-spacing: -.04em; margin: 0 0 12px; }
.agenda-weekdays, .agenda-month-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.agenda-weekdays span { color: var(--muted); font-size: .66rem; font-weight: 950; padding: 0 4px 6px; text-align: center; }
.agenda-day-cell {
  background: #f9fcfb;
  border: 1px solid #e4ece8;
  color: var(--ink);
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-height: 78px;
  overflow: hidden;
  padding: 5px;
}
.agenda-day-cell:hover { border-color: var(--mint); box-shadow: inset 0 0 0 1px var(--mint); }
.agenda-day-cell.muted-day { opacity: .22; }
.agenda-day-cell.weekend { background: #f2f7f5; }
.agenda-day-cell.today { box-shadow: inset 0 0 0 2px var(--dark); }
.day-number { color: var(--muted); font-size: .72rem; font-weight: 950; }
.agenda-chip {
  border-radius: 999px;
  color: white;
  display: block;
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: -.02em;
  overflow: hidden;
  padding: 2px 5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.agenda-work_site { background: #0f766e; }
.agenda-telework { background: #2563eb; }
.agenda-leave { background: #16a34a; }
.agenda-rtt { background: #f59e0b; color: #2a1700; }
.agenda-holiday { background: #64748b; }
.agenda-sick { background: #dc2626; }
.agenda-personal { background: #9333ea; }
.agenda-travel { background: #0891b2; }
.agenda-competition { background: #ef4444; }
.agenda-training { background: #22c55e; color: #06211d; }
.agenda-activity { background: #38bdf8; color: #082f49; }
.agenda-blocked { background: #ea580c; }
.agenda-wish { background: #a855f7; }
.agenda-other { background: #475569; }
.agenda-week-view { display: grid; gap: 14px; grid-template-columns: repeat(7, minmax(180px, 1fr)); overflow-x: auto; padding-bottom: 8px; }
.agenda-day-panel.selected { border-top: 4px solid var(--mint); }
.agenda-day-title { align-items: center; display: flex; justify-content: space-between; margin-bottom: 10px; }
.agenda-day-title a, .agenda-item a { color: #05745f; font-size: .72rem; font-weight: 900; }
.agenda-day-items { display: grid; gap: 9px; }
.agenda-item {
  align-items: center;
  background: #f9fcfb;
  border: 1px solid var(--line);
  border-left: 5px solid #64748b;
  border-radius: 16px;
  display: grid;
  gap: 10px;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  padding: 10px;
}
.agenda-item.agenda-work_site { border-left-color: #0f766e; }
.agenda-item.agenda-telework { border-left-color: #2563eb; }
.agenda-item.agenda-leave { border-left-color: #16a34a; }
.agenda-item.agenda-rtt { border-left-color: #f59e0b; }
.agenda-item.agenda-competition { border-left-color: #ef4444; }
.agenda-item.agenda-training { border-left-color: #22c55e; }
.agenda-item.agenda-activity { border-left-color: #0284c7; }
.agenda-item.agenda-blocked { border-left-color: #ea580c; }
.agenda-item-type { color: var(--muted); font-size: .62rem; font-weight: 950; letter-spacing: .05em; text-transform: uppercase; }
.agenda-item strong { display: block; font-size: .92rem; line-height: 1.2; }
.agenda-item small { color: var(--muted); font-size: .72rem; font-weight: 750; }
.agenda-item p { color: var(--muted); font-size: .82rem; margin: 6px 0 0; }
.agenda-single-day { box-shadow: var(--shadow); }

@media (max-width: 1100px) {
  .agenda-stats-grid, .agenda-year-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agenda-event-inline-form { grid-template-columns: 1fr 1fr; }
  .agenda-drawer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .agenda-hero, .agenda-toolbar { align-items: stretch; flex-direction: column; }
  .agenda-year-nav { justify-content: space-between; }
  .agenda-stats-grid, .agenda-year-grid, .agenda-event-inline-form { grid-template-columns: 1fr; }
  .agenda-month-card { min-width: 0; }
  .agenda-day-cell { min-height: 68px; }
  .agenda-drawer-grid { left: 0; right: auto; width: calc(100vw - 32px); }
}
.incomplete-food-list { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.incomplete-food-list > strong { color: #176b57; font-size: .74rem; margin-right: 4px; }
.status-pill.warning { background: #fff4df; color: #9a620f; }
.openai-overview-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin: 0 0 18px; }
.openai-settings-layout { align-items: start; display: grid; gap: 18px; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); margin-bottom: 18px; }
.openai-safe-box { background: #f3faf6; border: 1px solid #ccebdd; border-radius: 14px; color: #244f45; margin-top: 16px; padding: 13px; }
.openai-safe-box strong { display: block; font-size: .78rem; margin-bottom: 5px; }
.openai-safe-box p { font-size: .72rem; line-height: 1.45; margin: 0; }
.openai-safe-box code, .openai-guide-panel code { background: rgba(23,107,87,.09); border-radius: 6px; color: #176b57; padding: 1px 5px; }
.openai-guide-list { color: #49635c; font-size: .76rem; line-height: 1.55; margin: 12px 0 0; padding-left: 18px; }
.openai-usage-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 15px; }
.openai-usage-grid article { background: #f8fbfa; border: 1px solid var(--line); border-radius: 14px; padding: 12px; }
.openai-usage-grid span { color: #176b57; display: block; font-size: .67rem; font-weight: 900; letter-spacing: .08em; margin-bottom: 7px; text-transform: uppercase; }
.openai-usage-grid p { color: #4d645d; font-size: .72rem; margin: 6px 0; }
.openai-guide-panel ol { color: #405a52; font-size: .78rem; line-height: 1.55; margin: 12px 0; padding-left: 21px; }
.openai-guide-panel li + li { margin-top: 7px; }

@media (max-width: 900px) {
  .openai-settings-layout, .openai-usage-grid { grid-template-columns: 1fr; }
}

/* V6.7: compact, contextual page actions inspired by mailbox toolbars. */
[hidden] { display: none !important; }
.page-shell.agenda-page-shell { max-width: 1820px; padding-left: clamp(16px, 2.4vw, 42px); padding-right: clamp(16px, 2.4vw, 42px); }
.page-toolbar-row { align-items: center; display: flex; gap: 10px; margin: -8px 0 16px; overflow: visible; position: relative; z-index: 120; }
.compact-toolbar { align-items: center; background: rgba(255,255,255,.82); border: 1px solid var(--line); border-radius: 13px; box-shadow: 0 5px 22px rgba(15,42,36,.04); display: flex; flex: 1; gap: 14px; justify-content: space-between; min-height: 52px; padding: 7px 9px 7px 13px; }
.compact-toolbar-context { align-items: center; display: flex; gap: 9px; min-width: 0; }
.compact-toolbar-context > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.compact-toolbar-context strong { font-size: .76rem; line-height: 1.1; }
.compact-toolbar-context small { color: var(--muted); font-size: .65rem; margin-top: 3px; }
.toolbar-context-icon { align-items: center; background: var(--mint-soft); border-radius: 9px; color: #176b57; display: inline-flex; height: 29px; justify-content: center; width: 29px; }
.toolbar-context-icon svg, .icon-button svg, .tool-button svg, .action-menu-panel svg, .toolbar-search-field svg { fill: none; height: 17px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 17px; }
.compact-toolbar-actions, .compact-toolbar-extra { align-items: center; display: flex; gap: 6px; }
.compact-toolbar-extra { flex-shrink: 0; overflow: visible; position: relative; z-index: 2; }
.icon-button { align-items: center; background: transparent; border: 1px solid transparent; border-radius: 9px; color: #41635a; display: inline-flex; height: 34px; justify-content: center; min-width: 34px; padding: 7px; position: relative; }
.icon-button:hover, .icon-button:focus-visible { background: var(--mint-soft); border-color: #b8e7d7; color: var(--dark); outline: 0; }
.toolbar-badge { align-items: center; background: var(--athletic-orange); border: 2px solid #fff; border-radius: 999px; color: #fff; display: inline-flex; font-size: .55rem; height: 17px; justify-content: center; min-width: 17px; position: absolute; right: -3px; top: -4px; }
.tool-button { align-items: center; border-radius: 9px; display: inline-flex; gap: 6px; min-height: 34px; padding: 7px 10px; }
.tool-button svg { height: 15px; width: 15px; }
.tool-button.primary { background: var(--dark); color: #fff; }
.tool-button.soft { background: #fff; border: 1px solid var(--line); color: var(--ink); }
.tool-button:hover { transform: translateY(-1px); }
.action-menu { position: relative; z-index: 0; }
.action-menu.floating-menu-open { z-index: 5100; }
.action-menu > summary { cursor: pointer; list-style: none; }
.action-menu > summary::-webkit-details-marker { display: none; }
.action-menu-panel { background: rgba(255,255,255,.98); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 60px rgba(7,28,26,.18); display: grid; gap: 4px; max-height: min(640px, var(--action-menu-available, calc(100vh - 120px))); min-width: 220px; overscroll-behavior: contain; overflow-y: auto; padding: 7px; position: absolute; right: 0; top: calc(100% + 8px); z-index: 5200; }
.action-menu.opens-upward > .action-menu-panel { bottom: calc(100% + 8px); top: auto; }
.action-menu.align-left > .action-menu-panel { left: 0; right: auto; }
.action-menu.align-right > .action-menu-panel { left: auto; right: 0; }
.toolbar-panel { position: relative; z-index: 380; }

.duplicate-review-panel { border-color: #edb34f; box-shadow: 0 16px 44px rgba(164,105,8,.13); margin-bottom: 16px; }
.duplicate-review-list { display: grid; gap: 10px; }
.duplicate-review-row { align-items: center; background: #fffaf0; border: 1px solid #efca82; border-radius: 16px; display: grid; gap: 14px; grid-template-columns: auto minmax(220px,1fr) auto minmax(220px,1fr) auto; padding: 14px; }
.duplicate-warning-icon { align-items: center; background: #fff0c7; border: 1px solid #e4ad39; border-radius: 50%; color: #9a6300; display: inline-flex; height: 38px; justify-content: center; width: 38px; }
.duplicate-warning-icon svg { fill: none; height: 21px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 21px; }
.duplicate-import-copy, .duplicate-candidate-copy { display: grid; gap: 3px; }
.duplicate-import-copy small, .duplicate-candidate-copy small { color: #7b776c; font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.duplicate-import-copy span, .duplicate-candidate-copy span { color: var(--muted); font-size: .71rem; font-weight: 750; }
.duplicate-import-copy em { color: #986200; font-size: .67rem; font-style: normal; }
.duplicate-versus { color: #9a6300; font-size: .64rem; font-weight: 900; text-transform: uppercase; }
.duplicate-review-actions { align-items: flex-end; display: flex; flex-direction: column; gap: 5px; }
.duplicate-review-actions form { margin: 0; }
.text-button { background: transparent; border: 0; color: var(--green); cursor: pointer; font: inherit; font-size: .72rem; font-weight: 850; padding: 4px; }
.danger-text { color: #b83c32; }
.activity-row-actions { white-space: nowrap; }
.activity-row-actions > * + * { margin-left: 7px; }

.hyrox-standards-panel { border-top: 4px solid #ffe500; }
.hyrox-season-badge { background: #050505; border-radius: 999px; color: #ffe500; font-size: .68rem; font-weight: 850; padding: 9px 13px; text-transform: uppercase; }
.hyrox-standard-table-wrap { border: 1px solid #d8dfdc; border-radius: 16px; overflow-x: auto; }
.hyrox-standard-table { min-width: 700px; width: 100%; }
.hyrox-standard-table th { background: #050505; color: #fff; font-size: .68rem; letter-spacing: .02em; padding: 13px; text-transform: uppercase; }
.hyrox-standard-table th:not(:first-child) { color: #ffe500; }
.hyrox-standard-table td { border-bottom: 1px solid #dde4e1; font-size: .76rem; font-weight: 750; padding: 12px 13px; }
.hyrox-standard-table tr:last-child td { border-bottom: 0; }
.hyrox-standard-table td:first-child { align-items: center; display: flex; gap: 10px; }
.hyrox-standard-table td:first-child span { align-items: center; background: #ffe500; border-radius: 50%; color: #050505; display: inline-flex; font-size: .62rem; font-weight: 950; height: 25px; justify-content: center; width: 25px; }

@media (max-width: 1050px) {
  .duplicate-review-row { align-items: start; grid-template-columns: auto 1fr; }
  .duplicate-versus { grid-column: 2; }
  .duplicate-candidate-copy, .duplicate-review-actions { grid-column: 2; }
  .duplicate-review-actions { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
}
.action-menu-panel-wide { min-width: 320px; }
.action-menu-panel > a, .tool-menu-action { align-items: center; background: transparent; border: 0; border-radius: 8px; color: var(--ink); display: flex; font-size: .76rem; font-weight: 750; gap: 8px; padding: 9px 10px; text-align: left; width: 100%; }
.action-menu-panel > a:hover, .tool-menu-action:hover { background: var(--mint-soft); color: #176b57; }
.action-menu-panel form { margin: 0; }
.action-menu-panel .action-menu-panel { position: static; box-shadow: none; }
.programme-command-bar {
  align-items: center;
  background: rgba(255,255,255,.9);
  border: 1px solid var(--line);
  border-radius: 15px;
  box-shadow: 0 8px 26px rgba(7,28,26,.06);
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin-bottom: 14px;
  min-height: 58px;
  overflow: visible;
  padding: 9px 11px 9px 14px;
  position: relative;
  z-index: 120;
}
.programme-command-title { align-items: center; display: flex; gap: 10px; min-width: 0; }
.programme-command-title > span:last-child { display: grid; gap: 2px; }
.programme-command-title strong { font-size: .78rem; }
.programme-command-title small { color: var(--muted); font-size: .64rem; }
.programme-command-title .toolbar-icon {
  align-items: center;
  background: var(--mint-soft);
  border-radius: 10px;
  color: var(--green);
  display: inline-flex;
  height: 34px;
  justify-content: center;
  min-width: 34px;
}
.programme-command-title svg { fill: none; height: 18px; stroke: currentColor; stroke-width: 1.8; width: 18px; }
.planning-compact-heading { align-items: center; display: flex; justify-content: space-between; }
.planning-compact-heading small { color: var(--muted); font-size: .68rem; font-weight: 850; }
.planning-calendar-compact { gap: 10px; }
.planning-calendar-compact .planning-day-card { min-height: 150px; padding: 10px; }
.planning-calendar-compact .planning-day-head { margin-bottom: 9px; }
.planning-calendar-compact .planning-day-sessions { gap: 8px; }
.planning-session-card.compact { min-height: 112px; }
.planning-session-card.compact .planning-session-link {
  gap: 7px;
  min-height: 112px;
  padding: 34px 42px 10px 10px;
}
.planning-session-card.compact .sport-visual { height: 28px; min-width: 40px; padding: 0 6px; }
.planning-session-card.compact .planning-session-main strong { font-size: .78rem; }
.planning-session-card.compact .planning-session-main small,
.planning-session-card.compact .planning-session-main em { font-size: .62rem; }
.planning-session-card.compact .session-coach-meta { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.planning-session-card.compact .session-coach-meta small { font-size: .53rem; padding: 3px 5px; }
.planning-session-card.compact .planning-session-meta { margin-top: auto; }
.session-gear-menu { position: absolute; right: 8px; top: 8px; z-index: 8; }
.session-gear-menu.floating-menu-open { z-index: 5300; }
.session-gear-menu .action-menu-panel { left: auto; right: 0; }
.icon-action {
  align-items: center;
  background: rgba(238,246,243,.96);
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--green);
  display: inline-flex;
  height: 30px;
  justify-content: center;
  width: 30px;
}
.icon-action svg { fill: none; height: 16px; stroke: currentColor; stroke-width: 1.8; width: 16px; }
.tool-menu-action.danger { color: #b83c32; }
.tool-menu-action.danger:hover { background: #fff0ed; color: #9c2f27; }

.session-editor-hero { --session-hero-color: var(--mint); }
.session-editor-hero.sport-run { --session-hero-color: var(--run); }
.session-editor-hero.sport-bike { --session-hero-color: var(--bike); }
.session-editor-hero.sport-swim { --session-hero-color: var(--swim); }
.session-editor-hero.sport-strength { --session-hero-color: var(--strength); }
.session-editor-hero.sport-hyrox { --session-hero-color: var(--hyrox); }
.session-editor-hero::after {
  background: var(--session-hero-color);
  border-radius: 999px;
  bottom: 0;
  content: "";
  height: 4px;
  left: 0;
  opacity: .9;
  position: absolute;
  right: 0;
}
.session-editor-heading { align-items: center; display: flex; gap: 14px; min-width: 0; }
.session-editor-heading > div { min-width: 0; }
.session-editor-heading h1 { overflow-wrap: anywhere; }
.session-back-link {
  align-items: center;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-size: 1.15rem;
  height: 38px;
  justify-content: center;
  min-width: 38px;
}
.session-hero-icon {
  align-items: center;
  background: color-mix(in srgb, var(--session-hero-color) 82%, #061d19);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 15px;
  color: #fff;
  display: inline-flex;
  height: 48px;
  justify-content: center;
  min-width: 48px;
}
.session-hero-icon svg { height: 26px; width: 26px; }
.session-hero-badges { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.session-editor-actions { align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.session-editor-actions form { margin: 0; }
.session-editor-unified { grid-template-columns: minmax(360px,.82fr) minmax(430px,1.18fr); }
.session-essential-panel { min-width: 0; }
.session-essential-grid { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.session-essential-grid .full-width { grid-column: 1 / -1; }
.session-essential-grid textarea { min-height: 150px; }
.preserved-checkboxes {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.planned-structure-panel .workout-details { margin-top: 14px; }

@media (max-width: 1180px) {
  .planning-calendar-compact { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .session-editor-unified { grid-template-columns: 1fr; }
  .session-editor-unified .planned-structure-panel { position: static; }
}
@media (max-width: 760px) {
  .programme-command-bar { align-items: stretch; flex-direction: column; }
  .programme-command-bar .compact-toolbar-extra { flex-wrap: wrap; justify-content: flex-start; }
  .planning-calendar-compact { grid-template-columns: 1fr; }
  .planning-calendar-compact .planning-day-card { min-height: 0; }
  .session-editor-heading { align-items: flex-start; }
  .session-editor-heading h1 { font-size: clamp(1.7rem,10vw,2.5rem); }
  .session-editor-actions { justify-content: flex-start; }
  .session-essential-grid { grid-template-columns: 1fr; }
  .session-essential-grid .full-width { grid-column: auto; }
}
.compact-upload-form { border-bottom: 1px solid var(--line); display: grid; gap: 7px; padding: 8px 10px 12px; }
.compact-upload-form label { color: var(--muted); font-size: .68rem; font-weight: 850; }
.compact-upload-form input[type=file] { font-size: .68rem; max-width: 100%; }
.toolbar-panel { background: rgba(255,255,255,.96); border: 1px solid var(--line); border-radius: 13px; box-shadow: var(--shadow); margin: -5px 0 16px; padding: 10px; }
.toolbar-search-field { align-items: center; background: #f7fbf9; border: 1px solid var(--line); border-radius: 9px; color: #28745f; display: flex; gap: 8px; padding: 0 10px; }
.toolbar-search-field input { background: transparent; border: 0; min-height: 38px; outline: 0; width: 100%; }
.toolbar-filter-grid { align-items: end; display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(160px, 1fr)) auto; }
.toolbar-filter-grid label { color: var(--muted); display: grid; font-size: .66rem; font-weight: 850; gap: 4px; }
.context-bulk-toolbar { align-items: center; background: var(--mint-soft); border: 1px solid #b8e7d7; border-radius: 10px; display: flex; flex-wrap: wrap; gap: 7px; padding: 5px 7px; }
.context-bulk-toolbar strong { color: #176b57; font-size: .68rem; white-space: nowrap; }
.context-bulk-toolbar .field-control { min-height: 32px; padding: 5px 8px; width: auto; }
.context-bulk-toolbar .button { min-height: 32px; padding: 5px 9px; }
.agenda-page { width: 100%; }
.agenda-sticky-header { background: rgba(244,247,245,.95); border-bottom: 1px solid var(--line); margin: -42px -42px 20px; padding: 22px clamp(16px, 2.4vw, 42px) 12px; position: sticky; top: 72px; z-index: 18; }
.agenda-header-top, .agenda-header-actions { align-items: center; display: flex; gap: 18px; justify-content: space-between; }
.agenda-header-top h1 { font-size: clamp(2rem, 4vw, 3.5rem); letter-spacing: -.07em; line-height: .95; margin: 4px 0 7px; }
.agenda-header-top h1 span { color: #317d68; font-size: .46em; letter-spacing: -.03em; vertical-align: middle; }
.agenda-subtitle { color: var(--muted); font-size: .78rem; margin: 0; }
.agenda-header-tools, .agenda-balance, .agenda-year-nav { align-items: center; display: flex; gap: 10px; }
.agenda-balance { border-right: 1px solid var(--line); color: var(--muted); font-size: .68rem; gap: 12px; padding-right: 12px; }
.agenda-balance b { color: var(--ink); font-size: 1.05rem; }
.agenda-year-nav strong { font-size: 1.15rem; }
.agenda-header-actions { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 10px; }
.agenda-metric-strip { align-items: center; color: var(--muted); display: flex; flex-wrap: wrap; font-size: .64rem; gap: 16px; margin-top: 10px; }
.agenda-metric-strip span { border-left: 2px solid var(--mint); padding-left: 7px; }
.agenda-metric-strip b { color: var(--ink); }
.agenda-metric-strip .subtle { border-left-color: #c8d5d1; opacity: .72; }
.alert-tool { background: #fff5df; border: 1px solid #f2d39b; color: #956319; }
.agenda-alert-line { color: #79551c; font-size: .72rem; line-height: 1.4; margin: 5px 10px; }
.agenda-config-panel { gap: 14px; }
.agenda-config-panel form + form { border-top: 1px solid var(--line); padding-top: 12px; }
.agenda-inline-drawer-form { display: grid; gap: 8px; grid-template-columns: 1fr 1fr; padding: 6px 10px 10px; }
.agenda-inline-drawer-form .form-field:nth-child(3), .agenda-inline-drawer-form button { grid-column: 1 / -1; }
.agenda-month-title { align-items: center; display: flex; justify-content: space-between; min-height: 30px; }
.agenda-month-title h2 { margin: 0; }
.anomaly-popover { position: relative; }
.anomaly-popover > summary { cursor: pointer; list-style: none; }
.anomaly-popover > summary::-webkit-details-marker { display: none; }
.anomaly-badge { align-items: center; background: #fff1d6; border: 1px solid #efc46f; border-radius: 999px; color: #986314; display: inline-flex; font-size: .66rem; font-weight: 950; height: 22px; justify-content: center; width: 22px; }
.anomaly-popover-panel { background: #fffdf7; border: 1px solid #efc46f; border-radius: 10px; box-shadow: var(--shadow); color: #76521b; font-size: .68rem; padding: 8px 10px; position: absolute; right: 0; top: 28px; width: 220px; z-index: 15; }
.anomaly-popover-panel p { margin: 4px 0; }

@media (max-width: 1450px) and (min-width: 1051px) {
  .topbar { padding-left: 16px; padding-right: 16px; }
  .brand { min-width: 150px; }
  .desktop-nav { flex: 1; gap: 0; justify-content: center; min-width: 0; }
  .desktop-nav a { font-size: .69rem; padding-left: 5px; padding-right: 5px; }
  .top-actions { gap: 5px; min-width: auto; }
  .profile-menu-label { display: none; }
  .version-pill { font-size: .58rem; padding: 4px 6px; }
  .quiet-button { font-size: .7rem; }
}

@media (max-width: 760px) {
  .page-toolbar-row { align-items: stretch; flex-direction: column; }
  .compact-toolbar-extra { justify-content: flex-end; }
  .toolbar-filter-grid { grid-template-columns: 1fr 1fr; }
  .agenda-sticky-header { margin: -26px -14px 16px; padding: 16px 14px 10px; top: 62px; }
  .agenda-header-top { align-items: center; flex-wrap: wrap; }
  .agenda-header-top h1 { font-size: 2rem; margin-bottom: 0; }
  .agenda-subtitle, .agenda-metric-strip { display: none; }
  .agenda-header-tools { flex: 1 0 100%; justify-content: space-between; }
  .agenda-header-actions { align-items: center; flex-wrap: wrap; gap: 8px; }
  .agenda-header-actions .agenda-view-tabs { flex: 1 1 100%; }
  .agenda-header-actions .compact-toolbar-extra { justify-content: flex-start; }
  .agenda-inline-drawer-form { grid-template-columns: 1fr; }
  .agenda-inline-drawer-form .form-field:nth-child(3), .agenda-inline-drawer-form button { grid-column: auto; }
  .action-menu-panel { left: 0; right: auto; max-width: calc(100vw - 28px); min-width: min(280px, calc(100vw - 28px)); }
}

/* V6.8: objective workspace, local GPX preview and compact secondary pages. */
.page-shell.goal-page-shell, .page-shell:has(.goal-theme-page) { margin: 0; max-width: none; padding: 0; width: 100%; }
.goal-page-shell > .messages { left: 50%; max-width: min(1500px, calc(100% - 32px)); position: relative; transform: translateX(-50%); z-index: 20; }
.goal-theme-page {
  background:
    radial-gradient(circle at 88% 4%, color-mix(in srgb, var(--goal-accent) 34%, transparent), transparent 31rem),
    linear-gradient(145deg, color-mix(in srgb, var(--goal-dark) 92%, #174a42), var(--goal-dark) 42%, color-mix(in srgb, var(--goal-dark) 86%, var(--goal-accent)));
  min-height: calc(100vh - 72px);
  overflow: hidden;
  padding: clamp(20px, 3vw, 44px) clamp(14px, 3vw, 48px) 64px;
  position: relative;
}
.goal-theme-page::before {
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 1px, transparent 1px 30px);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.goal-theme-page > * { margin-left: auto; margin-right: auto; max-width: 1660px; position: relative; z-index: 1; }
.goal-builder-form, .goal-builder-form > * { min-width: 0; }
.goal-theme-page .goal-event-hero { background: rgba(3,13,12,.58); border: 1px solid rgba(255,255,255,.13); box-shadow: 0 24px 80px rgba(0,0,0,.24); }
.goal-theme-page .panel { background: rgba(255,255,255,.94); backdrop-filter: blur(14px); }
.goal-theme-page .app-footer { color: rgba(255,255,255,.7); }
.goal-discipline-tabs { margin-bottom: 14px; }
.goal-reading-guide { background: rgba(255,255,255,.82); border: 1px solid rgba(255,255,255,.44); border-radius: 16px; display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 14px; padding: 11px 13px; }
.goal-discipline-legend,.goal-priority-guide { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.goal-reading-guide strong { color: var(--ink); font-size: .68rem; margin-right: 3px; }
.goal-discipline-key,.goal-priority-guide span { align-items: center; background: #eef5f2; border-radius: 999px; color: var(--ink); display: inline-flex; font-size: .62rem; font-weight: 850; gap: 4px; padding: 5px 8px; }
.goal-discipline-key svg { height: 13px; width: 13px; }
.goal-priority-guide b { align-items: center; background: #082e27; border-radius: 50%; color: #fff; display: inline-flex; height: 22px; justify-content: center; min-width: 22px; padding: 0 4px; }
.goal-row[class*="discipline-"] { border-left: 4px solid var(--goal-color, #5b7f76); margin: 4px 0; padding-left: 9px; }
.discipline-run { --goal-color: #ef654e; }.discipline-bike { --goal-color: #368de8; }.discipline-swim { --goal-color: #22aebc; }.discipline-triathlon { --goal-color: #7967e8; }.discipline-hyrox { --goal-color: #d3a12b; }.discipline-hike { --goal-color: #4aa367; }.discipline-other { --goal-color: #718078; }
.goal-discipline-key[class*="discipline-"] { box-shadow: inset 3px 0 var(--goal-color); }
.tool-menu-note { color: var(--muted); display: block; font-size: .65rem; line-height: 1.35; padding: 6px 10px 8px; }
@media (max-width: 800px) { .goal-reading-guide { grid-template-columns: 1fr; } }
.goal-selection-panel { padding-top: 12px; }
.goal-selection-panel .context-bulk-toolbar { margin-bottom: 10px; }
.compact-filter-grid { grid-template-columns: minmax(220px, 1fr) minmax(180px, .4fr) auto; }

.official-route-layout { align-items: stretch; display: grid; gap: 18px; grid-template-columns: minmax(300px, .82fr) minmax(340px, 1.18fr); min-width: 0; }
.official-route-card, .goal-official-route-panel { min-width: 0; }
.route-map-frame { align-items: center; background: #081713; border: 1px solid color-mix(in srgb, var(--goal-accent) 34%, #203f38); border-radius: 20px; display: flex; justify-content: center; min-width: 0; overflow: hidden; }
.route-mini-map { aspect-ratio: 1 / 1; height: auto; max-height: 500px; width: 100%; }
.route-information-card { align-content: start; display: grid; gap: 14px; min-width: 0; }
.route-metric-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.route-metric-grid > span { background: color-mix(in srgb, var(--goal-accent) 8%, #f7fbf9); border: 1px solid var(--line); border-radius: 15px; display: grid; gap: 3px; padding: 13px; }
.route-metric-grid small { color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.route-metric-grid strong { font-size: 1.05rem; overflow-wrap: anywhere; }
.route-file-metric { grid-column: 1 / -1; }
.route-analysis-feedback { background: #edf5f2; border-radius: 11px; color: var(--muted); font-size: .72rem; font-weight: 750; margin: 0; padding: 10px 12px; }
.route-analysis-feedback.loading { color: #8a5b0c; }
.route-analysis-feedback.ready { background: #e7f8ef; color: #117552; }
.route-analysis-feedback.error { background: #fff0ed; color: #b93625; }
.official-route-layout .gpx-upload-zone { margin: 0; }
.official-route-layout .gpx-upload-zone input[type="file"] { max-width: 100%; min-width: 0; width: 100%; }
.official-route-layout .route-mini-profile { height: 92px; }
.objective-segment-head { grid-template-columns: 1.05fr minmax(260px, 1.25fr) .7fr .72fr .78fr .55fr; }
.objective-segment-row { grid-template-columns: 1.05fr minmax(260px, 1.25fr) .7fr .72fr .78fr .55fr; }
.objective-segment-row .segment-fit-upload { justify-self: stretch; }
.activity-selection-panel { padding-top: 12px; }
.activity-bulk-toolbar { align-items: end; display: grid; grid-template-columns: auto minmax(150px, .45fr) minmax(170px, .55fr) minmax(240px, 1fr) auto; margin-bottom: 10px; }
.activity-bulk-toolbar .form-field { margin: 0; }
.activity-bulk-toolbar label { color: var(--muted); font-size: .62rem; }
.goal-page-shell > .app-footer { background: #071c1a; color: rgba(255,255,255,.68); margin: 0; max-width: none; padding: 18px; }

@media (max-width: 980px) {
  .goal-event-hero { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); }
  .goal-event-stats { grid-column: 1 / -1; }
  .official-route-layout { grid-template-columns: minmax(0, 1fr); }
  .route-map-frame { max-width: 620px; min-width: 0; width: 100%; }
  .activity-bulk-toolbar { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .goal-theme-page { min-height: calc(100vh - 62px); padding: 14px 14px 84px; }
  .goal-theme-page .goal-event-hero { border-radius: 22px; grid-template-columns: minmax(0, 1fr); }
  .compact-filter-grid, .route-metric-grid { grid-template-columns: 1fr; }
  .route-file-metric { grid-column: auto; }
  .route-mini-map { max-height: none; }
  .activity-bulk-toolbar { grid-template-columns: 1fr; }
  .goal-identity-grid { grid-template-columns: minmax(0, 1fr); }
  .goal-builder-form > .panel, .goal-builder-form > .form-actions { max-width: 100%; width: 100%; }
  .goal-official-route-panel, .objective-segment-planner { overflow: hidden; }
  .official-route-tabs { display: flex; overflow-x: auto; }
  .official-route-tab { flex: 0 0 auto; min-width: 132px; }
}

/* V6.9: full themed workspace, minute agenda and deep FIT analysis. */
body.authenticated-app {
  background: #061b18;
}
main.app-themed-shell:not(.goal-page-shell) {
  background:
    radial-gradient(circle at 88% 1%, rgba(255, 122, 26, .24), transparent 30rem),
    radial-gradient(circle at 12% 18%, rgba(32, 183, 201, .17), transparent 32rem),
    radial-gradient(circle at 55% 100%, rgba(60, 136, 232, .18), transparent 38rem),
    linear-gradient(145deg, #061b18 0%, #0a302a 47%, #071e1b 100%);
  margin: 0;
  max-width: none;
  min-height: calc(100vh - 74px);
  overflow: hidden;
  padding: 38px clamp(14px, 2.5vw, 46px) 88px;
  position: relative;
  width: 100%;
}
main.app-themed-shell:not(.goal-page-shell)::before {
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.032) 0 1px, transparent 1px 30px);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
main.app-themed-shell:not(.goal-page-shell) > * {
  margin-left: auto;
  margin-right: auto;
  max-width: 1680px;
  position: relative;
  width: 100%;
  z-index: 1;
}
main.app-themed-shell:not(.goal-page-shell) > .page-toolbar-row { z-index: 120; }
main.app-themed-shell:not(.goal-page-shell) > .floating-layer-open,
main.app-themed-shell.goal-page-shell > .floating-layer-open { overflow: visible; z-index: 5000 !important; }
.floating-layer-open { isolation: isolate; }
main.app-themed-shell.agenda-page-shell > * { max-width: 1820px; }
main.app-themed-shell:not(.goal-page-shell) > .app-footer { color: rgba(225,245,239,.68); }
.app-themed-shell:not(.goal-page-shell) .page-heading {
  background: linear-gradient(120deg, rgba(3,18,16,.78), rgba(12,58,50,.68));
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 26px;
  box-shadow: 0 22px 60px rgba(0,0,0,.2);
  color: #fff;
  margin-bottom: 18px;
  padding: clamp(20px, 3vw, 34px);
}
.app-themed-shell:not(.goal-page-shell) .page-heading h1,
.app-themed-shell:not(.goal-page-shell) .page-heading h2 { color: #fff; }
.app-themed-shell:not(.goal-page-shell) .page-heading p:not(.eyebrow) { color: rgba(229,246,240,.72); }
.app-themed-shell:not(.goal-page-shell) .page-heading .eyebrow { color: #66e4bb; }
.app-themed-shell:not(.goal-page-shell) .panel,
.app-themed-shell:not(.goal-page-shell) .agenda-month-card,
.app-themed-shell:not(.goal-page-shell) .compact-toolbar,
.app-themed-shell:not(.goal-page-shell) .toolbar-panel {
  backdrop-filter: blur(14px);
}

.agenda-sticky-header {
  background: linear-gradient(120deg, rgba(4,24,21,.96), rgba(9,48,41,.94));
  border-color: rgba(255,255,255,.1);
  border-radius: 0 0 24px 24px;
  box-shadow: 0 16px 44px rgba(0,0,0,.22);
  margin: 0 0 20px;
  position: relative;
  top: auto;
}
.agenda-header-top h1, .agenda-header-top h1 span, .agenda-year-nav strong, .agenda-balance b, .agenda-metric-strip b { color: #fff; }
.agenda-subtitle, .agenda-balance, .agenda-metric-strip { color: rgba(225,245,239,.7); }
.agenda-header-actions { border-color: rgba(255,255,255,.12); }
.agenda-view-tabs { background: rgba(255,255,255,.08); }
.agenda-view-tabs a { color: rgba(235,249,245,.72); }
.agenda-view-tabs a.active { background: #35d0a1; color: #05231d; }
.agenda-calendar-workspace { overflow: hidden; padding: 0; }
.agenda-timeline { min-width: 980px; }
.agenda-single-day .agenda-timeline { min-width: 620px; }
.agenda-timeline-head,
.agenda-all-day-band {
  display: grid;
  grid-template-columns: 64px repeat(var(--agenda-day-count), minmax(130px, 1fr));
}
.agenda-timeline-head { background: #f5faf8; border-bottom: 1px solid var(--line); min-height: 58px; }
.agenda-time-corner,
.agenda-timeline-day-title { align-items: center; display: flex; justify-content: center; }
.agenda-time-corner { color: var(--muted); font-size: .62rem; font-weight: 900; text-transform: uppercase; }
.agenda-timeline-day-title { border-left: 1px solid var(--line); color: var(--ink); flex-direction: column; gap: 2px; padding: 9px; }
.agenda-timeline-day-title small { color: var(--muted); font-size: .63rem; font-weight: 900; text-transform: uppercase; }
.agenda-timeline-day-title strong { font-size: .9rem; }
.agenda-timeline-day-title.selected { background: var(--mint-soft); box-shadow: inset 0 -3px 0 var(--mint); }
.agenda-all-day-band { background: #fff; border-bottom: 1px solid var(--line); min-height: 54px; }
.agenda-all-day-label { align-items: center; color: var(--muted); display: flex; font-size: .58rem; font-weight: 900; justify-content: center; text-transform: uppercase; }
.agenda-all-day-column { border-left: 1px solid var(--line); display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 5px; }
.agenda-all-day-chip { border-radius: 6px; color: #fff; font-size: .58rem; font-weight: 850; overflow: hidden; padding: 4px 6px; text-overflow: ellipsis; white-space: nowrap; }
.agenda-all-day-empty { color: #b6c4c0; font-size: .65rem; text-align: center; }
.agenda-time-scroll { display: grid; grid-template-columns: 64px minmax(0, 1fr); max-height: min(72vh, 860px); overflow-y: auto; position: relative; }
.agenda-time-axis { background: #f7fbf9; border-right: 1px solid var(--line); height: 1440px; position: relative; z-index: 2; }
.agenda-time-axis span { color: #647b74; font-size: .57rem; font-weight: 850; left: 7px; position: absolute; top: calc(var(--agenda-minute) * 1px - 7px); }
.agenda-time-days { display: grid; grid-template-columns: repeat(var(--agenda-day-count), minmax(130px, 1fr)); height: 1440px; }
.agenda-timeline-day {
  background:
    repeating-linear-gradient(to bottom, transparent 0 29px, rgba(14,71,60,.055) 29px 30px, transparent 30px 59px, rgba(14,71,60,.13) 59px 60px),
    linear-gradient(#fff, #fbfdfc);
  border-right: 1px solid var(--line);
  cursor: crosshair;
  height: 1440px;
  position: relative;
}
.agenda-timeline-day:hover { background-color: #f7fcfa; }
.agenda-timed-event {
  background: #e7f5f0;
  border: 1px solid #9ccfbe;
  border-left: 4px solid #0f766e;
  border-radius: 8px;
  color: #123b32;
  display: flex;
  flex-direction: column;
  height: calc(var(--event-duration) * 1px);
  left: 3px;
  min-height: 24px;
  overflow: hidden;
  padding: 4px 6px;
  position: absolute;
  right: 3px;
  top: calc(var(--event-start) * 1px);
  z-index: 4;
}
.agenda-timed-event small { font-size: .54rem; font-weight: 950; }
.agenda-timed-event strong { font-size: .65rem; line-height: 1.12; }
.agenda-timed-event span { font-size: .53rem; opacity: .72; }
.agenda-timed-event.agenda-training { background: #dcf9e9; border-color: #7bd7a4; border-left-color: #16a34a; color: #07391e; }
.agenda-timed-event.agenda-activity { background: #e0f2fe; border-color: #7dd3fc; border-left-color: #0284c7; color: #0c4a6e; }
.agenda-timed-event.agenda-telework { background: #e8f1ff; border-color: #9dbef4; border-left-color: #2563eb; color: #153968; }
.agenda-timed-event.agenda-leave { background: #e6f8e8; border-color: #91d69b; border-left-color: #16a34a; color: #164522; }
.agenda-timed-event.agenda-rtt { background: #fff4dc; border-color: #efc364; border-left-color: #f59e0b; color: #593900; }

.route-leaflet-map { aspect-ratio: 1 / 1; min-height: 360px; width: 100%; }
.route-leaflet-map .leaflet-control-attribution { font-size: 9px; }
[data-route-panel][hidden] { display: none !important; }
.objective-segment-table { overflow-x: auto; }
.objective-segment-head { grid-template-columns: 1.02fr minmax(230px, 1.28fr) .66fr .7fr .76fr .5fr .5fr 82px; min-width: 1390px; }
.objective-segment-row { align-items: start; grid-template-columns: 1.02fr minmax(230px, 1.28fr) .66fr .7fr .76fr .5fr .5fr 82px; min-height: 106px; min-width: 1390px; }
.objective-segment-title { align-self: center; }
.segment-fit-cell { align-self: start; min-width: 0; padding-top: 17px; }
.segment-row-actions { align-items: center; align-self: start; display: flex; gap: 5px; justify-content: flex-end; padding-top: 17px; }
.segment-row-actions .icon-button { background: #fff; border-color: var(--line); cursor: pointer; }
.segment-row-actions .icon-button svg { fill: none; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 18px; }
.segment-fit-upload.loading { cursor: wait; opacity: .55; }
.segment-fit-upload.ready { background: #e2f7ef; border-color: #78c5aa; color: #08745f; }
.segment-fit-upload.error { background: #fff0ee; border-color: #ef9b90; color: #b83224; }
.objective-segment-row.needs-fit { box-shadow: 0 0 0 3px color-mix(in srgb, var(--segment-color) 38%, transparent); }
.segment-detail-link[aria-disabled="true"] { cursor: not-allowed; opacity: .35; }
@media (max-width: 760px) {
  .objective-segment-head { display: none; }
  .objective-segment-row { grid-template-columns: 1fr; min-height: 0; min-width: 0; }
  .objective-segment-title { justify-self: stretch; }
  .segment-fit-cell, .segment-row-actions { padding-top: 0; }
  .segment-row-actions { justify-content: stretch; }
  .segment-row-actions .icon-button { flex: 1; }
}
.activity-name-link { color: var(--ink); }
.activity-name-link:hover { color: #08745f; }

.activity-analysis-page { --activity-accent: #ff6a25; display: grid; gap: 18px; }
.activity-analysis-page.sport-bike { --activity-accent: #3c88e8; }
.activity-analysis-page.sport-swim { --activity-accent: #20b7c9; }
.activity-analysis-page.sport-strength { --activity-accent: #e89d38; }
.activity-analysis-hero {
  background:
    radial-gradient(circle at 84% 10%, color-mix(in srgb, var(--activity-accent) 42%, transparent), transparent 24rem),
    linear-gradient(125deg, rgba(3,18,16,.96), rgba(11,52,45,.94));
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 30px;
  box-shadow: 0 26px 72px rgba(0,0,0,.25);
  color: #fff;
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: clamp(22px, 3vw, 38px);
}
.activity-analysis-title { align-items: center; display: flex; gap: 16px; }
.activity-analysis-icon { align-items: center; background: var(--activity-accent); border-radius: 50%; display: flex; height: 62px; justify-content: center; width: 62px; }
.activity-analysis-icon svg { color: #fff; height: 34px; width: 34px; }
.activity-analysis-title h1 { color: #fff; font-size: clamp(2rem, 4vw, 4.1rem); letter-spacing: -.065em; line-height: .95; margin: 5px 0; }
.activity-analysis-title p { color: rgba(232,247,242,.72); margin: 0; }
.activity-analysis-actions { align-items: flex-start; display: flex; gap: 7px; }
.activity-analysis-summary { display: grid; gap: 8px; grid-column: 1 / -1; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.activity-analysis-summary span { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; display: grid; gap: 3px; padding: 12px; }
.activity-analysis-summary strong { font-size: 1.08rem; }
.activity-analysis-summary small { color: rgba(233,248,243,.65); font-size: .58rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.activity-analysis-tabs { background: rgba(4,22,19,.86); border: 1px solid rgba(255,255,255,.1); border-radius: 14px; display: flex; gap: 4px; padding: 5px; }
.activity-analysis-tabs button { background: transparent; border: 0; border-radius: 9px; color: rgba(235,249,245,.68); cursor: pointer; font-weight: 850; padding: 10px 14px; }
.activity-analysis-tabs button.active { background: var(--activity-accent); color: #fff; }
.activity-analysis-tabs span { background: rgba(255,255,255,.16); border-radius: 999px; font-size: .62rem; margin-left: 4px; padding: 2px 5px; }
.activity-analysis-panel { display: grid; gap: 18px; }
.activity-map-card { overflow: hidden; padding: 0; }
.activity-route-map { height: min(48vw, 520px); min-height: 340px; }
.activity-route-map > .muted { align-items: center; display: flex; height: 100%; justify-content: center; }
.activity-route-map.no-route { height: 88px; min-height: 88px; }
.activity-chart-explorer { background: #fbfdfc; border-top: 1px solid var(--line); padding: 18px; }
.activity-chart-toolbar, .activity-chart-heading, .activity-chart-range { align-items: center; display: flex; gap: 12px; justify-content: space-between; }
.activity-metric-buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.activity-metric-buttons button, .activity-chart-actions button {
  background: #eef4f2;
  border: 1px solid #d7e3df;
  border-radius: 999px;
  color: #49635d;
  cursor: pointer;
  font-size: .68rem;
  font-weight: 850;
  padding: 7px 10px;
}
.activity-metric-buttons button.active, .activity-chart-actions button.active { background: var(--activity-accent); border-color: var(--activity-accent); color: #fff; }
.activity-chart-actions { display: flex; flex: 0 0 auto; gap: 5px; }
.activity-chart-heading { margin: 18px 0 6px; }
.activity-chart-heading h2 { font-size: 1.35rem; margin: 2px 0 0; }
.activity-chart-kpis { display: flex; gap: 6px; }
.activity-chart-kpis span { background: #eef4f2; border-radius: 10px; display: grid; min-width: 88px; padding: 7px 10px; }
.activity-chart-kpis small { color: var(--muted); font-size: .56rem; font-weight: 850; text-transform: uppercase; }
.activity-chart-kpis strong { font-size: .78rem; }
.activity-chart-kpis .trend-up strong::before, .lab-marker-delta.trend-up b::before { content: "\2191  "; color: #149166; }
.activity-chart-kpis .trend-down strong::before, .lab-marker-delta.trend-down b::before { content: "\2193  "; color: #e05b45; }
.activity-chart-kpis .trend-stable strong::before, .lab-marker-delta.trend-stable b::before { content: "\2192  "; color: #71857f; }
.activity-chart-stage { min-height: 320px; position: relative; }
#activity-main-chart { height: 320px; overflow: visible; width: 100%; }
#activity-main-chart text, #activity-lap-chart text { fill: #71857f; font-size: 18px; font-weight: 700; }
#activity-main-chart .chart-grid-line, #activity-lap-chart .chart-grid-line { stroke: #dce6e3; stroke-width: 1; }
#activity-main-chart .activity-main-line { stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.6; }
#activity-chart-crosshair { stroke: #7b8e89; stroke-dasharray: 5 5; stroke-width: 1; }
.activity-chart-tooltip { background: rgba(3,24,21,.94); border-radius: 9px; color: #fff; display: grid; min-width: 138px; padding: 8px 10px; pointer-events: none; position: absolute; z-index: 3; }
.activity-chart-tooltip strong { font-size: .78rem; }
.activity-chart-tooltip small { color: rgba(255,255,255,.7); font-size: .62rem; }
.activity-chart-range { color: var(--muted); font-size: .62rem; font-weight: 750; }
.activity-chart-range input { accent-color: var(--activity-accent); flex: 1; }
.activity-stat-groups { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.activity-stat-group h2 { border-bottom: 1px solid var(--line); font-size: 1rem; margin: 0 0 8px; padding-bottom: 10px; }
.activity-stat-group > div { align-items: baseline; border-bottom: 1px solid #edf2f0; display: flex; gap: 12px; justify-content: space-between; padding: 9px 0; }
.activity-stat-group > div:last-child { border-bottom: 0; }
.activity-stat-group span { color: var(--muted); font-size: .7rem; }
.activity-stat-group strong { font-size: .86rem; text-align: right; }
.activity-laps-card { overflow: hidden; }
.activity-lap-visual { background: linear-gradient(180deg, #f7fbfa, #fff); border: 1px solid var(--line); border-radius: 14px; margin-bottom: 18px; padding: 12px; }
.activity-lap-visual h3 { font-size: 1.1rem; margin: 2px 0 0; }
#activity-lap-chart { height: 260px; margin-top: 8px; width: 100%; }
.activity-laps-table { min-width: 1360px; }
.activity-zone-layout { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
.activity-zone-row { display: grid; gap: 8px; grid-template-columns: minmax(180px, .8fr) minmax(240px, 1.4fr) 110px; margin: 14px 0; }
.activity-zone-row > div:first-child { display: grid; }
.activity-zone-row span { color: var(--muted); font-size: .67rem; }
.activity-zone-row > b { font-size: .7rem; text-align: right; }
.activity-zone-track { align-self: center; background: #e5e9e8; border-radius: 999px; height: 18px; overflow: hidden; }
.activity-zone-track i { background: #9ca3af; display: block; height: 100%; min-width: 0; }
.activity-zone-row.zone-2 .activity-zone-track i { background: #3b82f6; }
.activity-zone-row.zone-3 .activity-zone-track i { background: #34c759; }
.activity-zone-row.zone-4 .activity-zone-track i { background: #f97316; }
.activity-zone-row.zone-5 .activity-zone-track i,
.activity-zone-row.zone-6 .activity-zone-track i,
.activity-zone-row.zone-7 .activity-zone-track i { background: #ef4444; }

/* Health data studio */
.health-page-heading {
  background:
    radial-gradient(circle at 88% 20%, rgba(124,58,237,.2), transparent 24rem),
    linear-gradient(135deg, rgba(4,35,31,.98), rgba(13,67,57,.94));
}
.health-trend-studio { overflow: hidden; padding: clamp(18px, 2.4vw, 30px); }
.health-studio-header,
.health-chart-toolbar,
.health-chart-heading,
.health-chart-range { align-items: center; display: flex; gap: 16px; justify-content: space-between; }
.health-studio-header h2,
.health-chart-heading h2 { margin: 3px 0 4px; }
.health-period-tabs { flex: 0 0 auto; }
.health-indicator-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); margin: 24px 0 18px; }
.health-indicator-card {
  background: #f7faf9;
  border: 1px solid var(--line);
  border-radius: 17px;
  color: var(--ink);
  cursor: pointer;
  display: grid;
  gap: 5px;
  min-height: 118px;
  overflow: hidden;
  padding: 15px;
  position: relative;
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.health-indicator-card::before { background: var(--health-color); content: ""; inset: 0 auto 0 0; position: absolute; width: 4px; }
.health-indicator-card:hover { transform: translateY(-2px); }
.health-indicator-card.active { border-color: color-mix(in srgb, var(--health-color) 55%, #d4dfdc); box-shadow: 0 12px 28px color-mix(in srgb, var(--health-color) 14%, transparent); }
.health-indicator-label { color: var(--muted); font-size: .65rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.health-indicator-card strong { font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1; }
.health-indicator-card strong small { color: var(--muted); font-size: .7rem; }
.health-indicator-delta { color: var(--muted); font-size: .64rem; font-weight: 700; }
.health-indicator-card i { background: var(--health-color); border-radius: 999px; bottom: 0; height: 3px; left: 0; opacity: .72; position: absolute; transition: width .2s ease; width: 30%; }
.health-indicator-card.active i { width: 100%; }
.health-chart-toolbar { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); padding: 11px 0; }
.health-chart-kind,
.health-chart-actions { display: flex; gap: 5px; }
.health-chart-kind button,
.health-chart-actions button {
  background: #eef4f2;
  border: 1px solid #d7e3df;
  border-radius: 999px;
  color: #49635d;
  cursor: pointer;
  font-size: .68rem;
  font-weight: 850;
  padding: 7px 11px;
}
.health-chart-kind button.active { background: var(--dark); border-color: var(--dark); color: #fff; }
.health-chart-heading { margin: 18px 0 4px; }
.health-chart-kpis { display: grid; gap: 7px; grid-template-columns: repeat(4, minmax(92px, 1fr)); }
.health-chart-kpis span { background: #eef4f2; border-radius: 11px; display: grid; gap: 2px; padding: 8px 10px; }
.health-chart-kpis small { color: var(--muted); font-size: .55rem; font-weight: 900; text-transform: uppercase; }
.health-chart-kpis strong { font-size: .78rem; }
.health-chart-stage { height: 390px; min-height: 390px; position: relative; }
#health-main-chart { height: 100%; overflow: visible; width: 100%; }
#health-main-chart text { fill: #71857f; font-size: 17px; font-weight: 700; }
#health-main-chart .health-grid-line { stroke: #dce6e3; stroke-width: 1; }
#health-main-chart .health-main-line { stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
#health-main-chart .health-data-point,
#health-main-chart .health-data-bar { cursor: crosshair; }
#health-chart-crosshair { stroke: #7b8e89; stroke-dasharray: 5 5; stroke-width: 1; }
.health-chart-tooltip { background: rgba(3,24,21,.95); border-radius: 10px; color: #fff; display: grid; min-width: 130px; padding: 9px 11px; pointer-events: none; position: absolute; z-index: 3; }
.health-chart-tooltip strong { font-size: .82rem; }
.health-chart-tooltip small { color: rgba(255,255,255,.7); font-size: .64rem; }
.health-chart-empty { align-items: center; color: var(--muted); display: flex; font-weight: 800; inset: 0; justify-content: center; position: absolute; }
.health-chart-range { color: var(--muted); font-size: .63rem; font-weight: 800; }
.health-chart-range input { accent-color: var(--mint); flex: 1; }
.health-data-grid { display: grid; gap: 18px; grid-template-columns: minmax(0, 1.7fr) minmax(280px, .7fr); }
.health-measures-panel { grid-column: 1 / -1; }
.health-measures-table { min-width: 920px; }
.health-measures-table td { white-space: nowrap; }
.health-measure-stack { display: grid; gap: 3px; }
.health-measure-stack small { color: var(--muted); font-size: .62rem; }
.health-measure-notes { max-width: 240px; min-width: 150px; white-space: normal !important; }
.health-table-actions { align-items: center; display: flex; gap: 14px; }
.page-size-form label { align-items: center; color: var(--muted); display: flex; font-size: .64rem; font-weight: 850; gap: 7px; }
.page-size-form select { background: #f7faf9; border: 1px solid var(--line); border-radius: 8px; color: var(--dark); font: inherit; padding: 6px 8px; }

.data-pagination { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 16px; justify-content: space-between; margin-top: 14px; padding-top: 14px; }
.data-pagination p { color: var(--muted); font-size: .67rem; margin: 0; }
.data-pagination-pages { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; }
.data-pagination-pages a,
.data-pagination-pages span { align-items: center; border: 1px solid var(--line); border-radius: 9px; color: var(--dark); display: inline-flex; font-size: .7rem; font-weight: 900; height: 34px; justify-content: center; min-width: 34px; padding: 0 8px; }
.data-pagination-pages a:hover { border-color: var(--mint); transform: translateY(-1px); }
.data-pagination-pages .current { background: var(--dark); border-color: var(--dark); color: #fff; }
.data-pagination-pages .disabled { color: #aab6b3; opacity: .55; }
.data-pagination-pages .ellipsis { border-color: transparent; min-width: 22px; padding: 0; }
.source-pill { background: #edf5f2; border-radius: 999px; color: #3f625a; font-size: .59rem; font-weight: 900; padding: 5px 8px; text-transform: uppercase; }
.health-lab-panel { min-width: 0; }
.health-documents-panel { align-self: start; }
.health-primary-tabs { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: -6px 0 18px; }
.health-primary-tabs a { align-items: center; background: rgba(238,246,243,.88); border: 1px solid rgba(207,221,216,.9); border-radius: 16px; color: var(--dark); display: grid; gap: 2px 10px; grid-template-columns: auto 1fr; padding: 13px 15px; transition: .18s ease; }
.health-primary-tabs a > span { align-items: center; background: #d9e9e4; border-radius: 50%; display: flex; font-size: .63rem; font-weight: 900; grid-row: 1 / 3; height: 34px; justify-content: center; width: 34px; }
.health-primary-tabs strong { font-size: .8rem; }
.health-primary-tabs small { color: var(--muted); font-size: .62rem; font-weight: 700; }
.health-primary-tabs a:hover { transform: translateY(-2px); }
.health-primary-tabs a.active { background: var(--dark); border-color: rgba(84,228,185,.48); box-shadow: 0 16px 32px rgba(2,28,24,.18); color: #fff; }
.health-primary-tabs a.active > span { background: var(--mint); color: var(--dark); }
.health-primary-tabs a.active small { color: rgba(255,255,255,.7); }
.health-indicator-empty { background: rgba(238,246,243,.88); border: 1px dashed rgba(93,126,117,.35); border-radius: 14px; color: var(--muted); font-size: .72rem; font-weight: 750; grid-column: 1 / -1; line-height: 1.55; padding: 18px; }
.health-documents-strip { margin-top: 18px; }
.lab-import-panel { margin-inline: auto; max-width: 980px; }
.lab-import-intro { display: grid; gap: 18px; grid-template-columns: 1.2fr .8fr; }
.lab-import-intro h2 { margin: 3px 0 8px; }
.lab-safety-note, .lab-context-empty, .lab-qualitative-result { background: #edf5f2; border: 1px solid #d8e6e1; border-radius: 14px; padding: 14px; }
.lab-safety-note p { color: var(--muted); margin-bottom: 0; }
.lab-upload-form { margin-top: 24px; }
.lab-report-switcher { padding: 18px; }
.lab-report-list { display: flex; gap: 10px; overflow-x: auto; padding: 3px 2px 8px; }
.lab-report-chip { background: #eef5f3; border: 1px solid #d7e3df; border-radius: 14px; color: var(--dark); display: grid; flex: 0 0 190px; gap: 3px; padding: 12px; }
.lab-report-chip span { color: var(--muted); font-size: .65rem; font-weight: 900; }
.lab-report-chip strong { font-size: .78rem; }
.lab-report-chip small { color: var(--muted); font-size: .58rem; }
.lab-report-chip.active { background: var(--dark); border-color: var(--mint); color: #fff; }
.lab-report-chip.active span, .lab-report-chip.active small { color: rgba(255,255,255,.72); }
.lab-report-hero { align-items: center; border-top: 4px solid var(--mint); display: grid; gap: 18px; grid-template-columns: 1fr auto auto; margin-top: 18px; }
.lab-report-hero h2 { margin: 3px 0 5px; }
.lab-report-hero p { color: var(--muted); margin: 0; }
.lab-report-kpis { display: flex; gap: 9px; }
.lab-report-kpis span { background: #edf5f2; border-radius: 13px; display: grid; min-width: 92px; padding: 10px 12px; }
.lab-report-kpis strong { font-size: 1.2rem; }
.lab-report-kpis small { color: var(--muted); font-size: .57rem; font-weight: 900; text-transform: uppercase; }
.lab-report-kpis .warning { background: #fff1d6; color: #8a5600; }
.lab-warning-banner { align-items: center; background: #fff4d8; border: 1px solid #efc761; border-radius: 14px; color: #795000; display: flex; gap: 12px; margin-top: 14px; padding: 12px 15px; }
.lab-warning-banner span { font-size: .72rem; }
.lab-context-grid { display: grid; gap: 16px; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); margin-top: 18px; }
.lab-context-panel h2, .lab-safety-panel h2 { margin: 3px 0 12px; }
.lab-context-evidence { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lab-context-evidence span { background: #eef5f3; border-radius: 12px; display: grid; gap: 4px; padding: 11px; }
.lab-context-evidence small { color: var(--muted); font-size: .56rem; font-weight: 900; text-transform: uppercase; }
.lab-context-evidence strong { font-size: .72rem; line-height: 1.35; }
.lab-safety-panel { border-left: 4px solid #eead3c; }
.lab-safety-panel p { font-size: .72rem; line-height: 1.45; }
.lab-safety-panel > small { color: var(--muted); display: block; font-size: .6rem; line-height: 1.45; }
.lab-category-section { margin-top: 24px; }
.lab-category-heading { align-items: end; display: flex; justify-content: space-between; margin: 0 3px 10px; }
.lab-category-heading h2 { color: #fff; margin: 2px 0 0; }
.lab-category-heading > span { color: rgba(255,255,255,.7); font-size: .64rem; font-weight: 800; }
.lab-marker-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lab-marker-card { --lab-status: #83938f; background: #f8fbfa; border: 1px solid #d6e1de; border-top: 4px solid var(--lab-status); border-radius: 17px; display: grid; gap: 12px; min-width: 0; padding: 16px; }
.lab-marker-card.status-normal { --lab-status: #25a774; }
.lab-marker-card.status-high, .lab-marker-card.status-low { --lab-status: #ef8f32; }
.lab-marker-card.status-qualitative { --lab-status: #5a75dd; }
.lab-marker-card > header { align-items: start; display: flex; gap: 10px; justify-content: space-between; }
.lab-marker-card header small { color: var(--muted); font-size: .54rem; font-weight: 900; text-transform: uppercase; }
.lab-marker-card h3 { font-size: 1rem; margin: 3px 0 0; }
.lab-status-pill { background: color-mix(in srgb, var(--lab-status) 15%, white); border-radius: 999px; color: color-mix(in srgb, var(--lab-status) 80%, #17231f); font-size: .56rem; font-weight: 900; padding: 6px 9px; white-space: nowrap; }
.lab-marker-value { display: grid; grid-template-columns: auto 1fr; }
.lab-marker-value strong { font-size: clamp(1.45rem,3vw,2.2rem); line-height: 1; }
.lab-marker-value > span { align-self: end; color: var(--muted); font-size: .72rem; font-weight: 800; padding: 0 0 3px 6px; }
.lab-marker-value small { color: var(--muted); font-size: .6rem; grid-column: 1 / -1; margin-top: 6px; }
.lab-marker-value .lab-marker-delta { background: #eef4f2; border-radius: 8px; color: #526660; padding: 6px 8px; }
.lab-marker-chart { background: #fff; border: 1px solid #e1e9e7; border-radius: 13px; padding: 8px 9px 5px 31px; position: relative; }
.lab-chart-y-axis { bottom: 24px; color: var(--muted); display: flex !important; flex-direction: column; font-size: .48rem !important; justify-content: space-between !important; left: 6px; position: absolute; top: 10px; }
.lab-marker-chart svg { height: 125px; overflow: visible; width: 100%; }
.lab-reference-band { fill: #dff3e8; opacity: .8; }
.lab-reference-line { stroke: #86b79f; stroke-dasharray: 3 3; stroke-width: .6; vector-effect: non-scaling-stroke; }
.lab-history-line { fill: none; stroke: var(--lab-status); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.lab-history-point { fill: #82938e; stroke: #fff; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.lab-history-point.status-normal { fill: #25a774; }
.lab-history-point.status-high, .lab-history-point.status-low { fill: #ef8f32; }
.lab-history-point.current { stroke: #072a24; stroke-width: 2.5; }
.lab-marker-chart > div { color: var(--muted); display: flex; font-size: .55rem; justify-content: space-between; }
.lab-marker-chart > div strong { color: var(--dark); }
.lab-marker-info { border-top: 1px solid #dce5e2; padding-top: 9px; }
.lab-marker-info summary { align-items: center; cursor: pointer; display: flex; font-size: .66rem; font-weight: 900; gap: 7px; }
.lab-marker-info summary span { align-items: center; background: var(--dark); border-radius: 50%; color: #fff; display: inline-flex; font-family: serif; height: 20px; justify-content: center; width: 20px; }
.lab-marker-info p { color: #43554f; font-size: .66rem; line-height: 1.5; margin: 9px 0; }
.lab-marker-info a, .lab-marker-card footer a { color: #08765e; font-size: .62rem; font-weight: 900; }
.lab-marker-card footer { border-top: 1px solid #e1e9e7; padding-top: 8px; }
.lab-empty-state { margin-top: 18px; text-align: center; }
.lab-empty-state .button { margin-top: 12px; }

@media (max-width: 1050px) {
  .activity-analysis-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .activity-stat-groups, .activity-zone-layout { grid-template-columns: 1fr; }
  .health-indicator-grid { grid-template-columns: 1fr 1fr; }
  .health-data-grid { grid-template-columns: 1fr; }
  .health-measures-panel { grid-column: auto; }
  .lab-context-grid, .lab-import-intro { grid-template-columns: 1fr; }
  .lab-marker-grid { grid-template-columns: 1fr; }
  .lab-report-hero { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .data-pagination { align-items: flex-start; flex-direction: column; }
  .data-pagination-pages { width: 100%; }
  .health-table-actions { align-items: flex-end; flex-direction: column; gap: 6px; }
  main.app-themed-shell:not(.goal-page-shell) { min-height: calc(100vh - 62px); padding: 14px 14px 104px; }
  .app-themed-shell:not(.goal-page-shell) .page-heading { border-radius: 20px; padding: 18px; }
  .agenda-sticky-header { margin: -14px -14px 16px; }
  .agenda-calendar-workspace { margin-left: -14px; margin-right: -14px; border-radius: 0; }
  .agenda-timeline { min-width: 920px; }
  .agenda-single-day .agenda-timeline { min-width: 100%; }
  .agenda-time-scroll { max-height: 66vh; }
  .activity-analysis-hero { grid-template-columns: 1fr; }
  .activity-analysis-actions { grid-row: 3; }
  .activity-analysis-summary { grid-template-columns: 1fr 1fr; }
  .activity-analysis-title { align-items: flex-start; }
  .activity-analysis-title h1 { font-size: 2.25rem; }
  .activity-analysis-icon { height: 48px; width: 48px; }
  .activity-route-map { height: 360px; min-height: 300px; }
  .activity-chart-toolbar, .activity-chart-heading { align-items: flex-start; flex-direction: column; }
  .activity-chart-actions { overflow-x: auto; width: 100%; }
  .activity-chart-kpis { width: 100%; }
  .activity-chart-kpis span { flex: 1; min-width: 0; }
  .activity-chart-stage, #activity-main-chart { min-height: 250px; height: 250px; }
  .activity-analysis-tabs { overflow-x: auto; }
  .activity-analysis-tabs button { flex: 0 0 auto; }
  .activity-zone-row { grid-template-columns: 1fr 80px; }
  .activity-zone-track { grid-column: 1 / -1; grid-row: 2; }
  .health-studio-header,
  .health-chart-heading { align-items: flex-start; flex-direction: column; }
  .health-period-tabs { overflow-x: auto; width: 100%; }
  .health-indicator-grid { gap: 8px; }
  .health-indicator-card { min-height: 105px; padding: 12px; }
  .health-chart-toolbar { align-items: flex-start; flex-wrap: wrap; }
  .health-chart-kpis { grid-template-columns: 1fr 1fr; width: 100%; }
  .health-chart-stage { height: 285px; min-height: 285px; }
  #health-main-chart text { font-size: 20px; }
  .health-primary-tabs { display: flex; overflow-x: auto; padding-bottom: 3px; }
  .health-primary-tabs a { flex: 0 0 245px; }
  .lab-context-evidence { grid-template-columns: 1fr; }
  .lab-warning-banner { align-items: flex-start; flex-direction: column; }
  .lab-report-kpis { width: 100%; }
  .lab-report-kpis span { flex: 1; }
  .lab-marker-card > header { align-items: flex-start; flex-direction: column; }
}

/* Agenda month workspace */
.agenda-month-workspace { overflow: hidden; padding: 0; }
.agenda-month-workspace-header {
  align-items: center;
  background: linear-gradient(135deg, rgba(7,28,26,.98), rgba(17,61,54,.96));
  color: #fff;
  display: grid;
  gap: 18px;
  grid-template-columns: 44px 1fr 44px;
  padding: 22px 26px;
  text-align: center;
}
.agenda-month-workspace-header .eyebrow { color: var(--mint); margin: 0 0 3px; }
.agenda-month-workspace-header h2 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.5rem); margin: 0; }
.agenda-month-workspace-header .icon-button { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.18); color: #fff; }
.agenda-month-large-weekdays,
.agenda-month-large-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.agenda-month-large-weekdays { background: #edf5f2; border-bottom: 1px solid var(--line); color: #45625c; }
.agenda-month-large-weekdays span { font-size: .67rem; font-weight: 900; letter-spacing: .07em; padding: 12px 10px; text-align: center; text-transform: uppercase; }
.agenda-month-large-day {
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 9px;
  min-height: 132px;
  padding: 10px;
  transition: background .18s ease, transform .18s ease;
}
.agenda-month-large-day:nth-child(7n) { border-right: 0; }
.agenda-month-large-day:hover { background: #f1fbf7; box-shadow: inset 0 0 0 2px rgba(53,208,161,.35); position: relative; z-index: 1; }
.agenda-month-large-day.weekend { background: #f8faf9; }
.agenda-month-large-day.muted-day { background: #f2f4f3; color: #a5b0ad; }
.agenda-month-large-day.today { background: linear-gradient(145deg, #e4fff5, #f8fffc); box-shadow: inset 0 0 0 2px var(--mint); }
.agenda-month-large-day .day-number { align-items: center; display: inline-flex; font-size: .82rem; font-weight: 900; height: 27px; justify-content: center; width: 27px; }
.agenda-month-large-day.today .day-number { background: var(--dark); border-radius: 50%; color: #fff; }
.agenda-month-large-items { display: grid; gap: 4px; min-width: 0; }
.agenda-month-large-items .agenda-chip { border-radius: 7px; display: block; font-size: .61rem; font-weight: 800; overflow: hidden; padding: 5px 6px; text-overflow: ellipsis; white-space: nowrap; }
.agenda-current-period svg { height: 17px; width: 17px; }

/* Sacs & Checklists */
.packing-page,
.packing-detail {
  --packing-accent: var(--mint);
  --packing-accent-soft: #dcf9ef;
  display: grid;
  gap: 24px;
}
.packing-page::before,
.packing-detail::before {
  background: radial-gradient(circle at 85% 2%, rgba(53,208,161,.16), transparent 25rem);
  content: "";
  inset: 72px 0 0;
  pointer-events: none;
  position: fixed;
  z-index: -1;
}
.packing-hero,
.packing-detail-hero {
  background:
    radial-gradient(circle at 83% 15%, rgba(255,190,74,.24), transparent 22rem),
    repeating-linear-gradient(125deg, transparent 0 46px, rgba(255,255,255,.025) 47px 48px),
    linear-gradient(135deg, #071c1a, #0b3833 66%, #12241e);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 30px;
  box-shadow: 0 24px 70px rgba(7,28,26,.22);
  color: #fff;
  overflow: hidden;
  padding: clamp(26px, 4vw, 46px);
  position: relative;
}
.packing-hero { align-items: end; display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr) auto; }
.packing-hero h1,
.packing-detail-hero h1 { color: #fff; font-size: clamp(2.6rem, 6vw, 5.4rem); letter-spacing: -.075em; line-height: .9; margin: 8px 0 15px; }
.packing-hero p:not(.eyebrow) { color: #b8cfca; line-height: 1.6; margin: 0; max-width: 760px; }
.packing-hero .eyebrow,
.packing-detail-hero .eyebrow { color: var(--packing-accent); }
.packing-hero-stats { display: grid; gap: 9px; grid-template-columns: 1fr 1fr; }
.packing-hero-stats span { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.12); border-radius: 18px; display: grid; min-width: 160px; padding: 16px; }
.packing-hero-stats b { color: var(--mint); font-size: 1.8rem; }
.packing-create-panel { border-top: 3px solid var(--mint); padding: clamp(18px, 3vw, 30px); }
.packing-model-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.packing-model-actions form { margin: 0; }
.packing-type-selector { display: grid; gap: 9px; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 22px 0; }
.packing-type-card {
  --type-color: #35d0a1;
  align-items: center;
  background: #f7faf9;
  border: 1px solid var(--line);
  border-radius: 16px;
  color: var(--ink);
  display: grid;
  gap: 8px;
  min-height: 96px;
  padding: 12px;
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.packing-type-card:hover { border-color: var(--type-color); transform: translateY(-2px); }
.packing-type-card.active { background: color-mix(in srgb, var(--type-color) 12%, white); border-color: var(--type-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--type-color) 18%, transparent); }
.packing-type-card > span { align-items: center; background: var(--type-color); border-radius: 10px; color: #fff; display: inline-flex; font-size: .64rem; font-weight: 950; height: 31px; justify-content: center; letter-spacing: .06em; width: 39px; }
.packing-type-card strong { font-size: .72rem; line-height: 1.15; }
.packing-type-card.tone-triathlon { --type-color: #ff6242; }
.packing-type-card.tone-running,
.packing-type-card.tone-run { --type-color: var(--run); }
.packing-type-card.tone-trail,
.packing-type-card.tone-hike { --type-color: #3b9d66; }
.packing-type-card.tone-hyrox { --type-color: #8d5bd5; }
.packing-type-card.tone-bike { --type-color: var(--bike); }
.packing-type-card.tone-swim { --type-color: var(--swim); }
.packing-type-card.tone-weekend,
.packing-type-card.tone-trip,
.packing-type-card.tone-travel { --type-color: #d6902f; }
.packing-type-card.tone-custom { --type-color: #667774; }
.packing-hidden-select { height: 0; opacity: 0; overflow: hidden; position: absolute; pointer-events: none; width: 0; }
.packing-create-form { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.packing-create-form label,
.packing-settings-form label,
.packing-feedback-form label { display: grid; gap: 6px; }
.packing-previous-feedback { background: linear-gradient(135deg, rgba(255,246,218,.98), rgba(255,255,255,.98)); border-color: #e8c46d; display: grid; gap: 14px; }
.packing-previous-feedback-heading { align-items: end; display: flex; gap: 16px; justify-content: space-between; }
.packing-previous-feedback-heading .eyebrow { color: #9a6400; margin: 0 0 4px; }
.packing-previous-feedback-heading h2 { margin: 0; }
.packing-previous-feedback-heading > span { color: #725a28; font-size: .72rem; font-weight: 800; }
.packing-previous-feedback-grid { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.packing-previous-feedback-grid article { background: rgba(255,255,255,.8); border: 1px solid rgba(166,119,19,.2); border-radius: 14px; padding: 13px; }
.packing-previous-feedback-grid small { color: #9a6400; font-size: .62rem; font-weight: 950; letter-spacing: .05em; text-transform: uppercase; }
.packing-previous-feedback-grid p { color: #483a1f; margin: 6px 0 0; white-space: pre-line; }
.packing-create-form label > span,
.packing-settings-form label > span,
.packing-feedback-form label > span { color: #3a5550; font-size: .67rem; font-weight: 900; text-transform: uppercase; }
.packing-create-form input,
.packing-create-form select,
.packing-create-form textarea { width: 100%; }
.packing-wide { grid-column: 1 / -1; }
.packing-create-submit { align-items: center; background: #eef8f4; border-radius: 16px; display: flex; gap: 16px; justify-content: space-between; padding: 14px 16px; }
.packing-create-submit p { color: var(--muted); font-size: .75rem; margin: 0; }
.packing-source-strip { display: grid; gap: 15px; grid-template-columns: 260px 1fr; }
.packing-source-heading h2,
.packing-section-title h2 { font-size: clamp(1.55rem, 3vw, 2.4rem); margin: 3px 0 0; }
.packing-source-cards { display: flex; gap: 10px; overflow-x: auto; padding: 3px 3px 10px; }
.packing-source-cards a { background: rgba(255,255,255,.94); border: 1px solid var(--line); border-radius: 17px; box-shadow: var(--shadow); display: grid; flex: 0 0 245px; gap: 5px; padding: 15px; }
.packing-source-cards a span { color: #1d8b69; font-size: .6rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.packing-source-cards a small { color: var(--muted); }
.packing-list-section { display: grid; gap: 14px; }
.packing-checklist-grid { display: grid; gap: 15px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.packing-checklist-grid.compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.packing-checklist-card {
  --card-accent: #35d0a1;
  background: linear-gradient(160deg, #fff, #f7faf9);
  border: 1px solid var(--line);
  border-top: 4px solid var(--card-accent);
  border-radius: 22px;
  box-shadow: var(--shadow);
  display: grid;
  gap: 12px;
  min-height: 250px;
  padding: 20px;
  transition: transform .18s ease, box-shadow .18s ease;
}
.packing-checklist-card:hover { box-shadow: 0 18px 42px rgba(7,28,26,.14); transform: translateY(-3px); }
.packing-checklist-card.tone-triathlon { --card-accent: #ff6242; }
.packing-checklist-card.tone-running,
.packing-checklist-card.tone-run { --card-accent: var(--run); }
.packing-checklist-card.tone-hyrox { --card-accent: #8d5bd5; }
.packing-checklist-card.tone-bike { --card-accent: var(--bike); }
.packing-checklist-card.tone-swim { --card-accent: var(--swim); }
.packing-checklist-card.tone-hike,
.packing-checklist-card.tone-trail { --card-accent: #3b9d66; }
.packing-checklist-card.tone-weekend,
.packing-checklist-card.tone-trip,
.packing-checklist-card.tone-travel { --card-accent: #d6902f; }
.packing-card-top,
.packing-checklist-card footer { align-items: center; display: flex; justify-content: space-between; }
.packing-event-code { align-items: center; background: var(--card-accent); border-radius: 10px; color: #fff; display: inline-flex; font-size: .62rem; font-weight: 950; height: 33px; justify-content: center; letter-spacing: .06em; padding: 0 10px; width: fit-content; }
.packing-favorite { color: #c78620; font-size: .65rem; font-weight: 900; }
.packing-checklist-card h3 { font-size: 1.35rem; letter-spacing: -.04em; margin: 0; }
.packing-checklist-card > p { color: var(--muted); font-size: .75rem; margin: 0; }
.packing-card-progress-row { align-items: center; display: flex; gap: 12px; margin-top: auto; }
.packing-card-progress-row > div:last-child { display: grid; }
.packing-card-progress-row small { color: var(--muted); font-size: .64rem; }
.packing-checklist-card footer { border-top: 1px solid var(--line); color: var(--muted); font-size: .65rem; padding-top: 12px; }
.packing-critical-badge,
.packing-ready-badge { border-radius: 999px; font-weight: 900; padding: 5px 8px; }
.packing-critical-badge { background: #ffe6e2; color: #b52f22; }
.packing-ready-badge { background: #def7ec; color: #147657; }
.packing-checklist-card.template-card { min-height: 170px; }
.packing-empty { grid-column: 1 / -1; }
.packing-archive-panel summary { cursor: pointer; font-weight: 900; }

.packing-detail { --packing-accent: #35d0a1; --packing-accent-soft: #dcf9ef; }
.packing-detail.tone-triathlon { --packing-accent: #ff6242; --packing-accent-soft: #ffe7e1; }
.packing-detail.tone-running,
.packing-detail.tone-run { --packing-accent: var(--run); --packing-accent-soft: #ffe9e6; }
.packing-detail.tone-hyrox { --packing-accent: #9a65e4; --packing-accent-soft: #f0e7ff; }
.packing-detail.tone-bike { --packing-accent: var(--bike); --packing-accent-soft: #e6f0ff; }
.packing-detail.tone-swim { --packing-accent: var(--swim); --packing-accent-soft: #e0f8fb; }
.packing-detail.tone-hike,
.packing-detail.tone-trail { --packing-accent: #3b9d66; --packing-accent-soft: #e2f5e9; }
.packing-detail.tone-weekend,
.packing-detail.tone-trip,
.packing-detail.tone-travel { --packing-accent: #d6902f; --packing-accent-soft: #fff1d9; }
.packing-detail-hero { align-items: center; display: grid; gap: 26px; grid-template-columns: 1fr auto; }
.packing-detail-hero::after { background: var(--packing-accent); border-radius: 50%; content: ""; filter: blur(70px); height: 210px; opacity: .24; position: absolute; right: 4%; top: -90px; width: 210px; }
.packing-detail-copy,
.packing-hero-progress { position: relative; z-index: 1; }
.packing-back-link { color: #b7ccc7; font-size: .72rem; font-weight: 850; }
.packing-event-meta { display: flex; flex-wrap: wrap; gap: 7px; }
.packing-event-meta span { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.12); border-radius: 999px; color: #d7e8e4; font-size: .68rem; font-weight: 800; padding: 7px 10px; }
.packing-hero-progress,
.packing-summary-progress { align-items: center; display: flex; gap: 15px; }
.packing-hero-progress > div:last-child,
.packing-summary-progress > div:last-child { display: grid; }
.packing-hero-progress b { font-size: 1.35rem; }
.packing-hero-progress span { color: #adc4bf; font-size: .68rem; }
.packing-progress-ring {
  align-items: center;
  background: radial-gradient(circle, #102b27 55%, transparent 57%), conic-gradient(var(--packing-accent) calc(var(--progress) * 1%), rgba(255,255,255,.14) 0);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  height: 112px;
  justify-content: center;
  min-width: 112px;
  width: 112px;
}
.packing-progress-ring strong { color: #fff; font-size: 1.45rem; }
.packing-progress-ring small { color: #a9bfba; font-size: .57rem; font-weight: 900; text-transform: uppercase; }
.packing-progress-ring.small { background: radial-gradient(circle, #fff 57%, transparent 59%), conic-gradient(var(--card-accent) calc(var(--progress) * 1%), #e5ece9 0); height: 66px; min-width: 66px; width: 66px; }
.packing-progress-ring.small strong { color: var(--ink); font-size: .85rem; }
.packing-sticky-toolbar {
  align-items: center;
  backdrop-filter: blur(16px);
  background: rgba(244,247,245,.9);
  border: 1px solid rgba(202,218,212,.9);
  border-radius: 18px;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 8px;
  position: sticky;
  top: 82px;
  z-index: 17;
}
.packing-view-switch { background: #e7efec; border-radius: 12px; display: flex; padding: 4px; }
.packing-view-switch a { border-radius: 9px; font-size: .7rem; font-weight: 900; padding: 9px 13px; }
.packing-view-switch a.active { background: var(--dark); box-shadow: 0 5px 12px rgba(7,28,26,.17); color: #fff; }
.packing-toolbar-actions { align-items: center; display: flex; gap: 7px; }
.departure-button { background: var(--packing-accent); border-color: var(--packing-accent); color: #071c1a; font-weight: 950; }
.packing-tools-panel { max-height: min(70vh, 680px); overflow-y: auto; width: min(420px, calc(100vw - 36px)); z-index: 60; }
.packing-settings-details summary { cursor: pointer; }
.packing-settings-form { display: grid; gap: 9px; padding: 12px 4px 4px; }
.packing-detail-layout { align-items: start; display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr) 330px; }
.packing-groups { display: grid; gap: 17px; }
.packing-group {
  --group-accent: #35d0a1;
  background: rgba(255,255,255,.96);
  border: 1px solid var(--line);
  border-top: 3px solid var(--group-accent);
  border-radius: 24px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.packing-group.tone-swim { --group-accent: var(--swim); }
.packing-group.tone-bike { --group-accent: var(--bike); }
.packing-group.tone-run { --group-accent: var(--run); }
.packing-group.tone-hyrox,
.packing-group.tone-strength { --group-accent: #9960df; }
.packing-group.tone-hike,
.packing-group.tone-trail { --group-accent: #3b9d66; }
.packing-group.tone-nutrition { --group-accent: #d6a019; }
.packing-group.tone-admin,
.packing-group.tone-custom { --group-accent: #697b78; }
.packing-group.tone-transition { --group-accent: #8b68e8; }
.packing-group-header { align-items: stretch; background: linear-gradient(135deg, color-mix(in srgb, var(--group-accent) 8%, white), #fff); display: grid; grid-template-columns: 150px 1fr auto; min-height: 116px; }
.packing-section-photo,
.packing-section-placeholder { height: 116px; overflow: hidden; }
.packing-section-photo img { height: 100%; object-fit: cover; width: 100%; }
.packing-section-photo.position-top img { object-position: center top; }
.packing-section-photo.position-bottom img { object-position: center bottom; }
.packing-section-photo.position-left img { object-position: left center; }
.packing-section-photo.position-right img { object-position: right center; }
.packing-section-placeholder { align-items: center; background: linear-gradient(135deg, var(--group-accent), color-mix(in srgb, var(--group-accent) 58%, #071c1a)); color: #fff; display: flex; flex-direction: column; justify-content: center; text-align: center; }
.packing-section-placeholder span { font-size: 2rem; font-weight: 950; letter-spacing: -.08em; }
.packing-section-placeholder small { color: rgba(255,255,255,.75); font-size: .54rem; padding: 3px 8px; }
.packing-group-heading-copy { align-self: center; padding: 18px; }
.packing-group-heading-copy .eyebrow { color: var(--group-accent); margin: 0 0 3px; }
.packing-group-heading-copy h2 { font-size: 1.55rem; letter-spacing: -.045em; margin: 0 0 10px; }
.packing-group-actions { align-items: center; display: flex; gap: 5px; padding: 14px; }
.packing-inline-progress { align-items: center; display: flex; gap: 9px; }
.packing-inline-progress > span { background: #dce6e2; border-radius: 999px; height: 6px; overflow: hidden; position: relative; width: min(210px, 28vw); }
.packing-inline-progress > span::after { background: var(--group-accent); border-radius: inherit; content: ""; inset: 0; position: absolute; transform: scaleX(calc(var(--group-progress) / 100)); transform-origin: left; }
.packing-inline-progress b { color: var(--muted); font-size: .65rem; }
.packing-items { display: grid; padding: 0 14px 14px; }
.packing-item {
  align-items: center;
  border-bottom: 1px solid #e5ece9;
  display: grid;
  gap: 11px;
  grid-template-columns: 38px auto minmax(180px, 1fr) 142px auto;
  min-height: 66px;
  padding: 9px 4px;
  position: relative;
}
.packing-item:last-child { border-bottom: 0; }
.packing-item::before { background: #7c8d89; border-radius: 3px; content: ""; height: 34px; left: -7px; position: absolute; width: 3px; }
.packing-item.importance-critical::before { background: #ef4035; }
.packing-item.importance-important::before { background: #f59e28; }
.packing-item.importance-recommended::before { background: #2aa77b; }
.packing-item.status-packed { opacity: .56; }
.packing-item.status-packed .packing-item-copy strong { text-decoration: line-through; }
.packing-item.status-to_buy { background: #fff8e8; }
.packing-item.status-to_check { background: #eef7ff; }
.packing-check-form,
.packing-status-form,
.packing-item-actions form { margin: 0; }
.packing-check-button { align-items: center; background: #fff; border: 2px solid #b8c7c3; border-radius: 10px; display: flex; height: 32px; justify-content: center; padding: 0; width: 32px; }
.packing-check-button span { border-bottom: 3px solid transparent; border-right: 3px solid transparent; height: 9px; transform: rotate(45deg) translate(-1px,-1px); width: 5px; }
.packing-check-button[aria-pressed="true"] { background: var(--packing-accent); border-color: var(--packing-accent); }
.packing-check-button[aria-pressed="true"] span { border-color: #fff; }
.packing-item-photo { border-radius: 10px; height: 43px; object-fit: cover; width: 43px; }
.packing-item-copy { min-width: 0; }
.packing-item-title { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.packing-item-title strong { font-size: .8rem; }
.packing-item-copy p { color: var(--muted); font-size: .64rem; margin: 3px 0 0; }
.packing-item-copy small { color: #58716c; display: block; font-size: .61rem; margin-top: 3px; }
.packing-importance-badge { background: #edf2f0; border-radius: 999px; color: #63736f; font-size: .52rem; font-weight: 900; padding: 3px 6px; text-transform: uppercase; }
.importance-critical .packing-importance-badge { background: #ffe5e2; color: #b43327; }
.importance-important .packing-importance-badge { background: #fff0d6; color: #9a6410; }
.packing-status-form select { font-size: .66rem; min-width: 130px; padding: 8px 25px 8px 8px; }
.packing-item-actions { align-items: center; display: flex; gap: 5px; }
.packing-item-actions a,
.packing-item-actions button { background: transparent; border: 0; color: #237c63; font-size: .61rem; font-weight: 900; padding: 5px; }
.packing-item-actions button { color: #ad3b32; font-size: 1rem; }
.packing-group-empty { color: var(--muted); padding: 22px; text-align: center; }
.packing-feedback-panel { padding: 0; }
.packing-feedback-panel summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; list-style: none; padding: 20px; }
.packing-feedback-panel summary span:first-child { display: grid; }
.packing-feedback-panel summary small { color: #238163; font-size: .58rem; font-weight: 950; text-transform: uppercase; }
.packing-feedback-panel summary > span:last-child { color: var(--muted); font-size: .68rem; }
.packing-feedback-form { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); padding: 0 20px 20px; }
.packing-feedback-form button { grid-column: 1 / -1; justify-self: end; }
.packing-summary { display: grid; gap: 12px; position: sticky; top: 150px; }
.packing-summary-card { background: rgba(255,255,255,.96); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); padding: 17px; }
.packing-summary-card .eyebrow { color: #24785f; margin: 0 0 12px; }
.packing-summary-progress .packing-progress-ring { background: radial-gradient(circle, #fff 56%, transparent 58%), conic-gradient(var(--packing-accent) calc(var(--progress) * 1%), #e3eae7 0); height: 82px; min-width: 82px; width: 82px; }
.packing-summary-progress .packing-progress-ring strong { color: var(--ink); font-size: 1rem; }
.packing-summary-progress b { font-size: 1.05rem; }
.packing-summary-progress span { color: var(--muted); font-size: .62rem; }
.packing-progress-bar { background: #e4ebe8; border-radius: 999px; height: 8px; margin: 15px 0 10px; overflow: hidden; }
.packing-progress-bar span { background: var(--packing-accent); border-radius: inherit; display: block; height: 100%; transition: width .25s ease; }
.packing-critical-line { background: #ffe5e2; border-radius: 10px; color: #a32d24; font-size: .68rem; font-weight: 900; margin: 0; padding: 9px; text-align: center; }
.packing-critical-line.ok { background: #dcf7eb; color: #126e51; }
.packing-alert-list { display: grid; gap: 7px; }
.packing-alert { border-left: 3px solid #f59e28; border-radius: 8px; font-size: .65rem; margin: 0; padding: 9px 10px; }
.packing-alert.tone-danger { background: #fff0ed; border-color: #ee4f42; color: #953228; }
.packing-alert.tone-warning { background: #fff7e7; }
.packing-alert.tone-critical { background: #fff0ed; border-color: #ee4f42; color: #953228; }
.packing-alert.tone-buy { background: #fff7e7; border-color: #e9a11d; }
.packing-alert.tone-check { background: #edf7ff; border-color: #3c88e8; }
.packing-alert.tone-reminder { background: #edf9f4; border-color: #35a77f; }
.packing-summary-heading { align-items: center; display: flex; justify-content: space-between; }
.packing-summary-heading a { color: #208065; font-size: .65rem; font-weight: 900; }
.packing-bag-summary { display: grid; gap: 4px; }
.packing-bag-summary a { align-items: center; border-radius: 10px; display: grid; gap: 8px; grid-template-columns: 10px 1fr auto; padding: 8px; }
.packing-bag-summary a:hover { background: #f0f7f4; }
.packing-bag-summary span:nth-child(2) { display: grid; }
.packing-bag-summary strong { font-size: .7rem; }
.packing-bag-summary small { color: var(--muted); font-size: .56rem; }
.packing-bag-summary b { font-size: .66rem; }
.packing-bag-dot { background: #9ba8a5; border-radius: 50%; height: 9px; width: 9px; }
.packing-bag-dot.color-blue { background: #3c88e8; }
.packing-bag-dot.color-cyan { background: #20b7c9; }
.packing-bag-dot.color-red { background: #ef675f; }
.packing-bag-dot.color-orange { background: #e89d38; }
.packing-bag-dot.color-green { background: #36a56d; }
.packing-bag-dot.color-purple { background: #9a65e4; }
.packing-bag-dot.color-violet { background: #9a65e4; }
.packing-bag-dot.color-yellow { background: #d4ad21; }
.packing-bag-dot.color-dark { background: #071c1a; }
.packing-bag-dot.color-gray { background: #9ba8a5; }
.packing-buy-card { display: grid; gap: 3px; }
.packing-buy-card a { border-bottom: 1px solid var(--line); display: flex; font-size: .7rem; justify-content: space-between; padding: 8px 0; }
.packing-buy-card a:last-child { border: 0; }
.packing-buy-card small { color: var(--muted); }
.packing-final-actions { display: grid; gap: 8px; }
.packing-final-actions form { margin: 0; }
.packing-final-actions .quiet-button { color: var(--muted); width: 100%; }
.packing-ready-celebration { background: var(--packing-accent-soft); border-radius: 14px; display: grid; padding: 16px; text-align: center; }
.packing-ready-celebration strong { color: #176f54; font-size: 1.1rem; }
.packing-ready-celebration span { color: var(--muted); font-size: .64rem; }
.packing-mobile-departure-bar { display: none; }
.departure-mode .packing-detail-hero { padding-bottom: 24px; padding-top: 24px; }
.departure-mode .packing-item { grid-template-columns: 52px minmax(0, 1fr); min-height: 78px; }
.departure-mode .packing-check-button { height: 46px; width: 46px; }
.departure-mode .packing-item-photo,
.departure-mode .packing-status-form,
.departure-mode .packing-item-actions { display: none; }

@media (max-width: 1120px) {
  .packing-type-selector { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .packing-checklist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .packing-checklist-grid.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .packing-detail-layout { grid-template-columns: 1fr; }
  .packing-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); position: static; }
  .packing-final-actions { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .agenda-header-actions { align-items: stretch; }
  .agenda-view-tabs { overflow-x: auto; }
  .agenda-current-period span { display: none; }
  .agenda-month-workspace { margin-left: -14px; margin-right: -14px; border-radius: 0; overflow-x: auto; }
  .agenda-month-workspace-header,
  .agenda-month-large-weekdays,
  .agenda-month-large-grid { min-width: 760px; }
  .agenda-month-large-day { min-height: 105px; }
  .packing-page,
  .packing-detail { gap: 14px; }
  .packing-hero,
  .packing-detail-hero { border-radius: 22px; grid-template-columns: 1fr; padding: 22px 19px; }
  .packing-hero h1,
  .packing-detail-hero h1 { font-size: 2.65rem; }
  .packing-hero-stats { width: 100%; }
  .packing-hero-stats span { min-width: 0; }
  .packing-type-selector { display: flex; margin: 17px -2px; overflow-x: auto; padding: 2px 2px 10px; }
  .packing-type-card { flex: 0 0 125px; min-height: 88px; }
  .packing-create-form { grid-template-columns: 1fr; }
  .packing-create-panel .panel-heading { align-items: stretch; flex-direction: column; }
  .packing-model-actions { display: grid; grid-template-columns: 1fr 1fr; justify-content: stretch; width: 100%; }
  .packing-model-actions > form { grid-column: 1 / -1; width: 100%; }
  .packing-model-actions > form .button { white-space: normal; width: 100%; }
  .packing-model-actions > .button,
  .packing-model-actions > .action-menu { min-width: 0; width: 100%; }
  .packing-wide { grid-column: auto; }
  .packing-create-submit { align-items: stretch; flex-direction: column; }
  .packing-source-strip { grid-template-columns: 1fr; }
  .packing-checklist-grid,
  .packing-checklist-grid.compact { display: flex; overflow-x: auto; padding: 2px 2px 10px; }
  .packing-checklist-card { flex: 0 0 84vw; min-height: 230px; }
  .packing-sticky-toolbar { top: 8px; }
  .packing-toolbar-actions .action-menu summary span { display: none; }
  .packing-view-switch a { padding: 9px 10px; }
  .packing-detail-hero { grid-template-columns: minmax(0, 1fr) auto; }
  .packing-hero-progress > div:last-child { display: none; }
  .packing-progress-ring { height: 78px; min-width: 78px; width: 78px; }
  .packing-progress-ring strong { font-size: 1rem; }
  .packing-group { border-radius: 19px; }
  .packing-group-header { grid-template-columns: 96px 1fr auto; min-height: 100px; }
  .packing-section-photo,
  .packing-section-placeholder { height: 100px; }
  .packing-section-placeholder span { font-size: 1.45rem; }
  .packing-section-placeholder small { display: none; }
  .packing-group-heading-copy { padding: 12px; }
  .packing-group-heading-copy h2 { font-size: 1.15rem; }
  .packing-group-actions { flex-direction: column; padding: 8px; }
  .packing-inline-progress > span { width: 90px; }
  .packing-items { padding: 0 9px 9px; }
  .packing-item { gap: 8px; grid-template-columns: 38px minmax(0, 1fr) auto; padding: 10px 3px; }
  .packing-item-photo { display: none; }
  .packing-status-form { grid-column: 2; }
  .packing-status-form select { max-width: 150px; width: 100%; }
  .packing-item-actions { grid-column: 3; grid-row: 1 / span 2; }
  .packing-item-actions a { font-size: 0; }
  .packing-item-actions a::after { content: "..."; font-size: .9rem; }
  .packing-feedback-form { grid-template-columns: 1fr; }
  .packing-previous-feedback-heading { align-items: start; flex-direction: column; }
  .packing-previous-feedback-grid { grid-template-columns: 1fr; }
  .packing-feedback-form button { grid-column: auto; justify-self: stretch; }
  .packing-summary { display: grid; grid-template-columns: 1fr; }
  .packing-final-actions { grid-column: auto; }
  .departure-mode { padding-bottom: 74px; }
  .departure-mode .packing-detail-hero { grid-template-columns: 1fr; }
  .departure-mode .packing-summary { display: none; }
  .packing-mobile-departure-bar { align-items: center; background: rgba(7,28,26,.96); bottom: 72px; color: #fff; display: flex; gap: 10px; justify-content: space-between; left: 10px; padding: 13px 15px; position: fixed; right: 10px; z-index: 35; border-radius: 16px; box-shadow: 0 10px 35px rgba(0,0,0,.28); }
  .packing-mobile-departure-bar span,
  .packing-mobile-departure-bar a { font-size: .64rem; }
  .packing-mobile-departure-bar a { background: var(--packing-accent); border-radius: 8px; color: #071c1a; font-weight: 950; padding: 8px; }
}

/* Keep status colors above the later calendar workspace theme. */
.agenda-day-cell.agenda-has-day-status,
.agenda-month-large-day.agenda-has-day-status,
.agenda-timeline-day-title.agenda-has-day-status,
.agenda-all-day-column.agenda-has-day-status {
  background: linear-gradient(to bottom, var(--agenda-am) 0 50%, var(--agenda-pm) 50% 100%) !important;
}
.agenda-timeline-day.agenda-has-day-status {
  background:
    repeating-linear-gradient(to bottom, transparent 0 29px, rgba(14,71,60,.055) 29px 30px, transparent 30px 59px, rgba(14,71,60,.13) 59px 60px),
    linear-gradient(to bottom, var(--agenda-am) 0 50%, var(--agenda-pm) 50% 100%) !important;
}
.review-week-picker {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 1rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 1.15rem;
  background: rgba(4, 42, 37, 0.78);
  color: #fff;
}

.review-week-picker > div,
.review-week-picker form {
  display: grid;
  gap: 0.35rem;
}

.review-week-picker small,
.review-week-picker label {
  color: rgba(255, 255, 255, 0.72);
}

.review-week-picker form {
  grid-template-columns: minmax(12rem, 1fr) auto;
  align-items: end;
}

.review-week-picker label {
  grid-column: 1 / -1;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.review-week-picker input {
  min-height: 2.75rem;
}

@media (max-width: 760px) {
  .review-week-picker {
    align-items: stretch;
    flex-direction: column;
  }

  .review-week-picker form {
    grid-template-columns: 1fr;
  }
}

/* Bike workshop ---------------------------------------------------------- */
.workshop-hero,
.route-planner-hero {
  align-items: center;
  background: linear-gradient(135deg, rgba(2,21,27,.98), rgba(8,48,47,.94));
  border: 1px solid rgba(103,230,195,.2);
  border-radius: 26px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  margin-bottom: 18px;
  overflow: hidden;
  padding: clamp(24px,4vw,50px);
}
.workshop-hero h1,
.route-planner-hero h1 { color: #fff; margin: 0; }
.workshop-hero p:last-child,
.route-planner-hero p:last-child { color: rgba(255,255,255,.72); }
.bike-loadout {
  background: linear-gradient(145deg,#071b20,#0e2c31);
  border: 1px solid rgba(100,229,198,.26);
  color: #eafaf7;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(210px,.72fr) minmax(420px,1.65fr) minmax(240px,.8fr);
  min-height: 620px;
  padding: 18px;
}
.loadout-slots,
.selected-component { background: rgba(0,10,15,.48); border: 1px solid rgba(255,255,255,.1); border-radius: 18px; padding: 16px; }
.slot-list { display: grid; gap: 8px; margin-top: 14px; }
.loadout-slot {
  align-items: center;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  color: rgba(255,255,255,.74);
  display: grid;
  gap: 10px;
  grid-template-columns: 34px minmax(0,1fr);
  padding: 10px;
  transition: .18s ease;
}
.loadout-slot:hover,
.loadout-slot.active { background: linear-gradient(90deg,rgba(22,202,153,.22),rgba(45,138,219,.12)); border-color: #45ddb4; color: #fff; transform: translateX(4px); }
.slot-index { align-items: center; background: #143d44; border-radius: 9px; color: #62ecc5; display: flex; font-size: .72rem; font-weight: 950; height: 30px; justify-content: center; }
.bike-stage {
  align-items: center;
  background: radial-gradient(circle at 50% 48%,rgba(63,202,178,.17),transparent 34%), linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size: auto,34px 34px,34px 34px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 580px;
  overflow: hidden;
  padding: 20px;
  position: relative;
}
.bike-stage::after { background: linear-gradient(90deg,transparent,rgba(68,228,190,.65),transparent); bottom: 70px; content: ""; height: 2px; left: 8%; position: absolute; right: 8%; }
.bike-stage-title { align-self: stretch; display: flex; justify-content: space-between; z-index: 1; }
.bike-stage img { filter: drop-shadow(0 24px 32px rgba(0,0,0,.55)); margin: auto; max-height: 390px; max-width: 94%; object-fit: contain; }
.bike-silhouette { height: 310px; margin: auto; position: relative; width: min(600px,94%); }
.bike-wheel { border: 11px solid #d9f4ee; border-radius: 50%; bottom: 18px; height: 180px; position: absolute; width: 180px; }
.bike-wheel.front { right: 2%; }
.bike-wheel.rear { left: 2%; }
.bike-frame-main { border: 14px solid #42dcb4; border-radius: 10px; bottom: 66px; height: 118px; left: 31%; position: absolute; transform: skew(-12deg) rotate(-3deg); width: 34%; }
.bike-frame-top { background: #42dcb4; border-radius: 999px; height: 14px; left: 37%; position: absolute; top: 103px; transform: rotate(-7deg); width: 31%; }
.bike-fork { background: #42dcb4; height: 160px; position: absolute; right: 25%; top: 70px; transform: rotate(-16deg); width: 12px; }
.bike-cockpit { background: #d9f4ee; border-radius: 999px; height: 10px; position: absolute; right: 19%; top: 62px; width: 88px; }
.bike-stage-stats { display: grid; gap: 8px; grid-template-columns: repeat(3,1fr); width: 100%; z-index: 1; }
.bike-stage-stats span,
.workshop-score { background: rgba(2,13,18,.72); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: 10px; }
.bike-stage-stats small { color: rgba(255,255,255,.55); display: block; font-size: .62rem; }
.selected-component h2 { color: #fff; }
.selected-component .component-rank.current { background: rgba(83,226,185,.14); border: 1px solid rgba(83,226,185,.35); border-radius: 999px; color: #70f0cc; display: inline-flex; font-size: .68rem; font-weight: 950; margin-bottom: 12px; padding: 6px 10px; }
.component-armory { background: rgba(244,251,249,.97); margin-top: 18px; }
.component-catalog-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); }
.component-card { background: linear-gradient(145deg,#fff,#eef5f3); border: 1px solid #cadbd7; border-left: 5px solid #91a49f; border-radius: 16px; display: flex; flex-direction: column; min-height: 250px; padding: 16px; }
.component-card.tier-s { border-left-color: #f7a820; box-shadow: 0 12px 30px rgba(247,168,32,.14); }
.component-card.tier-a { border-left-color: #4e74e8; }
.component-card.tier-b { border-left-color: #28a378; }
.component-card-head { align-items: center; display: flex; justify-content: space-between; }
.component-rank { color: #56736c; font-size: .68rem; font-weight: 950; letter-spacing: .05em; }
.tier-badge { background: #092621; border-radius: 999px; color: #fff; font-size: .68rem; font-weight: 950; padding: 5px 9px; }
.component-brand { color: #08745a; font-size: .7rem; font-weight: 950; margin: 15px 0 2px; text-transform: uppercase; }
.component-score { align-items: center; display: grid; gap: 8px; grid-template-columns: 1fr auto; margin: 14px 0; }
.component-score > span { background: linear-gradient(90deg,#36dcb0 var(--score),#d7e5e1 var(--score)); border-radius: 999px; height: 7px; }
.component-score strong { color: #08745a; font-size: .9rem; }
.component-card-foot { align-items: flex-end; display: flex; gap: 10px; justify-content: space-between; margin-top: auto; }
.component-card-foot small { color: #5f7771; max-width: 65%; }
.component-card form { margin: 0; }

/* Route planner ---------------------------------------------------------- */
.route-builder { display: grid; gap: 18px; grid-template-columns: minmax(0,1.75fr) minmax(300px,.75fr); }
.route-builder-map { border: 1px solid #9dbdb4; border-radius: 18px; height: 600px; overflow: hidden; }
.map-action-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.route-control-panel { display: flex; flex-direction: column; gap: 8px; }
.route-control-panel > label,
.gpx-import-drawer label { font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.route-metrics { display: grid; gap: 8px; grid-template-columns: 1fr 1fr; }
.route-metrics span { background: #eaf5f2; border-radius: 12px; padding: 12px; }
.route-metrics small { color: #56736c; display: block; font-size: .62rem; }
.road-preferences { border: 1px solid #c8dbd6; border-radius: 14px; display: grid; gap: 9px; margin: 4px 0; padding: 12px; }
.road-preferences label { align-items: center; display: flex; gap: 8px; }
.roads-used { background: #f2f7f6; border-radius: 14px; min-height: 70px; padding: 12px; }
.road-name-chip { background: #dceee9; border-radius: 999px; display: inline-flex; font-size: .7rem; margin: 4px 3px 0 0; padding: 5px 8px; }
.route-limit-note,
.route-warning { color: #856322; font-size: .72rem; }
.gpx-import-drawer { position: relative; }
.gpx-import-drawer[open] form { background: #fff; border: 1px solid #c9dad6; border-radius: 16px; box-shadow: 0 18px 55px rgba(0,27,23,.18); display: grid; gap: 8px; padding: 16px; position: absolute; right: 0; top: calc(100% + 8px); width: min(420px,86vw); z-index: 80; }
.route-library-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); }
.route-card { background: #f5f9f8; border: 1px solid #d2e1dd; border-radius: 16px; padding: 15px; }
.route-card h3 { margin-bottom: 5px; }
.route-card-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.sport-chip { background: #dff5ef; border-radius: 999px; color: #08745a; display: inline-flex; font-size: .68rem; font-weight: 900; padding: 5px 9px; }

.route-workbench {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0,1.7fr) minmax(340px,.8fr);
  padding: 16px;
}
.route-workbench-main { min-width: 0; }
.route-search-shell { margin-bottom: 12px; position: relative; }
.route-search-shell > label,
.route-control-panel > label { color: #294c44; display: block; font-size: .72rem; font-weight: 950; margin-bottom: 6px; text-transform: uppercase; }
.route-search-row { display: flex; gap: 8px; }
.route-search-row input { flex: 1; min-width: 0; }
.route-search-results {
  background: #fff;
  border: 1px solid #bfd3ce;
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(0,35,29,.2);
  left: 0;
  max-height: 280px;
  overflow-y: auto;
  padding: 6px;
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 1300;
}
.route-search-results[hidden] { display: none; }
.route-search-results button {
  background: transparent;
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  padding: 10px 12px;
  text-align: left;
  width: 100%;
}
.route-search-results button:hover { background: #e8f5f1; }
.route-search-results button small { color: #617c75; margin-top: 3px; }
.route-map-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.route-map-toolbar .button { min-height: 40px; }
.route-control-heading { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.route-control-heading h2 { margin: 0; }
.route-metrics-three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.route-mode-switch {
  background: #e9f3f0;
  border-radius: 12px;
  display: grid;
  gap: 4px;
  grid-template-columns: 1fr 1fr;
  padding: 4px;
}
.route-mode-switch label { cursor: pointer; margin: 0; position: relative; }
.route-mode-switch input { opacity: 0; position: absolute; }
.route-mode-switch span { border-radius: 9px; display: block; font-size: .76rem; font-weight: 900; padding: 9px; text-align: center; }
.route-mode-switch input:checked + span { background: #062a24; color: #fff; }
.route-auto-settings {
  background: #eef6f4;
  border: 1px solid #ccded9;
  border-radius: 14px;
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr 1fr;
  padding: 12px;
}
.route-auto-settings[hidden] { display: none; }
.route-auto-settings label { color: #34574f; font-size: .7rem; font-weight: 900; }
.route-auto-settings select,
.route-auto-settings input { margin-top: 5px; width: 100%; }
.route-road-filters { background: #f0f6f4; border: 1px solid #cfdfdb; border-radius: 16px; padding: 12px; }
.route-road-filter-title { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin-bottom: 7px; }
.route-road-filter-title small { color: #617c75; }
.route-road-group { border-top: 1px solid #d3e1de; padding: 8px 0; }
.route-road-group:first-child { border-top: 0; }
.route-road-group summary { align-items: center; cursor: pointer; display: flex; font-size: .76rem; font-weight: 950; justify-content: space-between; list-style: none; text-transform: uppercase; }
.route-road-group summary::-webkit-details-marker { display: none; }
.route-road-group summary span:last-child { color: #08745a; }
.route-road-choice { align-items: flex-start; display: flex; gap: 8px; margin-top: 9px; }
.route-road-choice input { flex: 0 0 auto; margin-top: 3px; }
.route-road-choice span { display: flex; flex-direction: column; line-height: 1.2; }
.route-road-choice small { color: #607972; font-size: .66rem; margin-top: 2px; }
.route-forbidden { color: #a04435; }
.route-status { background: #e8f5f1; border-radius: 12px; color: #27574c; font-size: .74rem; font-weight: 850; padding: 10px 12px; }
.route-status.error { background: #fff0ec; color: #9b3826; }
.route-card-actions form { margin: 0; }
.route-builder-map .leaflet-tooltip { background: #062a24; border: 0; color: #fff; font-weight: 900; }

@media (max-width: 1080px) {
  .bike-loadout { grid-template-columns: 190px minmax(350px,1fr); }
  .selected-component { grid-column: 1 / -1; }
  .route-builder { grid-template-columns: 1fr; }
  .route-workbench { grid-template-columns: 1fr; }
  .route-builder-map { height: 500px; }
}
@media (max-width: 760px) {
  .workshop-hero,
  .route-planner-hero { align-items: flex-start; flex-direction: column; gap: 15px; }
  .bike-loadout { display: flex; flex-direction: column; min-height: 0; padding: 10px; }
  .slot-list { display: flex; overflow-x: auto; padding-bottom: 6px; }
  .loadout-slot { flex: 0 0 160px; }
  .bike-stage { min-height: 400px; }
  .bike-silhouette { height: 235px; transform: scale(.8); width: 500px; }
  .bike-stage-stats { grid-template-columns: 1fr; }
  .component-catalog-grid { display: flex; overflow-x: auto; }
  .component-card { flex: 0 0 82vw; }
  .route-builder-map { height: 390px; }
  .route-workbench { padding: 10px; }
  .route-search-row { align-items: stretch; flex-direction: column; }
  .route-map-toolbar .button { flex: 1 1 45%; white-space: normal; }
  .route-auto-settings,
  .route-metrics-three { grid-template-columns: 1fr; }
  .map-action-bar .button { flex: 1 1 45%; white-space: normal; }
  .route-library .section-heading.split { align-items: flex-start; flex-direction: column; }
  .gpx-import-drawer[open] form { left: 0; right: auto; }
}
