@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,800&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root {
  color-scheme: dark;
  --bg: #0e0e0c;
  --bg-secondary: #1a1a17;
  --panel: #1a1a17;
  --panel-hover: #20201c;
  --panel-soft: #151512;
  --ink: #ebe7da;
  --secondary: #a8a397;
  --muted: #6e6a5e;
  --disabled: #6e6a5e;
  --line: #2a2a25;
  --soft-line: rgba(61, 61, 54, .62);
  --accent: #d4a942;
  --accent-hover: #e0b84f;
  --accent-soft: rgba(212, 169, 66, .08);
  --gold: #d4a942;
  --gold-soft: rgba(212, 169, 66, .08);
  --info: #829ba1;
  --warning: #e8a542;
  --danger: #e84545;
  --purple: #a895c7;
  --ok: #7cb342;
  --line-strong: #3d3d36;
  --serif: 'Fraunces', Georgia, serif;
  --mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;
  --type-body-size: 14px;
  --type-body-weight: 400;
  --type-body-line-height: 1.55;
  --type-label-size: 11px;
  --type-label-weight: 500;
  --type-label-line-height: 1.3;
  --type-label-tracking: .15em;
  --radius: 0;
  --radius-small: 0;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

a {
  color: inherit;
}

.button {
  background: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 6px;
  color: white;
  display: inline-flex;
  font-weight: 700;
  justify-content: center;
  padding: 10px 14px;
  text-decoration: none;
}

.button.secondary,
button.secondary {
  background: white;
  border-color: var(--line);
  color: var(--ink);
}

.shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 236px 1fr;
}

.sidebar {
  background: #17221e;
  color: #f5f2ea;
  padding: 24px 18px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.brand {
  display: grid;
  gap: 4px;
}

.brand span,
.muted,
.empty {
  color: var(--muted);
}

.sidebar .brand span {
  color: #aeb9b3;
  font-size: 13px;
}

.sidebar-search input {
  background: #22332d;
  border-color: #31473f;
  color: white;
  margin: 0;
}

.sidebar-search input::placeholder {
  color: #aeb9b3;
}

nav {
  display: grid;
  gap: 6px;
}

nav a,
.link-button {
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #d7ded9;
  cursor: pointer;
  display: block;
  font: inherit;
  padding: 10px 12px;
  text-align: left;
  text-decoration: none;
}

nav a.active,
nav a:hover,
.link-button:hover {
  background: #22332d;
  color: white;
}

.content {
  padding: 32px;
}

.page-header {
  align-items: end;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  margin-bottom: 24px;
  padding-bottom: 20px;
}

h1,
h2 {
  margin: 0;
}

h1 {
  font-size: 34px;
  letter-spacing: 0;
}

h2 {
  font-size: 18px;
}

.eyebrow {
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  margin: 0 0 8px;
  text-transform: uppercase;
}

.card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px;
}

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

.quick-add {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}

button {
  background: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 6px;
  color: white;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  padding: 10px 14px;
}

button:disabled {
  background: #d9d5ca;
  border-color: #d9d5ca;
  color: #716d64;
  cursor: not-allowed;
}

label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  margin-top: 12px;
}

input {
  border: 1px solid var(--line);
  border-radius: 6px;
  display: block;
  font: inherit;
  margin-top: 6px;
  padding: 10px;
  width: 100%;
}

.login-panel {
  display: grid;
  gap: 24px;
  margin: 12vh auto 0;
  max-width: 420px;
}

.flash {
  border-radius: 6px;
  margin-bottom: 16px;
  padding: 10px 12px;
}

.flash.ok {
  background: #e5f3eb;
  color: #145a3f;
}

.flash.error {
  background: #f8e3e3;
  color: var(--danger);
}

select,
textarea {
  border: 1px solid var(--line);
  border-radius: 6px;
  display: block;
  font: inherit;
  margin-top: 6px;
  padding: 10px;
  width: 100%;
}

textarea {
  resize: vertical;
}

.stack {
  display: grid;
  gap: 18px;
}

.form-section {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  grid-template-columns: minmax(180px, 260px) 1fr;
  gap: 28px;
  padding: 22px;
}

.section-heading p {
  color: var(--muted);
  font-size: 13px;
  margin-bottom: 0;
}

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

.form-grid label,
.check-row,
.check-card {
  margin-top: 0;
}

.span-2 {
  grid-column: span 2;
}

.check-grid,
.flag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}

.check-card,
.check-row {
  align-items: center;
  display: flex;
  gap: 8px;
}

.check-card {
  background: #f7f8f6;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 12px;
}

.check-row {
  color: var(--muted);
  font-size: 12px;
  margin-top: 8px;
}

.check-card input,
.check-row input {
  display: inline;
  margin: 0;
  width: auto;
}

.form-actions,
.header-actions,
.compact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.related-links {
  display: flex;
  flex-wrap: wrap;
  font-size: 13px;
  gap: 12px;
}

.table-wrap {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow-x: auto;
}

table {
  border-collapse: collapse;
  width: 100%;
}

th,
td {
  border-bottom: 1px solid var(--line);
  padding: 14px 16px;
  text-align: left;
  vertical-align: top;
}

th {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

tbody tr:last-child td {
  border-bottom: 0;
}

.strong-link {
  color: var(--accent);
  font-weight: 700;
}

.truncate {
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.status,
.flag,
.category,
.count-badge {
  background: #eceae4;
  border-radius: 999px;
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
  text-transform: capitalize;
}

.status-active,
.flag.on {
  background: #dff1e7;
  color: #176044;
}

.status-inactive {
  color: var(--muted);
}

.status-paused {
  background: rgba(232, 165, 66, .08);
  border-color: var(--warning);
  color: var(--warning);
}

.health-good {
  background: #dff1e7;
  color: #176044;
}

.health-watch {
  background: #fff0ce;
  color: #765000;
}

.health-problem,
.health-at_risk {
  background: #f8dfdf;
  color: var(--danger);
}

.flag.danger {
  background: #f8dfdf;
  color: var(--danger);
}

.flag.warning {
  background: #fff0ce;
  color: #765000;
}

.empty-state {
  background: var(--panel);
  border: 1px dashed #c9c3b7;
  border-radius: 8px;
  padding: 48px 24px;
  text-align: center;
}

.empty-state p {
  color: var(--muted);
  margin: 10px auto 20px;
  max-width: 580px;
}

.header-meta {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.detail-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
}

.details {
  display: grid;
  grid-template-columns: minmax(130px, 180px) 1fr;
  margin: 18px 0 0;
}

.details dt,
.details dd {
  border-top: 1px solid var(--line);
  margin: 0;
  padding: 10px 0;
}

.details dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.details dd {
  min-width: 0;
}

.pre-line {
  white-space: pre-line;
}

.access-codes {
  border-top: 1px solid var(--line);
  margin-top: 18px;
}

.code-row {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  min-height: 58px;
  gap: 12px;
}

.field-label {
  color: var(--muted);
  display: block;
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 3px;
  text-transform: uppercase;
}

code {
  font-size: 15px;
}

button.small {
  font-size: 12px;
  padding: 6px 9px;
}

.danger-button {
  background: white;
  border-color: #e1bcbc;
  color: var(--danger);
}

.top-gap {
  margin-top: 16px;
}

.inline-feedback {
  color: var(--accent);
  font-size: 12px;
  min-height: 18px;
}

.card-heading,
.note-meta {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.note-list {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.note {
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.note time {
  color: var(--muted);
  font-size: 11px;
}

.note p {
  margin: 10px 0;
}

details summary {
  color: var(--accent);
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

details form {
  margin-top: 10px;
}

.filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
}

.filter-link {
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  padding: 7px 10px;
  text-decoration: none;
}

.filter-link.active {
  background: var(--ink);
  border-color: var(--ink);
  color: white;
}

.section-title {
  margin-bottom: 10px;
}

.empty-state.compact {
  padding: 28px 20px;
}

.visit-form {
  max-width: 1000px;
}

.status-completed {
  background: #dff1e7;
  color: #176044;
}

.status-cancelled,
.status-missed {
  background: #f8dfdf;
  color: var(--danger);
}

.status-open {
  background: #fff0ce;
  color: #765000;
}

.status-resolved {
  background: #dff1e7;
  color: #176044;
}

.severity {
  border-radius: 999px;
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
  text-transform: capitalize;
}

.severity-low {
  background: #e8eeeb;
  color: #40564c;
}

.severity-medium {
  background: #fff0ce;
  color: #765000;
}

.severity-high,
.severity-critical {
  background: #f8dfdf;
  color: var(--danger);
}

.severity-critical {
  outline: 1px solid var(--danger);
}

.overdue-text {
  color: var(--danger);
  font-weight: 700;
}

.resolve-panel {
  margin-bottom: 16px;
}

.issue-timeline-layout {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
}

.timeline {
  margin-top: 16px;
}

.timeline-entry {
  display: grid;
  gap: 12px;
  grid-template-columns: 12px 1fr;
  padding-bottom: 18px;
  position: relative;
}

.timeline-entry:not(:last-child)::before {
  background: var(--line);
  content: "";
  left: 5px;
  position: absolute;
  top: 12px;
  bottom: 0;
  width: 2px;
}

.timeline-marker {
  background: var(--accent);
  border: 2px solid white;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--accent);
  height: 10px;
  margin-top: 5px;
  width: 10px;
  z-index: 1;
}

.timeline-entry p {
  margin: 8px 0 0;
}

.timeline-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.timeline-actions form {
  margin: 0;
}

.timeline-edit-form {
  background: #f7f8f6;
  border: 1px solid var(--line);
  border-radius: 6px;
  margin-top: 12px;
  padding: 12px;
}

.resolve-with-update {
  margin-top: 14px;
}

.last-update-snippet {
  color: var(--muted);
  font-size: 12px;
  margin-top: 6px;
}

.search-page-form {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr auto;
  margin-bottom: 20px;
}

.search-page-form input {
  margin: 0;
}

.search-group {
  margin-bottom: 16px;
}

.priority-card {
  border-color: #d69552;
  margin-bottom: 16px;
}

.finance-guide {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
}

.finance-guide p {
  color: var(--muted);
  margin: 0;
}

.conditional-fields {
  background: #f7f8f6;
  border: 1px solid var(--line);
  border-radius: 6px;
  margin-top: 16px;
  padding: 16px;
}

.conditional-fields[hidden] {
  display: none;
}

.record-payment-panel {
  max-width: 1000px;
}

.regular-price-section {
  padding: 14px 18px;
}

.regular-price-section .card-heading {
  align-items: start;
}

.regular-price-section .card-heading p {
  margin: 5px 0 0;
}

.regular-price-value {
  font-size: 20px;
  white-space: nowrap;
}

.regular-price-history {
  border-top: 1px solid var(--line);
  margin-top: 18px;
  padding-top: 16px;
}

.year-selector {
  align-items: end;
  display: flex;
  gap: 10px;
  margin-bottom: 16px;
  max-width: 220px;
}

.year-selector label {
  margin: 0;
}

.year-selector select {
  margin-top: 6px;
}

.year-context {
  color: var(--muted);
  font-size: 13px;
  margin: -6px 0 14px;
}

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

.summary-card {
  display: grid;
  gap: 6px;
}

.summary-card span,
.monthly-grid span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.summary-card strong {
  font-size: 24px;
}

.monthly-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(12, minmax(72px, 1fr));
  margin-top: 16px;
  overflow-x: auto;
}

.monthly-grid div {
  background: #f7f8f6;
  display: grid;
  gap: 4px;
  padding: 10px;
}

.embedded-table {
  border: 0;
  border-radius: 0;
  margin-top: 14px;
}

.small-link {
  font-size: 12px;
  padding: 6px 9px;
}

.finance-details {
  grid-template-columns: minmax(100px, 130px) 1fr;
}

.cleared-attention {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
  padding-top: 10px;
}

.cleared-attention form {
  margin: 0;
}

.action-list {
  display: grid;
  margin-top: 12px;
}

.action-row {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 12px 0;
}

.brief-shell {
  margin: 0 auto;
  max-width: 820px;
}

.brief-toolbar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
  margin-bottom: 8px;
}

.brief-toggle {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 9px 12px;
}

.brief-toggle input {
  display: inline;
  margin: 0;
  width: auto;
}

.brief {
  background: white;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.brief-header {
  background: #17221e;
  color: white;
  padding: 28px;
}

.brief-header .eyebrow {
  color: #8fd6b9;
}

.brief-address {
  color: #cad5cf;
  margin: 8px 0 16px;
  white-space: pre-line;
}

.brief-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.brief-facts span {
  background: #22332d;
  border-radius: 4px;
  font-size: 12px;
  padding: 6px 8px;
}

.brief-section {
  border-top: 1px solid var(--line);
  padding: 22px 28px;
}

.brief-list {
  display: grid;
  grid-template-columns: minmax(130px, 180px) 1fr;
  margin: 14px 0 0;
}

.brief-list dt,
.brief-list dd {
  border-top: 1px solid var(--line);
  margin: 0;
  padding: 9px 0;
}

.brief-list dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.sensitive-note {
  color: var(--muted);
  font-size: 12px;
}

.brief-note {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 4px;
  padding: 10px 0;
}

.brief-alert {
  background: #f3f1eb;
  border-left: 4px solid var(--accent);
  display: grid;
  gap: 5px;
  margin-top: 10px;
  padding: 12px;
}

.brief-alert.critical {
  background: #f8dfdf;
  border-left-color: var(--danger);
}

.brief-alert.warning {
  background: #fff0ce;
  border-left-color: #b87918;
}

@media (max-width: 760px) {
  .shell {
    display: block;
  }

  .sidebar {
    position: static;
  }

  .content {
    padding: 20px;
  }

  .grid,
  .summary-grid {
    grid-template-columns: 1fr;
  }

  .monthly-grid {
    grid-template-columns: repeat(6, minmax(74px, 1fr));
  }

  .page-header {
    align-items: stretch;
    gap: 16px;
  }

  .page-header,
  .form-section {
    display: grid;
    grid-template-columns: 1fr;
  }

  .form-grid,
  .detail-grid {
    grid-template-columns: 1fr;
  }

  .span-2 {
    grid-column: span 1;
  }

  .details {
    grid-template-columns: 1fr;
  }

  .details dt {
    border-bottom: 0;
    padding-bottom: 0;
  }

  .details dd {
    border-top: 0;
    padding-top: 3px;
  }

  .action-row {
    align-items: stretch;
    display: grid;
  }

  .brief-toolbar {
    align-items: stretch;
    display: grid;
  }

  .brief-header,
  .brief-section {
    padding: 20px;
  }

  .brief-list {
    grid-template-columns: 1fr;
  }

  .brief-list dt {
    border-bottom: 0;
    padding-bottom: 0;
  }

  .brief-list dd {
    border-top: 0;
    padding-top: 3px;
  }

  .search-page-form {
    grid-template-columns: 1fr;
  }

  .issue-timeline-layout {
    grid-template-columns: 1fr;
  }
}

/* Premium dark direction: first-pass visual system */

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

body {
  min-width: 320px;
}

a,
button,
input,
select,
textarea {
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--info);
  outline-offset: 2px;
}

.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.shell {
  grid-template-columns: 248px minmax(0, 1fr);
}

.sidebar {
  background:
    radial-gradient(circle at 10% 0%, rgba(34, 197, 94, .10), transparent 32%),
    var(--bg-secondary);
  border-right: 1px solid var(--soft-line);
  gap: 24px;
  min-height: 100vh;
  padding: 24px 16px;
  position: sticky;
  top: 0;
}

.brand {
  align-items: center;
  display: flex;
  gap: 12px;
  grid-template-columns: none;
  padding: 0 6px 10px;
}

.brand > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.brand strong {
  font-size: 15px;
  letter-spacing: -.01em;
}

.brand-mark {
  align-items: center;
  background: var(--accent-soft);
  border: 1px solid rgba(34, 197, 94, .3);
  border-radius: 11px;
  color: #86efac;
  display: inline-flex;
  flex: 0 0 40px;
  font-size: 12px;
  font-weight: 800;
  height: 40px;
  justify-content: center;
  letter-spacing: .08em;
}


.sidebar .brand span:not(.brand-mark) {
  color: var(--muted);
  line-height: 1.25;
}

.primary-nav {
  gap: 4px;
}

.primary-nav a,
.link-button {
  border: 1px solid transparent;
  border-radius: var(--radius-small);
  color: var(--secondary);
  font-size: 14px;
  padding: 10px 12px;
}

.primary-nav a.active {
  background: var(--accent-soft);
  border-color: rgba(34, 197, 94, .2);
  color: #bbf7d0;
}

.primary-nav a:hover,
.link-button:hover {
  background: rgba(148, 163, 184, .08);
  color: var(--ink);
}

.sidebar-search {
  border-top: 1px solid var(--soft-line);
  padding-top: 20px;
}

.sidebar-search input {
  background: rgba(15, 23, 42, .72);
  border-color: var(--line);
  border-radius: var(--radius-small);
  color: var(--ink);
  font-size: 13px;
  padding: 11px 12px;
}

.sidebar-search input:focus {
  background: var(--bg);
  border-color: var(--info);
}

.sidebar-footer {
  margin-top: auto;
}

.sidebar-footer .link-button {
  width: 100%;
}

.content {
  margin: 0 auto;
  max-width: 1640px;
  padding: 28px 32px 48px;
  width: 100%;
}

.page-header {
  align-items: center;
  border-bottom-color: var(--soft-line);
  margin-bottom: 22px;
  padding-bottom: 20px;
}

h1 {
  font-size: clamp(28px, 3vw, 34px);
  letter-spacing: -.035em;
  line-height: 1.12;
}

h2 {
  color: var(--ink);
  font-size: 18px;
  letter-spacing: -.015em;
}

.eyebrow {
  color: #86efac;
  letter-spacing: .11em;
}

.card,
.form-section,
.table-wrap,
.login-panel .card {
  background: linear-gradient(180deg, rgba(30, 41, 59, .98), rgba(24, 34, 53, .98));
  border-color: var(--soft-line);
  border-radius: var(--radius);
}

.card {
  padding: 18px;
}

.card:hover {
  border-color: rgba(148, 163, 184, .28);
}

.button,
button {
  background: var(--accent);
  border-color: var(--accent);
  border-radius: var(--radius-small);
  color: #052e16;
  font-size: 13px;
  min-height: 38px;
  padding: 9px 13px;
}

.button:hover,
button:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
  color: #f0fdf4;
}

.button.secondary,
button.secondary {
  background: rgba(15, 23, 42, .36);
  border-color: var(--line);
  color: var(--secondary);
}

.button.secondary:hover,
button.secondary:hover {
  background: var(--panel-hover);
  border-color: #475569;
  color: var(--ink);
}

button:disabled {
  background: rgba(100, 116, 139, .18);
  border-color: rgba(100, 116, 139, .3);
  color: var(--disabled);
}

.danger-button {
  background: rgba(239, 68, 68, .08);
  border-color: rgba(239, 68, 68, .38);
  color: #fca5a5;
}

.danger-button:hover {
  background: rgba(239, 68, 68, .18);
  border-color: var(--danger);
  color: #fecaca;
}

input,
select,
textarea {
  background: rgba(15, 23, 42, .58);
  border-color: var(--line);
  border-radius: var(--radius-small);
  color: var(--ink);
}

input::placeholder,
textarea::placeholder {
  color: var(--disabled);
}

input:focus,
select:focus,
textarea:focus {
  background: rgba(15, 23, 42, .88);
  border-color: var(--info);
}

.check-card,
.conditional-fields,
.timeline-edit-form,
.monthly-grid div {
  background: rgba(15, 23, 42, .38);
  border-color: var(--soft-line);
}

.flash {
  border: 1px solid var(--soft-line);
  border-radius: var(--radius-small);
}

.flash.ok {
  background: var(--accent-soft);
  border-color: rgba(34, 197, 94, .28);
  color: #bbf7d0;
}

.flash.error {
  background: rgba(239, 68, 68, .12);
  border-color: rgba(239, 68, 68, .3);
  color: #fecaca;
}

.strong-link {
  color: var(--ink);
  text-decoration-color: transparent;
  text-underline-offset: 3px;
}

.strong-link:hover {
  color: #86efac;
  text-decoration-color: rgba(134, 239, 172, .5);
}

.related-links a,
details summary {
  color: #7dd3fc;
}

.empty {
  font-size: 13px;
  margin: 12px 0 0;
}

.status,
.flag,
.category,
.count-badge,
.severity {
  border: 1px solid transparent;
  font-size: 11px;
  letter-spacing: .01em;
}

.status-active,
.status-completed,
.status-received,
.status-resolved,
.health-good,
.flag.on {
  background: var(--accent-soft);
  border-color: rgba(34, 197, 94, .2);
  color: #86efac;
}

.status-open,
.status-scheduled {
  background: rgba(56, 189, 248, .11);
  border-color: rgba(56, 189, 248, .2);
  color: #7dd3fc;
}

.health-watch,
.flag.warning,
.severity-medium {
  background: rgba(245, 158, 11, .12);
  border-color: rgba(245, 158, 11, .22);
  color: #fbbf24;
}

.health-problem,
.health-at_risk,
.status-cancelled,
.status-missed,
.flag.danger,
.severity-high,
.severity-critical {
  background: rgba(239, 68, 68, .12);
  border-color: rgba(239, 68, 68, .24);
  color: #fca5a5;
}

.severity-low,
.category,
.count-badge {
  background: rgba(148, 163, 184, .10);
  border-color: var(--soft-line);
  color: var(--secondary);
}

.overdue-text {
  color: #fca5a5;
}

.table-wrap {
  box-shadow: 0 12px 32px rgba(2, 6, 23, .14);
}

th,
td {
  border-bottom-color: var(--soft-line);
}

tbody tr:hover {
  background: rgba(148, 163, 184, .045);
}

.details dt,
.details dd,
.note,
.access-codes,
.code-row,
.action-row,
.brief-section,
.brief-list dt,
.brief-list dd,
.brief-note {
  border-color: var(--soft-line);
}

.code-row code {
  color: #e2e8f0;
}

.empty-state {
  background: rgba(30, 41, 59, .56);
  border-color: var(--line);
  border-radius: var(--radius);
}

/* Today command center */

.today-header {
  background:
    radial-gradient(circle at 92% 20%, rgba(34, 197, 94, .12), transparent 28%),
    linear-gradient(135deg, rgba(30, 41, 59, .7), rgba(15, 23, 42, .15));
  border: 1px solid var(--soft-line);
  border-radius: var(--radius);
  padding: 22px;
}

.today-quick-add {
  background: rgba(17, 24, 39, .68);
  border: 1px solid var(--soft-line);
  border-radius: var(--radius);
  padding: 12px;
}

.today-quick-add .button:not(:first-child) {
  background: rgba(30, 41, 59, .8);
  border-color: var(--line);
  color: var(--secondary);
}

.today-quick-add .button:not(:first-child):hover {
  background: var(--panel-hover);
  color: var(--ink);
}

.today-urgent {
  background:
    linear-gradient(90deg, rgba(239, 68, 68, .09), transparent 28%),
    linear-gradient(180deg, rgba(30, 41, 59, .98), rgba(24, 34, 53, .98));
  border-color: rgba(239, 68, 68, .38);
  box-shadow: inset 4px 0 0 rgba(239, 68, 68, .72);
  margin-bottom: 18px;
}

.today-urgent .card-heading h2 {
  color: #fecaca;
}

.today-urgent .count-badge {
  background: rgba(239, 68, 68, .16);
  border-color: rgba(239, 68, 68, .3);
  color: #fecaca;
}

.today-grid {
  align-items: start;
}

.today-section {
  min-width: 0;
}

.today-section > h2 {
  border-bottom: 1px solid var(--soft-line);
  padding-bottom: 12px;
}

.today-visits {
  order: 1;
}

.today-expected {
  order: 2;
}

.today-open-issues {
  order: 3;
}

.today-week {
  order: 4;
}

.today-upcoming {
  order: 5;
}

.today-followups {
  order: 6;
}

.today-watchlist {
  order: 7;
}

.today-contracts {
  order: 8;
}

.today-relationships {
  order: 9;
}

.action-row {
  align-items: flex-start;
  padding: 14px 0;
}

.action-row > :first-child {
  min-width: 0;
}

.action-row .compact-actions {
  flex: 0 0 auto;
  justify-content: flex-end;
}

.action-row .compact-actions .button,
.action-row .compact-actions button {
  min-height: 32px;
  padding: 6px 9px;
}

/* Client operational memory */

.client-detail-header {
  background:
    radial-gradient(circle at 90% 15%, rgba(167, 139, 250, .10), transparent 28%),
    rgba(30, 41, 59, .46);
  border: 1px solid var(--soft-line);
  border-radius: var(--radius);
  padding: 22px;
}

.client-memory {
  gap: 20px;
  grid-template-columns: minmax(0, 1.85fr) minmax(290px, .8fr);
}

.client-memory-main,
.client-memory-sidebar {
  gap: 16px;
}

.memory-card {
  overflow: hidden;
  position: relative;
}

.memory-card::before {
  background: var(--info);
  border-radius: 0 0 4px 0;
  content: "";
  height: 3px;
  left: 0;
  opacity: .65;
  position: absolute;
  top: 0;
  width: 58px;
}

.contacts-card::before {
  background: var(--purple);
}

.access-card::before {
  background: var(--warning);
}

.instructions-card::before {
  background: var(--accent);
}

.safety-card::before,
.issues-card::before {
  background: var(--danger);
}

.details {
  grid-template-columns: minmax(135px, 175px) minmax(0, 1fr);
}

.details dt {
  color: var(--muted);
  letter-spacing: .02em;
}

.note {
  background: rgba(15, 23, 42, .22);
  border: 1px solid var(--soft-line);
  border-radius: var(--radius-small);
  padding: 13px;
}

.note-list {
  gap: 10px;
}

.sticky-note-card {
  border-color: rgba(34, 197, 94, .23);
  position: sticky;
  top: 24px;
}

/* Mobile-friendly operational brief */

.operational-brief {
  max-width: 900px;
}

.brief-toolbar {
  background: rgba(17, 24, 39, .88);
  border: 1px solid var(--soft-line);
  border-radius: var(--radius);
  padding: 10px;
  position: sticky;
  top: 12px;
  z-index: 5;
}

.brief-toggle {
  background: rgba(15, 23, 42, .48);
  border-color: var(--line);
  border-radius: var(--radius-small);
  color: var(--secondary);
  min-height: 38px;
}

.brief {
  background: linear-gradient(180deg, rgba(30, 41, 59, .98), rgba(17, 24, 39, .98));
  border-color: var(--soft-line);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(2, 6, 23, .28);
}

.brief-header {
  background:
    radial-gradient(circle at 90% 12%, rgba(34, 197, 94, .16), transparent 30%),
    linear-gradient(135deg, #182235, #111827);
  padding: 30px;
}

.brief-address {
  color: var(--secondary);
}

.brief-facts span {
  background: rgba(148, 163, 184, .10);
  border: 1px solid var(--soft-line);
  border-radius: 999px;
  color: var(--secondary);
  padding: 6px 10px;
}

.brief-section {
  padding: 22px 30px;
}

.brief-section h2 {
  align-items: center;
  display: flex;
  gap: 9px;
}

.brief-section h2::before {
  background: var(--info);
  border-radius: 999px;
  content: "";
  height: 8px;
  width: 8px;
}

.brief-access h2::before {
  background: var(--warning);
}

.brief-cleaning h2::before {
  background: var(--accent);
}

.brief-safety h2::before,
.brief-issues h2::before {
  background: var(--danger);
}

.brief-payment h2::before {
  background: var(--purple);
}

.sensitive-note {
  background: rgba(245, 158, 11, .08);
  border: 1px solid rgba(245, 158, 11, .18);
  border-radius: var(--radius-small);
  color: #fcd34d;
  padding: 9px 11px;
}

.brief-alert {
  background: rgba(56, 189, 248, .08);
  border: 1px solid rgba(56, 189, 248, .16);
  border-left: 4px solid var(--info);
  border-radius: var(--radius-small);
}

.brief-alert.critical {
  background: rgba(239, 68, 68, .10);
  border-color: rgba(239, 68, 68, .2);
  border-left-color: var(--danger);
}

.brief-alert.warning {
  background: rgba(245, 158, 11, .09);
  border-color: rgba(245, 158, 11, .2);
  border-left-color: var(--warning);
}

@media (max-width: 980px) {
  .shell {
    grid-template-columns: 210px minmax(0, 1fr);
  }

  .content {
    padding: 24px;
  }

  .client-memory {
    grid-template-columns: 1fr;
  }

  .sticky-note-card {
    position: static;
  }

  .today-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .sidebar {
    border-bottom: 1px solid var(--soft-line);
    border-right: 0;
    min-height: auto;
    padding: 14px 16px;
    position: static;
  }

  .brand {
    padding: 0;
  }

  .primary-nav {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .primary-nav a {
    flex: 0 0 auto;
  }

  .sidebar-search {
    border-top: 0;
    padding-top: 0;
  }

  .sidebar-footer {
    display: none;
  }

  .content {
    padding: 18px 16px 36px;
  }

  .today-header,
  .client-detail-header {
    padding: 10px;
  }

  .header-actions,
  .quick-add,
  .compact-actions {
    align-items: stretch;
  }

  .header-actions .button,
  .quick-add .button {
    flex: 1 1 auto;
  }

  .action-row .compact-actions {
    justify-content: flex-start;
  }

  .brief-toolbar {
    position: static;
  }

  .brief-toolbar .button,
  .brief-toolbar button,
  .brief-toggle {
    width: 100%;
  }

  .brief-header,
  .brief-section {
    padding: 20px 18px;
  }

  .brief-facts {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .details {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .brief-facts {
    grid-template-columns: 1fr;
  }

  .action-row .compact-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .action-row .compact-actions .button,
  .action-row .compact-actions button {
    width: 100%;
  }
}

/* Editorial operational direction inspired by the original local CRM */

body {
  background:
    linear-gradient(rgba(255, 255, 255, .012) 1px, transparent 1px),
    var(--bg);
  background-size: 100% 48px;
  font-family: var(--mono);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  letter-spacing: 0;
  line-height: var(--type-body-line-height);
}

.shell {
  grid-template-columns: 188px minmax(0, 1fr);
}

.sidebar {
  background: var(--bg-secondary);
  border-right: 1px solid var(--line);
  gap: 20px;
  padding: 18px 12px 14px;
}

.brand {
  border-bottom: 1px solid var(--line);
  gap: 9px;
  margin: 0 -12px;
  padding: 0 14px 17px;
}

.brand-mark {
  background: transparent;
  border-color: var(--gold);
  border-radius: 0;
  color: var(--gold);
  flex-basis: 30px;
  font-family: var(--serif);
  font-size: 11px;
  height: 30px;
  letter-spacing: -.02em;
}

.brand strong {
  font-family: var(--serif);
  font-size: 16px;
  font-style: italic;
  font-weight: 600;
}

.sidebar .brand span:not(.brand-mark) {
  font-size: 8px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.primary-nav {
  gap: 1px;
}

.primary-nav::before,
.sidebar-search::before {
  color: var(--disabled);
  content: "MODULES";
  display: block;
  font-size: 8px;
  letter-spacing: .18em;
  margin: 0 9px 8px;
}

.primary-nav a,
.link-button {
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0;
  color: #9b9d93;
  font-size: 10px;
  letter-spacing: .13em;
  min-height: 32px;
  padding: 9px 10px;
  text-transform: uppercase;
}

.primary-nav a.active {
  background: var(--gold-soft);
  border-color: var(--gold);
  color: #e7d78d;
}

.primary-nav a:hover,
.link-button:hover {
  background: rgba(255, 255, 255, .025);
  color: var(--ink);
}

.sidebar-search {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.sidebar-search::before {
  content: "SEARCH";
  margin-left: 0;
}

.sidebar-search input {
  background: #10110f;
  border-color: var(--line);
  border-radius: 0;
  font-size: 10px;
  letter-spacing: .04em;
  padding: 9px 8px;
}

.sidebar-footer {
  border-top: 1px solid var(--line);
  margin: auto -12px 0;
  padding: 12px 12px 0;
}

.content {
  max-width: 1500px;
  padding: 28px 36px 54px;
}

.page-header {
  align-items: flex-end;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  margin-bottom: 16px;
  padding: 0 0 20px;
}

h1 {
  font-family: var(--serif);
  font-size: clamp(31px, 3vw, 42px);
  font-weight: 500;
  letter-spacing: -.035em;
}

h2 {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .015em;
}

.eyebrow,
.section-kicker,
.quick-add-label {
  color: var(--muted);
  display: block;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .19em;
  line-height: 1.4;
  text-transform: uppercase;
}

.eyebrow {
  margin-bottom: 7px;
}

.page-intro {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
  margin: 8px 0 0;
  max-width: 720px;
}

.card,
.form-section,
.table-wrap,
.login-panel .card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
}

.card {
  padding: 15px;
}

.card:hover {
  border-color: #44463e;
}

.button,
button {
  background: var(--gold);
  border-color: var(--gold);
  border-radius: 0;
  color: #18160b;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .11em;
  min-height: 31px;
  padding: 7px 10px;
  text-transform: uppercase;
}

.button:hover,
button:hover {
  background: #e3bd45;
  border-color: #e3bd45;
  color: #0b0c0a;
}

.button.secondary,
button.secondary {
  background: transparent;
  border-color: #404239;
  color: #b2b3aa;
}

.button.secondary:hover,
button.secondary:hover {
  background: rgba(255, 255, 255, .035);
  border-color: #686a60;
  color: var(--ink);
}

.strong-link {
  color: var(--ink);
  font-size: 12px;
  letter-spacing: .015em;
}

.strong-link:hover {
  color: var(--gold);
}

.status,
.flag,
.category,
.count-badge,
.severity {
  background: transparent;
  border-color: #45473f;
  border-radius: 0;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .11em;
  padding: 3px 6px;
  text-transform: uppercase;
}

.status-active,
.status-completed,
.status-received,
.status-resolved,
.health-good,
.flag.on {
  background: transparent;
  border-color: rgba(121, 184, 58, .45);
  color: #8cc94e;
}

.status-open,
.status-scheduled {
  background: transparent;
  border-color: rgba(130, 155, 161, .42);
  color: #a7b8bb;
}

.health-watch,
.flag.warning,
.severity-medium {
  background: transparent;
  border-color: rgba(215, 174, 50, .45);
  color: #dfbd53;
}

.health-problem,
.health-at_risk,
.status-cancelled,
.status-missed,
.flag.danger,
.severity-high,
.severity-critical {
  background: transparent;
  border-color: rgba(214, 90, 82, .48);
  color: #e67870;
}

.section-heading.operational-heading,
.operational-heading {
  align-items: flex-end;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  margin: -1px 0 0;
  padding: 0 0 11px;
}

.operational-heading h2 {
  margin-top: 3px;
}

.section-count {
  color: var(--muted);
  font-family: var(--serif);
  font-size: 18px;
  font-style: italic;
}

.tone-green .section-kicker {
  color: #83b94d;
}

.tone-amber .section-kicker {
  color: var(--gold);
}

.tone-danger .section-kicker {
  color: #d66b63;
}

.empty {
  color: #686a62;
  font-size: 10px;
  letter-spacing: .04em;
  margin: 10px 0 0;
}

/* Today: asymmetrical operations board */

.today-header {
  min-height: 112px;
}

.today-header h1::after {
  color: var(--gold);
  content: " ·";
}

.today-quick-add {
  align-items: center;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  gap: 7px;
  margin-bottom: 20px;
  padding: 0 0 12px;
}

.quick-add-label {
  margin-right: 10px;
}

.today-quick-add .button,
.today-quick-add .button:not(:first-child) {
  background: transparent;
  border-color: #3a3c35;
  color: #a8aaa0;
}

.today-quick-add .button:first-of-type {
  border-color: rgba(215, 174, 50, .46);
  color: #d9bd62;
}

.today-quick-add .button:hover,
.today-quick-add .button:not(:first-child):hover {
  background: var(--gold-soft);
  border-color: var(--gold);
  color: #ead57f;
}

.today-urgent {
  background: #151512;
  border-color: #4a332d;
  border-left: 2px solid var(--danger);
  box-shadow: none;
  margin-bottom: 14px;
  padding: 16px 18px 10px;
}

.today-urgent .operational-heading {
  border-bottom-color: #4a332d;
}

.today-urgent .card-heading h2,
.today-urgent h2 {
  color: var(--ink);
}

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

.today-section {
  min-height: 0;
  padding: 15px 16px 9px;
}

.today-visits {
  grid-column: 1 / span 7;
}

.today-expected {
  border-color: #46422f;
  grid-column: 8 / -1;
}

.today-open-issues {
  grid-column: 1 / span 7;
}

.today-week {
  grid-column: 8 / -1;
}

.today-upcoming {
  grid-column: 1 / span 7;
}

.today-followups {
  grid-column: 8 / -1;
}

.today-watchlist {
  grid-column: 1 / span 4;
}

.today-contracts {
  grid-column: 5 / span 4;
}

.today-relationships {
  grid-column: 9 / -1;
  opacity: .82;
}

.today-expected .section-count {
  color: #86bd4c;
}

.action-list {
  margin-top: 0;
}

.action-row {
  border-top: 1px solid #2c2e28;
  gap: 12px;
  min-height: 52px;
  padding: 10px 0;
}

.operational-heading + .action-list .action-row:first-child {
  border-top: 0;
}

.action-row .muted,
.last-update-snippet {
  color: #777970;
  font-size: 9px;
  letter-spacing: .025em;
  margin-top: 4px;
}

.action-row .compact-actions {
  opacity: .78;
}

.action-row:hover .compact-actions {
  opacity: 1;
}

.action-row .compact-actions .button,
.action-row .compact-actions button {
  font-size: 8px;
  min-height: 26px;
  padding: 5px 7px;
}

.overdue-text {
  color: #d86a62;
  font-size: 9px;
}

/* Client detail: editorial operational memory */

.client-detail-header {
  min-height: 126px;
}

.client-detail-header .header-meta {
  margin-top: 13px;
}

.header-meta {
  color: #8d8f85;
  font-size: 10px;
  letter-spacing: .06em;
}

.header-actions {
  justify-content: flex-end;
}

.client-memory {
  gap: 12px;
  grid-template-columns: minmax(0, 2fr) minmax(260px, .72fr);
}

.client-memory-main,
.client-memory-sidebar {
  gap: 12px;
}

.memory-card {
  padding: 16px 18px;
}

.memory-card::before {
  display: none;
}

.basic-information-card {
  border-top: 2px solid #74776d;
}

.contacts-card {
  border-top: 2px solid var(--gold);
}

.access-card {
  border-top: 2px solid #b88d29;
}

.instructions-card {
  border-top: 2px solid #6fa539;
}

.safety-card,
.issues-card {
  border-top: 2px solid #9e4b45;
}

.details {
  grid-template-columns: minmax(128px, 165px) minmax(0, 1fr);
  margin-top: 10px;
}

.details dt,
.details dd {
  border-top-color: #2d2f29;
  padding: 8px 0;
}

.details dt,
.field-label {
  color: #707269;
  font-size: 8px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.details dd {
  color: #cfcdc4;
  font-size: 11px;
}

.access-codes {
  margin-top: 10px;
}

.code-row {
  min-height: 48px;
}

.code-row code {
  color: var(--gold);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .08em;
}

.note {
  background: transparent;
  border: 0;
  border-bottom: 1px solid #2d2f29;
  border-radius: 0;
  padding: 10px 0;
}

.note-list {
  gap: 0;
  margin-top: 7px;
}

.sticky-note-card {
  background: #171813;
  border-top: 2px solid var(--gold);
  top: 16px;
}

label {
  color: #898b81;
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

input,
select,
textarea {
  background: #11120f;
  border-color: #3b3d36;
  border-radius: 0;
  color: #d7d5cc;
  font-size: 11px;
}

/* Visit brief: compact field dossier */

.operational-brief {
  max-width: 780px;
}

.brief-toolbar {
  background: #11120f;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 8px;
  top: 8px;
}

.brief-toggle {
  background: transparent;
  border-radius: 0;
  font-size: 9px;
  letter-spacing: .08em;
  min-height: 31px;
  text-transform: uppercase;
}

.brief {
  background: #151613;
  border-color: #393b34;
  border-radius: 0;
  box-shadow: none;
}

.brief-header {
  background:
    linear-gradient(90deg, rgba(215, 174, 50, .07), transparent 38%),
    #121310;
  border-bottom: 1px solid #444137;
  padding: 28px 30px 24px;
}

.brief-header h1 {
  font-size: clamp(32px, 6vw, 48px);
}

.brief-address {
  color: #a2a298;
  font-size: 11px;
  margin: 9px 0 17px;
}

.brief-facts {
  border-top: 1px solid #36382f;
  gap: 0;
  padding-top: 12px;
}

.brief-facts span {
  background: transparent;
  border: 0;
  border-right: 1px solid #36382f;
  border-radius: 0;
  color: #b6b5ac;
  font-size: 9px;
  letter-spacing: .06em;
  padding: 3px 12px;
}

.brief-facts span:first-child {
  padding-left: 0;
}

.brief-section {
  border-top-color: #31332c;
  padding: 18px 30px 20px;
}

.brief-section h2 {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 500;
  margin-top: 3px;
}

.brief-section h2::before {
  display: none;
}

.brief-list {
  grid-template-columns: minmax(118px, 155px) 1fr;
  margin-top: 10px;
}

.brief-list dt,
.brief-list dd {
  border-top-color: #2d2f29;
  padding: 7px 0;
}

.brief-list dt {
  color: #74766c;
  font-size: 8px;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.brief-list dd {
  color: #ceccc3;
  font-size: 11px;
}

.sensitive-note {
  background: transparent;
  border: 1px solid #4b432a;
  border-radius: 0;
  color: #d2b85f;
  font-size: 9px;
}

.brief-alert {
  background: transparent;
  border-color: #41433b;
  border-left-width: 2px;
  border-radius: 0;
  font-size: 10px;
}

.brief-alert.critical,
.brief-alert.warning {
  background: transparent;
}

.brief-note {
  font-size: 10px;
}

@media (max-width: 1100px) {
  .today-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .today-section {
    grid-column: auto;
  }
}

@media (max-width: 760px) {
  body {
    background-size: 100% 40px;
  }

  .sidebar {
    padding: 12px;
  }

  .brand {
    border-bottom: 0;
    margin: 0;
    padding: 0;
  }

  .primary-nav::before,
  .sidebar-search::before {
    display: none;
  }

  .primary-nav a {
    border: 1px solid #34362f;
    padding: 8px 9px;
  }

  .primary-nav a.active {
    border-color: var(--gold);
  }

  .content {
    padding: 18px 14px 36px;
  }

  .today-grid {
    grid-template-columns: 1fr;
  }

  .today-section {
    grid-column: 1;
  }

  .quick-add-label {
    flex: 0 0 100%;
    margin-bottom: 2px;
  }

  .client-memory {
    grid-template-columns: 1fr;
  }

  .header-actions {
    justify-content: flex-start;
  }

  .brief-facts {
    grid-template-columns: 1fr 1fr;
  }

  .brief-facts span {
    border-bottom: 1px solid #30322b;
    border-right: 0;
    padding: 7px 4px;
  }

  .brief-list {
    grid-template-columns: 1fr;
  }
}

/* Today view: compact operational command center */

.content:has(.today-command-center) {
  background:
    radial-gradient(circle at 92% 0, rgba(116, 184, 74, .055), transparent 24rem),
    #050807;
}

.today-command-center {
  --today-bg: #050807;
  --today-panel: #111614;
  --today-panel-elevated: #171d1a;
  --today-border: rgba(212, 175, 55, .18);
  --today-border-soft: rgba(148, 163, 184, .16);
  --today-text: #f3f1e8;
  --today-secondary: #a8a29a;
  --today-muted: #78716c;
  --today-gold: #d4af37;
  --today-green: #74b84a;
  --today-danger: #ef4444;
  --today-warning: #f59e0b;
  color: var(--today-text);
  font-size: 15px;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 1540px;
}

.today-page-header {
  border-bottom: 1px solid var(--today-border);
  padding: 4px 0 24px;
}

.today-page-label,
.command-section-label {
  color: var(--today-gold);
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.today-page-header h1 {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.02;
  margin: 9px 0 10px;
}

.today-page-header p {
  color: var(--today-secondary);
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
}

.today-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px 0 18px;
}

.btn-primary-compact,
.btn-secondary-compact {
  align-items: center;
  border: 1px solid;
  border-radius: 3px;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1.2;
  min-height: 34px;
  padding: 8px 13px;
  text-decoration: none;
  white-space: nowrap;
}

.btn-primary-compact {
  background: var(--today-green);
  border-color: var(--today-green);
  color: #071006;
}

.btn-primary-compact:hover {
  background: #86c75d;
  border-color: #86c75d;
  color: #050807;
}

.btn-secondary-compact {
  background: transparent;
  border-color: rgba(168, 162, 154, .27);
  color: var(--today-secondary);
}

.today-command-center .btn-complete-outline {
  background: rgba(124, 179, 66, .12);
  border-color: var(--ok);
  color: var(--ok);
}

.today-command-center .btn-complete-outline:hover {
  background: rgba(124, 179, 66, .2);
  border-color: var(--ok);
  color: var(--ok);
}

.btn-secondary-compact:hover {
  background: rgba(212, 175, 55, .07);
  border-color: rgba(212, 175, 55, .48);
  color: var(--today-text);
}

.urgent-strip {
  background:
    linear-gradient(90deg, rgba(239, 68, 68, .07), transparent 34%),
    var(--today-panel);
  border: 1px solid var(--today-border-soft);
  border-left: 3px solid var(--today-warning);
  margin-bottom: 16px;
  padding: 14px 17px;
}

.urgent-strip-header,
.command-section-header {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
}

.urgent-strip-header {
  border-bottom: 1px solid rgba(245, 158, 11, .22);
  padding-bottom: 8px;
}

.urgent-strip-header h2 {
  color: #f5c56e;
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.command-section-count {
  align-items: center;
  background: rgba(212, 175, 55, .07);
  border: 1px solid var(--today-border);
  color: var(--today-secondary);
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  height: 25px;
  justify-content: center;
  min-width: 28px;
  padding: 0 7px;
}

.today-priority-grid,
.today-schedule-grid,
.today-relationship-grid {
  align-items: start;
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
}

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

.today-schedule-grid,
.today-relationship-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.command-section {
  background: var(--today-panel);
  border: 1px solid var(--today-border-soft);
  min-width: 0;
  padding: 18px 18px 10px;
}

.command-section-priority {
  border-top-color: rgba(212, 175, 55, .34);
}

.command-section-finance {
  background:
    linear-gradient(145deg, rgba(116, 184, 74, .045), transparent 42%),
    var(--today-panel-elevated);
  border-color: rgba(116, 184, 74, .22);
}

.command-section-subtle {
  background: rgba(17, 22, 20, .74);
}

.command-section-schedule {
  border-top-color: rgba(212, 175, 55, .24);
}

.command-section-followups {
  margin-bottom: 16px;
}

.command-section-header {
  border-bottom: 1px solid var(--today-border-soft);
  padding-bottom: 12px;
}

.command-section-header h2 {
  color: var(--today-text);
  font-size: 20px;
  font-weight: 750;
  line-height: 1.25;
  margin-top: 4px;
}

.command-section-finance .command-section-label {
  color: var(--today-green);
}

.command-section-subtle .command-section-label {
  color: var(--today-muted);
}

.command-section-subtle .command-section-header h2 {
  color: #d5d1c8;
  font-size: 18px;
}

.command-list {
  margin: 0;
}

.command-item {
  align-items: flex-start;
  border-bottom: 1px solid rgba(148, 163, 184, .11);
  display: flex;
  gap: 14px;
  min-width: 0;
  padding: 15px 0;
  position: relative;
}

.command-item:last-child {
  border-bottom: 0;
}

/* Wraps the date/amount box + content together as one flex unit, so it can
   act as a single grid column in urgent rows without altering non-urgent flex rows. */
.today-row-info {
  align-items: flex-start;
  display: flex;
  flex: 1 1 auto;
  gap: 14px;
  min-width: 0;
}

.command-item-content {
  flex: 1 1 auto;
  min-width: 0;
}

.command-item-heading {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.command-item-title {
  color: var(--today-text);
  display: inline-block;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: 0;
  line-height: 1.4;
  text-decoration: none;
}

.command-item-title:hover {
  color: var(--today-gold);
}

.command-item-meta {
  color: var(--today-muted);
  font-size: 13px;
  letter-spacing: 0;
  line-height: 1.55;
  margin-top: 5px;
}

.command-item-description {
  color: var(--today-secondary);
  font-size: 14px;
  letter-spacing: 0;
  line-height: 1.55;
  margin-top: 5px;
}

.command-item-note {
  border-left: 1px solid rgba(212, 175, 55, .35);
  color: #8f8a80;
  font-size: 13px;
  line-height: 1.5;
  margin-top: 7px;
  padding-left: 9px;
}

.command-item-actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
  max-width: 290px;
}

.command-item-actions form {
  margin: 0;
}

.command-item-actions .btn-primary-compact,
.command-item-actions .btn-secondary-compact {
  font-size: 11px;
  min-height: 31px;
  padding: 7px 10px;
}

.command-text-link {
  color: var(--today-muted);
  font-size: 12px;
  font-weight: 700;
  padding: 5px 2px;
  text-decoration: none;
}

.command-text-link:hover {
  color: var(--today-gold);
}

.alert-type {
  color: var(--today-warning);
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.issue-item {
  flex-direction: column;
  gap: 0;
  padding-left: 16px;
}

.issue-item-top-row {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  width: 100%;
}

.issue-item-divider {
  border: none;
  border-top: 1px solid rgba(148, 163, 184, .22);
  margin: 8px 0 6px;
  width: 100%;
}

.issue-item-actions-bar {
  align-items: stretch;
  display: flex;
  gap: 8px;
  margin-top: 10px;
  width: 100%;
}

.issue-item-actions-bar form {
  display: flex;
  flex: 1;
  margin: 0;
}

.issue-item-actions-bar .btn-secondary-compact,
.issue-item-actions-bar .btn-resolve {
  flex: 1;
  width: 100%;
}

.issue-item-actions-bar .btn-resolve {
  background: rgba(124, 179, 66, .12);
  border-color: var(--ok);
  color: var(--ok);
}

.issue-item-actions-bar .btn-resolve:hover {
  background: rgba(124, 179, 66, .22);
  border-color: var(--ok);
  color: var(--ok);
}

.issue-item::before {
  background: var(--today-warning);
  border-radius: 50%;
  content: "";
  height: 7px;
  left: 0;
  position: absolute;
  top: 22px;
  width: 7px;
}

.severity-marker-critical::before,
.severity-marker-high::before {
  background: var(--today-danger);
}

.severity-marker-low::before {
  background: #94a3b8;
}

.visit-date {
  border-right: 1px solid var(--today-border-soft);
  display: grid;
  flex: 0 0 62px;
  line-height: 1.1;
  padding: 2px 12px 2px 0;
  text-align: center;
}

.visit-date span {
  color: var(--today-gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.visit-date strong {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 500;
  margin: 3px 0;
}

.visit-date small {
  color: var(--today-muted);
  font-size: 10px;
  white-space: nowrap;
}

.payment-amount {
  color: #9bd36f;
  flex: 0 0 auto;
  font-family: var(--serif);
  font-size: 24px;
  line-height: 1.1;
  min-width: 100px;
}

.expected-payment-item {
  align-items: center;
}

.urgent-list .command-item {
  padding-bottom: 13px;
  padding-top: 13px;
}

.urgent-list .issue-item {
  padding-left: 16px;
}

.urgent-list .alert-type {
  color: #f6b459;
}

/* Urgent row: 3-zone grid — date+info column | centered badge | actions */
.urgent-list .today-schedule-row,
.urgent-list .today-payment-row {
  align-items: center;
  display: grid;
  gap: 16px;
  grid-template-columns: 360px 1fr auto;
}

.urgent-list .today-row-info {
  min-width: 0;
}

.urgent-list .today-row-badge {
  justify-self: center;
}

.urgent-list .today-schedule-row .command-item-heading,
.urgent-list .today-payment-row .command-item-heading {
  flex-wrap: nowrap;
  justify-content: flex-start;
  min-width: 0;
}

.urgent-list .today-schedule-row .command-item-title,
.urgent-list .today-payment-row .command-item-title {
  display: block;
  min-width: 0;
}

.urgent-list .command-item-label {
  color: var(--today-muted);
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  margin-bottom: 2px;
  text-transform: uppercase;
}

.urgent-list .command-item-name {
  color: #9bd36f;
  display: block;
  font-size: 16px;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.urgent-list .command-item-actions {
  flex-wrap: nowrap;
  gap: 6px;
  max-width: none;
}

.urgent-list .command-item-actions .btn-primary-compact,
.urgent-list .command-item-actions .btn-secondary-compact {
  font-size: 10px;
  padding: 6px 8px;
  white-space: nowrap;
}

.urgent-list .command-item-actions .command-text-link {
  white-space: nowrap;
}

.command-empty {
  color: var(--today-muted);
  font-size: 13px;
  line-height: 1.55;
  margin: 0;
  padding: 12px 0 3px;
}

.urgent-strip .command-empty {
  padding-bottom: 0;
}

.today-command-center .status,
.today-command-center .severity {
  border-radius: 2px;
  font-size: 10px;
  letter-spacing: .07em;
  padding: 4px 7px;
}

.today-command-center .overdue-text {
  color: #f28b82;
}

@media (max-width: 1280px) {
  .today-schedule-grid,
  .today-relationship-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .today-schedule-grid > :last-child,
  .today-relationship-grid > :last-child {
    grid-column: 1 / -1;
  }

  .command-item {
    flex-wrap: wrap;
  }

  .command-item-actions {
    flex: 1 0 100%;
    justify-content: flex-start;
    max-width: none;
    padding-left: 76px;
  }

  .issue-item .command-item-actions,
  .client-item .command-item-actions,
  .finance-followup-item .command-item-actions,
  .expected-payment-item .command-item-actions {
    padding-left: 0;
  }
}

@media (max-width: 900px) {
  .today-priority-grid,
  .today-schedule-grid,
  .today-relationship-grid {
    grid-template-columns: 1fr;
  }

  .today-schedule-grid > :last-child,
  .today-relationship-grid > :last-child {
    grid-column: auto;
  }
}

@media (max-width: 560px) {
  .today-page-header {
    padding-top: 0;
  }

  .today-page-header h1 {
    font-size: 34px;
  }

  .today-quick-actions .btn-primary-compact {
    flex: 1 1 calc(50% - 8px);
  }

  .urgent-strip,
  .command-section {
    padding-left: 12px;
    padding-right: 12px;
  }

  .command-item {
    gap: 9px;
  }

  .command-item-actions {
    padding-left: 71px;
  }

  .issue-item .command-item-actions,
  .client-item .command-item-actions,
  .finance-followup-item .command-item-actions,
  .expected-payment-item .command-item-actions {
    padding-left: 0;
  }

  .expected-payment-item {
    align-items: flex-start;
  }

  .payment-amount {
    font-size: 21px;
    min-width: 84px;
  }
}

/* CRM Rafa identity port: editorial + terminal */

.shell {
  grid-template-columns: 244px minmax(0, 1fr);
}

.sidebar {
  background: var(--bg-secondary);
  border-right: 1px solid var(--line);
  gap: 0;
  padding: 24px 0;
}

.brand {
  border-bottom: 1px solid var(--line);
  display: block;
  margin-bottom: 16px;
  padding: 0 22px 28px;
}

.brand-logo {
  display: block;
  height: auto;
  max-width: 100%;
  width: 198px;
}

.sidebar .brand-tagline {
  color: var(--muted);
  display: block;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .15em;
  line-height: 1.45;
  margin-top: 16px;
  text-transform: uppercase;
}

.primary-nav {
  gap: 0;
}

.primary-nav::before {
  content: none;
  display: none;
}

.primary-nav .today-nav-link {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.sidebar-module-group {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 0;
  margin-top: 14px;
  padding-top: 14px;
}

.sidebar-nav-label {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .2em;
  margin: 0 24px 8px;
  text-transform: uppercase;
}

.sidebar-urgent-badge {
  align-items: center;
  background: var(--danger);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 9px;
  font-weight: 700;
  height: 19px;
  justify-content: center;
  letter-spacing: 0;
  min-width: 19px;
  padding: 0 6px;
}

.primary-nav a,
.link-button {
  border-left: 2px solid transparent;
  color: var(--secondary);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .08em;
  min-height: 36px;
  padding: 9px 24px;
  text-transform: uppercase;
}

.primary-nav a.active {
  background: var(--accent-soft);
  border-left-color: var(--gold);
  color: var(--ink);
}

.primary-nav a:hover,
.link-button:hover {
  background: rgba(21, 21, 18, .19);
  color: var(--gold);
}

.sidebar-search {
  border-top: 1px solid var(--line);
  margin-top: 16px;
  padding: 18px 24px 0;
}

.sidebar-search::before {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .15em;
}

.sidebar-search input {
  background: #151512;
  border: 1px solid var(--line-strong);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0;
  padding: 9px 10px;
}

.sidebar-search input::placeholder {
  color: var(--muted);
}

.sidebar-footer {
  border-top: 1px solid var(--line);
  margin: auto 0 0;
  padding: 16px 0 0;
}

.content:has(.today-command-center) {
  background:
    radial-gradient(circle at 20% 10%, rgba(26, 26, 23, .08) 0%, transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(26, 26, 23, .08) 0%, transparent 50%),
    var(--bg);
  max-width: none;
  padding: 40px 48px;
  width: 100%;
}

.today-command-center {
  --today-bg: #0e0e0c;
  --today-panel: #1a1a17;
  --today-panel-elevated: #1a1a17;
  --today-border: #2a2a25;
  --today-border-soft: #2a2a25;
  --today-text: #ebe7da;
  --today-secondary: #a8a397;
  --today-muted: #6e6a5e;
  --today-gold: #d4a942;
  --today-green: #7cb342;
  --today-danger: #e84545;
  --today-warning: #e8a542;
  color: var(--today-text);
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.55;
  max-width: none;
}

.today-page-header {
  border-bottom: 1px solid var(--line);
  margin-bottom: 16px;
  padding: 0 0 24px;
}

.today-page-label,
.command-section-label {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.today-page-header h1 {
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(38px, 4vw, 52px);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1.08;
  margin: 8px 0 10px;
}

.today-page-header p {
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.55;
}

.today-quick-actions {
  gap: 8px;
  padding: 0 0 24px;
}

.btn-primary-compact,
.btn-secondary-compact {
  background: transparent;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  color: var(--ink);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.2;
  min-height: 34px;
  padding: 8px 13px;
  text-transform: uppercase;
}

.today-quick-actions .btn-primary-compact {
  background: transparent;
  border-color: var(--line-strong);
  color: var(--ink);
}

.today-quick-actions .btn-primary-compact:first-child {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--bg);
  font-weight: 700;
}

.btn-primary-compact:hover,
.btn-secondary-compact:hover,
.today-quick-actions .btn-primary-compact:hover {
  background: transparent;
  border-color: var(--gold);
  color: var(--gold);
}

.expected-payment-item .btn-primary-compact {
  background: var(--ok);
  border-color: var(--ok);
  color: var(--bg);
  font-weight: 700;
}

.expected-payment-item .btn-primary-compact:hover {
  background: transparent;
  color: var(--ok);
}

.urgent-strip {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  border-left: 3px solid var(--warning);
  margin-bottom: 24px;
  padding: 20px 24px 10px;
}

.urgent-strip-header {
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.urgent-strip-header h2 {
  color: var(--warning);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.command-section-count {
  background: transparent;
  border: 1px solid var(--line-strong);
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  height: 24px;
  min-width: 28px;
}

.today-dash-row {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 24px;
}

.today-dash-row-single {
  grid-template-columns: 1fr;
}

.command-section {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
  min-width: 0;
  padding: 24px;
}

.command-section-priority,
.command-section-schedule,
.command-section-finance {
  background: var(--bg-secondary);
  border-color: var(--line);
}

.command-section-finance {
  border-top: 2px solid var(--ok);
}

.command-section-priority:not(.command-section-finance) {
  border-top: 2px solid var(--gold);
}

.command-section-subtle {
  background: var(--bg-secondary);
}

.command-section-followups {
  margin-bottom: 0;
}

.command-section-header {
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.command-section-header h2,
.command-section-subtle .command-section-header h2 {
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .15em;
  line-height: 1.3;
  margin-top: 4px;
  text-transform: uppercase;
}

.command-section-finance .command-section-label,
.command-section-subtle .command-section-label {
  color: var(--muted);
}

.command-item {
  border-bottom: 1px solid var(--line);
  gap: 16px;
  padding: 12px 1px 30px;
}

.command-item-title {
  border-bottom: 1px dotted var(--muted);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.45;
}

.command-item-title:hover {
  border-bottom-color: var(--gold);
  color: var(--gold);
}

.command-item-meta {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 0;
  line-height: 1.55;
  margin-top: 4px;
}

.command-item-description {
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.55;
  margin-top: 4px;
}

.command-item-note {
  border-left: 1px solid var(--gold);
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.55;
}

.command-item-actions {
  gap: 6px;
  max-width: 280px;
}

.command-item-actions .btn-primary-compact,
.command-item-actions .btn-secondary-compact {
  font-size: 9px;
  min-height: 28px;
  padding: 6px 8px;
}

.command-text-link {
  border-bottom: 1px dotted var(--muted);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 10px;
  padding: 4px 1px;
}

.command-text-link:hover {
  border-bottom-color: var(--gold);
  color: var(--gold);
}

.alert-type {
  color: var(--warning);
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.issue-item {
  padding-left: 14px;
}

.issue-item::before {
  height: 7px;
  top: 18px;
  width: 7px;
}

.visit-date {
  border-right: 1px solid var(--line);
  flex-basis: 68px;
  font-family: var(--mono);
}

.visit-date span {
  color: var(--gold);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .1em;
}

.visit-date strong {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
}

.visit-date small {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
}

.payment-amount {
  color: var(--ok);
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 600;
}

.command-empty {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
  font-style: italic;
  line-height: 1.55;
  padding: 16px 0 4px;
}

.today-command-center .status,
.today-command-center .severity {
  background: transparent;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .08em;
  padding: 3px 7px;
  text-transform: uppercase;
}

.today-command-center .status-active,
.today-command-center .status-completed,
.today-command-center .status-received,
.today-command-center .status-resolved,
.today-command-center .health-good {
  background: rgba(124, 179, 66, .08);
  border-color: var(--ok);
  color: var(--ok);
}

.today-command-center .status-open,
.today-command-center .status-scheduled {
  background: var(--accent-soft);
  border-color: var(--gold);
  color: var(--gold);
}

.today-command-center .health-watch,
.today-command-center .severity-medium {
  background: rgba(232, 165, 66, .08);
  border-color: var(--warning);
  color: var(--warning);
}

.today-command-center .health-problem,
.today-command-center .health-at_risk,
.today-command-center .status-cancelled,
.today-command-center .status-missed,
.today-command-center .severity-high,
.today-command-center .severity-critical {
  background: rgba(232, 69, 69, .08);
  border-color: var(--danger);
  color: #ff5252;
}

.today-command-center .overdue-text {
  color: #ff5252;
}

@media (max-width: 1080px) {
  .content:has(.today-command-center) {
    padding: 32px;
  }

  .today-dash-row {
    gap: 18px;
  }

  .command-item {
    flex-wrap: wrap;
  }

  .command-item-actions {
    flex: 1 0 100%;
    justify-content: flex-start;
    max-width: none;
    padding-left: 84px;
  }

  .issue-item .command-item-actions,
  .client-item .command-item-actions,
  .finance-followup-item .command-item-actions,
  .expected-payment-item .command-item-actions {
    padding-left: 0;
  }
}

@media (max-width: 780px) {
  .shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    border-bottom: 1px solid var(--line);
    border-right: 0;
    padding: 8px;
  }

  .brand {
    border-bottom: 0;
    margin: 0;
    padding: 0;
  }

  .sidebar-module-group {
    border-top: 0;
    display: flex;
    flex: 0 0 auto;
    gap: 6px;
    margin-top: 0;
    padding-top: 0;
  }

  .sidebar-nav-label {
    display: none;
  }

  .primary-nav a {
    border: 1px solid var(--line);
    padding: 8px 10px;
  }

  .primary-nav a.active {
    border-color: var(--gold);
  }

  .sidebar-search {
    border: 0;
    margin: 0;
    padding: 0;
  }

  .content:has(.today-command-center) {
    padding: 24px 18px 40px;
  }

  .today-dash-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .today-page-header h1 {
    font-size: 36px;
  }

  .today-quick-actions .btn-primary-compact {
    flex: 1 1 calc(50% - 8px);
  }

  .urgent-strip,
  .command-section {
    padding-left: 16px;
    padding-right: 16px;
  }

  .command-item-actions {
    padding-left: 0;
  }

  .expected-payment-item {
    align-items: flex-start;
  }
}

/* Today dashboard zones */

.kpi-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-bottom: 24px;
}

.kpi-card {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  display: grid;
  min-width: 0;
  padding: 16px 18px;
}

.kpi-card-visits {
  order: 1;
}

.kpi-card-issues {
  order: 2;
}

.kpi-card-expected {
  border-top: 2px solid var(--ok);
  order: 3;
}

.kpi-card-open-payments {
  border-top: 2px solid var(--gold);
  order: 4;
}

.kpi-card-urgent {
  background: #eee6d2;
  border-color: var(--warning);
  border-top: 3px solid var(--warning);
  order: 5;
}

.kpi-card-urgent .kpi-label,
.kpi-card-urgent .kpi-sub {
  color: #66552c;
}

.kpi-card-urgent .kpi-value {
  color: #2b2417;
}

.kpi-label {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.kpi-value {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.1;
  margin: 5px 0 3px;
  overflow-wrap: anywhere;
}

.kpi-card-expected .kpi-value {
  color: var(--ok);
}

.kpi-sub {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1.4;
}

.dashboard-zones {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 62fr) minmax(330px, 38fr);
  grid-template-areas:
    "urgent finance"
    "operations finance"
    "issues stack";
}

.dashboard-zones:not(:has(> .urgent-strip)) {
  grid-template-areas:
    "operations finance"
    "issues stack";
}

.dashboard-zones > .urgent-strip {
  align-self: start;
  grid-area: urgent;
  margin-bottom: 0;
}

.command-panel,
.secondary-mini-panel {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  min-width: 0;
}

.command-panel {
  padding: 24px;
}

.command-panel-primary {
  border-top: 2px solid var(--gold);
  grid-area: operations;
}

.command-panel-finance {
  align-self: start;
  border-top: 2px solid var(--ok);
  grid-area: finance;
}

.command-panel-issues {
  border-top: 2px solid var(--danger);
  grid-area: issues;
  padding: 24px;
}

.command-panel-stack {
  display: grid;
  gap: 12px;
  grid-area: stack;
  min-width: 0;
}

.operations-group {
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.command-panel-primary > .command-section-header + .operations-group {
  border-top: 0;
  padding-top: 16px;
}

.operations-group + .operations-group {
  margin-top: 6px;
}

.operations-group-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 2px;
}

.operations-group-header h3 {
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .12em;
  margin: 0;
  text-transform: uppercase;
}

.operations-group-header span {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 10px;
}

.finance-panel-total {
  align-items: flex-end;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding: 18px 0;
}

.finance-panel-total span {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.finance-panel-total strong {
  color: var(--ok);
  font-family: var(--serif);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1;
}

.command-panel-finance .expected-payment-item {
  align-items: flex-start;
  flex-wrap: wrap;
}

.command-panel-finance .payment-amount {
  flex-basis: 100%;
}

.command-panel-finance .command-item-actions {
  flex: 1 0 100%;
  justify-content: flex-start;
  max-width: none;
  padding-left: 0;
}

.secondary-mini-panel {
  padding: 16px 18px 8px;
}

.secondary-mini-panel .command-section-header {
  padding-bottom: 8px;
}

.secondary-mini-panel .command-section-header h2 {
  font-size: 10px;
  letter-spacing: .12em;
}

.secondary-mini-panel .command-item {
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 0;
}

.secondary-mini-panel .command-item-title {
  font-size: 12px;
}

.secondary-mini-panel .command-item-meta,
.secondary-mini-panel .command-item-note {
  font-size: 10px;
}

.secondary-mini-panel .command-item-description {
  font-size: 11px;
}

.secondary-mini-panel .command-item-actions {
  flex: 1 0 100%;
  justify-content: flex-start;
  max-width: none;
  padding-left: 0;
}

.compact-empty {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  font-style: italic;
  line-height: 1.5;
  margin: 0;
  padding: 10px 0 4px;
}

@media (max-width: 1120px) {
  .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-zones {
    grid-template-columns: 1fr;
    grid-template-areas:
      "urgent"
      "operations"
      "finance"
      "issues"
      "stack";
  }

  .dashboard-zones:not(:has(> .urgent-strip)) {
    grid-template-areas:
      "operations"
      "finance"
      "issues"
      "stack";
  }

  .command-panel-finance .expected-payment-item {
    align-items: center;
  }

  .command-panel-finance .payment-amount {
    flex-basis: auto;
  }
}

@media (max-width: 560px) {
  .kpi-grid {
    grid-template-columns: 1fr;
  }

  .kpi-card {
    padding: 14px 16px;
  }

  .kpi-value {
    font-size: 27px;
  }

  .command-panel,
  .command-panel-issues {
    padding: 18px 16px;
  }

  .finance-panel-total {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .finance-panel-total strong {
    font-size: 27px;
  }
}

/* Today dashboard: explicit operational columns */

.today-kpi-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-bottom: 24px;
}

.today-kpi-card {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  border-top: 3px solid var(--gold);
  display: grid;
  min-width: 0;
  padding: 16px 18px;
}

.today-kpi-card.is-visits {
  border-top-color: var(--gold);
}

.today-kpi-card.is-issues {
  border-top-color: var(--danger);
}

.today-kpi-card.is-money {
  border-top-color: var(--ok);
}

.today-kpi-card.is-open {
  border-top-color: var(--warning);
}

.today-kpi-card.is-money .kpi-value {
  color: var(--ok);
}

.today-kpi-card.is-visits .kpi-value {
  color: var(--gold);
}

.today-kpi-card.is-issues .kpi-value {
  color: #ff625e;
}

.today-kpi-card.is-open .kpi-value {
  color: var(--warning);
}

.today-kpi-card.is-urgent {
  background: var(--bg-secondary);
  border-color: var(--line);
  border-top-color: var(--danger);
}

.today-kpi-card.is-urgent .kpi-label,
.today-kpi-card.is-urgent .kpi-sub {
  color: var(--muted);
}

.today-kpi-card.is-urgent .kpi-value {
  color: #ff625e;
}

.today-urgent-strip {
  background:
    linear-gradient(90deg, rgba(232, 69, 69, .10), transparent 52%),
    #211b16;
  border: 1px solid rgba(232, 165, 66, .42);
  border-left: 4px solid var(--danger);
  margin-bottom: 24px;
  padding: 20px 16px 10px;
}

.today-urgent-strip .urgent-strip-header {
  border-bottom-color: rgba(232, 165, 66, .35);
}

.today-urgent-strip .urgent-strip-header h2 {
  color: #ffb45e;
}

.today-birthday-signal {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  border-top: 3px solid var(--gold);
  min-width: 0;
  padding: 18px;
}

.birthday-signal-header {
  border-bottom: 1px solid var(--line);
  margin-bottom: 4px;
  padding-bottom: 12px;
}

.birthday-signal-header span {
  color: var(--gold);
  display: block;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.birthday-signal-header h2 {
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.15;
}

.birthday-signal-item {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 12px 0;
}

.birthday-signal-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.birthday-signal-copy strong {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}

.birthday-signal-copy span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.birthday-signal-copy time {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
}

.birthday-signal-actions {
  align-items: flex-end;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 7px;
}

.birthday-timing-badge {
  border: 1px solid var(--gold);
  color: var(--gold);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  padding: 3px 6px;
  text-transform: uppercase;
}

.birthday-timing-badge.is-today {
  border-color: var(--ok);
  color: var(--ok);
}

.birthday-signal-more {
  color: var(--muted);
  font-size: 11px;
  margin: 10px 0 0;
  text-align: right;
}

.today-three-column-layout {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1.7fr) minmax(240px, .8fr) minmax(280px, .9fr);
  width: 100%;
}

.today-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.today-col-main,
.today-col-ops,
.today-col-finance {
  min-width: 0;
}

.today-panel,
.today-side-card {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  min-width: 0;
}

.today-panel {
  padding: 24px;
}

.today-panel-primary {
  border-top: 3px solid var(--gold);
}

.today-panel-finance {
  border-top: 3px solid var(--ok);
}

.today-panel-issues {
  border-top: 3px solid var(--danger);
}

.today-schedule-group {
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.today-panel-primary > .command-section-header + .today-schedule-group {
  border-top: 0;
  padding-top: 16px;
}

.today-schedule-group + .today-schedule-group {
  margin-top: 6px;
}

.today-schedule-group .command-item-actions {
  flex-direction: column;
  align-items: stretch;
  flex-wrap: nowrap;
  width: 140px;
  max-width: 140px;
}

.today-schedule-group .command-item-actions .btn-secondary-compact,
.today-schedule-group .command-item-actions form {
  width: 100%;
}

.today-schedule-group .command-item-name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.today-schedule-group .command-item-heading {
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 4px;
}

.today-schedule-row {
  align-items: flex-start;
}

.today-date-block {
  background: #151512;
  border: 1px solid var(--line);
  border-right: 1px solid var(--line);
  flex-basis: 72px;
  padding: 7px 8px;
}

.today-panel-finance .today-payment-row {
  align-items: flex-start;
  flex-wrap: wrap;
}

.today-panel-finance .today-payment-row .today-row-info {
  flex-wrap: wrap;
}

.today-panel-finance .today-payment-row .payment-amount {
  flex-basis: 100%;
}

.today-panel-finance .today-payment-row .command-item-content {
  flex-basis: 100%;
}

.today-panel-finance .today-payment-row .command-item-actions {
  flex: 1 0 100%;
  justify-content: flex-start;
  max-width: none;
  padding-left: 0;
}

.today-side-card {
  padding: 16px 18px 10px;
}

.today-side-card .command-section-header {
  padding-bottom: 8px;
}

.today-side-card .command-section-header h2 {
  font-size: 10px;
  letter-spacing: .12em;
}

.today-side-card .command-item {
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 0;
}

.today-side-card .command-item-actions {
  flex: 1 0 100%;
  justify-content: flex-start;
  max-width: none;
  padding-left: 0;
}

.today-payments-open {
  border-top: 2px solid var(--warning);
}

.side-card-total {
  align-items: baseline;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding: 14px 0 12px;
}

.side-card-total strong {
  color: var(--warning);
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 600;
}

.side-card-total span,
.side-card-subheading {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.today-open-payment-list {
  display: grid;
}

.today-open-payment-row {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 3px 8px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 10px 0;
  text-decoration: none;
}

.today-open-payment-row span {
  color: var(--ink);
  font-size: 11px;
  min-width: 0;
}

.today-open-payment-row strong {
  color: var(--warning);
  font-family: var(--serif);
  font-size: 16px;
}

.today-open-payment-row small {
  color: var(--muted);
  font-size: 9px;
  grid-column: 1 / -1;
}

.today-followup-list {
  border-top: 1px solid var(--line);
  margin-top: 10px;
  padding-top: 12px;
}

.today-compact-empty {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  font-style: italic;
  line-height: 1.5;
  margin: 0;
  padding: 10px 0 4px;
}

.month-snapshot-list {
  display: grid;
  margin: 0;
}

.month-snapshot-list > div {
  align-items: baseline;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
}

.month-snapshot-list > div:last-child {
  border-bottom: 0;
}

.month-snapshot-list dt {
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.month-snapshot-list dd {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  margin: 0;
}

.month-snapshot-list > div:first-child dd {
  color: var(--ok);
}

.month-snapshot-list > div:nth-child(2) dd {
  color: var(--warning);
}

@media (max-width: 1350px) {
  .today-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .today-panel-finance .today-payment-row {
    align-items: center;
  }

  .today-panel-finance .today-payment-row .payment-amount {
    flex-basis: auto;
  }
}

@media (max-width: 900px) {
  .today-three-column-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .today-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .today-kpi-grid {
    grid-template-columns: 1fr;
  }

  .today-panel {
    padding: 18px 16px;
  }

  .today-urgent-strip {
    padding-left: 16px;
    padding-right: 16px;
  }

  .side-card-total {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
}




/* Clients command center */

.content:has(.clients-command-center) {
  background:
    radial-gradient(circle at 92% 0, rgba(116, 184, 74, .045), transparent 24rem),
    #050807;
}

.clients-command-center {
  --today-bg: #050807;
  --today-panel: #111614;
  --today-panel-elevated: #171d1a;
  --today-border: rgba(212, 175, 55, .18);
  --today-border-soft: rgba(148, 163, 184, .16);
  --today-text: #f3f1e8;
  --today-secondary: #a8a29a;
  --today-muted: #78716c;
  --today-gold: #d4af37;
  --today-green: #74b84a;
  --today-danger: #ef4444;
  --today-warning: #f59e0b;
  color: var(--today-text);
  font-size: 15px;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 1540px;
}

.clients-page-header {
  align-items: flex-end;
  border-bottom: 1px solid var(--today-border);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 20px;
  padding: 4px 0 24px;
}

.clients-page-label {
  color: var(--today-gold);
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.clients-page-header h1 {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.02;
  margin: 9px 0 8px;
}

.clients-page-header p {
  color: var(--today-secondary);
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
}

.clients-list-summary {
  align-items: center;
  border-bottom: 1px solid var(--today-border-soft);
  color: var(--today-secondary);
  display: flex;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: 11px;
  gap: 12px 18px;
  justify-content: space-between;
  letter-spacing: .04em;
  margin-bottom: 16px;
  padding: 0 0 14px;
  text-transform: uppercase;
}

.clients-summary-meta,
.clients-operational-period-form {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
}

.clients-summary-meta {
  gap: 0;
  min-width: min(100%, 340px);
}

.clients-summary-meta > * {
  align-items: center;
  display: inline-flex;
}

.clients-summary-meta > *:not(:last-child)::after {
  color: var(--today-gold);
  content: "·";
  margin: 0 10px;
}

.clients-operational-period-form {
  gap: 8px;
  justify-content: flex-end;
  margin: 0;
}

.clients-list-summary strong {
  color: var(--today-secondary);
  font-weight: 600;
}

.clients-summary-meta strong:nth-of-type(n + 2) {
  color: var(--today-green);
}

.clients-forecast-link {
  border-bottom: 1px dashed currentColor;
  color: var(--today-green);
  text-decoration: none;
}

.clients-forecast-link:hover {
  border-bottom-style: solid;
}

.clients-forecast-link strong {
  color: inherit;
}

.clients-list-filters {
  align-items: flex-end;
  background: rgba(17, 22, 20, .7);
  border: 1px solid var(--today-border-soft);
  display: flex;
  gap: 24px;
  margin-bottom: 20px;
  padding: 12px 14px;
}

.clients-filter-group {
  border: 0;
  display: flex;
  gap: 4px;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.clients-filter-group legend,
.clients-year-filter > span {
  color: var(--today-muted);
  float: left;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  margin: 0 8px 0 0;
  padding: 8px 0;
  text-transform: uppercase;
}

.clients-operational-period-form .clients-year-filter {
  align-items: center;
  display: inline-flex;
  margin: 0;
}

.clients-operational-period-form .clients-year-filter > span {
  padding: 0;
}

.clients-operational-period-form select {
  background: rgba(10, 13, 12, .72);
  border: 1px solid var(--today-border-soft);
  color: var(--today-text);
  font-family: var(--mono);
  font-size: 11px;
  height: 30px;
  letter-spacing: 0;
  padding: 4px 8px;
}

.clients-operational-period-form select:focus {
  border-color: var(--focus-ring);
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.clients-filter-option {
  border: 1px solid transparent;
  color: var(--today-secondary);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 7px 9px;
  text-decoration: none;
  text-transform: uppercase;
}

.clients-filter-option:hover,
.clients-filter-option.active {
  background: rgba(212, 175, 55, .08);
  border-color: rgba(212, 175, 55, .35);
  color: var(--today-gold);
}

.clients-year-filter {
  align-items: center;
  display: flex;
  margin-left: auto;
}

.clients-year-filter select {
  background: var(--today-panel);
  border: 1px solid var(--today-border-soft);
  color: var(--today-text);
  font-size: 11px;
  min-height: 32px;
  padding: 6px 28px 6px 9px;
  width: auto;
}

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

.client-command-card,
.clients-empty-state {
  background: var(--today-panel);
  border: 1px solid var(--today-border-soft);
  min-width: 0;
  padding: 18px;
}

.client-command-card {
  border-top: 3px solid var(--today-gold);
  display: flex;
  flex-direction: column;
  min-height: 280px;
}

.client-command-card.client-type-commercial {
  border-top-color: var(--today-green);
}

.client-command-card.health-border-watch {
  border-top-color: var(--today-warning);
}

.client-command-card.health-border-problem,
.client-command-card.health-border-at_risk {
  border-top-color: var(--today-danger);
}

.client-command-card-header {
  align-items: flex-start;
  border-bottom: 1px solid var(--today-border-soft);
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding-bottom: 13px;
}

.client-command-name {
  color: var(--today-text);
  display: block;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.15;
  margin-top: 5px;
  text-decoration: none;
}

.client-command-name:hover {
  color: var(--today-gold);
}

.client-badge-row {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.clients-command-center .status,
.clients-command-center .severity,
.clients-command-center .category,
.clients-command-center .flag {
  border-radius: 2px;
  font-size: 10px;
  letter-spacing: .07em;
  padding: 4px 7px;
}

.clients-command-center .client-type-badge.client-type-commercial {
  border-color: rgba(116, 184, 74, .42);
  color: #9bd36f;
}

.clients-command-center .client-type-badge.client-type-residential {
  border-color: rgba(212, 175, 55, .36);
  color: #e1c86d;
}

.client-command-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.client-command-facts > div {
  border-bottom: 1px solid rgba(148, 163, 184, .11);
  min-width: 0;
  padding: 12px 8px 11px 0;
}

.client-command-facts dt,
.clients-command-center .details dt,
.clients-command-center .field-label {
  color: var(--today-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.client-command-facts dd {
  color: var(--today-text);
  font-size: 14px;
  line-height: 1.45;
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}

.client-command-address {
  color: var(--today-secondary);
  font-size: 13px;
  line-height: 1.55;
  margin: 13px 0;
}

.clients-index-page .client-command-actions {
  align-items: center;
  display: flex;
  gap: 10px;
  margin-top: auto;
  padding-top: 5px;
}

.clients-empty-state {
  border-top: 3px solid var(--today-gold);
  padding: 28px;
}

.clients-empty-state h2 {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: 28px;
  margin: 7px 0;
}

.clients-empty-state p {
  color: var(--today-secondary);
  margin: 0 0 18px;
  max-width: 680px;
}

.relationship-module-nav {
  border-bottom: 1px solid var(--today-border-soft);
  display: flex;
  gap: 4px;
  margin: -4px 0 18px;
}

.relationship-module-nav a {
  border-bottom: 2px solid transparent;
  color: var(--today-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  padding: 10px 12px;
  text-decoration: none;
  text-transform: uppercase;
}

.relationship-module-nav a:hover,
.relationship-module-nav a.active {
  border-bottom-color: var(--today-gold);
  color: var(--today-gold);
}

.prospect-status-filters {
  align-items: center;
  background: rgba(17, 22, 20, .7);
  border: 1px solid var(--today-border-soft);
  display: flex;
  gap: 4px;
  margin-bottom: 20px;
  padding: 10px 12px;
}

.prospect-status-filters a {
  align-items: center;
  border: 1px solid transparent;
  color: var(--today-secondary);
  display: inline-flex;
  font-size: 10px;
  font-weight: 700;
  gap: 7px;
  letter-spacing: .09em;
  padding: 7px 10px;
  text-decoration: none;
  text-transform: uppercase;
}

.prospect-status-filters a:hover,
.prospect-status-filters a.active {
  background: rgba(212, 175, 55, .08);
  border-color: rgba(212, 175, 55, .35);
  color: var(--today-gold);
}

.prospect-status-filters a span {
  color: var(--today-muted);
  font-size: 9px;
}

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

.prospect-command-card {
  background: var(--today-panel);
  border: 1px solid var(--today-border-soft);
  border-top: 3px solid var(--today-gold);
  display: flex;
  flex-direction: column;
  min-height: 300px;
  min-width: 0;
  padding: 18px;
}

.prospect-command-card.prospect-status-won {
  border-top-color: var(--today-green);
}

.prospect-command-card.prospect-status-lost {
  border-top-color: var(--today-danger);
}

.prospect-card-header {
  align-items: flex-start;
  border-bottom: 1px solid var(--today-border-soft);
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding-bottom: 13px;
}

.prospect-card-name {
  color: var(--today-text);
  display: block;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.15;
  margin-top: 5px;
  text-decoration: none;
  text-wrap: balance;
}

.prospect-card-name:hover {
  color: var(--today-gold);
}

.prospect-badge-active {
  border-color: rgba(212, 175, 55, .45);
  color: var(--today-gold);
}

.prospect-badge-won {
  border-color: rgba(116, 184, 74, .5);
  color: #9bd36f;
}

.prospect-badge-lost {
  border-color: rgba(239, 68, 68, .5);
  color: #ff7777;
}

.prospect-card-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.prospect-card-facts > div {
  border-bottom: 1px solid rgba(148, 163, 184, .11);
  min-width: 0;
  padding: 12px 8px 11px 0;
}

.prospect-card-facts dt,
.prospect-detail-facts dt,
.prospect-rail-facts dt,
.prospect-value span,
.prospect-detail-value span {
  color: var(--today-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.prospect-card-facts dd,
.prospect-detail-facts dd,
.prospect-rail-facts dd {
  color: var(--today-text);
  font-size: 14px;
  line-height: 1.5;
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}

.prospect-card-facts .prospect-fact-wide {
  grid-column: 1 / -1;
}

.prospect-action-date {
  color: var(--today-secondary);
  display: block;
  font-size: 11px;
  margin-top: 6px;
}

.prospect-action-date.overdue,
.prospect-next-action-card time.overdue {
  color: #ff7777;
}

.prospect-probability {
  border: 1px solid var(--today-border-soft);
  color: var(--today-secondary);
  display: inline-flex;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .07em;
  padding: 3px 7px;
  text-transform: uppercase;
}

.prospect-probability.probability-high {
  border-color: rgba(116, 184, 74, .45);
  color: #9bd36f;
}

.prospect-probability.probability-low {
  border-color: rgba(245, 158, 11, .45);
  color: var(--today-warning);
}

.prospect-card-footer {
  align-items: flex-end;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 16px;
}

.prospect-value {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.prospect-value strong,
.prospect-detail-value strong {
  color: var(--today-green);
  font-family: var(--serif);
  font-size: 23px;
  font-weight: 600;
}

.prospect-form-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
}

.prospect-command-form {
  margin: 0;
}

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

.prospect-form-actions {
  margin-top: 24px;
}

.prospect-detail-header {
  align-items: flex-start;
}

.prospect-header-meta {
  margin-top: 12px;
}

.prospect-detail-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.prospect-detail-actions form {
  margin: 0;
}

.prospect-detail-actions button {
  font-family: inherit;
}

.prospect-action-won {
  border-color: rgba(116, 184, 74, .45);
  color: #9bd36f;
}

.prospect-action-lost {
  border-color: rgba(239, 68, 68, .45);
  color: #ff7777;
}

.prospect-detail-layout {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
}

.prospect-detail-main,
.prospect-detail-rail {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.prospect-detail-card {
  min-height: 0;
}

.prospect-profile-card {
  border-top-color: var(--today-gold);
}

.prospect-notes-card,
.prospect-next-action-card {
  border-top-color: var(--today-warning);
}

.prospect-deal-card,
.prospect-converted-card {
  border-top-color: var(--today-green);
}

.prospect-detail-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.prospect-detail-facts > div {
  border-bottom: 1px solid rgba(148, 163, 184, .11);
  min-width: 0;
  padding: 12px 12px 12px 0;
}

.prospect-detail-facts .prospect-detail-wide {
  grid-column: 1 / -1;
}

.prospect-detail-value {
  border-bottom: 1px solid var(--today-border-soft);
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding-bottom: 14px;
}

.prospect-detail-value strong {
  font-size: 30px;
}

.prospect-rail-facts {
  display: grid;
  gap: 8px 12px;
  grid-template-columns: minmax(90px, auto) minmax(0, 1fr);
  margin: 14px 0 0;
}

.prospect-rail-facts dd {
  margin: 0;
}

.prospect-next-action-card time {
  color: var(--today-gold);
  display: block;
  font-family: var(--serif);
  font-size: 22px;
  margin-bottom: 10px;
}

.prospect-next-action-card p,
.prospect-notes {
  color: var(--today-secondary);
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
}

.client-detail-page .client-detail-header {
  background: transparent;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  min-height: 0;
  padding-left: 0;
  padding-right: 0;
}

.client-detail-page .header-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 7px;
  letter-spacing: 0;
  line-height: 1.55;
  margin-top: 13px;
}

.client-detail-page .header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.client-detail-page .client-command-actions {
  margin-top: 0;
  padding-top: 0;
}

.client-detail-layout {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.15fr) minmax(280px, .75fr);
  width: 100%;
}

.client-detail-main-left,
.client-detail-main-center,
.client-detail-right-rail {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}

.client-detail-right-rail {
  gap: 16px;
}

.client-detail-page .card {
  background: var(--today-panel);
  border-color: var(--today-border-soft);
  padding: 18px;
}

.client-detail-page .client-command-card {
  border-top-width: 3px;
  display: block;
  min-height: 0;
}

.client-detail-page .client-card-basic {
  border-top-color: var(--today-gold);
}

.client-detail-page .client-card-contacts {
  border-top-color: #829ba1;
}

.client-detail-page .client-card-status {
  border-top-color: var(--today-green);
}

.client-detail-page .client-card-access {
  border-top-color: var(--today-warning);
}

.client-detail-page .client-card-cleaning {
  border-top-color: var(--today-green);
}

.client-detail-page .client-card-safety {
  border-top-color: var(--today-danger);
}

.client-detail-page .client-card-issues {
  border-top-color: var(--today-danger);
}

.client-detail-page .client-card-visits {
  border-top-color: #829ba1;
}

.client-detail-page .client-card-payments {
  border-top-color: var(--today-green);
}

.client-detail-page .client-card-note-entry {
  border-top-color: var(--today-gold);
  position: static;
}

.client-detail-page .client-card-notes {
  border-top-color: #829ba1;
}

.client-detail-page .client-detail-rail-card {
  padding: 15px 16px;
  position: relative;
}

.client-rail-drag-handle {
  background: transparent;
  border: 0;
  color: var(--today-muted);
  cursor: grab;
  font-family: var(--mono);
  font-size: 16px;
  line-height: 1;
  min-height: 28px;
  padding: 5px 6px;
  position: absolute;
  right: 8px;
  top: 7px;
  width: 28px;
}

.client-rail-drag-handle:hover,
.client-rail-drag-handle:focus-visible {
  color: var(--today-gold);
}

.client-rail-drag-handle:active {
  cursor: grabbing;
}

.client-detail-page .client-detail-rail-card.is-dragging {
  border-color: rgba(212, 175, 55, .55);
  opacity: .55;
}

.client-detail-page .client-detail-rail-card .operational-heading,
.client-detail-page .client-detail-rail-card .card-heading {
  padding-right: 28px;
}

.contract-duration {
  border-bottom: 1px solid var(--today-border-soft);
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-bottom: 4px;
  padding: 4px 0 13px;
}

.contract-duration span {
  color: var(--today-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contract-duration strong {
  color: var(--today-green);
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.1;
}

.client-detail-page .client-detail-rail-card h2 {
  font-size: 18px;
}

.client-detail-page .client-detail-rail-card .operational-heading,
.client-detail-page .client-detail-rail-card .card-heading {
  align-items: center;
  padding-bottom: 9px;
}

.client-detail-page .client-detail-rail-card .section-kicker {
  font-size: 9px;
  letter-spacing: .11em;
}

.client-detail-page .client-detail-rail-card .client-activity-row {
  gap: 8px;
  padding: 10px 0;
}

.client-detail-page .client-detail-rail-card .client-activity-row strong {
  font-size: 13px;
}

.client-detail-page .client-detail-rail-card .client-activity-row div > span {
  font-size: 10px;
}

.client-detail-page .client-detail-rail-card .btn-secondary-compact,
.client-detail-page .client-detail-rail-card .button {
  font-size: 9px;
  min-height: 28px;
  padding: 6px 8px;
}

.client-detail-page .client-detail-right-rail .client-card-notes .note-list,
.client-detail-page .client-detail-right-rail .client-card-contacts .note-list {
  display: block;
  max-height: 320px;
  overflow-y: auto;
  padding-right: 4px;
}

.client-detail-page .client-detail-right-rail .client-card-basic .details {
  grid-template-columns: minmax(100px, 125px) minmax(0, 1fr);
}

.client-detail-page .empty {
  margin: 0;
  padding: 14px 0 2px;
}

.client-detail-page .operational-heading,
.client-detail-page .card-heading {
  align-items: flex-end;
  border-bottom: 1px solid var(--today-border-soft);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding-bottom: 12px;
}

.client-detail-page .section-kicker {
  color: var(--today-gold);
  font-size: 10px;
  letter-spacing: .14em;
}

.client-detail-page h2 {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: 21px;
  letter-spacing: -.01em;
  margin-top: 4px;
}

.client-detail-page .details {
  grid-template-columns: minmax(145px, 180px) minmax(0, 1fr);
  margin-top: 8px;
}

.client-detail-page .details dt,
.client-detail-page .details dd {
  border-top-color: rgba(148, 163, 184, .11);
  padding: 10px 0;
}

.client-detail-page .details dd {
  color: var(--today-text);
  font-size: 14px;
  line-height: 1.55;
}

.client-detail-page .note {
  border-bottom-color: rgba(148, 163, 184, .11);
  padding: 13px 0;
}

.client-detail-page .note p,
.client-detail-page .note div {
  font-size: 13px;
  line-height: 1.55;
}

.client-detail-page .sticky-note-card {
  background: var(--today-panel-elevated);
}

.client-detail-page .client-frequency-badge {
  border-color: rgba(212, 175, 55, .3);
  color: #d8c477;
}

.status-snapshot-list {
  display: grid;
  margin: 4px 0 0;
}

.status-snapshot-list > div {
  align-items: center;
  border-bottom: 1px solid rgba(148, 163, 184, .11);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 10px 0;
}

.status-snapshot-list > div:last-child {
  border-bottom: 0;
}

.status-snapshot-list dt {
  color: var(--today-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.status-snapshot-list dd {
  color: var(--today-text);
  font-size: 13px;
  margin: 0;
  text-align: right;
}

.client-detail-page .client-card-contacts .note-list {
  display: grid;
  gap: 0 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.client-detail-page .client-card-contacts .note {
  min-width: 0;
}

.client-detail-page .client-card-issues .note-list,
.client-detail-page .client-card-notes .note-list {
  max-height: 390px;
  overflow-y: auto;
  padding-right: 6px;
}

.client-detail-page .client-card-access .access-codes {
  border-top: none;
  display: grid;
  gap: 0 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.client-detail-page .client-card-access .code-row:last-child {
  border-bottom: none;
}

.client-detail-page .client-card-cleaning .details dt:first-of-type,
.client-detail-page .client-card-cleaning .details dd:first-of-type {
  border-top: none;
}

.client-detail-page .client-card-cleaning .details,
.client-detail-page .client-card-safety .details {
  grid-template-columns: minmax(125px, 155px) minmax(0, 1fr);
}

.client-detail-page input,
.client-detail-page select,
.client-detail-page textarea,
.client-form-page input,
.client-form-page select,
.client-form-page textarea {
  background: #0c100e;
  border-color: rgba(148, 163, 184, .22);
  color: var(--today-text);
  font-size: 14px;
  line-height: 1.45;
}

.client-detail-page label,
.client-form-page label {
  color: var(--today-secondary);
  font-size: 10px;
  letter-spacing: .1em;
}

.client-activity-list {
  display: grid;
}

.client-activity-row {
  align-items: center;
  border-bottom: 1px solid rgba(148, 163, 184, .11);
  color: var(--today-text);
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 13px 0;
  text-decoration: none;
}

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

.client-activity-row:hover strong {
  color: var(--today-gold);
}

.client-activity-row strong,
.client-activity-row span {
  display: block;
}

.client-activity-row strong {
  font-size: 15px;
}

.client-activity-row div > span {
  color: var(--today-muted);
  font-size: 12px;
  margin-top: 3px;
}

.client-activity-row-actions {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: 8px;
}

.client-activity-row-actions form {
  margin: 0;
}

.client-command-form {
  display: block;
}

.client-form-dashboard {
  display: grid;
  gap: 24px;
}

.client-form-grid {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.client-form-card,
.client-form-page .client-form-panel {
  background: var(--today-panel);
  border: 1px solid var(--today-border-soft);
  border-top: 3px solid var(--today-gold);
  min-width: 0;
  padding: 20px;
}

.client-form-card-basic,
.client-form-card-service {
  grid-column: span 6;
}

.client-form-card-service {
  border-top-color: #829ba1;
}

.client-form-card-access {
  border-top-color: var(--today-warning);
  grid-column: span 6;
}

.client-form-card-cleaning {
  border-top-color: var(--today-green);
  grid-column: span 6;
}

.client-form-card-safety {
  border-top-color: var(--today-danger);
  grid-column: 1 / -1;
}

.client-form-card .section-heading,
.client-form-page .client-form-panel .section-heading {
  border-bottom: 1px solid var(--today-border-soft);
  margin-bottom: 16px;
  padding: 0 0 12px;
}

.client-form-card .section-heading h2,
.client-form-page .client-form-panel .section-heading h2 {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: 22px;
}

.client-form-card .section-heading p,
.client-form-page .client-form-panel .section-heading p {
  color: var(--today-muted);
  font-size: 13px;
  line-height: 1.55;
}

.form-field-grid {
  display: grid;
  gap: 12px 14px;
  min-width: 0;
}

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

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

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

.form-field-grid > div {
  min-width: 0;
}

.form-field-span-2 {
  grid-column: span 2;
}

.client-basic-grid,
.client-service-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.client-field-span-2 {
  grid-column: span 2;
}

.client-field-span-3 {
  grid-column: span 3;
}

.client-field-span-4 {
  grid-column: span 4;
}

.client-field-span-6 {
  grid-column: 1 / -1;
}

.client-access-code-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.client-access-logistics-grid {
  border-top: 1px solid var(--today-border-soft);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 16px;
  padding-top: 16px;
}

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

.client-cleaning-preferences-grid {
  border-top: 1px solid var(--today-border-soft);
  margin-top: 16px;
  padding-top: 16px;
}

.client-cleaning-logistics-grid {
  border-top: 1px solid var(--today-border-soft);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 16px;
  padding-top: 16px;
}

.client-property-risk-field {
  border-top: 1px solid var(--today-border-soft);
  grid-column: 1 / -1;
  margin-top: 4px;
  padding-top: 14px;
}

.client-property-risk-input {
  border-color: rgba(232, 165, 66, .45);
}

.client-card-property-risks {
  border-top: 3px solid var(--warning);
}

.client-property-risk-copy {
  color: var(--today-secondary);
  line-height: 1.65;
  margin: 0;
}

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

.client-form-long-fields {
  border-top: 1px solid var(--today-border-soft);
  margin-top: 16px;
  padding-top: 16px;
}

.client-form-page input,
.client-form-page select {
  min-height: 36px;
  padding: 8px 10px;
}

.client-form-page .compact-textarea {
  min-height: 66px;
  padding: 9px 10px;
  resize: vertical;
}

.client-form-card-access .compact-textarea {
  min-height: 58px;
}

.client-form-card-cleaning .compact-textarea,
.client-form-card-safety .compact-textarea {
  min-height: 64px;
}

.client-pets-choice {
  border: 0;
  margin: 0;
  padding: 0;
}

.client-pets-choice legend {
  color: var(--today-secondary);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.client-pets-options {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(120px, 180px));
}

.client-pets-options label {
  align-items: center;
  background: #0c100e;
  border: 1px solid rgba(148, 163, 184, .22);
  color: var(--today-text);
  cursor: pointer;
  display: flex;
  font-size: 12px;
  gap: 8px;
  letter-spacing: 0;
  margin: 0;
  min-height: 38px;
  padding: 8px 10px;
  text-transform: none;
}

.client-pets-options label:has(input:checked) {
  background: rgba(212, 175, 55, .07);
  border-color: rgba(212, 175, 55, .48);
  color: var(--today-text);
}

.client-pets-options input {
  accent-color: var(--today-gold);
  margin: 0;
  min-height: 0;
  width: auto;
}

.client-pet-details {
  border-top: 1px solid var(--today-border-soft);
  margin-top: 16px;
  padding-top: 16px;
}

.client-pet-details[hidden] {
  display: none;
}

.client-safety-flags {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 16px;
}

.client-form-page .check-card {
  background: #0c100e;
  border-color: rgba(148, 163, 184, .22);
  color: var(--today-secondary);
  margin: 0;
  min-height: 42px;
}

.client-form-submit {
  border-top-color: var(--today-border-soft);
  justify-content: flex-end;
  margin-top: 24px;
  position: sticky;
  bottom: 0;
  z-index: 4;
}

.client-form-submit::before {
  background: linear-gradient(180deg, transparent, var(--today-bg) 45%);
  content: "";
  inset: -20px 0 auto;
  height: 20px;
  pointer-events: none;
  position: absolute;
}

.client-contact-form {
  margin: 0;
  max-width: 980px;
}

@media (max-width: 1200px) {
  .prospect-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .client-detail-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .client-detail-right-rail {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-field-grid-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-field-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .client-form-card-basic,
  .client-form-card-service,
  .client-form-card-access,
  .client-form-card-cleaning,
  .client-form-card-safety {
    grid-column: 1 / -1;
  }

  .client-access-code-grid,
  .client-access-logistics-grid,
  .client-safety-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .prospect-form-grid,
  .prospect-detail-layout {
    grid-template-columns: 1fr;
  }

  .clients-list-filters {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 12px 20px;
  }

  .clients-year-filter {
    margin-left: 0;
  }

  .clients-list-grid {
    grid-template-columns: 1fr;
  }

  .client-detail-layout,
  .client-form-grid {
    grid-template-columns: 1fr;
  }

  .client-detail-right-rail {
    display: flex;
    grid-column: auto;
  }

  .client-detail-page .client-command-card,
  .client-form-page .client-form-panel {
    grid-column: auto;
  }

  .client-detail-page .client-card-contacts .note-list {
    grid-template-columns: 1fr;
  }

  .client-form-card-safety {
    grid-column: auto;
  }

  .client-access-code-grid,
  .client-access-logistics-grid,
  .client-safety-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .relationship-module-nav,
  .prospect-status-filters {
    overflow-x: auto;
  }

  .prospect-card-grid,
  .prospect-detail-facts {
    grid-template-columns: 1fr;
  }

  .prospect-detail-facts .prospect-detail-wide {
    grid-column: auto;
  }

  .prospect-card-footer,
  .prospect-detail-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .prospect-card-footer .btn-secondary-compact,
  .prospect-detail-actions .btn-primary-compact,
  .prospect-detail-actions .btn-secondary-compact,
  .prospect-detail-actions form,
  .prospect-detail-actions button {
    width: 100%;
  }

  .clients-page-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .clients-page-header h1 {
    font-size: 36px;
  }

  .clients-list-filters,
  .clients-filter-group {
    align-items: stretch;
    flex-direction: column;
  }

  .clients-filter-group legend {
    float: none;
    padding: 0;
  }

  .clients-year-filter {
    justify-content: space-between;
  }

  .clients-list-grid,
  .client-command-facts {
    grid-template-columns: 1fr;
  }

  .client-command-card-header,
  .client-activity-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .client-badge-row {
    justify-content: flex-start;
  }

  .client-detail-page .details {
    grid-template-columns: 1fr;
  }

  .client-detail-page .client-card-access .access-codes {
    grid-template-columns: 1fr;
  }

  .form-field-grid-2,
  .form-field-grid-3,
  .form-field-grid-4,
  .client-basic-grid,
  .client-service-grid,
  .client-access-code-grid,
  .client-access-logistics-grid,
  .client-cleaning-grid,
  .client-safety-grid,
  .client-safety-flags {
    grid-template-columns: 1fr;
  }

  .client-pets-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-field-span-2,
  .client-field-span-2,
  .client-field-span-3,
  .client-field-span-4,
  .client-field-span-6 {
    grid-column: auto;
  }

  .client-form-submit {
    justify-content: stretch;
    position: static;
  }

  .client-form-submit::before {
    display: none;
  }

  .client-form-submit .button,
  .client-form-submit button {
    flex: 1 1 auto;
  }
}

/* Payments operations command center */

.payments-command-center {
  --payment-surface: #171813;
  --payment-surface-inset: #11120f;
  --payment-line: #36382f;
  --payment-text: #ddd9ce;
  --payment-muted: #969489;
  --payment-success: #94c45f;
  color: var(--payment-text);
  font-size: 14px;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 1540px;
  width: 100%;
}

.payments-command-center a {
  text-underline-offset: 3px;
}

.payments-command-center .button,
.payments-command-center button {
  align-items: center;
  background: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 0;
  color: #11120f;
  display: inline-flex;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  justify-content: center;
  letter-spacing: .045em;
  line-height: 1.2;
  min-height: 36px;
  padding: 9px 12px;
  text-transform: uppercase;
}

.payments-command-center .button.secondary,
.payments-command-center button.secondary {
  background: transparent;
  border-color: var(--payment-line);
  color: var(--payment-text);
}

.payments-command-center .button:hover,
.payments-command-center button:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
  color: #11120f;
}

.payments-command-center .button.secondary:hover,
.payments-command-center button.secondary:hover {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
}

.payments-command-center .button:focus-visible,
.payments-command-center button:focus-visible,
.payments-command-center a:focus-visible,
.payments-command-center input:focus-visible,
.payments-command-center select:focus-visible,
.payments-command-center textarea:focus-visible,
.payments-command-center summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.payments-page-header {
  align-items: flex-end;
  border-bottom: 1px solid var(--payment-line);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 20px;
}

.payments-page-header h1 {
  font-family: var(--serif);
  font-size: clamp(38px, 4vw, 58px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: .98;
}

.payments-page-intro {
  color: var(--payment-muted);
  font-size: 14px;
  line-height: 1.55;
  margin: 10px 0 0;
  max-width: 680px;
}

.payments-header-meta,
.payments-header-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
}

.payments-header-meta {
  color: var(--payment-muted);
  font-size: 12px;
  margin-top: 12px;
}

.payments-header-meta > * + *::before {
  color: var(--payment-line);
  content: "/";
  margin-right: 12px;
}

.payments-header-meta a {
  color: var(--accent);
}

.payment-header-amount {
  color: var(--ok);
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
}

.visits-header-right,
.payments-header-right {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.payment-concept-strip {
  border: 1px solid var(--payment-line);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
}

.payment-concept-strip div {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 12px 14px;
}

.payment-concept-strip div + div {
  border-left: 1px solid var(--payment-line);
}

.payment-concept-strip strong {
  color: var(--accent);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.payment-concept-strip span {
  color: var(--payment-muted);
  font-size: 14px;
  line-height: 1.55;
}

.payment-kpi-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 24px;
}

.payment-kpi-grid-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.payment-kpi {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .018), transparent 45%),
    var(--payment-surface);
  border: 1px solid var(--payment-line);
  border-top: 3px solid var(--payment-line);
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 15px 16px;
}

.payment-kpi > span {
  color: var(--payment-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.payment-kpi > strong {
  color: var(--payment-text);
  font-family: var(--serif);
  font-size: clamp(25px, 2vw, 34px);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1;
  overflow-wrap: anywhere;
}

.payment-kpi small {
  color: var(--payment-muted);
  font-size: 11px;
}

.payment-kpi-gold {
  border-top-color: var(--accent);
}

.payment-kpi-gold > strong {
  color: var(--accent);
}

.payment-kpi-green {
  border-top-color: var(--ok);
}

.payment-kpi-green > strong,
.payment-positive {
  color: var(--payment-success);
}

.payments-index-page .payment-kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.payment-kpi-red {
  border-top-color: var(--danger);
}

.payment-kpi-red > strong {
  color: #f15d5d;
}

.payment-kpi-amber {
  border-top-color: var(--warning);
}

.payment-kpi-amber > strong {
  color: var(--warning);
}

.payment-kpi-neutral {
  border-top-color: var(--info);
}

a.payment-kpi {
  color: inherit;
  cursor: pointer;
  text-decoration: none;
  transition: opacity .15s;
}

a.payment-kpi:hover {
  opacity: .85;
}

.payment-kpi-active {
  box-shadow: 0 0 0 2px currentColor;
  opacity: 1;
}

.payment-panel-footer {
  border-top: 1px solid var(--payment-line);
  color: var(--payment-text);
  font-size: 13px;
  padding: 12px 16px;
  text-align: right;
}

.payment-operations-layout,
.client-finance-layout {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) 350px;
  width: 100%;
}

.payment-operations-main,
.payment-operations-rail,
.client-finance-main,
.client-finance-rail,
.payment-detail-main,
.payment-detail-rail {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.payment-panel {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .014), transparent 32%),
    var(--payment-surface);
  border: 1px solid var(--payment-line);
  border-top: 3px solid var(--accent);
  min-width: 0;
  padding: 18px;
}

.payment-panel-expected {
  border-top-color: var(--accent);
}

.payment-panel-followups,
.payment-rail-urgent,
.payment-form-context-alert {
  border-top-color: var(--warning);
}

.payment-rail-received,
.payment-received-panel,
.payment-record-card {
  border-top-color: var(--ok);
}

.payment-monthly-panel,
.payment-price-card {
  border-top-color: var(--info);
}

.payment-panel-heading {
  align-items: flex-start;
  border-bottom: 1px solid var(--payment-line);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 12px;
  padding-bottom: 11px;
}

.payment-panel-heading h2,
.payment-panel > h2,
.payment-form-context > h2,
.payment-confirm-intro h2 {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.08;
}

.payment-panel-kicker {
  color: var(--payment-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  margin: 0 0 4px;
  text-transform: uppercase;
}

.payments-command-center .count-badge {
  background: transparent;
  border: 1px solid var(--payment-line);
  border-radius: 0;
  color: var(--payment-muted);
  flex: 0 0 auto;
  font-size: 10px;
  letter-spacing: .06em;
  padding: 4px 7px;
  text-transform: uppercase;
}

.payment-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 4px;
}

.payment-filter-bar a {
  border: 1px solid transparent;
  color: var(--payment-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 6px 9px;
  text-decoration: none;
  text-transform: uppercase;
}

.payment-filter-bar a:hover,
.payment-filter-bar a.active {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
}

.payment-command-list {
  display: grid;
}

.payment-command-row {
  align-items: center;
  border-top: 1px solid var(--payment-line);
  display: grid;
  gap: 14px;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  min-width: 0;
  padding: 14px 0;
}

.payment-command-list .payment-command-row:first-child {
  border-top: 0;
}

.payment-command-date {
  align-items: center;
  border: 1px solid var(--payment-line);
  display: grid;
  height: 48px;
  justify-items: center;
  padding: 4px;
  width: 48px;
}

.payment-command-date span {
  color: var(--payment-muted);
  font-size: 9px;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.payment-command-date strong {
  color: var(--accent);
  font-family: var(--serif);
  font-size: 21px;
  line-height: 1;
}

.payment-command-date.is-overdue {
  border-color: rgba(232, 69, 69, .7);
}

.payment-command-date.is-overdue strong {
  color: #f15d5d;
}

.payment-command-body {
  min-width: 0;
}

.payment-command-title {
  align-items: baseline;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.payment-command-title a {
  color: var(--payment-text);
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
}

.payment-command-title a:hover {
  color: var(--accent);
}

.payment-command-title > strong {
  color: var(--accent);
  font-size: 14px;
  white-space: nowrap;
}

.payment-command-title .status {
  flex: 0 0 auto;
}

.payment-command-meta {
  align-items: center;
  color: var(--payment-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 10px;
  gap: 5px 10px;
  letter-spacing: .055em;
  margin-top: 4px;
  text-transform: uppercase;
}

.payment-command-body p,
.payment-command-body small {
  color: var(--payment-muted);
  display: block;
  margin: 7px 0 0;
}

.payment-command-body p {
  color: var(--payment-text);
  font-size: 14px;
  line-height: 1.55;
}

.payment-alert-label {
  color: #f15d5d;
  font-weight: 700;
}

.payment-command-actions,
.payment-inline-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.payment-command-actions .button {
  min-height: 32px;
  padding: 7px 9px;
}

.payment-followup-row {
  grid-template-columns: 12px minmax(0, 1fr) auto;
}

.payment-command-marker {
  background: var(--warning);
  height: 8px;
  width: 8px;
}

.payment-command-marker.is-overdue {
  background: var(--danger);
  box-shadow: 0 0 0 3px rgba(232, 69, 69, .12);
}

.payment-empty {
  color: var(--payment-muted);
  font-size: 13px;
  font-style: italic;
  margin: 0;
  padding: 8px 0 2px;
}

.payment-rail-card {
  padding: 15px;
}

.payment-rail-card .payment-panel-heading h2 {
  font-size: 18px;
}

.payment-rail-list {
  display: grid;
}

.payment-rail-list article {
  border-top: 1px solid var(--payment-line);
  display: grid;
  gap: 3px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 11px 0;
}

.payment-rail-list article:first-child {
  border-top: 0;
  padding-top: 1px;
}

.payment-rail-list a {
  color: var(--payment-text);
  font-family: var(--serif);
  font-size: 15px;
  font-weight: 600;
  min-width: 0;
  text-decoration: none;
}

/* AJUSTE C: amount aligned with buttons in expected ledger */
.payment-command-actions--ledger {
  align-items: center;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 12px;
}

.payment-cmd-amount {
  color: var(--accent);
  font-size: 15px;
  white-space: nowrap;
}

.payment-actions-btns {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 6px;
}

/* AJUSTE D: Recent Received values in green (received = collected) */
.payment-rail-list strong {
  color: var(--payment-success);
  white-space: nowrap;
}

.payment-rail-list span,
.payment-rail-list p {
  color: var(--payment-muted);
  font-size: 14px;
  grid-column: 1 / -1;
  line-height: 1.55;
  margin: 0;
}

.payment-rail-list .payment-text-link,
.payment-text-link {
  color: var(--accent);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  grid-column: 1 / -1;
  letter-spacing: .06em;
  margin-top: 3px;
  text-decoration: none;
  text-transform: uppercase;
}

.payment-detail-layout,
.payment-form-layout {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) 330px;
}

.payment-detail-list,
.payment-rail-details {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.payment-detail-list > div,
.payment-rail-details > div {
  border-bottom: 1px solid var(--payment-line);
  display: grid;
  gap: 4px;
  padding: 12px 0;
}

.payment-detail-list > div:nth-child(odd):not(.payment-detail-wide) {
  padding-right: 18px;
}

.payment-detail-list > div:nth-child(even):not(.payment-detail-wide) {
  border-left: 1px solid var(--payment-line);
  padding-left: 18px;
}

.payment-detail-list dt,
.payment-rail-details dt {
  color: var(--payment-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.payment-detail-list dd,
.payment-rail-details dd {
  font-size: 13px;
  margin: 0;
  overflow-wrap: anywhere;
}

.payment-detail-wide {
  grid-column: 1 / -1;
}

.payment-detail-amount {
  color: var(--accent);
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 600;
  white-space: nowrap;
}

.payment-context-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.payment-context-grid article {
  background: var(--payment-surface-inset);
  border: 1px solid var(--payment-line);
  display: grid;
  gap: 5px;
  padding: 14px;
}

.payment-context-grid span {
  color: var(--payment-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.payment-context-grid strong {
  font-family: var(--serif);
  font-size: 19px;
}

.payment-action-card {
  border-top-color: var(--warning);
  position: sticky;
  top: 20px;
}

.payment-action-copy,
.payment-card-note {
  color: var(--payment-muted);
  font-size: 12px;
  margin: 10px 0 14px;
}

.payment-action-stack {
  display: grid;
  gap: 7px;
  margin-top: 14px;
}

.client-finance-toolbar {
  align-items: center;
  border-bottom: 1px solid var(--payment-line);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 18px;
  padding-bottom: 12px;
}

.client-finance-toolbar p {
  color: var(--payment-muted);
  font-size: 14px;
  line-height: 1.55;
  margin: 0;
}

.payment-year-selector {
  min-width: 150px;
}

.payment-year-selector label {
  margin: 0;
}

.payment-year-selector select {
  margin-top: 4px;
}

.payment-table-wrap {
  overflow-x: auto;
}

.payment-table {
  border-collapse: collapse;
  font-size: 12px;
  min-width: 720px;
  width: 100%;
}

.payment-table th,
.payment-table td {
  border-bottom: 1px solid var(--payment-line);
  padding: 10px 9px;
  text-align: left;
  vertical-align: top;
}

.payment-table th {
  color: var(--payment-muted);
  font-size: 9px;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.payment-table tbody tr:hover {
  background: rgba(212, 169, 66, .035);
}

.payment-inline-actions form {
  margin: 0;
}

.forecast-included-table thead tr {
  background: rgba(116, 184, 74, .12);
}

.forecast-included-table thead th[data-sort-key] {
  cursor: pointer;
  position: relative;
  user-select: none;
}

.forecast-included-table thead th[data-sort-key]:hover {
  color: var(--today-text);
}

.forecast-included-table thead th.is-sorted {
  color: #74b84a;
}

.forecast-included-table .sort-indicator {
  display: inline-block;
  font-size: 8px;
  margin-left: 5px;
}

.forecast-total-value {
  color: #74b84a;
  font-size: 16px;
}

.payments-command-center .danger-button {
  background: transparent;
  border-color: rgba(232, 69, 69, .55);
  color: #f15d5d;
  min-height: 31px;
  padding: 6px 9px;
}

.payments-command-center .danger-button:hover {
  background: rgba(232, 69, 69, .12);
  border-color: var(--danger);
  color: #ff7777;
}

.payment-monthly-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.payment-monthly-grid div {
  background: var(--payment-surface-inset);
  border: 1px solid var(--payment-line);
  display: grid;
  gap: 4px;
  padding: 11px;
}

.payment-monthly-grid span {
  color: var(--payment-muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.payment-monthly-grid strong {
  color: var(--payment-text);
  font-family: var(--serif);
  font-size: 16px;
}

.payment-rail-details {
  grid-template-columns: 1fr;
}

.payment-rail-details > div {
  grid-template-columns: 100px minmax(0, 1fr);
  padding: 8px 0;
}

.payment-rail-details dd {
  text-align: right;
}

.payment-rail-details .payment-detail-wide {
  grid-template-columns: 1fr;
}

.payment-rail-details .payment-detail-wide dd {
  text-align: left;
}

.payment-collapsible {
  border-top: 1px solid var(--payment-line);
  margin-top: 14px;
  padding-top: 10px;
}

.payment-collapsible summary {
  color: var(--accent);
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.payment-cleared-row,
.payment-price-history article {
  border-top: 1px solid var(--payment-line);
  padding: 10px 0;
}

.payment-cleared-row {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.payment-cleared-row p,
.payment-price-history p {
  color: var(--payment-muted);
  font-size: 11px;
  margin: 3px 0 0;
}

.payment-regular-price,
.payment-form-amount {
  color: var(--accent);
  display: block;
  font-family: var(--serif);
  font-size: 34px;
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1;
  margin-top: 4px;
}

.payment-price-history article > div:first-child {
  align-items: baseline;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.payment-price-history span {
  color: var(--payment-muted);
  font-size: 10px;
  text-transform: uppercase;
}

.payment-price-history strong {
  color: var(--accent);
}

.payment-compact-form,
.payment-structured-form {
  display: grid;
  gap: 14px;
}

.payment-form-page-narrow {
  max-width: 980px;
}

.payment-form-layout {
  grid-template-columns: 310px minmax(0, 1fr);
}

.payment-form-context {
  border-top-color: var(--info);
  position: sticky;
  top: 20px;
}

.payment-structured-form {
  border-top-color: var(--accent);
}

.payment-form-grid {
  display: grid;
  gap: 12px 14px;
  grid-template-columns: 1fr;
}

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

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

.payment-form-wide {
  grid-column: 1 / -1;
}

.payments-command-center label {
  color: var(--payment-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  margin: 0;
  text-transform: uppercase;
}

.payments-command-center input,
.payments-command-center select,
.payments-command-center textarea {
  background: var(--payment-surface-inset);
  border: 1px solid var(--payment-line);
  border-radius: 0;
  color: var(--payment-text);
  font-family: var(--mono);
  font-size: 13px;
  margin-top: 5px;
  min-height: 39px;
  padding: 9px 10px;
}

.payments-command-center textarea {
  line-height: 1.5;
  min-height: 80px;
}

.payments-command-center input:focus,
.payments-command-center select:focus,
.payments-command-center textarea:focus {
  border-color: var(--accent);
}

.payments-command-center select {
  color-scheme: dark;
}

.payment-form-actions {
  align-items: center;
  border-top: 1px solid var(--payment-line);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
  padding-top: 14px;
}

.payment-followup-dashboard {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.payment-form-card {
  min-width: 0;
}

.payment-form-card-account {
  border-top-color: var(--accent);
}

.payment-form-card-money {
  border-top-color: var(--ok);
}

.payment-form-card-action {
  border-top-color: var(--warning);
}

.payment-form-card-note {
  border-top-color: var(--info);
}

.payment-followup-actions {
  grid-column: 1 / -1;
  justify-content: flex-end;
}

.payment-conditional-fields {
  background: var(--payment-surface-inset);
  border: 1px solid var(--payment-line);
  border-top: 3px solid var(--ok);
  display: grid;
  gap: 12px;
  padding: 14px;
}

.payment-conditional-fields[hidden] {
  display: none;
}

.payment-confirm-card {
  border-top-color: var(--warning);
}

.payment-confirm-intro {
  border-bottom: 1px solid var(--payment-line);
  margin-bottom: 4px;
  padding-bottom: 14px;
}

.payment-confirm-intro > p:last-child {
  color: var(--payment-muted);
  margin: 8px 0 0;
}

.payment-danger-notice {
  background: rgba(232, 69, 69, .07);
  border: 1px solid rgba(232, 69, 69, .45);
  margin-top: 16px;
  padding: 13px;
}

.payment-danger-notice strong {
  color: #f15d5d;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.payment-danger-notice p {
  color: var(--payment-text);
  font-size: 12px;
  margin: 6px 0 0;
}

.payment-check-card {
  align-items: flex-start;
  background: var(--payment-surface-inset);
  border: 1px solid var(--payment-line);
  color: var(--payment-text);
  display: flex;
  gap: 9px;
  margin-top: 14px;
  padding: 12px;
  text-transform: none;
}

.payment-check-card input {
  flex: 0 0 auto;
  min-height: auto;
  width: auto;
}

.payment-check-card span {
  font-size: 12px;
  letter-spacing: 0;
}

/* ── Invoice form ──────────────────────────────────────────────────── */
.invoice-header-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr 1fr 120px 160px;
  margin-top: 12px;
}

.invoice-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.invoice-field label {
  color: var(--secondary);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.invoice-field-hint {
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0;
  text-transform: none;
}

.invoice-lines-section .payment-panel-heading {
  align-items: center;
}

.invoice-lines-wrap {
  margin-top: 12px;
}

.invoice-lines-header {
  color: var(--secondary);
  display: grid;
  font-size: 10px;
  gap: 8px;
  grid-template-columns: 2fr 1.5fr 80px 110px 90px 28px;
  letter-spacing: .06em;
  padding: 0 0 6px;
  text-transform: uppercase;
}

.invoice-line-row {
  align-items: center;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 8px;
  grid-template-columns: 2fr 1.5fr 80px 110px 90px 28px;
  padding: 6px 0;
}

.invoice-line-row input {
  min-height: 0;
  padding: 5px 8px;
}

.line-total-display {
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
  text-align: right;
}

.remove-line-btn {
  background: var(--danger);
  border: none;
  color: #fff;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  height: 24px;
  line-height: 1;
  padding: 0;
  text-align: center;
  width: 24px;
}

.remove-line-btn:hover {
  background: #c43030;
  color: #fff;
}

.invoice-total-row {
  align-items: center;
  border-top: 1px solid var(--line-strong);
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 8px;
  padding-top: 10px;
}

.invoice-total-row span {
  color: var(--secondary);
  font-size: 12px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.invoice-total-row strong {
  color: var(--ink);
  font-size: 18px;
  min-width: 100px;
  text-align: right;
}

/* Invoice detail table */
.invoice-lines-table th,
.invoice-lines-table td {
  vertical-align: top;
}

.invoice-line-detail {
  color: var(--secondary);
  font-size: 12px;
}

.text-right {
  text-align: right;
}

.invoice-total-row-table td {
  border-top: 1px solid var(--line-strong);
  padding-top: 10px;
}

.invoice-filter-bar {
  display: flex;
  gap: 8px;
  margin: 12px 0 16px;
}

.payment-receive-month-bar {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 16px;
}

.payment-receive-month-bar label {
  display: flex;
  flex-direction: column;
  font-size: 11px;
  gap: 4px;
}

.payment-receive-month-bar select,
.payment-receive-month-bar input[type="number"] {
  min-height: 0;
  padding: 5px 8px;
  width: auto;
}

.invoice-filter-bar select {
  min-height: 0;
  padding: 5px 8px;
  width: auto;
}

/* Batch generator */
.invoice-batch-row {
  border-top: 1px solid var(--line-strong);
  padding: 14px 0 8px;
}

.invoice-batch-row:first-of-type {
  border-top: none;
}

.invoice-batch-header {
  align-items: baseline;
  display: flex;
  gap: 10px;
  margin-bottom: 8px;
}

.invoice-batch-header strong {
  font-size: 14px;
}

.invoice-batch-number {
  color: var(--secondary);
  font-size: 12px;
}

.invoice-batch-total {
  color: var(--ok);
  font-size: 13px;
  font-weight: 600;
  margin-left: auto;
}

.invoice-batch-lines {
  margin-top: 4px;
}

.invoice-batch-lines .payment-table td {
  font-size: 12px;
  padding: 4px 8px;
}

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

  .invoice-lines-header {
    display: none;
  }

  .invoice-line-row {
    grid-template-columns: 1fr 1fr;
    gap: 6px;
  }

  .invoice-line-row input {
    width: 100%;
  }

  .line-total-display,
  .remove-line-btn {
    grid-column: span 1;
  }
}

/* ── Reopen choice cards ───────────────────────────────────────────── */
.reopen-section-label {
  color: var(--secondary);
  font-size: 11px;
  letter-spacing: .07em;
  margin: 20px 0 10px;
  text-transform: uppercase;
}

.reopen-choices {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 4px;
}

.reopen-choice {
  align-items: flex-start;
  border: 1px solid var(--line-strong);
  cursor: pointer;
  display: flex;
  gap: 14px;
  padding: 14px 16px;
  transition: border-color .15s, background .15s;
}

.reopen-choice + .reopen-choice,
.reopen-destination + .reopen-choice {
  border-top: none;
}

.reopen-choice:hover {
  background: var(--panel-hover);
}

.reopen-choice--selected {
  background: var(--panel-hover);
}

.reopen-choice-radio-wrap {
  flex: 0 0 auto;
  margin-top: 2px;
  position: relative;
}

.reopen-choice-radio-wrap input[type="radio"] {
  height: 0;
  min-height: 0;
  opacity: 0;
  position: absolute;
  width: 0;
}

.reopen-choice-dot {
  background: transparent;
  border: 2px solid var(--muted);
  border-radius: 50%;
  display: block;
  height: 14px;
  transition: border-color .15s, background .15s;
  width: 14px;
}

.reopen-choice-radio-wrap input[type="radio"]:checked ~ .reopen-choice-dot {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 3px var(--bg);
  background: var(--accent);
}

.reopen-choice--keep .reopen-choice-radio-wrap input[type="radio"]:checked ~ .reopen-choice-dot {
  border-color: var(--ok);
  background: var(--ok);
}

.reopen-choice--discard .reopen-choice-radio-wrap input[type="radio"]:checked ~ .reopen-choice-dot {
  border-color: var(--danger);
  background: var(--danger);
}

.reopen-choice-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.reopen-choice-title {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.reopen-choice-title--green {
  color: var(--ok);
}

.reopen-choice-title--red {
  color: var(--danger);
}

.reopen-choice-desc {
  color: var(--secondary);
  display: block;
  font-size: 12px;
  line-height: 1.55;
}

/* Destination selector (shown when option A is selected) */
.reopen-destination {
  border: 1px solid var(--line-strong);
  border-top: none;
}

.reopen-destination[hidden] {
  display: none;
}

.reopen-destination-inner {
  padding: 14px 16px 14px 44px;
}

.reopen-destination-empty {
  color: var(--secondary);
  font-size: 12px;
}

.reopen-destination-label {
  color: var(--secondary);
  display: block;
  font-size: 11px;
  letter-spacing: .06em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.reopen-invoice-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.reopen-invoice-list--standalone {
  margin: 16px 0 20px;
}

.reopen-invoice-option {
  align-items: flex-start;
  border: 1px solid var(--line-strong);
  cursor: pointer;
  display: flex;
  gap: 12px;
  padding: 11px 14px;
  transition: background .12s;
}

.reopen-invoice-option + .reopen-invoice-option {
  border-top: none;
}

.reopen-invoice-option:hover {
  background: var(--panel-hover);
}

.reopen-invoice-option input[type="radio"] {
  flex: 0 0 auto;
  margin-top: 2px;
  min-height: auto;
  width: auto;
}

.reopen-invoice-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.reopen-invoice-title {
  color: var(--ink);
  display: block;
  font-size: 13px;
  font-weight: 600;
}

.reopen-invoice-desc {
  color: var(--secondary);
  display: block;
  font-size: 12px;
}

@media (max-width: 1280px) {
  .payment-kpi-grid-five {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .payment-operations-layout,
  .client-finance-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
  }

  .payments-index-page .payment-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) 332px;
  }
}

@media (max-width: 1100px) {
  .payment-operations-layout,
  .client-finance-layout,
  .payment-detail-layout,
  .payment-form-layout {
    grid-template-columns: 1fr;
  }

  .payment-operations-rail,
  .client-finance-rail {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .payment-action-card,
  .payment-form-context {
    position: static;
  }

  .payment-kpi-grid,
  .payments-index-page .payment-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .payments-page-header,
  .client-finance-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .payments-header-actions {
    align-items: stretch;
  }

  .payments-header-actions .button,
  .payments-page-header > .button {
    width: 100%;
  }

  .payment-concept-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .payment-concept-strip div:nth-child(3) {
    border-left: 0;
    border-top: 1px solid var(--payment-line);
  }

  .payment-kpi-grid,
  .payment-kpi-grid-five,
  .payments-index-page .payment-kpi-grid,
  .payment-operations-rail,
  .client-finance-rail,
  .payment-followup-dashboard,
  .payment-context-grid,
  .payment-detail-list,
  .payment-form-grid-2,
  .payment-form-grid-3 {
    grid-template-columns: 1fr;
  }

  .payment-command-row,
  .payment-followup-row {
    align-items: start;
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .payment-command-date {
    height: 42px;
    width: 42px;
  }

  .payment-command-actions {
    grid-column: 1 / -1;
    justify-content: stretch;
  }

  .payment-command-actions--ledger {
    align-items: stretch;
    flex-direction: column;
  }

  .payment-actions-btns {
    flex-wrap: wrap;
  }

  .payment-command-actions .button {
    flex: 1 1 auto;
  }

  .payment-command-title {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .payment-detail-list > div:nth-child(odd):not(.payment-detail-wide),
  .payment-detail-list > div:nth-child(even):not(.payment-detail-wide) {
    border-left: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .payment-detail-wide,
  .payment-form-wide,
  .payment-followup-actions {
    grid-column: auto;
  }

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

@media (prefers-reduced-motion: reduce) {
  .payments-command-center *,
  .payments-command-center *::before,
  .payments-command-center *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* Issues operations command center */

.issues-command-center {
  --issue-surface: #171813;
  --issue-surface-inset: #11120f;
  --issue-line: #36382f;
  --issue-text: #d7d5cc;
  --issue-muted: #92938a;
  color: var(--issue-text);
  font-size: 14px;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 1540px;
  width: 100%;
}

.issues-page-header {
  align-items: flex-end;
  border-bottom: 1px solid var(--issue-line);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 20px;
}

.issues-page-header h1 {
  font-family: var(--serif);
  font-size: clamp(38px, 5vw, 58px);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1;
  margin: 5px 0 8px;
  text-wrap: balance;
}

.issues-page-header p {
  color: var(--issue-muted);
  font-size: 14px;
  line-height: 1.55;
  margin: 0;
}

.issues-page-label,
.issue-card-heading > span,
.issue-card-heading > div > span {
  color: var(--gold);
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.issues-filter-row {
  align-items: center;
  border-bottom: 1px solid var(--issue-line);
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 24px;
  padding-bottom: 10px;
}

.issues-filter-row .filter-link {
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--issue-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 8px 13px;
  text-transform: uppercase;
}

.issues-filter-row .filter-link:hover,
.issues-filter-row .filter-link.active {
  background: rgba(212, 169, 66, .07);
  border-bottom-color: var(--gold);
  color: var(--gold);
}

.issues-command-list {
  background: var(--issue-surface);
  border: 1px solid var(--issue-line);
  border-top: 3px solid var(--danger);
}

.issue-command-row {
  align-items: center;
  border-bottom: 1px solid #2d2f29;
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) minmax(230px, .5fr) auto;
  min-width: 0;
  padding: 20px;
  position: relative;
}

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

.issue-command-row::before {
  background: var(--issue-muted);
  content: "";
  height: 3px;
  left: 20px;
  position: absolute;
  top: 0;
  width: 46px;
}

.issue-command-row.issue-severity-medium::before {
  background: var(--warning);
}

.issue-command-row.issue-severity-high::before,
.issue-command-row.issue-severity-critical::before {
  background: var(--danger);
}

.issue-command-row.issue-severity-critical {
  background: rgba(232, 69, 69, .035);
}

.issue-command-row.issue-is-overdue {
  background: rgba(232, 165, 66, .035);
}

.issue-command-main {
  min-width: 0;
}

.issue-command-title {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 5px 0 8px;
}

.issue-command-title a {
  border: 0;
  color: var(--issue-text);
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 600;
  text-decoration: none;
}

.issue-command-title a:hover {
  color: var(--gold);
}

.issue-command-title > span {
  color: var(--issue-muted);
  font-size: 12px;
}

.issue-command-badges {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.issue-command-main > p {
  color: var(--issue-text);
  font-size: 14px;
  line-height: 1.6;
  margin: 12px 0 0;
  max-width: 72ch;
  text-wrap: pretty;
}

.issue-overdue-badge,
.issue-type-badge {
  border: 1px solid var(--warning);
  color: var(--warning);
  display: inline-flex;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 3px 7px;
  text-transform: uppercase;
}

.issue-type-badge {
  border-color: var(--line-strong);
  color: var(--secondary);
}

.issue-command-dates {
  display: grid;
  gap: 9px;
  margin: 0;
  min-width: 0;
}

.issue-command-dates > div {
  display: grid;
  gap: 3px;
  grid-template-columns: 92px minmax(0, 1fr);
}

.issue-command-dates dt,
.issue-details dt {
  color: var(--issue-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.issue-command-dates dd {
  color: var(--issue-text);
  font-size: 12px;
  line-height: 1.5;
  margin: 0;
  min-width: 0;
}

.issue-last-update dd {
  color: var(--issue-muted);
}

.issue-command-actions,
.issue-header-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.issue-command-actions form,
.issue-header-actions form,
.issue-timeline-actions form {
  margin: 0;
}

.issues-command-center .severity,
.issues-command-center .status {
  border-radius: 0;
  font-size: 10px;
  letter-spacing: .08em;
  padding: 3px 7px;
  text-transform: uppercase;
}

.issues-empty-state {
  background: var(--issue-surface);
  border: 1px solid var(--issue-line);
  border-top: 3px solid var(--gold);
  padding: 22px;
}

.issues-empty-state h2 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  margin: 0 0 5px;
}

.issues-empty-state p {
  color: var(--issue-muted);
  font-size: 13px;
  margin: 0 0 14px;
}

.issue-header-badges {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.issue-detail-layout {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 380px);
}

.issue-detail-main,
.issue-detail-rail {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

.issue-detail-rail {
  gap: 16px;
}

.issue-command-card,
.issue-form-card,
.issue-resolve-panel {
  background: var(--issue-surface);
  border: 1px solid var(--issue-line);
  border-top: 3px solid var(--gold);
  min-width: 0;
  padding: 20px;
}

.issue-summary-card,
.issue-form-description {
  border-top-color: var(--danger);
}

.issue-timeline-card,
.issue-form-context {
  border-top-color: var(--warning);
}

.issue-add-update-card,
.issue-form-classification {
  border-top-color: var(--danger);
}

.issue-client-snapshot,
.issue-form-follow-up {
  border-top-color: var(--gold);
}

.issue-visit-snapshot {
  border-top-color: var(--ok);
}

.issue-card-heading {
  border-bottom: 1px solid var(--issue-line);
  margin-bottom: 15px;
  padding-bottom: 12px;
}

.issue-card-heading h2 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -.015em;
  margin: 3px 0 0;
  text-wrap: balance;
}

.issue-card-heading-row {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.issue-count {
  color: var(--gold);
  font-family: var(--serif);
  font-size: 27px;
  font-weight: 500;
}

.issue-details {
  display: grid;
  grid-template-columns: minmax(120px, 155px) minmax(0, 1fr);
  margin: 0;
}

.issue-details dt,
.issue-details dd {
  border-bottom: 1px solid #2d2f29;
  margin: 0;
  min-width: 0;
  padding: 10px 0;
}

.issue-details dt {
  padding-right: 16px;
}

.issue-details dd {
  color: var(--issue-text);
  font-size: 14px;
  line-height: 1.6;
}

.issue-summary-copy {
  max-width: 75ch;
}

.issue-resolution-copy {
  color: #a9ca78 !important;
}

.issue-resolve-panel {
  border-top-color: var(--ok);
  margin-bottom: 20px;
}

.issue-resolve-panel[hidden],
.issue-field-grid [hidden],
.issue-timeline-edit-form[hidden],
#resolution-field[hidden] {
  display: none;
}

.issue-resolve-panel form {
  display: grid;
  gap: 10px;
}

.issue-timeline {
  display: grid;
}

.issue-timeline-entry {
  display: grid;
  gap: 18px;
  grid-template-columns: 72px minmax(0, 1fr);
  min-width: 0;
  padding: 16px 0;
  position: relative;
}

.issue-timeline-entry + .issue-timeline-entry {
  border-top: 1px solid #2d2f29;
}

.issue-timeline-date {
  border-right: 1px solid var(--issue-line);
  display: grid;
  padding-right: 16px;
  text-align: center;
}

.issue-timeline-date span,
.issue-timeline-date small {
  color: var(--issue-muted);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.issue-timeline-date strong {
  color: var(--issue-text);
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
}

.issue-timeline-content {
  min-width: 0;
}

.issue-timeline-meta {
  align-items: center;
  color: var(--issue-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 11px;
  gap: 8px 12px;
  justify-content: space-between;
}

.issue-timeline-meta .category {
  color: var(--warning);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.issue-timeline-content > p {
  color: var(--issue-text);
  font-size: 14px;
  line-height: 1.65;
  margin: 10px 0;
  max-width: 75ch;
  text-wrap: pretty;
}

.issue-timeline-actions,
.issue-inline-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.issues-command-center .btn-danger-compact {
  background: transparent;
  border: 1px solid var(--danger);
  border-radius: 0;
  color: var(--danger);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  min-height: 34px;
  padding: 8px 12px;
  text-transform: uppercase;
}

.issues-command-center .btn-danger-compact:hover {
  background: var(--danger);
  color: var(--ink);
}

.issue-timeline-edit-form {
  background: var(--issue-surface-inset);
  border: 1px solid var(--issue-line);
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding: 14px;
}

.issue-empty {
  color: var(--issue-muted);
  font-size: 13px;
  margin: 0;
  padding: 5px 0;
}

.issue-add-update-card {
  position: sticky;
  top: 16px;
}

.issue-add-update-card form,
.issue-dashboard-form {
  margin: 0;
}

.issue-add-update-card form {
  display: grid;
  gap: 12px;
}

.issue-resolve-with-update {
  align-items: flex-start;
  color: var(--issue-text) !important;
  display: flex !important;
  font-size: 12px !important;
  gap: 8px;
  letter-spacing: 0 !important;
  line-height: 1.45;
  text-transform: none !important;
}

.issue-resolve-with-update input {
  min-height: 0 !important;
  width: auto !important;
}

.issue-rail-card {
  background: #151613;
  padding: 16px;
}

.issue-rail-card .issue-details {
  grid-template-columns: minmax(82px, 105px) minmax(0, 1fr);
}

.issue-rail-link {
  margin-top: 14px;
}

.issue-form-grid {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.issue-field-grid {
  display: grid;
  gap: 14px;
}

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

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

.issues-command-center label {
  color: var(--issue-muted);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .08em;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.issues-command-center input,
.issues-command-center select,
.issues-command-center textarea {
  background: var(--issue-surface-inset);
  border: 1px solid #3b3d36;
  border-radius: 0;
  color: var(--issue-text);
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.45;
  min-height: 42px;
  padding: 10px 11px;
}

.issues-command-center input:focus,
.issues-command-center select:focus,
.issues-command-center textarea:focus {
  border-color: var(--info);
  box-shadow: 0 0 0 2px rgba(130, 155, 161, .16);
  outline: 0;
}

.issues-command-center textarea {
  min-height: 108px;
  resize: vertical;
}

.issues-command-center .issue-compact-textarea {
  min-height: 82px;
}

.issue-form-actions {
  align-items: center;
  border-top: 1px solid var(--issue-line);
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 82px;
  padding-top: 24px;
}

@media (max-width: 1200px) {
  .issue-command-row {
    grid-template-columns: minmax(0, 1fr) minmax(220px, .55fr);
  }

  .issue-command-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .issue-detail-layout {
    grid-template-columns: 1fr;
  }

  .issue-detail-rail {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .issue-add-update-card {
    grid-row: span 2;
    position: static;
  }
}

@media (max-width: 820px) {
  .issues-page-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .issue-command-row,
  .issue-form-grid,
  .issue-detail-rail {
    grid-template-columns: 1fr;
  }

  .issue-command-actions,
  .issue-add-update-card {
    grid-column: auto;
    grid-row: auto;
  }

  .issue-field-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .issue-command-row,
  .issue-command-card,
  .issue-form-card,
  .issue-resolve-panel {
    padding: 16px;
  }

  .issue-command-dates > div,
  .issue-details,
  .issue-field-grid-2,
  .issue-field-grid-3 {
    grid-template-columns: 1fr;
  }

  .issue-timeline-entry {
    gap: 12px;
    grid-template-columns: 54px minmax(0, 1fr);
  }

  .issue-timeline-date {
    padding-right: 10px;
  }

  .issue-header-actions,
  .issue-command-actions {
    justify-content: flex-start;
  }
}

/* Visits operations command center */

.visits-command-center {
  --visit-surface: #171813;
  --visit-surface-raised: #1c1d18;
  --visit-line: #36382f;
  --visit-text: #d7d5cc;
  --visit-muted: #92938a;
  color: var(--visit-text);
  font-size: 14px;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 1540px;
  width: 100%;
}

.visits-page-header {
  align-items: flex-end;
  border-bottom: 1px solid var(--visit-line);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 20px;
}

.visits-page-header h1 {
  font-family: var(--serif);
  font-size: clamp(36px, 5vw, 58px);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: .98;
  margin: 5px 0 8px;
}

.visits-page-header p {
  color: var(--visit-muted);
  font-size: 14px;
  line-height: 1.55;
  margin: 0;
}

.visit-detail-header .header-meta {
  font-size: 14px;
  line-height: 1.55;
}

.visits-section-note {
  color: var(--today-secondary, #8a8f8c);
  font-size: 11px;
  margin: 8px 0 0;
}

.visits-page-label,
.visits-section-heading span,
.visit-card-heading > span,
.visit-card-heading > div > span {
  color: var(--gold);
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.visits-filter-row {
  align-items: center;
  border-bottom: 1px solid var(--visit-line);
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 24px;
  padding-bottom: 10px;
}

.visits-filter-row .filter-link {
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--visit-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .09em;
  padding: 8px 12px;
  text-transform: uppercase;
}

.visits-filter-row .filter-link:hover,
.visits-filter-row .filter-link.active {
  background: rgba(215, 174, 50, .07);
  border-bottom-color: var(--gold);
  color: var(--gold);
}

.visits-list-sections {
  display: grid;
  gap: 24px;
}

.visits-list-section {
  background: var(--visit-surface);
  border: 1px solid var(--visit-line);
  border-top: 3px solid var(--gold);
  padding: 20px;
}

.visits-list-recent {
  border-top-color: var(--ok);
}

.visits-list-upcoming {
  background: transparent;
  border: 0;
  padding: 0;
}

.visits-list-upcoming .visits-section-heading {
  background: var(--visit-surface);
  border: 1px solid var(--visit-line);
  border-top: 3px solid var(--gold);
  margin-bottom: 12px;
  padding: 15px 18px;
}

.visits-section-heading {
  align-items: center;
  border-bottom: 1px solid var(--visit-line);
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
  padding-bottom: 14px;
}

.visits-section-heading h2,
.visit-card-heading h2 {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 500;
  letter-spacing: -.015em;
  margin: 3px 0 0;
}

.visits-section-heading > strong {
  color: var(--gold);
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 500;
}

.visits-pagination {
  align-items: center;
  border-top: 1px solid var(--visit-line);
  display: flex;
  gap: 14px;
  justify-content: center;
  margin-top: 16px;
  padding-top: 14px;
}

.visits-pagination-link {
  color: var(--visit-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}

.visits-pagination-link:hover {
  color: var(--gold);
}

.visits-pagination-link.is-disabled {
  opacity: .4;
  pointer-events: none;
}

.visits-pagination-status {
  color: var(--visit-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
}

.visits-upcoming-card-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.visits-upcoming-card {
  background: var(--visit-surface);
  border: 1px solid var(--visit-line);
  border-top: 3px solid var(--gold);
  display: flex;
  flex-direction: column;
  min-height: 270px;
  min-width: 0;
  padding: 18px;
  transition: border-color 160ms ease-out, background-color 160ms ease-out;
}

.visits-upcoming-card:hover {
  background: var(--visit-surface-raised);
  border-color: #4b4d43;
  border-top-color: var(--gold);
}

.visits-upcoming-card.visit-status-completed {
  border-top-color: var(--ok);
}

.visits-upcoming-card.visit-status-cancelled,
.visits-upcoming-card.visit-status-missed {
  border-top-color: var(--danger);
}

.visits-upcoming-card.this-week {
  border-top-color: #7cb342;
}

.visits-upcoming-card.this-week:hover {
  border-top-color: #7cb342;
}

.visits-upcoming-card.this-week .visits-upcoming-date {
  color: #7cb342;
}

.visits-recent-main {
  min-width: 0;
}

.visits-recent-title {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.visits-upcoming-card-header {
  align-items: flex-start;
  border-bottom: 1px solid var(--visit-line);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding-bottom: 14px;
}

.visits-upcoming-client,
.visits-recent-title > a {
  border: 0;
  color: var(--visit-text);
  font-family: var(--serif);
  font-weight: 600;
  text-decoration: none;
}

.visits-upcoming-client {
  display: block;
  font-size: 24px;
  line-height: 1.15;
}

.visits-upcoming-client:hover,
.visits-recent-title > a:hover {
  color: var(--gold);
}

.visits-upcoming-date {
  color: var(--gold);
  display: block;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.25;
  margin-top: 6px;
}

.visits-upcoming-card.visit-status-completed .visits-upcoming-date {
  color: var(--ok);
}

.visits-upcoming-card.visit-status-cancelled .visits-upcoming-date,
.visits-upcoming-card.visit-status-missed .visits-upcoming-date {
  color: var(--danger);
}

.visits-upcoming-status {
  flex: 0 0 auto;
}

.visits-upcoming-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.visits-upcoming-meta-grid > div {
  border-bottom: 1px solid rgba(148, 163, 184, .11);
  display: grid;
  min-width: 0;
  padding: 13px 10px 12px 0;
}

.visits-upcoming-meta-grid > div:nth-child(even) {
  padding-left: 10px;
}

.visits-upcoming-meta-grid dt {
  color: var(--visit-muted);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.visits-upcoming-meta-grid dd {
  color: var(--visit-text);
  font-size: 14px;
  line-height: 1.45;
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}

.visits-upcoming-payment dd {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 5px 9px;
}

.visits-upcoming-payment strong,
.visits-recent-facts .visit-payment-fact {
  color: var(--ok);
}

.visits-upcoming-payment span {
  color: var(--visit-muted);
  font-size: 10px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.visits-upcoming-actions,
.visits-recent-actions,
.visit-command-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.visits-upcoming-actions {
  border-top: 1px solid var(--visit-line);
  flex-direction: column;
  align-items: stretch;
  gap: 7px;
  justify-content: flex-start;
  margin-top: auto;
  max-width: none;
  padding-top: 14px;
}

.visit-card-actions-row {
  display: flex;
  gap: 7px;
}

.visit-card-actions-row .btn-secondary-compact {
  flex: 1;
  text-align: center;
}

.visit-card-complete-form {
  margin: 0;
}

.visit-card-complete-btn {
  background: rgba(124, 179, 66, .12);
  border-color: var(--ok);
  color: var(--ok);
  width: 100%;
}

.visit-card-complete-btn:hover {
  background: rgba(124, 179, 66, .2);
  border-color: var(--ok);
  color: var(--ok);
}

.visits-upcoming-actions form,
.visits-recent-actions form,
.visit-command-actions form {
  margin: 0;
}

.visit-duplicate-form {
  align-items: center;
  display: flex;
  gap: 6px;
}

.visit-duplicate-form input[type="date"] {
  font-size: 11px;
  padding: 6px 8px;
  width: 130px;
}

.visits-recent-compact-list {
  display: grid;
}

.visits-recent-row {
  align-items: center;
  border-bottom: 1px solid #2d2f29;
  display: grid;
  gap: 12px;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  min-width: 0;
  padding: 8px 0;
}

.visits-recent-row:last-child {
  border-bottom: 0;
  padding-bottom: 1px;
}

.visits-recent-date {
  border-right: 1px solid var(--visit-line);
  display: grid;
  gap: 1px;
  padding-right: 11px;
}

.visits-recent-date strong {
  color: var(--visit-text);
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.1;
}

.visits-recent-date span,
.visits-recent-date small {
  color: var(--visit-muted);
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.visits-recent-title > a {
  font-size: 15px;
}

.visits-recent-facts {
  color: var(--visit-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 11px;
  gap: 3px 12px;
  line-height: 1.45;
  margin-top: 3px;
}

.visits-recent-facts span:not(:last-child)::after {
  color: #55574e;
  content: "/";
  margin-left: 12px;
}

.visits-recent-actions {
  align-self: center;
  gap: 5px;
  white-space: nowrap;
}

.visits-recent-actions .btn-primary-compact,
.visits-recent-actions .btn-secondary-compact {
  font-size: 9px;
  min-height: 28px;
  padding: 5px 7px;
}

.visit-detail-layout {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 370px);
}

.visit-detail-main,
.visit-detail-rail {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
}

.visit-detail-primary-grid {
  align-items: stretch;
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.visit-detail-primary-grid .visit-command-card {
  height: 100%;
}

.visit-detail-rail {
  gap: 14px;
}

.visit-command-card,
.visit-form-card {
  background: var(--visit-surface);
  border: 1px solid var(--visit-line);
  border-top: 3px solid var(--gold);
  min-width: 0;
  padding: 20px;
}

.visit-card-cleaning,
.visit-form-work {
  border-top-color: var(--ok);
}

.visit-card-access,
.visit-form-schedule {
  border-top-color: var(--warning);
}

.visit-card-payment,
.visit-form-payment {
  border-top-color: var(--ok);
}

.visit-card-issues {
  border-top-color: var(--danger);
}

.visit-card-notes,
.visit-form-notes {
  border-top-color: var(--gold);
}

.visit-card-month {
  border-top-color: var(--warning);
}

.visit-month-count {
  border: 1px solid rgba(215, 174, 50, .36);
  color: var(--gold);
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1;
  min-width: 28px;
  padding: 5px 7px;
  text-align: center;
}

.visit-month-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.visit-month-row {
  align-items: center;
  background: #11120f;
  border: 1px solid #2d2f29;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
}

.visit-month-row.is-current {
  background: rgba(215, 174, 50, .07);
  border-color: rgba(215, 174, 50, .42);
}

.visit-month-main {
  align-items: center;
  color: var(--visit-text);
  display: grid;
  gap: 10px;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  min-width: 0;
  padding: 10px 0 10px 10px;
  text-decoration: none;
}

.visit-month-main:hover .visit-month-info > span,
.visit-month-main:focus .visit-month-info > span {
  color: var(--gold);
}

.visit-month-date {
  align-items: center;
  border-right: 1px solid #2d2f29;
  display: grid;
  gap: 2px;
  justify-items: start;
  min-height: 34px;
}

.visit-month-date strong {
  color: var(--visit-text);
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: .95;
}

.visit-month-date small,
.visit-month-info small,
.visit-month-current,
.visit-month-edit {
  color: var(--visit-muted);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.visit-month-info {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.visit-month-info > span,
.visit-month-info small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.visit-month-info > span {
  color: var(--visit-text);
  font-size: 13px;
  line-height: 1.3;
}

.visit-month-row .status {
  justify-self: end;
  white-space: nowrap;
}

.visit-month-current,
.visit-month-edit {
  border-left: 1px solid #2d2f29;
  padding: 0 10px;
  text-align: center;
  text-decoration: none;
}

.visit-month-current {
  color: var(--gold);
}

.visit-month-edit:hover,
.visit-month-edit:focus {
  color: var(--gold);
}

.visit-rail-card {
  background: #151613;
  padding: 16px;
}

.visit-card-heading {
  border-bottom: 1px solid var(--visit-line);
  margin-bottom: 14px;
  padding-bottom: 11px;
}

.visit-card-heading-row {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.visit-command-card .details {
  display: grid;
  grid-template-columns: minmax(120px, 155px) minmax(0, 1fr);
  margin: 0;
}

.visit-command-card .details dt,
.visit-command-card .details dd {
  border-bottom: 1px solid #2d2f29;
  margin: 0;
  min-width: 0;
  padding: 9px 0;
}

.visit-command-card .details dt {
  color: var(--visit-muted);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .07em;
  padding-right: 16px;
  text-transform: uppercase;
}

.visit-command-card .details dd {
  color: var(--visit-text);
  font-size: 14px;
  line-height: 1.6;
}

.visit-rail-card .details {
  grid-template-columns: minmax(90px, 115px) minmax(0, 1fr);
}

.visit-sensitive-note {
  background: rgba(215, 174, 50, .07);
  border: 1px solid rgba(215, 174, 50, .22);
  color: #c7ad61;
  font-size: 12px;
  line-height: 1.6;
  margin: 14px 0 0;
  padding: 10px 12px;
}

.visit-rail-card .note {
  background: transparent;
  border: 0;
  border-bottom: 1px solid #2d2f29;
  border-radius: 0;
  padding: 10px 0;
}

.visit-rail-card .note-meta {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.visit-rail-card .note-meta,
.visit-rail-card .note-meta time,
.visit-rail-card .category {
  font-size: 11px;
  line-height: 1.4;
}

.visit-rail-card .note p {
  color: var(--visit-text);
  font-size: 13px;
  line-height: 1.6;
  margin: 8px 0 0;
}

.visit-rail-card .severity {
  font-size: 10px;
}

.visit-issue-identity {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
}

.visit-issue-identity time {
  color: var(--visit-muted);
  white-space: nowrap;
}

.visit-rail-card .note:last-child {
  border-bottom: 0;
}

.visit-rail-card .empty {
  color: var(--visit-muted);
  font-size: 13px;
  line-height: 1.55;
  margin: 0;
  padding: 6px 0 2px;
}

.visit-dashboard-form {
  margin: 0;
}

.visit-form-grid {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.visit-field-grid {
  display: grid;
  gap: 14px;
}

.visit-field-grid[hidden] {
  display: none;
}

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

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

.visit-field-span-2 {
  grid-column: span 2;
}

.visit-field-span-3 {
  grid-column: span 3;
}

.weekday-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-bottom: 16px;
}

.weekday-picker-option {
  margin-top: 0;
  text-transform: uppercase;
}

.visit-form-card label {
  color: var(--visit-muted);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .08em;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.visit-form-card input,
.visit-form-card select,
.visit-form-card textarea {
  background: #11120f;
  border: 1px solid #3b3d36;
  border-radius: 0;
  color: var(--visit-text);
  font-size: 14px;
  line-height: 1.45;
  min-height: 42px;
  padding: 10px 11px;
}

.visit-form-card input:focus,
.visit-form-card select:focus,
.visit-form-card textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(215, 174, 50, .14);
  outline: 0;
}

.visit-form-card .visit-compact-textarea {
  line-height: 1.5;
  min-height: 82px;
  resize: vertical;
}

.visit-payment-toggle {
  border-bottom: 1px solid var(--visit-line);
  margin-bottom: 14px;
  padding-bottom: 12px;
}

.visit-payment-toggle .check-row {
  color: var(--visit-text);
  display: flex;
  font-size: 13px;
  gap: 8px;
  letter-spacing: .03em;
  text-transform: none;
}

.visit-payment-toggle input {
  min-height: 0;
  width: auto;
}

.visit-payment-toggle p {
  font-size: 12px;
  line-height: 1.5;
  margin: 5px 0 0 22px;
}

.visit-form-actions {
  align-items: center;
  border-top: 1px solid var(--visit-line);
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 54px;
  padding-top: 22px;
}

.time-picker-row {
  align-items: center;
  display: flex;
  gap: 4px;
}

.time-picker-row select {
  flex: 0 0 auto;
  width: auto;
}

.time-picker-sep {
  font-weight: 600;
  padding: 0 2px;
}

@media screen {
  .operational-brief {
    color: #d7d5cc;
    max-width: 900px;
  }

  .operational-brief .brief-toolbar {
    background: #11120f;
    border: 1px solid #36382f;
    border-radius: 0;
    padding: 9px;
  }

  .operational-brief .brief-toggle {
    background: transparent;
    border-color: #3b3d36;
    border-radius: 0;
    color: #a2a298;
    font-size: 10px;
    letter-spacing: .08em;
    min-height: 34px;
    text-transform: uppercase;
  }

  .operational-brief .brief {
    background: #151613;
    border: 1px solid #393b34;
    border-radius: 0;
    box-shadow: none;
  }

  .operational-brief .brief-header {
    background:
      linear-gradient(90deg, rgba(215, 174, 50, .08), transparent 42%),
      #121310;
    border-bottom: 3px solid var(--gold);
    padding: 30px;
  }

  .operational-brief .brief-section {
    border-top: 1px solid #31332c;
    padding: 20px 30px;
  }

  .operational-brief .brief-section h2 {
    font-family: var(--serif);
    font-size: 21px;
    font-weight: 500;
  }

  .operational-brief .brief-list dt,
  .operational-brief .brief-list dd {
    border-top-color: #2d2f29;
  }

  .operational-brief .brief-list dt {
    color: #92938a;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .operational-brief .brief-list dd,
  .operational-brief .brief-section > p {
    color: #d7d5cc;
    font-size: 14px;
    line-height: 1.6;
  }

  .operational-brief .brief-facts span {
    display: grid;
    gap: 3px;
  }

  .operational-brief .brief-facts small {
    color: #92938a;
    font-family: var(--mono);
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .operational-brief .brief-access {
    border-top: 3px solid var(--warning);
  }

  .operational-brief .brief-cleaning {
    border-top: 3px solid var(--ok);
  }

  .operational-brief .brief-safety,
  .operational-brief .brief-issues,
  .operational-brief .brief-property-risks {
    border-top: 3px solid var(--danger);
  }

  .brief-property-risk-alert {
    background: rgba(232, 69, 69, .07);
    border: 1px solid rgba(232, 165, 66, .42);
    color: #ebe7da;
    font-size: 14px;
    line-height: 1.65;
    padding: 14px 16px;
  }

  .operational-brief .brief-payment {
    border-top: 3px solid var(--ok);
  }
}

@media (max-width: 1250px) {
  .visit-detail-layout {
    grid-template-columns: 1fr;
  }

  .visit-detail-rail {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1400px) {
  .visits-upcoming-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1050px) {
  .visits-upcoming-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .visits-recent-row {
    align-items: start;
    grid-template-columns: 66px minmax(0, 1fr);
  }

  .visits-recent-actions {
    grid-column: 2;
    justify-content: flex-start;
    max-width: none;
  }
}

@media (max-width: 560px) {
  .visit-month-row {
    align-items: stretch;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .visit-month-main {
    grid-template-columns: 42px minmax(0, 1fr);
    padding-right: 10px;
  }

  .visit-month-main .status {
    grid-column: 2;
    justify-self: start;
  }

  .visit-month-current,
  .visit-month-edit {
    border-left: 0;
    border-top: 1px solid #2d2f29;
    padding: 8px 10px;
    text-align: left;
  }
}

@media (max-width: 820px) {
  .visits-page-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .visits-header-right,
  .payments-header-right {
    align-items: flex-start;
    width: 100%;
  }

  .visit-form-grid,
  .visit-detail-primary-grid,
  .visit-detail-rail {
    grid-template-columns: 1fr;
  }

  .visit-field-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .visit-field-span-3 {
    grid-column: span 2;
  }
}

@media (max-width: 760px) {
  .visits-upcoming-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .visits-list-section,
  .visit-command-card,
  .visit-form-card {
    padding: 16px;
  }

  .visits-recent-row {
    gap: 13px;
  }

  .visits-recent-actions {
    grid-column: 1 / -1;
  }

  .visits-recent-actions .btn-primary-compact,
  .visits-recent-actions .btn-secondary-compact {
    flex: 1 1 auto;
  }

  .visits-upcoming-meta-grid {
    grid-template-columns: 1fr;
  }

  .visits-upcoming-meta-grid > div:nth-child(even) {
    padding-left: 0;
  }

  .visits-upcoming-actions .btn-primary-compact,
  .visits-upcoming-actions .btn-secondary-compact,
  .visits-upcoming-actions form {
    flex: 1 1 auto;
  }

  .visits-upcoming-actions form .btn-primary-compact {
    width: 100%;
  }

  .visit-command-card .details,
  .visit-rail-card .details,
  .visit-field-grid-2,
  .visit-field-grid-3 {
    grid-template-columns: 1fr;
  }

  .visit-field-span-2,
  .visit-field-span-3 {
    grid-column: auto;
  }

  .operational-brief .brief-header,
  .operational-brief .brief-section {
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* Today dashboard approved structure */

.today-dashboard-layout {
  display: grid;
  gap: 24px;
  width: 100%;
}

/* Content row: left column (urgent + main grid, single vertical flow) + right sidebar (rail), sidebar pinned to top */
.today-content-row {
  align-content: start;
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
}

.today-main-column {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}

.today-top-row {
  display: grid;
}

.today-top-row > .today-urgent-strip {
  margin-bottom: 0;
}

/* Title accent: word "today" in yellow */
.today-title-accent {
  color: var(--accent);
}

/* Two real grid columns, each with a single cell: column 1 is the visits
   panel, column 2 is the side-column wrapper. Because there's only one row,
   no column's height depends on the other -- and because the side column's
   three panels are flex children (not separate grid rows), they stack tight
   against each other regardless of how tall the visits column is. */
.today-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 15px;
  align-items: start;
}

.today-main-operations {
  grid-column: 1;
}

.today-main-side-column {
  grid-column: 2;
  display: flex;
  flex-direction: column;
  gap: 15px;
  min-width: 0;
}

.today-main-rail {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.today-relationship-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
}

.today-main-grid > *,
.today-main-side-column > *,
.today-relationship-row > * {
  min-width: 0;
}

.today-main-rail .today-side-card {
  width: 100%;
}

.today-card-payment-followups {
  min-height: 150px;
}

.today-card-month-snapshot {
  flex: 1;
  min-height: 320px;
}

.today-card-month-snapshot .month-snapshot-list {
  display: grid;
  gap: 0;
}

.today-card-month-snapshot .month-snapshot-list > div {
  min-height: 78px;
  align-items: center;
}

.today-relationship-row .today-side-card {
  min-height: 130px;
}

.today-main-operations .today-panel-primary,
.today-main-finance .today-panel-finance,
.today-main-issues .today-panel-issues,
.today-main-payments-open .today-payments-open {
  min-height: 250px;
}

@media (max-width: 1200px) {
  .today-main-grid {
    grid-template-columns: 1fr;
  }

  .today-main-operations {
    grid-column: 1;
    grid-row: 1;
  }

  .today-main-side-column {
    grid-column: 1;
    grid-row: 2;
  }

  .today-relationship-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .today-content-row {
    grid-template-columns: 1fr;
  }

  .today-content-row > .today-main-rail {
    grid-column: 1;
    grid-row: auto;
  }

  .today-main-rail {
    display: grid;
  }

  .today-card-month-snapshot {
    min-height: auto;
  }
}

/* Invoice hub */
.invoice-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
  max-width: 900px;
}

.invoice-hub-card {
  background: var(--payment-surface);
  border: 1px solid var(--payment-line);
  border-top: 3px solid var(--accent);
  color: var(--payment-text);
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 20px;
  text-decoration: none;
  transition: background 0.12s;
}

.invoice-hub-card:hover {
  background: #1e201a;
}

.invoice-hub-title {
  color: var(--payment-text);
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.invoice-hub-desc {
  color: var(--payment-muted);
  font-size: 12px;
  line-height: 1.55;
  margin: 0;
}

@media (max-width: 700px) {
  .invoice-hub-grid {
    grid-template-columns: 1fr;
  }
}

/* Settings sidebar link */
.sidebar-settings-link {
  border-left: 2px solid transparent;
  color: var(--secondary);
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .08em;
  min-height: 36px;
  padding: 9px 24px;
  text-decoration: none;
  text-transform: uppercase;
}

.sidebar-settings-link.active {
  background: var(--accent-soft);
  border-left-color: var(--gold);
  color: var(--ink);
}

.sidebar-settings-link:hover {
  background: rgba(21, 21, 18, .19);
  color: var(--gold);
}

.sidebar-account-actions {
  border-top: 1px solid var(--line);
  display: grid;
  margin-top: 16px;
  padding-top: 16px;
}

.sidebar-account-actions form {
  margin: 0;
}

.sidebar-account-actions .link-button {
  width: 100%;
}

/* Settings page */
.settings-page {
  margin: 0 auto;
  max-width: 860px;
  padding: 40px 48px;
}

.settings-page-header {
  margin-bottom: 32px;
}

.settings-page-header-row {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

html {
  scroll-behavior: smooth;
}

.instructions-page {
  margin: 0 auto;
  max-width: 860px;
  padding: 40px 48px;
}

.instructions-header {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 24px;
}

.instructions-intro {
  color: var(--secondary);
  font-size: 13px;
  margin: 4px 0 0;
  max-width: 640px;
}

.instructions-toc {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  margin-bottom: 32px;
  padding: 16px 20px 20px;
}

.instructions-toc-title {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -.01em;
  margin: 0 0 10px;
}

.instructions-toc ol {
  columns: 2;
  column-gap: 32px;
  list-style: decimal;
  margin: 0;
  padding-left: 18px;
}

.instructions-toc li {
  break-inside: avoid;
  margin-bottom: 8px;
}

.instructions-toc a {
  color: var(--secondary);
  font-size: 13px;
  text-decoration: none;
}

.instructions-toc a:hover {
  color: var(--accent);
  text-decoration: underline;
}

.instructions-content {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.instructions-section {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  padding: 20px 24px;
  scroll-margin-top: 16px;
}

.instructions-section h2 {
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -.01em;
  margin: 0 0 14px;
  padding-bottom: 12px;
  scroll-margin-top: 16px;
}

.instructions-section p,
.instructions-section li {
  color: var(--secondary);
  font-size: 13px;
  line-height: 1.6;
}

.instructions-section ol,
.instructions-section ul {
  margin: 0 0 14px;
  padding-left: 22px;
}

.instructions-section ol ul,
.instructions-section ul ul,
.instructions-section ol ol {
  margin-top: 8px;
}

.instructions-section li {
  margin-bottom: 6px;
}

.instructions-section strong {
  color: var(--ink);
}

.instructions-section code {
  background: var(--bg);
  border: 1px solid var(--line);
  color: var(--accent);
  font-family: var(--mono);
  font-size: 12px;
  padding: 1px 5px;
}

.instructions-callout {
  background: rgba(212, 175, 55, .08);
  border-left: 3px solid var(--accent);
  margin: 4px 0 14px;
  padding: 10px 14px;
}

.instructions-callout p {
  color: var(--ink);
  font-size: 12.5px;
  margin: 0;
}

.instructions-back-to-top {
  color: var(--muted);
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}

.instructions-back-to-top:hover {
  color: var(--accent);
}

@media (max-width: 700px) {
  .instructions-page {
    padding: 24px 16px;
  }

  .instructions-header {
    flex-direction: column;
  }

  .instructions-toc ol {
    columns: 1;
  }

  .instructions-section {
    padding: 16px 18px;
  }
}

.settings-page-intro {
  color: var(--secondary);
  font-size: 13px;
  margin: 4px 0 0;
}

.settings-form {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.settings-section {
  background: var(--bg-secondary);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  display: flex;
  flex-direction: column;
  gap: 0;
}

.settings-section-title {
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -.01em;
  margin: 0;
  padding: 16px 20px;
}

.settings-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr 1fr;
  padding: 20px;
}

.settings-grid label {
  display: grid;
  font-size: 11px;
  font-weight: 700;
  gap: 6px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--secondary);
}

.settings-grid label input,
.settings-grid label textarea,
.settings-grid label select {
  background: var(--bg);
  border: 1px solid var(--line);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 13px;
  padding: 9px 12px;
  width: 100%;
}

.settings-grid label input:focus,
.settings-grid label textarea:focus {
  border-color: var(--accent);
  outline: none;
}

.settings-grid label textarea {
  resize: vertical;
}

.settings-wide {
  grid-column: 1 / -1;
}

.settings-logo-preview {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 20px 0;
}

.settings-logo-preview img {
  border: 1px solid var(--line);
  max-height: 100px;
  max-width: 300px;
  object-fit: contain;
}

.settings-logo-caption {
  color: var(--muted);
  font-size: 11px;
}

.settings-actions {
  display: flex;
  justify-content: flex-end;
}

.settings-actions button {
  background: var(--accent);
  border: 1px solid var(--accent);
  color: #fff;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 11px 24px;
  text-transform: uppercase;
}

.settings-actions button:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
}

@media (max-width: 700px) {
  .settings-page {
    padding: 24px 16px;
  }

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

  .settings-wide {
    grid-column: 1;
  }
}


/* Typography roles: DESIGN.md */

.today-page-header h1,
.clients-page-header h1,
.visits-page-header h1,
.issues-page-header h1,
.payments-page-header h1,
.settings-page-header h1,
.page-header h1 {
  font-family: var(--serif);
  font-size: clamp(38px, 4vw, 52px);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1.08;
}

.today-page-header p,
.clients-page-header p,
.visits-page-header p,
.issues-page-header p,
.payments-page-intro,
.settings-page-intro,
.clients-list-summary,
.command-item-meta,
.command-item-description,
.command-item-note,
.payment-concept-strip span,
.payment-command-meta,
.payment-command-body p,
.payment-command-body small,
.payment-rail-list span,
.payment-rail-list p,
.payment-empty,
.payment-action-copy,
.payment-card-note,
.payment-cleared-row p,
.payment-price-history p,
.payment-danger-notice p,
.payment-check-card span,
.invoice-field-hint,
.invoice-line-detail,
.invoice-hub-desc,
.reopen-choice-desc,
.reopen-destination-empty,
.reopen-invoice-desc,
.client-command-address,
.client-detail-page .details dd,
.client-detail-page .note p,
.client-detail-page .note div,
.client-activity-row div > span,
.client-form-card .section-heading p,
.client-form-page .client-form-panel .section-heading p,
.client-property-risk-copy,
.issues-empty-state p,
.issue-command-title > span,
.issue-command-dates dd,
.issue-details dd,
.issue-timeline-meta,
.issue-timeline-content > p,
.issue-empty,
.visits-recent-facts,
.visit-sensitive-note,
.visit-rail-card .note p,
.visit-rail-card .empty,
.visit-payment-toggle p,
.operational-brief .brief-list dd,
.operational-brief .brief-section > p,
.brief-property-risk-alert,
.empty,
.today-compact-empty,
.kpi-sub,
.birthday-signal-copy span,
.birthday-signal-copy time,
.payment-detail-list dd,
.payment-rail-details dd,
.payment-table td,
.payments-command-center input,
.payments-command-center select,
.payments-command-center textarea,
.settings-grid label input,
.settings-grid label textarea,
.settings-grid label select,
.invoice-batch-number,
.invoice-batch-lines .payment-table td,
.client-detail-page .empty,
.prospect-action-date,
.settings-logo-caption {
  font-family: var(--mono);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  letter-spacing: 0;
  line-height: var(--type-body-line-height);
  text-transform: none;
}

.payment-command-meta .status,
.payment-command-meta .payment-alert-label,
.issue-timeline-meta .category {
  font-family: var(--mono);
  font-size: var(--type-label-size);
  font-weight: var(--type-label-weight);
  letter-spacing: var(--type-label-tracking);
  line-height: var(--type-label-line-height);
  text-transform: uppercase;
}


.eyebrow,
.today-page-label,
.command-section-label,
.urgent-strip-header h2,
.command-section-header h2,
.kpi-label,
.clients-page-label,
.visits-page-label,
.issues-page-label,
.payment-panel-kicker,
.payment-filter-bar a,
.payment-detail-list dt,
.payment-rail-details dt,
.payment-table th,
.invoice-field label,
.invoice-lines-header,
.reopen-section-label,
.reopen-destination-label,
.client-command-facts dt,
.clients-command-center .details dt,
.clients-command-center .field-label,
.prospect-card-facts dt,
.prospect-detail-facts dt,
.prospect-rail-facts dt,
.prospect-value span,
.prospect-detail-value span,
.status-snapshot-list dt,
.client-detail-page label,
.client-form-page label,
.client-pets-choice legend,
.issue-command-dates dt,
.issue-details dt,
.visits-upcoming-meta-grid dt,
.visit-command-card .details dt,
.visit-form-card label,
.operational-brief .brief-list dt,
.today-side-card .command-section-header h2,
.birthday-signal-header span,
.side-card-total span,
.month-snapshot-list dt,
.payment-kpi > span,
.payment-command-date span,
.settings-grid label,
.today-command-center .status,
.today-command-center .severity,
.clients-command-center .status,
.clients-command-center .severity,
.clients-command-center .category,
.clients-command-center .flag,
.issues-command-center .severity,
.issues-command-center .status,
.visits-command-center .severity,
.visits-command-center .status {
  font-family: var(--mono);
  font-size: var(--type-label-size);
  font-weight: var(--type-label-weight);
  letter-spacing: var(--type-label-tracking);
  line-height: var(--type-label-line-height);
  text-transform: uppercase;
}

.btn-primary-compact,
.btn-secondary-compact,
.payments-command-center .button,
.payments-command-center button,
.issues-command-center .btn-danger-compact,
.command-item-actions .btn-primary-compact,
.command-item-actions .btn-secondary-compact,
.client-detail-page .client-detail-rail-card .btn-secondary-compact,
.client-detail-page .client-detail-rail-card .button,
.visits-recent-actions .btn-primary-compact,
.visits-recent-actions .btn-secondary-compact,
.settings-actions button {
  font-family: var(--mono);
  font-size: var(--type-label-size);
  font-weight: var(--type-label-weight);
  letter-spacing: var(--type-label-tracking);
  line-height: var(--type-label-line-height);
  text-transform: uppercase;
}


.clients-page-section {
  border-top: 1px solid var(--today-border-soft);
  margin-top: 24px;
  padding-top: 22px;
}

.clients-section-header {
  align-items: flex-end;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 16px;
}

.clients-section-header h2 {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.08;
  margin: 5px 0 0;
}

.clients-section-header p {
  color: var(--today-secondary);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0;
  line-height: 1.45;
  margin: 7px 0 0;
  text-transform: none;
}

.clients-section-header p strong,
.clients-list-section-header > strong {
  color: var(--today-green);
  font-weight: 700;
}

.clients-list-section-header > strong {
  border: 1px solid var(--today-border-soft);
  color: var(--today-secondary);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .08em;
  padding: 7px 9px;
  text-transform: uppercase;
}

.clients-monthly-section .clients-operational-board {
  margin-bottom: 0;
}

.clients-client-list-section {
  margin-top: 28px;
}

@media (max-width: 760px) {
  .clients-section-header {
    align-items: flex-start;
    display: block;
  }

  .clients-section-header .clients-operational-period-form,
  .clients-list-section-header > strong {
    margin-top: 12px;
  }
}

/* Clients operational planning */
.clients-operational-board {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 20px;
}

.clients-operational-panel {
  background: rgba(17, 22, 20, .76);
  border: 1px solid var(--today-border-soft);
  border-top: 3px solid var(--today-gold);
  padding: 18px;
}

.clients-operational-panel-ytd {
  border-top-color: var(--today-green);
}

.clients-operational-heading {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 16px;
}

.clients-operational-heading h2 {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.1;
  margin: 4px 0 0;
}

.clients-operational-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.clients-operational-actions form {
  margin: 0;
}

.clients-operational-actions button {
  cursor: pointer;
}

.clients-operational-metrics {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}

.clients-operational-metrics-ytd {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.clients-operational-metrics > div {
  background: rgba(10, 13, 12, .62);
  border: 1px solid var(--today-border-soft);
  min-width: 0;
  padding: 12px;
}

.clients-operational-metrics dt {
  color: var(--today-muted);
  margin-bottom: 7px;
}

.clients-operational-metrics dd {
  color: var(--today-text);
  font-family: var(--serif);
  font-size: clamp(20px, 1.55vw, 24px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.12;
  margin: 0;
  overflow-wrap: normal;
  white-space: nowrap;
}

.clients-operational-metrics .clients-forecast-link {
  color: var(--today-green);
}

.payment-negative {
  color: var(--danger) !important;
}

@media (max-width: 1100px) {
  .clients-operational-board {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .clients-operational-heading {
    display: block;
  }

  .clients-operational-actions {
    justify-content: flex-start;
    margin-top: 14px;
  }

  .clients-operational-metrics,
  .clients-operational-metrics-ytd {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
  }
}

@media (max-width: 520px) {
  .clients-operational-metrics,
  .clients-operational-metrics-ytd {
    grid-template-columns: 1fr;
  }

  .clients-operational-metrics dd {
    font-size: 20px;
  }
}

.clients-month-filter select {
  min-width: 132px;
}


.payments-command-center .clients-operational-period-form .clients-year-filter,
.visits-command-center .clients-operational-period-form .clients-year-filter {
  align-items: center;
  display: inline-flex;
  margin: 0;
}

.payments-command-center .clients-operational-period-form .clients-year-filter > span,
.visits-command-center .clients-operational-period-form .clients-year-filter > span {
  color: var(--today-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  margin: 0 8px 0 0;
  padding: 0;
  text-transform: uppercase;
}

.payments-command-center .clients-operational-period-form select,
.visits-command-center .clients-operational-period-form select {
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(235, 231, 218, .22);
  color: var(--today-text);
  font-family: var(--mono);
  font-size: 11px;
  height: 30px;
  letter-spacing: 0;
  margin-top: 0;
  min-height: 30px;
  padding: 4px 8px;
}

.payments-command-center .clients-operational-period-form select:focus,
.visits-command-center .clients-operational-period-form select:focus {
  border-color: var(--focus-ring);
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.clients-completed-link {
  color: var(--today-green);
}

.clients-completed-breakdown-table td:last-child,
.clients-completed-breakdown-table th:last-child {
  text-align: right;
}

.clients-month-close-alert {
  align-items: center;
  background: rgba(232, 165, 66, .10);
  border: 1px solid rgba(232, 165, 66, .42);
  border-left: 1px solid rgba(232, 165, 66, .42);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin: 0 0 16px;
  padding: 14px 16px;
}

.clients-month-close-alert strong {
  color: var(--today-text);
  display: block;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.15;
  margin-top: 4px;
}

.clients-month-close-alert p,
.clients-action-note {
  color: var(--today-secondary);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0;
  line-height: 1.45;
  margin: 5px 0 0;
  text-transform: none;
}

.clients-month-close-alert form {
  flex: 0 0 auto;
  margin: 0;
}

.clients-operational-actions button:disabled {
  cursor: not-allowed;
  opacity: .46;
}

@media (max-width: 760px) {
  .clients-month-close-alert {
    align-items: flex-start;
    display: block;
  }

  .clients-month-close-alert form {
    margin-top: 12px;
  }
}

@media (max-width: 760px) {
  .clients-list-summary {
    align-items: flex-start;
    display: block;
  }

  .clients-operational-period-form {
    justify-content: flex-start;
    margin-top: 12px;
  }
}





/* Platform admin controls */
.platform-admin-page input,
.platform-admin-page select,
.platform-admin-page textarea {
  background: rgba(34, 197, 94, .12);
  border: 1px solid rgba(34, 197, 94, .24);
  color: var(--ink);
}

.platform-admin-page input:focus,
.platform-admin-page select:focus,
.platform-admin-page textarea:focus {
  background: rgba(34, 197, 94, .15);
  border-color: #22C55E;
  outline: 2px solid rgba(34, 197, 94, .22);
  outline-offset: 2px;
}

.platform-company-row {
  align-items: flex-start;
}

.platform-user-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.platform-user-row {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.platform-user-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.button.secondary.danger {
  border-color: rgba(232, 69, 69, .42);
  color: var(--danger);
}

.button.secondary.danger:hover {
  background: rgba(232, 69, 69, .10);
  border-color: var(--danger);
  color: var(--danger);
}

@media (max-width: 760px) {
  .platform-user-row {
    align-items: flex-start;
    display: grid;
  }
}

/* Sidebar isolation: keep login/form styling from leaking into app navigation */
.sidebar .primary-nav a,
.sidebar .sidebar-settings-link,
.sidebar .link-button {
  background: transparent;
  border-left: 2px solid transparent;
  border-radius: 0;
  color: var(--secondary);
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .08em;
  min-height: 36px;
  padding: 9px 24px;
  text-align: left;
  text-decoration: none;
  text-transform: uppercase;
}

.sidebar .primary-nav a.active,
.sidebar .sidebar-settings-link.active {
  background: var(--accent-soft);
  border-left-color: var(--gold);
  color: var(--ink);
}

.sidebar .primary-nav a:hover,
.sidebar .sidebar-settings-link:hover,
.sidebar .link-button:hover {
  background: rgba(21, 21, 18, .19);
  color: var(--gold);
}

.sidebar .sidebar-account-actions .link-button {
  width: 100%;
}

/* Login experience */
.shell:has(.login-shell) {
  display: block;
  min-height: 100vh;
}

.content:has(.login-shell) {
  align-items: center;
  background:
    radial-gradient(circle at 16% 12%, rgba(34, 197, 94, .08), transparent 31%),
    radial-gradient(circle at 82% 84%, rgba(6, 182, 212, .05), transparent 32%),
    #070806;
  display: flex;
  justify-content: center;
  max-width: none;
  min-height: 100vh;
  overflow: hidden;
  padding: clamp(18px, 3.5vw, 42px);
  width: 100%;
}

.content:has(.login-shell) > .flash {
  left: 50%;
  margin: 0;
  max-width: min(560px, calc(100vw - 32px));
  position: fixed;
  top: 18px;
  transform: translateX(-50%);
  width: 100%;
  z-index: 30;
}

.login-shell {
  color: #171915;
  max-width: 1280px;
  width: 100%;
}

.login-split-card {
  background: #f6f6f6;
  border: 1px solid rgba(244, 245, 243, .86);
  border-radius: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(430px, .92fr);
  min-height: min(780px, calc(100vh - 84px));
  overflow: hidden;
  padding: clamp(10px, 1vw, 13px);
}

.login-visual {
  background: #020403;
  border-radius: 14px;
  isolation: isolate;
  min-height: 640px;
  overflow: hidden;
  padding: clamp(28px, 4vw, 48px);
  position: relative;
}

.login-visual::before {
  background:
    linear-gradient(90deg, rgba(224, 168, 46, .18), transparent 28%, rgba(34, 197, 94, .16) 55%, transparent),
    radial-gradient(circle at 52% 54%, rgba(255, 255, 255, .08), transparent 34%);
  content: "";
  filter: blur(22px);
  inset: 18% -20% 12%;
  opacity: .62;
  position: absolute;
  transform: rotate(-9deg);
  z-index: -2;
}

.login-visual::after {
  background:
    linear-gradient(180deg, rgba(2, 4, 3, .18), transparent 32%, rgba(2, 4, 3, .76)),
    radial-gradient(circle at 50% 50%, transparent 0 36%, rgba(2, 4, 3, .5) 74%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

.login-aurora,
.login-glow,
.login-beam {
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.login-aurora {
  overflow: hidden;
  z-index: -1;
}

.login-glow {
  border-radius: 999px;
  filter: blur(58px);
  mix-blend-mode: screen;
  opacity: .76;
  transform: translate3d(0, 0, 0);
}

.login-glow-a {
  animation: loginGlowA 18s ease-in-out infinite alternate;
  background: radial-gradient(circle, rgba(34, 197, 94, .95), rgba(4, 100, 68, .62) 34%, transparent 68%);
  height: 58%;
  left: 12%;
  top: 24%;
  width: 72%;
}

.login-glow-b {
  animation: loginGlowB 22s ease-in-out infinite alternate;
  background: radial-gradient(circle, rgba(6, 182, 212, .74), rgba(6, 182, 212, .22) 38%, transparent 70%);
  height: 46%;
  left: 45%;
  top: 10%;
  width: 52%;
}

.login-glow-c {
  animation: loginGlowC 26s ease-in-out infinite alternate;
  background: radial-gradient(circle, rgba(224, 168, 46, .54), rgba(34, 197, 94, .22) 42%, transparent 72%);
  bottom: 8%;
  height: 42%;
  left: 4%;
  width: 58%;
}

.login-beam {
  background: linear-gradient(100deg, transparent, rgba(34, 197, 94, .32), rgba(6, 182, 212, .2), transparent);
  filter: blur(18px);
  height: 32%;
  left: -18%;
  mix-blend-mode: screen;
  opacity: .66;
  transform-origin: center;
  width: 136%;
}

.login-beam-a {
  animation: loginBeamA 19s ease-in-out infinite alternate;
  top: 33%;
  transform: rotate(-16deg);
}

.login-beam-b {
  animation: loginBeamB 24s ease-in-out infinite alternate;
  background: linear-gradient(100deg, transparent, rgba(224, 168, 46, .16), rgba(34, 197, 94, .26), transparent);
  top: 50%;
  transform: rotate(12deg);
}

.login-visual-label,
.login-visual-copy {
  position: relative;
  z-index: 3;
}

.login-visual-label,
.login-field label {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .15em;
  line-height: 1.3;
  text-transform: uppercase;
}

.login-visual-label {
  color: rgba(235, 231, 218, .74);
  margin: 0;
}

.login-visual-copy {
  bottom: clamp(34px, 4.4vw, 56px);
  left: clamp(30px, 4vw, 48px);
  max-width: 700px;
  position: absolute;
  right: clamp(30px, 4vw, 48px);
}

.login-visual-copy h1 {
  color: #fffdf3;
  font-family: var(--serif);
  font-size: clamp(40px, 4.05vw, 60px);
  font-weight: 600;
  letter-spacing: -.032em;
  line-height: 1;
  margin: 0;
  max-width: 14.5ch;
  text-wrap: balance;
}

.login-visual-copy p {
  color: rgba(235, 231, 218, .84);
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1.55;
  margin: 34px 0 0;
  max-width: none;
  white-space: nowrap;
}

.login-entry {
  align-items: center;
  background: #f6f6f6;
  display: flex;
  justify-content: center;
  padding: clamp(34px, 5vw, 62px) clamp(28px, 4vw, 58px);
}

.login-card {
  display: flex;
  flex-direction: column;
  max-width: 430px;
  min-height: 640px;
  width: 100%;
}

.login-logo {
  display: block;
  height: auto;
  margin: 0 auto 104px;
  width: min(112px, 38vw);
}

.login-card h2 {
  color: #151713;
  font-family: var(--serif);
  font-size: 42px;
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1.04;
  margin: 0;
  text-align: center;
}

.login-subtitle {
  color: #565b50;
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1.5;
  margin: 10px 0 32px;
  text-align: center;
  white-space: nowrap;
}

.login-form {
  display: grid;
  gap: 16px;
}

.login-field {
  display: grid;
  gap: 7px;
}

.login-field label {
  color: #6a6f63;
}

.login-field input,
.login-field input[type="email"],
.login-field input[type="password"] {
  background: #e8e8e8;
  border: 0;
  border-radius: 10px;
  color: #151713;
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 0;
  margin: 0;
  min-height: 48px;
  padding: 12px 13px;
}

.login-field input::placeholder {
  color: #7a8075;
  font-size: 12px;
  opacity: 1;
}

.login-field input:focus {
  background: #e8e8e8;
  border: 0;
  outline: 0;
}

.login-submit {
  background: #22C55E;
  border: 1px solid #22C55E;
  border-radius: 10px;
  color: #061008;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  min-height: 48px;
  padding: 12px 14px;
  text-transform: uppercase;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
  width: 100%;
}

.login-submit:hover,
.login-submit:focus-visible {
  background: #16A34A;
  border-color: #16A34A;
  color: #f8fff9;
}

.login-submit:focus-visible,
.login-links a:focus-visible {
  outline: 2px solid #06b6d4;
  outline-offset: 3px;
}

.login-links {
  border-top: 1px solid #d8dcd5;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  justify-content: center;
  margin-top: 82px;
  padding-top: 24px;
}

.login-links a {
  color: #5c6256;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 160ms ease;
}

.login-links a:hover {
  background: #151713;
  color: #fff;
}

.content:has(.login-shell) .flash {
  background: #f5f7fb;
  border: 1px solid #cfd4cc;
  border-radius: 12px;
  color: #151713;
  font-family: var(--mono);
}

.content:has(.login-shell) .flash.ok {
  background: rgba(34, 197, 94, .14);
  border-color: rgba(34, 197, 94, .46);
  color: #151713;
}

.content:has(.login-shell) .flash.error {
  background: rgba(232, 69, 69, .12);
  border-color: rgba(232, 69, 69, .48);
  color: #151713;
}

@keyframes loginGlowA {
  0% { transform: translate(-8%, 4%) scale(1) rotate(0deg); }
  100% { transform: translate(8%, -6%) scale(1.14) rotate(8deg); }
}

@keyframes loginGlowB {
  0% { transform: translate(8%, -4%) scale(.92); }
  100% { transform: translate(-12%, 12%) scale(1.1); }
}

@keyframes loginGlowC {
  0% { transform: translate(-4%, 10%) scale(.96); }
  100% { transform: translate(12%, -8%) scale(1.18); }
}

@keyframes loginBeamA {
  0% { transform: translateY(18px) rotate(-16deg); opacity: .48; }
  100% { transform: translateY(-26px) rotate(-10deg); opacity: .72; }
}

@keyframes loginBeamB {
  0% { transform: translateY(-18px) rotate(12deg); opacity: .38; }
  100% { transform: translateY(28px) rotate(17deg); opacity: .62; }
}

@media (prefers-reduced-motion: reduce) {
  .login-glow,
  .login-beam,
  .login-submit,
  .login-links a {
    animation: none;
    transition: none;
  }
}

@media (max-width: 900px) {
  .content:has(.login-shell) {
    align-items: flex-start;
    overflow: auto;
    padding: 16px;
  }

  .login-split-card {
    border-radius: 20px;
    display: block;
    min-height: 0;
    padding: 18px;
  }

  .login-visual {
    min-height: 310px;
    padding: 26px;
  }

  .login-visual-copy {
    bottom: 26px;
    left: 26px;
    right: 26px;
  }

  .login-visual-copy h1 {
    font-size: clamp(34px, 8.4vw, 48px);
    max-width: 15ch;
  }

  .login-entry {
    padding: 34px 16px 24px;
  }

  .login-card {
    max-width: 520px;
    min-height: auto;
  }

  .login-logo {
    margin-bottom: 56px;
    width: min(104px, 34vw);
  }
}

@media (max-width: 560px) {
  .content:has(.login-shell) {
    padding: 0;
  }

  .login-split-card {
    border: 0;
    border-radius: 0;
    min-height: 100vh;
    padding: 14px;
  }

  .login-visual {
    min-height: 244px;
    padding: 22px;
  }

  .login-visual-copy {
    bottom: 22px;
    left: 22px;
    right: 22px;
  }

  .login-visual-copy h1 {
    font-size: 32px;
    max-width: 14ch;
  }

  .login-visual-copy p {
    font-size: 12px;
    margin-top: 18px;
  }

  .login-entry {
    padding: 30px 6px 26px;
  }

  .login-card h2 {
    font-size: 36px;
  }

  .login-subtitle {
    white-space: normal;
  }

  .login-links {
    display: grid;
    gap: 11px;
  }
}


/* Account context and readable error flashes */
.flash.error {
  color: #fff6f6;
}

.sidebar-user-context {
  border-top: 1px solid rgba(235, 231, 218, .08);
  color: #22C55E;
  display: grid;
  font-family: var(--mono);
  font-size: 10px;
  gap: 4px;
  letter-spacing: .08em;
  line-height: 1.35;
  margin: 14px 0 10px;
  overflow: hidden;
  padding: 18px 24px 10px;
  text-transform: uppercase;
}

.sidebar-user-context span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-user-context span:first-child {
  color: #22C55E;
}

.sidebar .sidebar-account-actions form {
  margin-top: 8px;
}

.sidebar .sidebar-account-actions .link-button {
  background: rgba(232, 69, 69, .08);
  border-left-color: var(--danger);
  color: #ff8585;
}

.sidebar .sidebar-account-actions .link-button:hover {
  background: rgba(232, 69, 69, .12);
  border-left-color: var(--danger);
  color: #ffd1d1;
}

.content:has(.login-shell) .flash.error {
  background: #b4232f;
  border-color: #e84545;
  color: #fffafa;
}

.login-help-card {
  min-height: 560px;
}

.login-help-actions {
  display: grid;
  gap: 18px;
  margin-top: 34px;
}

.login-help-link {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  text-decoration: none;
}

.login-help-secondary {
  color: #4e5549;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.login-help-secondary:hover {
  color: #151713;
}
