:root {
  --ch-primary: #170d70;
  --ch-secondary: #4b41e1;
  --ch-teal: #10a99f;
  --ch-coral: #ef4444;
  --ch-ink: #0b1c30;
  --ch-muted: #626577;
  --ch-line: #e6e9f1;
  --ch-canvas: #f8f9ff;
  --ch-sidebar: #eff4ff;
  --ch-panel: #ffffff;
  --ch-tint: #f1f3ff;
  --ch-shadow: 0 4px 14px rgba(23, 13, 112, .045);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ch-ink);
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--ch-canvas);
}

a { color: var(--ch-secondary); }

.site-header {
  position: fixed;
  z-index: 50;
  inset: 0 0 auto;
  height: 64px;
  background: rgba(255, 255, 255, .94);
  border-bottom: 1px solid rgba(230, 233, 241, .72);
  backdrop-filter: blur(18px);
  box-shadow: 0 1px 8px rgba(11, 28, 48, .035);
}

.topbar {
  height: 64px;
  display: flex;
  align-items: center;
  padding: 0 32px;
}

.brand {
  min-width: 230px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ch-primary);
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -.035em;
  text-decoration: none;
}

.brand:hover { color: var(--ch-primary); }

.brand-logo {
  width: 37px;
  height: 37px;
  object-fit: contain;
}

.topbar-collapse {
  flex: 1;
  height: 64px;
  align-items: center;
  justify-content: space-between;
}

.topbar-collapse.show,
.topbar-collapse.collapsing { display: flex; }

@media (min-width: 861px) {
  .topbar-collapse.collapse {
    display: flex !important;
  }
}

.primary-links,
.account-actions {
  display: flex;
  align-items: center;
}

.primary-links {
  align-self: stretch;
  gap: 28px;
}

.primary-links a {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 100%;
  color: #454655;
  font-size: .9rem;
  font-weight: 500;
  text-decoration: none;
  transition: color .16s ease;
}

.primary-links a:hover,
.primary-links a.active { color: var(--ch-primary); }

.primary-links a.active { font-weight: 700; }

.primary-links a.active::after {
  content: "";
  position: absolute;
  inset: auto 0 -1px;
  height: 2px;
  background: var(--ch-primary);
}

.primary-links a.platform-admin-nav-link {
  gap: 6px;
  color: #b4233b;
  font-weight: 700;
}

.primary-links a.platform-admin-nav-link:hover,
.primary-links a.platform-admin-nav-link.active {
  color: #8f1730;
}

.primary-links a.platform-admin-nav-link.active::after {
  background: #c52f49;
}

.account-actions {
  margin-left: auto;
  gap: 8px;
}

.icon-button {
  position: relative;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #4f5060;
  border-radius: 4px;
  text-decoration: none;
}

.icon-button:hover { color: var(--ch-primary); background: var(--ch-tint); }

.live-search { position: relative; }
.global-search-panel {
  position: absolute;
  z-index: 30;
  top: calc(100% + 10px);
  right: 0;
  width: min(420px, calc(100vw - 28px));
  overflow: hidden;
  border: 1px solid #dfe3ea;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(18, 27, 48, .16);
}
.global-search-panel > label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  border-bottom: 1px solid #e9ecf1;
}
.global-search-panel > label i { color: #7b8492; }
.global-search-panel input {
  width: 100%;
  border: 0;
  outline: 0;
  color: var(--ch-ink);
  font-size: .78rem;
}
.live-search-results {
  max-height: 360px;
  overflow-y: auto;
  background: #fff;
}
.live-search-results:empty { display: none; }
.live-search-results.is-loading { min-height: 44px; }
.live-search-result {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  color: var(--ch-ink);
  border-bottom: 1px solid #eef0f4;
  text-decoration: none;
}
.live-search-result:last-child { border-bottom: 0; }
.live-search-result:hover,
.live-search-result.is-active { color: var(--ch-ink); background: #f3f4ff; }
.live-search-result-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  color: #4f4aa8;
  border-radius: 4px;
  background: #edeeff;
}
.live-search-result-icon.is-user { color: #36796e; background: #eaf6f3; }
.live-search-result-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.live-search-result-icon img { width: 100%; height: 100%; display: block; border-radius: inherit; object-fit: cover; }
.live-search-result > span strong,
.live-search-result > span small { display: block; }
.live-search-result > span strong {
  font: 650 .7rem "JetBrains Mono", monospace;
}
.live-search-result > span small {
  overflow: hidden;
  margin-top: 2px;
  color: var(--ch-muted);
  font-size: .7rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.live-search-result > em {
  padding: 3px 5px;
  color: #747b88;
  border-radius: 3px;
  background: #f1f3f5;
  font: 600 .75rem "JetBrains Mono", monospace;
  font-style: normal;
  text-transform: uppercase;
}
.live-search-empty {
  padding: 20px;
  color: var(--ch-muted);
  font-size: .7rem;
  text-align: center;
}
.live-search-hint {
  display: block;
  padding: 8px 12px;
  color: #858a95;
  border-top: 1px solid #eef0f4;
  background: #fafbfc;
  font-size: .7rem;
}

.notification-button .notification-indicator {
  position: absolute;
  top: -5px;
  right: -7px;
  min-width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  padding: 0 4px;
  color: #fff;
  border: 2px solid #fff;
  border-radius: 9px;
  background: #c43d50;
  font: 700 .7rem "JetBrains Mono", monospace;
}

.notification-button.is-active {
  color: #b4233d;
  background: #fff1f3;
  box-shadow: inset 0 0 0 1px #ffd1d9;
}
.notification-dropdown .notification-center {
  width: min(380px, calc(100vw - 24px));
  overflow: hidden;
  padding: 0;
  border: 1px solid #dfe3e9;
  border-radius: 7px;
  box-shadow: 0 18px 48px rgba(18, 27, 43, .18);
}
.notification-center > header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 15px 16px 13px;
  border-bottom: 1px solid #e8ebef;
  background: #fff;
}
.notification-center > header h2 {
  margin: 2px 0 0;
  color: var(--ch-ink);
  font: 680 .92rem "Hanken Grotesk", sans-serif;
}
.notification-center > header > strong {
  min-width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  padding: 0 6px;
  color: #3b4770;
  border-radius: 4px;
  background: #eef0f7;
  font: 700 .7rem "JetBrains Mono", monospace;
}
.notification-center-list {
  max-height: min(480px, 65vh);
  overflow-y: auto;
  background: #fff;
}
.notification-center-item {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 12px;
  gap: 10px;
  align-items: center;
  padding: 11px 14px;
  color: var(--ch-ink);
  border-bottom: 1px solid #edf0f3;
  text-decoration: none;
}
.notification-center-item:hover { color: var(--ch-ink); background: #f8f9fb; }
.notification-center-item.is-unread { background: #fbfbff; }
.notification-center-item > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #4f5984;
  border-radius: 4px;
  background: #eef0f8;
}
.notification-center-item.is-signoff_request > span { color: #38756d; background: #eaf5f2; }
.notification-center-item.is-overdue_feed > span { color: #9c4d56; background: #f9ebed; }
.notification-center-item > div { min-width: 0; }
.notification-center-item > div strong,
.notification-center-item > div p,
.notification-center-item > div small { display: block; }
.notification-center-item > div strong { font-size: .7rem; }
.notification-center-item > div p {
  display: -webkit-box;
  overflow: hidden;
  margin: 2px 0 0;
  color: #5e697b;
  font-size: .7rem;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.notification-center-item > div small {
  margin-top: 4px;
  color: #89909b;
  font: 550 .7rem "JetBrains Mono", monospace;
}
.notification-center-item > i { color: #a2a8b1; font-size: .7rem; }
.notification-center-empty { display: grid; justify-items: center; padding: 30px 20px; color: var(--ch-muted); text-align: center; }
.notification-center-empty > i { margin-bottom: 7px; font-size: 1rem; }
.notification-center-empty strong { color: #4f5968; font-size: .7rem; }
.notification-center-empty span { max-width: 250px; margin-top: 3px; font-size: .7rem; }
.notification-center-more { margin: 0; padding: 9px 14px; color: #7b8290; background: #fafbfc; font-size: .7rem; text-align: center; }
.notification-center > footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 42px;
  padding: 8px 14px;
  border-top: 1px solid #e6e9ee;
  background: #fafbfc;
}
.notification-center > footer button,
.notification-center > footer a {
  color: #5f6879;
  border: 0;
  background: transparent;
  font-size: .7rem;
  font-weight: 700;
  text-decoration: none;
}
.notification-center > footer button { display: inline-flex; align-items: center; gap: 4px; padding: 0; }
.notification-center > footer button:disabled { opacity: .45; }
.notification-center > footer a { color: #34318a; }

.traceability-modal .modal-content {
  border: 1px solid #dfe5ec;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(11, 31, 56, .18);
}

.traceability-modal .modal-header,
.traceability-modal .modal-footer {
  border-color: #e7ebf0;
  padding: 1.25rem 1.5rem;
}

.traceability-modal .modal-body {
  padding: 1.35rem 1.5rem;
}

.traceability-modal .modal-title {
  color: #0b1f38;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  margin-top: .15rem;
}

.modal-eyebrow {
  color: #5f6b7a;
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.trace-context {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  overflow: hidden;
  margin-bottom: 1.25rem;
  border: 1px solid #e2e7ed;
  border-radius: 9px;
  background: #e2e7ed;
}

.trace-context span {
  display: grid;
  gap: .15rem;
  padding: .75rem .9rem;
  background: #f8fafc;
}

.trace-context small,
.trace-medium-summary small {
  color: #718096;
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.trace-field {
  display: grid;
  gap: .45rem;
  margin-bottom: 1rem;
  color: #24344a;
  font-size: .85rem;
  font-weight: 650;
}

.trace-field > span:first-child {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.trace-field em {
  color: #b4233d;
  font-size: .7rem;
  font-style: normal;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.trace-field small {
  color: #7a8493;
  font-size: .7rem;
  font-weight: 500;
}

.trace-scan-input {
  position: relative;
}

.trace-scan-input i {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: .85rem;
  color: #5e6c7d;
  transform: translateY(-50%);
}

.trace-scan-input .form-control {
  min-height: 46px;
  padding-left: 2.65rem;
  border-color: #d8dee7;
  border-radius: 8px;
  background: #fbfcfd;
}

.trace-scan-input .form-control:focus {
  border-color: #749b94;
  box-shadow: 0 0 0 3px rgba(74, 130, 119, .12);
  background: #fff;
}

.trace-medium-summary {
  display: grid;
  gap: .15rem;
  margin: .15rem 0 1rem;
  padding: .75rem .9rem;
  border-left: 3px solid #4a8277;
  background: #f2f7f6;
}

.trace-supplements:empty {
  display: none;
}

.trace-helper {
  display: flex;
  gap: .6rem;
  margin: .35rem 0 0;
  padding: .75rem .9rem;
  border-radius: 8px;
  color: #516171;
  background: #f6f8fa;
  font-size: .76rem;
  line-height: 1.45;
}

.trace-helper i {
  color: #4a8277;
}

.auto-mode-heading {
  align-items: end;
}

.auto-mode-count {
  display: flex;
  align-items: baseline;
  gap: .55rem;
  color: #5e6c7d;
}

.auto-mode-count strong {
  color: #0b1f38;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 2rem;
}

.auto-mode-shell {
  max-width: 820px;
  margin: 0 auto 1.25rem;
}

.auto-step-rail {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto;
  align-items: center;
  gap: .75rem;
  padding: 0 1rem 1rem;
}

.auto-step-rail span {
  display: flex;
  align-items: center;
  gap: .45rem;
  color: #8a94a2;
  font-size: .75rem;
  font-weight: 650;
}

.auto-step-rail span b {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid #d7dde5;
  border-radius: 50%;
  background: #fff;
  font-size: .7rem;
}

.auto-step-rail span.is-active {
  color: #173b36;
}

.auto-step-rail span.is-active b,
.auto-step-rail span.is-complete b {
  color: #fff;
  border-color: #4a8277;
  background: #4a8277;
}

.auto-step-rail i {
  height: 1px;
  background: #dfe4ea;
}

.auto-mode-card {
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid #dfe5eb;
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(20, 40, 65, .08);
  background: #fff;
  text-align: center;
}

.auto-mode-card[hidden] {
  display: none;
}

.auto-card-icon {
  display: grid;
  width: 58px;
  height: 58px;
  margin: 0 auto 1rem;
  place-items: center;
  border-radius: 12px;
  color: #315f58;
  background: #eaf4f2;
  font-size: 1.75rem;
}

.auto-card-icon.is-success {
  color: #fff;
  background: #3d8069;
}

.auto-mode-card h2 {
  margin: .3rem 0 .45rem;
  color: #0b1f38;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: clamp(1.75rem, 3vw, 2rem);
}

.auto-mode-card > p {
  max-width: 580px;
  margin: 0 auto 1.35rem;
  color: #687587;
}

.auto-scan-field {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  overflow: hidden;
  border: 1px solid #b7c4d1;
  border-radius: 10px;
  background: #f9fbfc;
  text-align: left;
}

.auto-scan-field > i {
  margin-left: 1rem;
  color: #45635f;
  font-size: 1.15rem;
}

.auto-scan-field input {
  min-width: 0;
  padding: 1rem;
  border: 0;
  outline: 0;
  background: transparent;
  font-family: "JetBrains Mono", monospace;
}

.auto-scan-field:focus-within {
  border-color: #4a8277;
  box-shadow: 0 0 0 3px rgba(74, 130, 119, .12);
  background: #fff;
}

.auto-scan-field button {
  align-self: stretch;
  padding: 0 1.25rem;
  border: 0;
  color: #fff;
  background: #173b36;
  font-weight: 650;
}

.auto-status {
  display: block;
  min-height: 1.25rem;
  margin-top: .75rem;
  color: #768394;
}

.auto-batch-context {
  display: grid;
  grid-template-columns: .8fr 1.4fr .8fr;
  gap: 1px;
  overflow: hidden;
  margin-bottom: 1rem;
  border: 1px solid #e0e5eb;
  border-radius: 9px;
  background: #e0e5eb;
  text-align: left;
}

.auto-batch-context span {
  display: grid;
  gap: .2rem;
  padding: .8rem;
  background: #f8fafb;
}

.auto-batch-context small {
  color: #778394;
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.auto-secondary-field {
  display: grid;
  gap: .35rem;
  margin-top: .8rem;
  color: #314156;
  font-size: .78rem;
  font-weight: 650;
  text-align: left;
}

.auto-secondary-field span {
  display: flex;
  justify-content: space-between;
}

.auto-secondary-field small {
  color: #84909e;
  font-weight: 500;
}

.auto-secondary-field .form-control {
  min-height: 44px;
  border-color: #d8dee6;
  border-radius: 8px;
  background: #fbfcfd;
}

.auto-back-button {
  margin-top: 1rem;
  border: 0;
  color: #657386;
  background: none;
  font-size: .78rem;
}
.auto-skip-button { width: 100%; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-top: 10px; color: #805718; border: 1px solid #e1bf80; border-radius: 5px; background: #fff7e8; font-weight: 700; }
.auto-skip-button:hover { border-color: #c18a35; background: #fff1d6; }

.auto-queue-panel {
  max-width: 1060px;
  margin-inline: auto;
}

.auto-queue {
  display: grid;
  gap: 1px;
  background: #e8ecf1;
}

.auto-queue button {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .9rem;
  padding: .9rem 1.1rem;
  border: 0;
  background: #fff;
  color: #526174;
  text-align: left;
}

.auto-queue button:hover {
  background: #f4f8f7;
}

.auto-queue button > span {
  display: grid;
}

.auto-queue button strong {
  color: #172a41;
  font-family: "JetBrains Mono", monospace;
  font-size: .78rem;
}

.auto-queue button small {
  color: #758192;
}

@media (max-width: 640px) {
  .auto-step-rail span {
    font-size: 0;
  }

  .auto-step-rail span b {
    font-size: .7rem;
  }

  .auto-batch-context {
    grid-template-columns: 1fr;
  }

  .auto-scan-field {
    grid-template-columns: auto 1fr;
  }

  .auto-scan-field button {
    grid-column: 1 / -1;
    min-height: 44px;
  }
}

.legacy-batch-note {
  margin-bottom: 1rem;
  padding: .8rem .9rem;
  border-left: 3px solid #aab6c4;
  background: #f7f9fb;
}

.legacy-batch-note small {
  color: #758294;
  font-size: .7rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.legacy-batch-note p {
  margin: .25rem 0 0;
}

.batch-note-list {
  display: grid;
  gap: .9rem;
}

.batch-note-list article {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .75rem;
}

.batch-note-list article > div > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .5rem;
}

.batch-note-list article time {
  color: #7b8795;
  font-size: .7rem;
}

.batch-note-list article p {
  margin: .2rem 0 0;
  color: #445367;
  white-space: pre-wrap;
}

.batch-note-form {
  display: grid;
  gap: .4rem;
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid #e6eaf0;
}

.batch-note-form > label {
  color: #26374d;
  font-size: .78rem;
  font-weight: 650;
}

.batch-note-form > div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .6rem;
  align-items: stretch;
}

.batch-note-form textarea {
  resize: vertical;
}

.batch-note-form small {
  color: #7b8796;
}

.feed-history-table th,
.feed-history-table td {
  padding: .7rem .8rem;
  vertical-align: top;
}

.feed-history-table td > strong,
.feed-history-table td > small {
  display: block;
}

.feed-history-table td > small {
  margin-top: .15rem;
  color: #7a8594;
}

.feed-history-table td > span {
  display: block;
  margin-bottom: .2rem;
  color: #344359;
  font-size: .75rem;
}

.feed-history-table td > span small {
  color: #758192;
}

.batch-editor-page {
  max-width: 1120px;
  margin: 0 auto;
}

.batch-editor-hero {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 1.1rem;
}

.batch-editor-hero h1 {
  margin: .2rem 0 .35rem;
  color: #0b1f38;
  font: 700 clamp(1.8rem, 3vw, 2.75rem) "Hanken Grotesk", sans-serif;
  letter-spacing: -.035em;
}

.batch-editor-hero p {
  margin: 0;
  color: #667488;
}

.batch-editor-identity {
  display: grid;
  min-width: 180px;
  gap: .15rem;
  padding: .8rem 1rem;
  border: 1px solid #dce3e9;
  border-radius: 8px;
  background: #fff;
}

.batch-editor-identity small,
.batch-editor-identity span {
  color: #7b8795;
  font-size: .7rem;
}

.batch-editor-identity small {
  letter-spacing: .08em;
  text-transform: uppercase;
}

.batch-editor-identity strong {
  color: #173b36;
  font: 700 .9rem "JetBrains Mono", monospace;
}

.batch-editor-form {
  display: grid;
  gap: .9rem;
}

.batch-form-alert {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .85rem 1rem;
  color: #812e3c;
  border: 1px solid #efcbd2;
  border-radius: 8px;
  background: #fff4f6;
}

.batch-form-alert span,
.batch-form-alert strong {
  display: block;
}

.batch-form-alert span {
  font-size: .76rem;
}

.batch-form-nav {
  position: sticky;
  z-index: 8;
  top: 62px;
  display: flex;
  gap: 1.35rem;
  overflow-x: auto;
  padding: .75rem 1rem;
  border: 1px solid #e0e5eb;
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(25, 43, 67, .05);
  background: rgba(255, 255, 255, .95);
  backdrop-filter: blur(12px);
}

.batch-form-nav a {
  flex: 0 0 auto;
  color: #637184;
  font: 600 .7rem "JetBrains Mono", monospace;
  text-decoration: none;
  text-transform: uppercase;
}

.batch-form-nav a:hover {
  color: #173b36;
}

.batch-form-panel {
  overflow: hidden;
  scroll-margin-top: 120px;
  border: 1px solid #dfe5eb;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(21, 39, 62, .045);
  background: #fff;
}

.batch-form-panel > header {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #e8ecf0;
  background: #fafbfc;
}

.batch-form-panel > header h2 {
  margin: 0;
  color: #132940;
  font: 700 1rem "Hanken Grotesk", sans-serif;
}

.batch-form-panel > header p {
  margin: .12rem 0 0;
  color: #788493;
  font-size: .7rem;
}

.batch-section-number {
  display: grid;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid #cddad7;
  border-radius: 7px;
  color: #315f58;
  background: #eef5f3;
  font: 650 .7rem "JetBrains Mono", monospace;
}

.batch-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem 1.15rem;
  padding: 1.2rem 1.25rem 1.35rem;
}

.batch-form-grid.is-essential {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.batch-field {
  display: grid;
  align-content: start;
  gap: .38rem;
  min-width: 0;
}

.batch-field.is-wide {
  grid-column: span 2;
}

.batch-field > span:first-child {
  color: #2f3f54;
  font-size: .75rem;
  font-weight: 650;
}

.batch-field em {
  margin-left: .35rem;
  color: #7c8795;
  font: 500 .7rem "JetBrains Mono", monospace;
  font-style: normal;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.batch-field > small {
  color: #818b98;
  font-size: .7rem;
  line-height: 1.4;
}

.batch-lifecycle-field {
  gap: .48rem;
  padding: .7rem;
  border: 1px solid #cbdad7;
  border-radius: 8px;
  background: #f5faf8;
}

.batch-lifecycle-reason {
  display: grid;
  gap: .38rem;
}

.batch-lifecycle-reason > span {
  color: #2f3f54;
  font-size: .75rem;
  font-weight: 650;
}

.batch-lifecycle-reason em {
  margin-left: .35rem;
  color: #9a4650;
  font: 500 .7rem "JetBrains Mono", monospace;
  font-style: normal;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.batch-lifecycle-button {
  display: inline-flex;
  min-height: 41px;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .65rem .8rem;
  border: 1px solid #34796d;
  border-radius: 6px;
  color: #fff;
  background: #237568;
  font-size: .76rem;
  font-weight: 700;
}

.batch-lifecycle-button:hover {
  border-color: #185e53;
  background: #185e53;
}

.batch-lifecycle-reason:not(.is-contextual-hidden) + .batch-lifecycle-button {
  border-color: #a86124;
  background: #a86124;
}

.batch-lifecycle-reason:not(.is-contextual-hidden) + .batch-lifecycle-button:hover {
  border-color: #884b17;
  background: #884b17;
}

.batch-input {
  width: 100%;
  min-height: 43px;
  padding: .65rem .75rem;
  color: #172b42;
  border: 1px solid #d7dee6;
  border-radius: 7px;
  outline: 0;
  background: #fbfcfd;
  font-size: .78rem;
}

.batch-input:focus {
  border-color: #71968f;
  box-shadow: 0 0 0 3px rgba(74, 130, 119, .11);
  background: #fff;
}

textarea.batch-input {
  line-height: 1.5;
  resize: vertical;
}

.batch-mono-input {
  font-family: "JetBrains Mono", monospace;
}

.batch-field-error {
  display: flex;
  align-items: center;
  gap: .3rem;
  color: #ad3d4e;
  font-size: .7rem;
}

.batch-date-grid,
.batch-planning-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  padding: 1.2rem 1.25rem 1.35rem;
}

.batch-planning-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-bottom: 0;
}

.is-contextual-hidden {
  display: none !important;
}

.is-contextual-emphasis .batch-input {
  border-color: #9bbdb7;
  background: #f5faf9;
}

.vessel-input-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .65rem;
  padding: 1.2rem 1.25rem 1.35rem;
}

.vessel-input {
  display: grid;
  overflow: hidden;
  border: 1px solid #e0e5eb;
  border-radius: 7px;
  background: #fafbfc;
}

.vessel-input span {
  padding: .45rem .55rem;
  color: #697688;
  border-bottom: 1px solid #e7ebef;
  font: 600 .7rem "JetBrains Mono", monospace;
  text-align: center;
}

.vessel-input input {
  width: 100%;
  min-width: 0;
  padding: .6rem .35rem;
  border: 0;
  outline: 0;
  background: transparent;
  font: 650 .8rem "JetBrains Mono", monospace;
  text-align: center;
}

.vessel-input.has-value {
  border-color: #9bbdb7;
  box-shadow: inset 0 -2px 0 #4a8277;
  background: #f2f8f6;
}

.protocol-outcome-fields {
  margin: 1rem 1.25rem;
  overflow: hidden;
  border: 1px solid #dfe5eb;
  border-radius: 8px;
  background: #f9fbfc;
}

.protocol-outcome-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem 1rem;
  border-bottom: 1px solid #e4e9ed;
  background: #f1f6f5;
}

.protocol-outcome-heading span {
  color: #254a44;
  font-size: .75rem;
  font-weight: 700;
}

.protocol-outcome-heading small {
  color: #6d7b8a;
  font-size: .7rem;
}

.batch-form-grid.is-outcomes {
  padding: 1rem;
}

.protocol-outcome-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 70px;
  color: #7b8795;
  font-size: .7rem;
}

.protocol-outcome-empty[hidden] {
  display: none;
}

.batch-notes-field,
.batch-termination-field {
  margin: 1rem 1.25rem 1.25rem;
}

.batch-form-actions {
  position: sticky;
  z-index: 7;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border: 1px solid #dfe5eb;
  border-radius: 9px;
  box-shadow: 0 -8px 30px rgba(21, 39, 62, .08);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(12px);
}

.batch-form-actions > div {
  display: flex;
  align-items: center;
  gap: .65rem;
  color: #47756d;
}

.batch-form-actions > div span,
.batch-form-actions > div strong,
.batch-form-actions > div small {
  display: block;
}

.batch-form-actions > div strong {
  color: #2e4558;
  font-size: .7rem;
}

.batch-form-actions > div small {
  color: #7b8796;
  font-size: .75rem;
}

.batch-form-actions > span {
  display: flex;
  gap: .55rem;
}

.batch-samples-panel {
  margin-top: 1rem;
  scroll-margin-top: 120px;
}

.sample-panel-header {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 24px;
  border-bottom: 1px solid #e7ebef;
  background: #fafbfc;
}

.sample-panel-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 13px;
}

.sample-panel-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  color: #2b756a;
  border: 1px solid #cce0dc;
  border-radius: 7px;
  background: #eef7f5;
}

.sample-panel-title h2,
.sample-entry-heading h3 {
  margin: 2px 0 0;
  color: #132940;
  font-family: "Hanken Grotesk", sans-serif;
  font-weight: 700;
}

.sample-panel-title h2 { font-size: 1.08rem; }
.sample-panel-title p,
.sample-entry-heading p { margin: 3px 0 0; color: #778394; font-size: .7rem; }

.sample-record-count {
  min-width: 64px;
  display: grid;
  justify-items: end;
  color: #355f59;
}

.sample-record-count strong { font: 700 1rem "JetBrains Mono", monospace; }
.sample-record-count small { color: #778394; font-size: .68rem; }

.sample-table-wrap {
  margin: 20px 24px 0;
  overflow-x: auto;
  border: 1px solid #e2e7ec;
  border-radius: 7px;
}

.sample-record-table { width: 100%; min-width: 700px; border-collapse: collapse; }
.sample-record-table th {
  padding: 10px 12px;
  color: #6f7b8c;
  border-bottom: 1px solid #e7ebef;
  background: #f8fafb;
  font: 650 .68rem "JetBrains Mono", monospace;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.sample-record-table td { padding: 11px 12px; color: #344156; border-bottom: 1px solid #edf0f3; font-size: .72rem; }
.sample-record-table tbody tr:last-child td { border-bottom: 0; }
.sample-record-table td:last-child { width: 42px; text-align: right; }
.sample-type-pill { display: inline-flex; padding: 4px 7px; color: #365e58; border-radius: 4px; background: #edf6f4; font-weight: 700; }
.sample-delete-button { width: 30px; height: 30px; display: inline-grid; place-items: center; color: #9d4651; border: 1px solid #ebcdd2; border-radius: 5px; background: #fff7f8; }
.sample-delete-button:hover { color: #fff; border-color: #a84451; background: #a84451; }

.sample-record-empty {
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 20px 24px 0;
  padding: 18px;
  color: #607083;
  border: 1px dashed #d5dce3;
  border-radius: 7px;
  background: #fbfcfd;
}

.sample-record-empty > span { width: 34px; height: 34px; display: grid; place-items: center; color: #6d7e91; border-radius: 6px; background: #eef2f6; }
.sample-record-empty strong,
.sample-record-empty small { display: block; }
.sample-record-empty strong { color: #2d3f54; font-size: .78rem; }
.sample-record-empty small { margin-top: 3px; color: #7c8795; font-size: .7rem; }

.sample-entry-panel {
  margin: 20px 24px 24px;
  padding: 18px;
  border: 1px solid #e1e7eb;
  border-radius: 8px;
  background: #f8fafb;
}

.sample-entry-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.sample-entry-heading h3 { font-size: .96rem; }
.sample-entry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 16px; }
.sample-entry-action { grid-column: 1 / -1; display: flex; justify-content: flex-end; padding-top: 2px; }
.sample-submit-button { min-height: 40px; padding: 8px 14px; color: #fff; border: 1px solid #237568; border-radius: 6px; background: #237568; font-size: .75rem; font-weight: 700; }
.sample-submit-button:hover { border-color: #185e53; background: #185e53; }

@media (max-width: 760px) {
  .sample-panel-header { align-items: flex-start; padding-inline: 16px; }
  .sample-panel-title p { display: none; }
  .sample-table-wrap,
  .sample-record-empty,
  .sample-entry-panel { margin-inline: 16px; }
  .sample-entry-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .sample-entry-grid { grid-template-columns: 1fr; }
}

.protocol-outcome-selector {
  margin: 1rem 0;
  padding: 0;
  border: 0;
}

.protocol-outcome-selector legend {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: .55rem;
  color: #26374d;
  font-size: .76rem;
}

.protocol-outcome-selector legend small {
  color: #7b8794;
  font-size: .7rem;
  font-weight: 400;
}

.protocol-outcome-selector > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
}

.protocol-outcome-selector label {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .55rem;
  padding: .65rem;
  border: 1px solid #dfe5eb;
  border-radius: 7px;
  background: #fbfcfd;
}

.protocol-outcome-selector label:has(input:checked) {
  border-color: #9bbdb7;
  background: #f1f7f5;
}

.protocol-outcome-selector input {
  margin-top: .15rem;
}

.protocol-outcome-selector label span,
.protocol-outcome-selector label strong,
.protocol-outcome-selector label small {
  display: block;
}

.protocol-outcome-selector label strong {
  color: #2b3c51;
  font-size: .7rem;
}

.protocol-outcome-selector label small {
  margin-top: .15rem;
  color: #7c8794;
  font-size: .7rem;
  line-height: 1.35;
}

.regimen-outcomes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  margin: .65rem 0;
}

.regimen-outcomes > small {
  margin-right: .25rem;
  color: #798594;
}

.regimen-outcomes > span {
  padding: .25rem .4rem;
  border-radius: 4px;
  color: #37675f;
  background: #edf6f4;
  font-size: .7rem;
  font-weight: 650;
}

@media (max-width: 960px) {
  .batch-form-grid,
  .batch-form-grid.is-essential {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .batch-date-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vessel-input-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .batch-editor-hero,
  .batch-form-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .batch-form-grid,
  .batch-form-grid.is-essential,
  .batch-date-grid,
  .batch-planning-grid,
  .protocol-outcome-selector > div {
    grid-template-columns: 1fr;
  }

  .batch-field.is-wide {
    grid-column: auto;
  }

  .vessel-input-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .batch-form-actions > span {
    justify-content: flex-end;
  }
}

.topbar-divider {
  width: 1px;
  height: 28px;
  margin: 0 7px;
  background: #d9dbe4;
}

.account-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 2px 4px;
  color: var(--ch-ink);
  border: 0;
  background: transparent;
  font-size: .78rem;
  font-weight: 600;
}

.account-avatar,
.activity-avatar,
.team-avatar {
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 50%;
  background: linear-gradient(145deg, var(--ch-primary), var(--ch-secondary));
  font-family: "JetBrains Mono", monospace;
  font-weight: 600;
}

.account-avatar { width: 30px; height: 30px; font-size: .7rem; }
.user-avatar { overflow: hidden; flex: 0 0 auto; }
.user-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.user-avatar.has-photo { background: #e9edf3; }
.account-button::after { color: var(--ch-muted); }

.mobile-nav-toggle {
  display: none;
  margin-left: auto;
  color: var(--ch-primary);
  border: 0;
  background: transparent;
  font-size: 1.75rem;
}

.experiment-rail {
  position: fixed;
  z-index: 30;
  inset: 64px auto 0 0;
  width: 200px;
  padding: 24px 12px;
  background: var(--ch-sidebar);
  border-right: 1px solid rgba(214, 224, 243, .6);
}

.rail-title {
  margin-bottom: 18px;
  color: #57596b;
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.rail-nav { display: grid; gap: 7px; margin-left: -6px; }

.rail-nav a {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  gap: 5px;
  align-items: center;
  padding: 8px 3px 8px 0;
  color: var(--ch-ink);
  border-radius: 4px;
  font-size: .82rem;
  text-decoration: none;
}

.rail-nav a:hover { background: #dfe9ff; color: var(--ch-primary); }
.rail-nav i { color: var(--ch-secondary); font-size: .86rem; }
.rail-batch-symbol {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  color: var(--ch-secondary);
}
.rail-batch-symbol svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.rail-nav span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rail-empty { color: var(--ch-muted); font-size: .76rem; }

.app-content {
  min-height: 100vh;
  margin-left: 200px;
  padding: 104px 40px 56px;
}

.app-content.app-content-no-rail { margin-left: 0; }

.trial-countdown {
  width: 100%;
  min-height: 50px;
  margin: 0 auto 18px;
  padding: 10px 14px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  color: #514817;
  border: 1px solid #e7dfb9;
  border-radius: 5px;
  background: #fbf9ee;
  box-shadow: 0 2px 8px rgba(71, 61, 18, .035);
}

.trial-countdown-icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #8a7316;
  border-radius: 4px;
  background: #f0e9c9;
}

.trial-countdown > div { min-width: 0; }
.trial-countdown strong,
.trial-countdown > div > span { display: block; }
.trial-countdown strong { color: #403912; font-size: .78rem; line-height: 1.35; }
.trial-countdown > div > span { margin-top: 1px; color: #746d4d; font-size: .7rem; line-height: 1.4; }
.trial-countdown > a {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  color: #635718;
  font-size: .72rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.trial-countdown > a:hover { color: var(--ch-primary); }

.trial-expired-banner {
  border-color: #e4bd62;
  background: #fff8e7;
  box-shadow: 0 3px 12px rgba(115, 76, 10, .06);
}

.trial-expired-banner .trial-countdown-icon {
  color: #8b5c08;
  background: #f7e5b7;
}

.trial-expired-banner strong { color: #68430a; }
.trial-expired-banner > div > span { color: #755719; }
.trial-expired-banner > div > span > a {
  color: #593d08;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.trial-expired-banner > div > span > a:hover { color: var(--ch-primary); }

.subscription-disabled-action {
  cursor: not-allowed !important;
  opacity: .56;
  box-shadow: none !important;
  filter: saturate(.55);
}

.settings-reminder-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.settings-reminder-fieldset:disabled { opacity: .58; }

.settings-trial-paused {
  margin-bottom: 16px;
  padding: 11px 13px;
  display: flex;
  gap: 9px;
  align-items: flex-start;
  color: #755719;
  border: 1px solid #e4bd62;
  border-radius: 5px;
  background: #fff8e7;
  font-size: .76rem;
  line-height: 1.45;
}

.settings-trial-paused a {
  color: #593d08;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 620px) {
  .trial-countdown { grid-template-columns: 30px minmax(0, 1fr); }
  .trial-countdown > a { grid-column: 2; justify-self: start; }
}

.dashboard-stack {
  width: 100%;
  margin: 0 auto;
  display: grid;
  gap: 20px;
}

.app-alert {
  width: 100%;
  margin: 0 auto 18px;
  border: 0;
  border-radius: 5px;
  box-shadow: var(--ch-shadow);
  transition: opacity .35s ease, transform .35s ease;
}
.app-alert.fade:not(.show) { transform: translateY(-5px); }

.dashboard-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.dashboard-hero h1 {
  margin: 0;
  color: var(--ch-ink);
  font-family: "Hanken Grotesk", sans-serif;
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.06;
}

.hero-actions { display: flex; gap: 12px; }

.hero-actions .btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 22px;
  border-radius: 6px;
  font-family: "JetBrains Mono", monospace;
  font-size: .78rem;
  font-weight: 600;
}

.btn-primary {
  border-color: var(--ch-primary);
  background: var(--ch-primary);
}

.btn-primary:hover,
.btn-primary:focus {
  border-color: #2e2a85;
  background: #2e2a85;
}

.btn-secondary-action {
  color: var(--ch-primary);
  border: 1px solid #e1e5f0;
  background: #fff;
  box-shadow: 0 2px 7px rgba(23, 13, 112, .04);
}

.btn-secondary-action:hover { color: var(--ch-primary); background: #f3f5ff; }

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.kpi-card {
  min-height: 76px;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 12px;
  color: var(--ch-ink);
  border: 1px solid #eef0f5;
  border-radius: 6px;
  background: #fff;
  box-shadow: var(--ch-shadow);
  text-decoration: none;
  transition: border-color .16s ease, transform .16s ease;
}

.kpi-card:hover { color: var(--ch-ink); border-color: #c9c8f3; transform: translateY(-1px); }

.kpi-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 4px;
  font-size: 1.15rem;
}

.kpi-indigo { color: var(--ch-primary); background: #ecebff; }
.kpi-teal { color: var(--ch-teal); background: #e0f7f4; }
.kpi-red { color: #c62828; background: #fce8e8; }

.kpi-card-content {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 8px;
  align-items: baseline;
}

.kpi-card.panel-help-compact {
  padding-right: 42px;
}

.kpi-card small {
  grid-column: 1 / -1;
  color: #5e6070;
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-style: normal;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.kpi-card strong {
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.3125rem;
  line-height: 1;
}

.kpi-card em {
  color: var(--ch-secondary);
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.3125rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1;
}

.kpi-card:nth-child(2) em { color: var(--ch-teal); }
.kpi-card:nth-child(3) em { color: #d12f2f; }

.data-panel {
  overflow: hidden;
  border: 1px solid #eef0f5;
  border-radius: 8px;
  background: var(--ch-panel);
  box-shadow: var(--ch-shadow);
}

.data-panel-header {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 32px;
}

.data-panel-header h2 {
  margin: 0;
  color: var(--ch-ink);
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.28rem;
  font-weight: 600;
}

.data-panel-header > time,
.data-panel-header > span,
.data-panel-header > a {
  color: var(--ch-primary);
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .03em;
  text-decoration: none;
}

/* Keep dashboard navigation actions grouped at the right edge, immediately
   before the optional panel help control. */
#active-protocols > .data-panel-header > a,
#notifications > .data-panel-header > a,
#team-members > .data-panel-header > a {
  margin-left: auto;
  text-align: right;
}

.today-panel {
  min-height: 178px;
  scroll-margin-top: 84px;
}

.today-panel .data-panel-header { min-height: 62px; padding-block: 13px; }
.today-panel .feed-strip { padding-bottom: 18px; }

.today-panel-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-left: auto;
}

.today-panel-actions > time {
  color: var(--ch-primary);
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .03em;
}

.media-prep-button {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 11px;
  border: 1px solid #b7ddd5;
  border-radius: 4px;
  color: #17695d;
  background: #edf8f5;
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 650;
  letter-spacing: .015em;
  text-decoration: none;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.media-prep-button:hover {
  border-color: #79bbae;
  color: #0c5148;
  background: #dff3ee;
}

.media-prep-button i { font-size: .84rem; }

.feed-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 16px;
  padding: 8px 32px 32px;
}

.feed-card {
  position: relative;
  min-height: 142px;
  border-left: 4px solid #c6c7d3;
  border-radius: 4px;
  background: #fafbfe;
  font-family: "Hanken Grotesk", sans-serif;
}
.feed-card :is(a, strong, span, small, b, time, button) { font-family: inherit; }

.feed-card:hover { background: #f3f5fd; }
.feed-card.is-due-today { border-left-color: #5276b8; background: #edf4ff; }
.feed-card.is-due-today:hover { background: #e4efff; }
.feed-card.is-overdue { border-left-color: #cf3f55; background: #fff0f2; }
.feed-card.is-overdue:hover { background: #ffe7eb; }
.feed-card.is-fed { border-left-color: #639589; background: #edf6f3; }
.feed-card.is-fed:hover { background: #e5f1ed; }
.feed-card.is-skipped { border-left-color: #c18a35; background: #fff7e8; }
.feed-card.is-skipped:hover { background: #fff1d6; }

.feed-card-link {
  min-height: 142px;
  display: block;
  padding: 12px 14px 11px;
  color: var(--ch-ink);
  text-decoration: none;
}

.feed-card-link:hover { color: var(--ch-ink); }
.feed-batch-heading {
  width: 94%;
  min-height: 20px;
  display: flex !important;
  align-items: center;
  gap: 5px;
  color: #355f9f;
}
.feed-card .feed-batch-heading .batch-symbol {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  color: inherit;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.feed-card .feed-batch-heading .batch-symbol svg {
  width: 100%;
  height: 100%;
  transform: translateY(-1.5px);
}
.feed-batch-heading strong {
  min-width: 0;
  display: block;
  overflow-wrap: anywhere;
  color: inherit;
  font-size: .72rem;
  line-height: 1.25;
}
.feed-card-name {
  display: -webkit-box !important;
  overflow: hidden;
  margin: 9px 0 8px;
  color: #14263a;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.18;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.feed-card-detail,
.feed-card-owner { display: block; margin-top: 3px; color: #4f5968; font-size: .72rem; line-height: 1.3; }
.feed-card-detail b,
.feed-card-owner b { color: #263444; font-weight: 750; }
.feed-card-meta { display: block; margin-top: 4px; color: #6c7582; font-size: .72rem; }
.feed-card time { display: block; margin-top: 5px; color: #355f9f; font-size: .72rem; font-weight: 700; line-height: 1.25; }
.feed-card.is-due-today .feed-card-owner,
.feed-card.is-due-today .feed-card-owner b { color: #355f9f; }
.feed-card.is-overdue .feed-batch-heading,
.feed-card.is-overdue time,
.feed-card.is-overdue .feed-card-owner,
.feed-card.is-overdue .feed-card-owner b { color: #a83748; }
.feed-card.is-fed .feed-batch-heading,
.feed-card.is-fed time,
.feed-card.is-fed .feed-card-owner,
.feed-card.is-fed .feed-card-owner b { color: #3f756a; }
.feed-card.is-skipped .feed-batch-heading,
.feed-card.is-skipped time,
.feed-card.is-skipped .feed-card-owner,
.feed-card.is-skipped .feed-card-owner b { color: #8a5a13; }

.dashboard-feed-form {
  position: absolute;
  z-index: 3;
  top: 8px;
  right: 8px;
  margin: 0;
  display: flex;
  gap: 4px;
}

.feed-action {
  min-width: 54px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 0 7px;
  color: #fff;
  border: 1px solid var(--ch-primary);
  border-radius: 4px;
  background: var(--ch-primary);
  box-shadow: 0 3px 9px rgba(23, 13, 112, .15);
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 600;
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity .15s ease, transform .15s ease, background .15s ease;
}

.feed-card:hover .feed-action,
.feed-card:focus-within .feed-action,
.calendar-chip:hover .feed-action,
.calendar-chip:focus-within .feed-action {
  opacity: 1;
  transform: translateY(0);
}

.feed-action:hover { background: #2e2a85; }
.feed-action:focus-visible { opacity: 1; outline: 3px solid rgba(75, 65, 225, .18); outline-offset: 2px; transform: translateY(0); }
.feed-action.is-saving { cursor: wait; opacity: .7; }
.feed-action.is-complete { border-color: #087f6b; background: #087f6b; opacity: 1; transform: none; }
.feed-action.is-undo { color: #087f6b; border-color: #8fd5c8; background: #fff; box-shadow: 0 3px 9px rgba(8, 127, 107, .09); }
.feed-action.is-undo:hover { color: #fff; border-color: #087f6b; background: #087f6b; }
.feed-action.is-skip { color: #fff; border-color: #9a681c; background: #9a681c; }
.feed-action.is-skip:hover { background: #7c5214; }
.feed-action.is-undo.is-skipped { color: #8a5a13; border-color: #e5c68c; background: #fffaf0; }
.feed-action.is-undo.is-skipped:hover { color: #fff; border-color: #9a681c; background: #9a681c; }

.calendar-panel {
  --calendar-accent: #62697a;
  --calendar-focus: rgba(98, 105, 122, .16);
  overflow: visible;
  min-height: 430px;
  scroll-margin-top: 84px;
  transition: opacity .14s ease;
}

.calendar-panel[aria-busy="true"] {
  opacity: .62;
  pointer-events: none;
}

.calendar-range-shell {
  position: relative;
  margin-left: auto;
}

.calendar-range {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ch-ink);
}

.calendar-range a {
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  color: var(--calendar-accent);
  border: 1px solid transparent;
  border-radius: 4px;
  text-decoration: none;
}

.calendar-range a:hover {
  border-color: #dfe2e9;
  background: #f4f5f7;
}

.calendar-range a:focus-visible {
  outline: 3px solid var(--calendar-focus);
  outline-offset: 1px;
}

.calendar-range i { font-size: .82rem; }

.calendar-range-trigger {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 9px;
  color: var(--ch-ink);
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
}

.calendar-range-trigger:hover,
.calendar-range-trigger[aria-expanded="true"] {
  color: #434a5a;
  border-color: #dfe2e9;
  background: #f6f7f8;
}

.calendar-range-trigger:focus-visible {
  outline: 3px solid var(--calendar-focus);
  outline-offset: 1px;
}

.calendar-range-trigger strong {
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
}

.calendar-range-trigger i {
  color: var(--ch-muted);
  font-size: .7rem;
}

.calendar-week-picker {
  position: absolute;
  z-index: 25;
  right: 38px;
  bottom: calc(100% + 12px);
  width: 260px;
  padding: 16px;
  border: 1px solid #dfe3e7;
  border-radius: 6px;
  background: #fefefe;
  box-shadow: 0 16px 38px rgba(33, 42, 53, .13);
}

.calendar-week-picker[hidden] { display: none; }

.calendar-week-picker::after {
  position: absolute;
  right: 30px;
  bottom: -6px;
  width: 11px;
  height: 11px;
  content: "";
  border-right: 1px solid #dfe3e7;
  border-bottom: 1px solid #dfe3e7;
  background: #fefefe;
  transform: rotate(45deg);
}

.calendar-week-form {
  display: grid;
  gap: 9px;
}

.calendar-week-form label {
  color: var(--ch-ink);
  font-size: .75rem;
  font-weight: 700;
}

.calendar-week-form input {
  width: 100%;
  min-height: 38px;
  padding: 7px 10px;
  color: var(--ch-ink);
  color-scheme: light;
  accent-color: #6e7c7b;
  border: 1px solid #d9dee1;
  border-radius: 4px;
  background: #f8faf9;
  font: 500 .76rem "Inter", sans-serif;
}

.calendar-week-form input:focus {
  border-color: #7f918f;
  outline: 3px solid rgba(110, 124, 123, .13);
}

.calendar-week-form input::-webkit-calendar-picker-indicator {
  opacity: .58;
  filter: saturate(.25);
}

.calendar-week-form input::selection {
  color: #253330;
  background: #dce7e4;
}

.calendar-week-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 3px;
}

.calendar-week-actions button {
  min-height: 34px;
  padding: 6px 10px;
  color: #fff;
  border: 1px solid #5e6c6b;
  border-radius: 4px;
  background: #5e6c6b;
  font-size: .7rem;
  font-weight: 700;
}

.calendar-week-actions .calendar-this-week {
  color: #53615f;
  border-color: #d8dfdd;
  background: #fdfefe;
}

.calendar-week-actions button:hover { filter: brightness(.96); }

.calendar-board {
  overflow-x: auto;
  margin: 0 32px 30px;
  border: 1px solid #eef0f5;
  border-radius: 6px;
  background: #fff;
}

.calendar-heading-row,
.calendar-columns {
  min-width: 770px;
  display: grid;
  grid-template-columns: repeat(7, minmax(110px, 1fr));
}

.calendar-heading-row {
  border-top: 1px solid #eef0f5;
  border-bottom: 1px solid #eef0f5;
  background: #fbfcff;
}

.calendar-heading-row div {
  padding: 15px 8px;
  color: #555766;
  text-align: center;
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
}

.calendar-heading-row .is-today { color: #45726d; background: #eff5f3; }

.calendar-columns { min-height: 300px; }

.calendar-day {
  min-width: 0;
  padding: 15px 8px;
  border-right: 1px solid #f0f1f5;
}

.calendar-day:last-child { border-right: 0; }
.calendar-day.is-today { background: #fbfdfc; }

.calendar-chip {
  position: relative;
  display: block;
  margin-bottom: 8px;
  min-height: 142px;
  padding: 12px 10px 11px;
  border-left: 4px solid #777d91;
  border-radius: 4px;
  background: #f4f5f8;
  font-family: "Hanken Grotesk", sans-serif;
  transition: background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.calendar-chip :is(a, strong, span, small, b, button) { font-family: inherit; }

.calendar-chip:hover { background: #edeff4; box-shadow: 0 5px 14px rgba(25, 39, 57, .07); transform: translateY(-1px); }

.calendar-chip.is-fed {
  border-left-color: #639589;
  background: #edf6f3;
}

.calendar-chip.is-fed:hover { background: #e5f1ed; }
.calendar-chip.is-skipped { border-left-color: #c18a35; background: #fff7e8; }
.calendar-chip.is-skipped:hover { background: #fff1d6; }

.calendar-chip.is-overdue {
  border-left-color: #c83d4f;
  background: #fff0f2;
}

.calendar-chip.is-overdue:hover { background: #fbe5e8; }

.calendar-chip.event-feed.is-mine:not(.is-fed):not(.is-skipped):not(.is-overdue):not(.is-due-today) {
  border-left-color: #8b919d;
  background: #f3f4f6;
}

.calendar-chip.event-feed.is-mine:not(.is-fed):not(.is-skipped):not(.is-overdue):not(.is-due-today):hover {
  background: #eceef1;
}

.calendar-chip.event-feed.is-cross-team:not(.is-fed):not(.is-skipped):not(.is-overdue):not(.is-due-today) {
  border-left-color: #8b919d;
  background: #f3f4f6;
}

.calendar-chip.is-due-today {
  border-left-color: #5276b8;
  background: #edf4ff;
}

.calendar-chip.is-due-today:hover { background: #e4efff; }

.calendar-chip-link {
  min-height: 118px;
  display: block;
  color: var(--ch-ink);
  text-decoration: none;
}

.calendar-chip-link:hover { color: var(--ch-ink); }

.calendar-chip strong,
.calendar-chip span,
.calendar-chip small { display: block; }
.calendar-batch-heading {
  width: 94%;
  min-height: 20px;
  margin: 0;
  padding: 0;
  color: #555d78;
}
.calendar-chip .calendar-batch-heading .batch-symbol {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  color: #68727f;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.calendar-chip .calendar-batch-heading .batch-symbol svg {
  width: 100%;
  height: 100%;
  transform: translateY(-1.5px);
}
.calendar-batch-heading strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: inherit;
  font: 700 .72rem/1.25 "Hanken Grotesk", sans-serif;
  letter-spacing: .01em;
}
.calendar-chip-name {
  display: -webkit-box !important;
  overflow: hidden;
  margin: 9px 0 8px;
  color: #14263a !important;
  font: 700 .84rem/1.18 "Hanken Grotesk", sans-serif !important;
  letter-spacing: -.01em;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.calendar-chip-detail,
.calendar-chip-owner {
  margin-top: 3px;
  color: #4f5968;
  font-size: .72rem;
  font-weight: 500;
  line-height: 1.3;
}
.calendar-chip-detail b,
.calendar-chip-owner b { color: #263444; font-weight: 750; }
.calendar-chip-status {
  margin-top: 5px !important;
  color: #697281;
  font: 700 .72rem/1.25 "Hanken Grotesk", sans-serif;
}
.calendar-chip.is-fed .calendar-batch-heading,
.calendar-chip.is-fed .calendar-batch-heading .batch-symbol { color: #44776c; }
.calendar-chip.is-fed .calendar-chip-status { color: #44776c; font-weight: 700; }
.calendar-chip.is-skipped .calendar-batch-heading,
.calendar-chip.is-skipped .calendar-batch-heading .batch-symbol,
.calendar-chip.is-skipped .calendar-chip-status { color: #8a5a13; }
.calendar-chip.is-overdue .calendar-batch-heading,
.calendar-chip.is-overdue .calendar-batch-heading .batch-symbol { color: #9f293a; }
.calendar-chip.is-overdue .calendar-chip-status { color: #b52f43; font-weight: 750; }
.calendar-chip.is-due-today .calendar-batch-heading,
.calendar-chip.is-due-today .calendar-batch-heading .batch-symbol,
.calendar-chip.is-due-today .calendar-chip-status { color: #355f9f; }
.calendar-batch-heading,
.team-gantt-batch-name {
  display: flex !important;
  align-items: center;
  gap: 5px;
}
.calendar-chip.event-feed.is-fed .calendar-chip-owner,
.calendar-chip.event-feed.is-fed .calendar-chip-owner b { color: #3f756a; }
.calendar-chip.event-feed.is-skipped .calendar-chip-owner,
.calendar-chip.event-feed.is-skipped .calendar-chip-owner b { color: #8a5a13; }
.calendar-chip.event-feed.is-due-today .calendar-chip-owner,
.calendar-chip.event-feed.is-due-today .calendar-chip-owner b { color: #355f9f; }
.calendar-chip.event-feed.is-overdue .calendar-chip-owner,
.calendar-chip.event-feed.is-overdue .calendar-chip-owner b { color: #a83748; }
.calendar-chip.event-feed:not(.is-fed):not(.is-skipped):not(.is-due-today):not(.is-overdue) .calendar-chip-owner,
.calendar-chip.event-feed:not(.is-fed):not(.is-skipped):not(.is-due-today):not(.is-overdue) .calendar-chip-owner b { color: #6c7582; }
.calendar-chip:not(.event-feed) .calendar-chip-owner,
.calendar-chip:not(.event-feed) .calendar-chip-owner b { color: #6c7582; }
.calendar-chip.event-seed { border-left-color: #5a9992; }
.calendar-chip.event-harvest { border-left-color: #b58a51; }

.calendar-chip .dashboard-feed-form {
  top: 5px;
  right: 5px;
  opacity: 0;
  display: flex;
  gap: 3px;
  transition: opacity .15s ease;
}

.dashboard-calendar-feed-button {
  min-width: 38px;
  min-height: 27px;
  padding: 3px 7px;
  color: #fff;
  border: 0;
  border-radius: 3px;
  background: #536174;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: .75rem;
  font-weight: 700;
}

.dashboard-calendar-feed-button.is-undo {
  color: #357766;
  background: #d9eee8;
}
.dashboard-calendar-feed-button.is-skip { background: #9a681c; }
.dashboard-calendar-feed-button.is-undo.is-skipped { color: #8a5a13; background: #f7e8c8; }

.calendar-chip:hover .dashboard-feed-form,
.calendar-chip:focus-within .dashboard-feed-form { opacity: 1; }
.calendar-chip:has(.dashboard-calendar-feed-button) .calendar-chip-link { padding-right: 0; }

@media (hover: none) {
  .feed-action {
    opacity: 1;
    transform: none;
  }
  .calendar-chip .dashboard-feed-form { opacity: 1; }
}

.batch-record-actions form { display: flex; gap: 6px; }
.batch-record-actions button.is-skipped { color: #805718; border-color: #e1bf80; background: #fff6e4; }
.batch-record-actions button.is-pending { color: #805718; border-color: #e1bf80; background: #fff6e4; }
.history-event.is-feed.is-skipped { color: #805718; border-color: #c18a35; background: #fff7e8; }
.feed-history-list article.is-skipped { border-left: 3px solid #c18a35; background: #fffaf0; }
.feed-traceability-panel { align-self: start; overflow: hidden; }
.feed-traceability-panel .feed-history-list { --feed-history-row-height: 72px; max-height: calc(var(--feed-history-row-height) * 5); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.feed-traceability-panel .feed-history-list article { min-height: var(--feed-history-row-height); }
.feed-traceability-panel .feed-history-list:focus-visible { outline: 3px solid rgba(30, 107, 105, .28); outline-offset: -3px; }
@media (max-width: 480px) { .feed-traceability-panel .feed-history-list { --feed-history-row-height: 118px; } }

.calendar-empty {
  min-height: 300px;
  display: grid;
  place-content: center;
  justify-items: center;
  padding: 30px;
  text-align: center;
  border-top: 1px solid #eef0f5;
}

.calendar-empty i { color: var(--ch-secondary); font-size: 1.75rem; }
.calendar-empty h3 { margin: 10px 0 4px; font-family: "Hanken Grotesk", sans-serif; font-size: 1rem; }
.calendar-empty p { max-width: 390px; margin: 0 0 14px; color: var(--ch-muted); font-size: .75rem; }

.protocols-panel { min-height: 200px; }

.protocol-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(210px, 1fr));
  gap: 16px;
  padding: 4px 32px 30px;
}

.protocol-card {
  position: relative;
  display: block;
  padding: 16px;
  color: var(--ch-ink);
  border: 1px solid #ebedf3;
  border-radius: 5px;
  background: #fbfcff;
  text-decoration: none;
}

.protocol-card:hover { color: var(--ch-ink); border-color: #c9c8f3; }
.protocol-card strong { display: block; font-family: "JetBrains Mono", monospace; font-size: .75rem; }
.protocol-card-identity > span > span { display: block; margin-top: 3px; color: var(--ch-muted); font-size: .75rem; }
.protocol-card small { color: var(--ch-muted); font-family: "JetBrains Mono", monospace; font-size: .7rem; }

.protocols-panel .protocol-card {
  min-height: 154px;
  padding: 12px 14px 10px;
  border-left: 4px solid #9ca8ba;
  background: #fafbfe;
  font-family: "Hanken Grotesk", sans-serif;
}
.protocols-panel .protocol-card:hover { border-color: #d6dce6; border-left-color: #7f8da3; background: #f5f7fb; }
.protocols-panel .protocol-card :is(strong, span, small, b) { font-family: inherit; }
.protocol-batch-heading {
  width: 60%;
  min-height: 20px;
  display: flex !important;
  align-items: center;
  gap: 5px;
  color: #53647b;
}
.protocol-batch-heading .batch-symbol {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  color: inherit;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.protocol-batch-heading .batch-symbol svg { width: 100%; height: 100%; transform: translateY(-1.5px); }
.protocol-batch-heading > strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: inherit;
  font-size: .72rem;
  line-height: 1.25;
}
.protocols-panel .protocol-card-name {
  display: -webkit-box;
  overflow: hidden;
  margin: 9px 0 7px;
  color: #14263a;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.18;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.protocol-card-detail { display: block; color: #4f5968; font-size: .72rem; line-height: 1.3; }
.protocol-card-detail b,
.protocol-card-estimate b { color: #263444; font-weight: 750; }
.protocols-panel .protocol-card-estimate { display: block; color: #687383; font-size: .72rem; line-height: 1.3; }

.protocol-phase {
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 3px 7px;
  color: var(--ch-secondary);
  border-radius: 999px;
  background: #ecebff;
  font-family: "JetBrains Mono", monospace;
  font-size: .7rem;
  font-weight: 600;
}

.protocol-progress {
  height: 5px;
  margin: 15px 0 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e6e9f1;
}

.protocol-progress span { display: block; height: 100%; border-radius: inherit; background: var(--ch-secondary); }

.protocols-panel .protocol-progress,
.schedule-protocols .protocol-progress {
  height: 12px;
  margin: 17px 0 10px;
  padding: 1px;
  overflow: hidden;
  border: 1px solid #dce3eb;
  border-radius: 999px;
  background: #edf1f5;
  box-shadow:
    inset 0 1px 2px rgba(35, 48, 70, .11),
    0 1px 0 rgba(255, 255, 255, .9);
}

.protocols-panel .protocol-progress { margin: 13px 0 9px; }

.protocols-panel .protocol-progress span,
.schedule-protocols .protocol-progress span {
  position: relative;
  transform: translateY(-3px);
  min-width: 6px;
  border-radius: 999px;
  background: linear-gradient(90deg, #312783 0%, #285eb5 48%, #10a394 100%);
  box-shadow:
    0 1px 4px rgba(41, 71, 155, .28),
    inset 0 1px 0 rgba(255, 255, 255, .28);
}

.protocols-panel .protocol-progress span { transform: translateY(-1px); }

.protocols-panel .protocol-progress[aria-valuenow="0"] span,
.schedule-protocols .protocol-progress[aria-valuenow="0"] span { min-width: 0; }

.dashboard-lower {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 20px;
}

.activity-list,
.team-list { padding: 0 32px 28px; }

.activity-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.activity-item {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 12px;
  align-items: start;
  padding: 13px;
  border-radius: 5px;
  background: #f6f8ff;
}

.activity-avatar { width: 40px; height: 40px; font-size: .7rem; }
.activity-item p { margin: 0; font-size: .75rem; line-height: 1.5; }
.activity-item time { color: var(--ch-muted); font-size: .7rem; }
.activity-item a { font-family: "JetBrains Mono", monospace; font-size: .7rem; }

.team-list { display: grid; gap: 14px; }

.team-row {
  display: grid;
  grid-template-columns: 42px 1fr auto;
  gap: 12px;
  align-items: center;
}

.team-avatar { position: relative; width: 42px; height: 42px; font-size: .7rem; }

.team-avatar i {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 11px;
  height: 11px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #35bba6;
}

.team-row strong,
.team-row small { display: block; }
.team-row strong { font-size: .78rem; }
.team-row small { margin-top: 2px; color: var(--ch-secondary); font-family: "JetBrains Mono", monospace; font-size: .7rem; text-transform: uppercase; }
.team-row button { color: var(--ch-muted); border: 0; background: none; opacity: .6; }

.section-empty {
  min-height: 70px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ch-muted);
  font-size: .76rem;
}

.section-empty i { color: var(--ch-teal); font-size: 1.15rem; }
