/* TRINITY light theme. Shared semantic contract, loaded after module styles. */
:root {
  color-scheme: light;
  --background: #fff;
  --foreground: hsl(120 1.9608% 10%);
  --card: #fff;
  --card-foreground: var(--foreground);
  --popover: var(--card);
  --popover-foreground: var(--foreground);
  --primary: var(--foreground);
  --primary-foreground: #fff;
  --muted: #f5f5f5;
  --muted-foreground: #737373;
  --secondary: var(--muted);
  --secondary-foreground: var(--foreground);
  --accent: #ededed;
  --accent-foreground: var(--foreground);
  --border: #e5e5e5;
  --input: #8c8c8c;
  --ring: #737373;
  --sidebar: #f5f5f5;
  --sidebar-foreground: #404040;
  --destructive: #b42318;
  --destructive-surface: #fff1f0;
  --success: #17623b;
  --success-surface: #edf7ef;
  --warning: #854d0e;
  --warning-surface: #fff8e8;
  --info: #285c86;
  --info-surface: #f0f6fb;
  --radius: .625rem;
  --radius-control: .5rem;
  --radius-card: .875rem;
  --space-unit: .25rem;
  --shadow-kpi: 0 1px 3px rgb(0 0 0 / 5%);
  --card-gradient: linear-gradient(180deg, var(--card), rgb(0 0 0 / 2%));
  --shadow-card: 0 1px 3px rgb(0 0 0 / 10%), 0 1px 2px -1px rgb(0 0 0 / 10%);
  --chart-1: hsl(91.9266 100% 78.6275%);
  --chart-2: hsl(97.3404 91.2621% 59.6078%);
  --chart-3: hsl(101.5842 86.3248% 54.1176%);
  --chart-4: hsl(103.7500 78.6885% 47.8431%);
  --chart-5: hsl(106.4789 69.6078% 40%);
  --chart-line: #397c22;
  --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  font-family: var(--font-sans);
  color: var(--foreground);
  background: var(--sidebar);
  font-size: 16px;
}
body { font: 14px/1.45 var(--font-sans); color: var(--foreground); }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { transition: color 150ms, background-color 150ms, border-color 150ms, box-shadow 150ms; }
button, summary, select { cursor: pointer; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--ring); outline-offset: 3px; }
:where(button, input, select, textarea):disabled { opacity: .5; cursor: not-allowed; }
:where(input, select, textarea)[aria-invalid="true"] { border-color: var(--destructive); }
button { color: inherit; }
a { color: var(--foreground); text-underline-offset: 3px; }
small { font-size: 12px; line-height: 1.5; }
input, select, textarea { max-width: 100%; }
.shell { grid-template-columns: 256px minmax(0, 1fr); gap: 0; align-items: start; }
.sidebar { background: var(--sidebar); color: var(--sidebar-foreground); padding: 24px 16px 16px; min-width: 0; height: 100dvh; position: sticky; top: 0; overflow-y: auto; }
.brand { color: var(--foreground); font-size: 20px; font-weight: 650; letter-spacing: -.02em; padding: 0 12px; }
.brand small { color: var(--muted-foreground); font-size: 10px; letter-spacing: .06em; font-weight: 500; margin-top: 4px; }
.sidebar .nav { margin-top: 32px; gap: 4px; display: grid; }
.sidebar .nav a, .sidebar .nav-group > summary { display: flex; align-items: center; gap: 10px; color: var(--sidebar-foreground); font-size: 14px; line-height: 20px; font-weight: 400; padding: 9px 12px; border-radius: var(--radius-control); }
.sidebar .nav a:hover, .sidebar .nav-group > summary:hover { background: var(--accent); color: var(--foreground); }
.sidebar .nav a.active { background: var(--card); color: var(--foreground); font-weight: 600; box-shadow: var(--shadow-kpi); }
.nav-icon { width: 16px; height: 16px; flex: 0 0 16px; }
.sidebar .nav-children { border-color: var(--border); margin-left: 19px; }
.sidebar .nav-children a { font-size: 13px; }
.sidebar .nav-service, .sidebar-context, .sidebar-user { border-color: var(--border); }
.sidebar-context { margin-top: 24px; padding: 16px 12px 0; }
.sidebar-context small, .sidebar-context label { color: var(--muted-foreground); font-size: 12px; }
.sidebar-context strong { color: var(--foreground); font-weight: 500; }
.sidebar-context select { color: var(--foreground); background: var(--card); border-color: var(--input); min-height: 36px; }
.sidebar .nav-error { color: var(--destructive); }
.main { min-height: calc(100dvh - 16px); min-width: 0; margin: 8px 8px 8px 0; padding: 0 24px 32px; background: var(--background); border: 1px solid var(--border); border-radius: 16px; container: workspace / inline-size; }
.appbar { min-height: 56px; display: flex; align-items: center; gap: 12px; padding: 10px 24px; margin: 0 -24px 24px; border-bottom: 1px solid var(--border); }
.appbar-title { font-size: 16px; font-weight: 600; }
.appbar-clinic { margin-left: auto; color: var(--muted-foreground); max-width: 50%; overflow-wrap: anywhere; font-size: 12px; }
.icon-button { display: inline-flex; align-items: center; justify-content: center; width: 36px; min-width: 36px; height: 36px; padding: 0; border: 1px solid transparent; background: transparent; border-radius: var(--radius-control); }
.icon-button:hover { background: var(--muted); }
.icon-button svg { width: 18px; height: 18px; }
.topbar { align-items: flex-start; margin-bottom: 24px; gap: 16px; }
.topbar > div { min-width: 0; }
.title { font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: -.025em; margin: 0 0 8px; overflow-wrap: anywhere; }
.eyebrow { font-size: 12px; line-height: 16px; text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--muted-foreground); margin-bottom: 8px; }
.muted, .field, .card .label, .metric-note, .change { color: var(--muted-foreground); }
#period { font-size: 12px; line-height: 1.6; max-width: 90ch; overflow-wrap: anywhere; }
.input, .select, input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]), select, textarea { min-height: 36px; border: 1px solid var(--input); background: var(--background); color: var(--foreground); border-radius: var(--radius-control); padding: 4px 12px; font-size: 14px; line-height: 20px; }
.input, .select { min-width: 0; }
.shell input.input, .shell select.select, dialog input.input, dialog select.select { height: 36px; }
textarea.input, textarea { min-height: 88px; padding: 8px 12px; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--muted-foreground); }
input[type="checkbox"], input[type="radio"], input[type="range"] { accent-color: var(--primary); }
.action { display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 36px; border: 1px solid var(--primary); border-radius: var(--radius-control); background: var(--primary); color: var(--primary-foreground); font-size: 14px; font-weight: 500; padding: 7px 12px; text-decoration: none; }
.action:hover { background: #333; }
.action.secondary, .text-action, .expense-edit { border: 1px solid var(--border); border-radius: var(--radius-control); background: var(--card); color: var(--foreground); min-height: 36px; padding: 7px 12px; font: inherit; cursor: pointer; }
.action.secondary:hover, .text-action:hover, .expense-edit:hover { background: var(--muted); }
.sidebar .text-action { text-align: left; background: transparent; border-color: transparent; }
.cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.card, .panel, .team-section { background: var(--card); color: var(--card-foreground); border: 1px solid var(--border); border-radius: var(--radius-card); box-shadow: var(--shadow-card); padding: 24px; min-width: 0; }
.cards > .card { box-shadow: var(--shadow-kpi); background: var(--card-gradient); }
.result-summary > .metric-filter-card { display: flex; flex-direction: column; min-height: 182px; padding: 24px; border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--card-gradient) var(--card); box-shadow: var(--shadow-kpi); }
.result-summary .result-number { font-size: 30px; line-height: 36px; font-weight: 600; margin-top: 8px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.result-summary .result-number small { display: inline-block; font-size: 14px; line-height: 20px; font-weight: 400; }
.result-summary .result-kpi { width: 100%; gap: 12px; }
.result-summary .result-footer { width: 100%; gap: 12px; margin-top: auto; padding-top: 12px; }
.result-summary .metric-note, .result-summary .result-kpi { margin-bottom: 24px; }
.result-summary > .metric-filter-card:hover { border-color: var(--ring); }
.result-summary > .metric-filter-card.active { border-color: var(--foreground); box-shadow: var(--shadow-kpi), inset 0 0 0 1px var(--foreground); }
.result-summary > .metric-filter-card:focus-visible { outline: 3px solid var(--ring); outline-offset: 3px; }
.card .label { font-size: 14px; line-height: 20px; }
.card .value { font-size: 30px; line-height: 36px; font-weight: 600; margin-top: 8px; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.panel h2, .team-section h2 { font-size: 16px; line-height: 24px; font-weight: 600; margin: 0 0 16px; }
.panel h3 { font-size: 16px; font-weight: 600; }
.grid2 { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; margin-top: 24px; }
.toolbar { gap: 12px; margin-bottom: 24px; }
.field { gap: 8px; font-size: 14px; }
.primary-filters { padding: 16px; border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--card); }
.primary-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.primary-filters { margin-bottom: 24px; }
.primary-filters > label { display: grid; gap: 8px; color: var(--muted-foreground); font-size: 14px; line-height: 20px; }
.primary-filters.traffic-toolbar .field, .primary-filters.report-filters > label { flex: 0 1 auto; min-width: 160px; max-width: 100%; }
.primary-filters.traffic-toolbar input, .primary-filters.traffic-toolbar select, .primary-filters.report-filters input, .primary-filters.report-filters select { min-width: 0; margin: 0; }
.primary-filters > .filter-checkbox { display: flex; align-items: center; min-height: 36px; }
@container workspace (max-width: 639px) {
  .primary-filters.traffic-toolbar .field, .primary-filters.report-filters > label { flex: 1 1 100%; min-width: 0; width: 100%; }
}
.topbar h1 { font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: -.025em; margin: 0 0 8px; }
.period-details { font-size: 12px; color: var(--muted-foreground); }
.period-details[open] #period { margin-top: 8px; }
.offer-memo { padding: 24px; border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--card-gradient) var(--card); box-shadow: var(--shadow-kpi); font-size: 14px; }
.offer-memo > summary { font-size: 16px; line-height: 24px; font-weight: 600; }
.offers-select:not([aria-expanded="true"]), .offers-expanded, .offer-item { background: var(--card-gradient) var(--card); border: 1px solid var(--border); border-radius: var(--radius-card); box-shadow: var(--shadow-kpi); }
.marketing-summary, .result-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.numeric .owner-number { text-align: right; }
.primary-filters .field { min-width: 160px; }
.primary-filters > .search-field { flex: 1; min-width: 200px; }
.filter-details { min-width: 200px; }
.filter-details > summary { display: list-item; list-style: disclosure-closed inside; min-height: 36px; padding: 7px 12px; border: 1px solid var(--primary); border-radius: var(--radius-control); background: var(--primary); color: var(--primary-foreground); font-size: 14px; font-weight: 500; }
.filter-details[open] > summary { list-style-type: disclosure-open; }
.filter-details > summary::-webkit-details-marker { display: inline; }
.filter-details > summary::after, .filter-details[open] > summary::after { content: none; }
.filter-details > summary:hover { background: #333; border-color: #333; }
.detail-fields { border-color: var(--border); border-radius: var(--radius-card); box-shadow: var(--shadow-card); padding: 16px; gap: 16px; margin-bottom: 0; }
.detail-fields label { display: grid; gap: 8px; min-width: 160px; flex: 1; font-size: 14px; }
.notice { padding: 14px 16px; margin: 16px 0; background: var(--muted); color: var(--foreground); border: 1px solid var(--border); border-radius: var(--radius-control); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.notice p { margin: 6px 0; }
.notice.danger, .work-error, [role="alert"] { color: var(--destructive); }
.notice.danger { background: var(--destructive-surface); border-color: var(--destructive); }
.data-coverage { background: var(--card); font-size: 12px; padding: 10px 14px; margin: 24px 0 0; color: var(--muted-foreground); }
.data-coverage[open] { color: var(--foreground); }
.data-coverage > div { margin-top: 12px; }
.table-wrap { max-width: 100%; min-width: 0; overflow: auto; border-radius: var(--radius-card); border-color: var(--border); scrollbar-gutter: stable; }
table { font-size: 14px; line-height: 20px; }
th, td { padding: 14px 16px; border-color: var(--border); }
th { background: var(--muted); color: #525252; font-weight: 500; }
tbody tr:hover { background: var(--muted); }
td.numeric, th.numeric { text-align: right; font-variant-numeric: tabular-nums; }
.pill, .review-status, .application-badge, .source-check-badge, .owner-module { border-radius: 6px; border: 1px solid var(--border); background: var(--muted); color: var(--foreground); font-size: 12px; line-height: 16px; padding: 3px 8px; }
.source-original { display: block; margin-top: 5px; font-size: 12px; color: var(--muted-foreground); }
.patient-link, .calculated-source, .visit-detail summary { color: var(--foreground); }
.patient-link { text-decoration: underline; text-decoration-color: #a3a3a3; text-underline-offset: 4px; }
.visit-row-mismatch { background: var(--warning-surface); }
.visit-row-mismatch:hover { background: #fff1cf; }
.source-warning-icon { background: var(--warning); }
.empty { padding: 40px 24px; color: var(--muted-foreground); white-space: normal; }
.empty strong { display: block; color: var(--foreground); font-weight: 500; margin-bottom: 8px; }
.registry-summary { margin: 0 0 16px; }
.registry-summary > .card { padding: 16px; background: var(--card); }
.registry-summary .value { font-size: 24px; line-height: 32px; }
.registry-footer { padding: 12px 0; color: var(--muted-foreground); font-size: 12px; }
.registry-table td:nth-child(4), .registry-table td:nth-child(5), .registry-table td:nth-child(6) { white-space: normal; min-width: 170px; max-width: 260px; }
#ownerWorkspace { margin: 24px 0; }
#ownerWorkspace .panel { margin: 24px 0; }
#ownerWorkspace small { font-size: 12px; color: #595959; }
#ownerMetrics > .card { min-height: 182px; display: flex; flex-direction: column; }
#ownerMetrics .card > small:first-of-type { margin-top: 24px; }
.owner-number { color: var(--foreground); font-variant-numeric: tabular-nums; text-decoration-color: #a3a3a3; overflow-wrap: anywhere; max-width: 100%; }
.card > .owner-number { font-size: 30px; line-height: 36px; font-weight: 600; margin-top: 8px; padding: 0; }
.card > .owner-number[data-unavailable="true"] { font-size: 20px; line-height: 28px; }
#ownerMoney { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#ownerMoney .card > small { margin-top: 16px; }
.owner-definitions { margin: 24px 0; border: 1px solid var(--border); border-radius: var(--radius-control); padding: 12px 16px; }
.owner-definitions summary { font-weight: 500; }
#ownerDefinitions { color: #525252; line-height: 1.6; margin-bottom: 0; }
.owner-funnel { gap: 16px; }
.owner-funnel > div { background: var(--muted); border: 1px solid var(--border); border-radius: var(--radius-control); padding: 16px; }
.owner-plan-form { gap: 16px; }
.owner-plan-form label { gap: 8px; font-size: 14px; }
.track, .funnel-track { background: var(--muted); }
.fill { background: var(--chart-line); }
.bar-row { grid-template-columns: minmax(100px, 1fr) minmax(0, 3fr) auto; font-size: 12px; }
.change.up, .change.down { color: var(--muted-foreground); }
dialog { color: var(--foreground); background: var(--popover); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 24px; max-height: 90dvh; max-width: calc(100vw - 32px); box-shadow: 0 16px 48px rgb(0 0 0 / 16%); }
dialog::backdrop { background: rgb(0 0 0 / 35%); }
.patient-dialog::backdrop, .work-dialog::backdrop, #reportDetail::backdrop { background: rgb(0 0 0 / 35%); }
dialog h2 { font-size: 18px; line-height: 26px; font-weight: 600; }
dialog h3 { font-size: 16px; line-height: 24px; }
.patient-dialog, #ownerDetail, #ownerTaskDialog, #workDialog, #historyDialog, .work-dialog { color: var(--foreground); border-color: var(--border); border-radius: var(--radius-card); }
.patient-dialog-top { gap: 16px; border-bottom: 1px solid var(--border); margin-bottom: 24px; }
.patient-dialog-top .action { flex-shrink: 0; }
.patient-summary { gap: 16px; }
.patient-summary section { background: var(--muted); border: 1px solid var(--border); border-radius: var(--radius-control); padding: 16px; min-width: 0; }
.patient-summary small, .patient-timeline time, .patient-timeline small, .visit-detail small { color: var(--muted-foreground); }
.patient-attribution, .patient-timeline li { border-color: var(--border); }
.patient-attribution { padding: 24px; border-radius: var(--radius-card); }
.patient-timeline li { grid-template-columns: 150px minmax(0, 1fr); }
.patient-timeline p, #patientBody, #ownerDetailBody { overflow-wrap: anywhere; }
.visit-detail > div { background: var(--muted); max-width: 460px; white-space: normal; }
.visit-facts { grid-template-columns: minmax(100px, 1fr) minmax(0, 2fr); gap: 12px; font-size: 14px; }
.visit-facts dt { color: var(--muted-foreground); }
#ownerDetailBody { line-height: 1.7; }
.work-form label, #ownerTaskForm label { display: grid; gap: 8px; }
.work-form { gap: 20px; }
.login-page { background: var(--sidebar); }
.login-card { border: 1px solid var(--border); border-radius: var(--radius-card); box-shadow: var(--shadow-card); }
.login-brand { color: var(--foreground); }
.nav-drawer { width: min(320px, calc(100vw - 40px)); height: 100dvh; max-height: 100dvh; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0 14px 14px 0; background: var(--sidebar); }
.nav-drawer[open] { animation: drawer-in 200ms ease-out; }
.nav-drawer .sidebar { display: flex; position: static; width: 100%; height: auto; min-height: calc(100dvh - 56px); overflow: visible; }
.drawer-close { margin: 10px 16px 0 auto; display: flex; }
.shell.sidebar-collapsed { grid-template-columns: minmax(0, 1fr); }
.shell.sidebar-collapsed > .sidebar { display: none; }
.shell.sidebar-collapsed > .main { margin-left: 8px; }
@keyframes drawer-in { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@container workspace (max-width: 1099px) { .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container workspace (max-width: 639px) {
  .cards, .grid2, #ownerMoney { grid-template-columns: minmax(0, 1fr); }
  .owner-funnel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .registry-summary { gap: 8px; }
  .registry-summary > .card { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 12px 16px; }
  .registry-summary .value { font-size: 20px; line-height: 28px; margin: 0; text-align: right; }
  .registry-summary .label { max-width: 55%; }
  .primary-filters > *, .primary-filters > .search-field { flex: 1 1 100%; min-width: 0; width: 100%; }
  .primary-filters input, .primary-filters select { width: 100%; margin: 0; }
}
@media (max-width: 1023px) {
  .shell { grid-template-columns: minmax(0, 1fr); }
  .shell > .sidebar { display: none; }
  .main, .shell.sidebar-collapsed > .main { margin: 0; border: 0; border-radius: 0; min-height: 100dvh; padding: 0 16px 24px; }
  .appbar { margin: 0 -16px 24px; padding: 10px 16px; }
  .appbar-clinic { max-width: 48%; }
  .topbar { flex-wrap: wrap; }
}
@media (max-width: 639px) {
  .card, .panel, .team-section { padding: 20px; }
  .topbar { display: flex; }
  .patient-dialog { padding: 16px; }
  .patient-dialog-top { top: -16px; align-items: flex-start; flex-direction: column; }
  .patient-summary, .patient-timeline li, .work-form, .master-grid { grid-template-columns: minmax(0, 1fr); }
  .patient-attribution { padding: 16px; }
  .visit-facts { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .visit-facts dd { margin-bottom: 8px; }
  .owner-plan-form > label, .owner-plan-form input { width: 100%; max-width: none; }
  #ownerMetrics > .card { min-height: 0; }
  #ownerMetrics .card > small:first-of-type { margin-top: 16px; }
  .appbar-title { font-size: 14px; }
  .appbar-clinic { font-size: 12px; }
}
@media (pointer: coarse), (max-width: 639px) {
  .action, .text-action, .icon-button, .input, .select, input:not([type="hidden"]), select, .sidebar .nav a, .sidebar .nav-group > summary, .filter-details > summary { min-height: 44px; }
  .icon-button { min-width: 44px; }
  .patient-link, .owner-number, .visit-detail > summary { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Shared calendars use the same accent and radii as action buttons. */
input[type="date"],input[type="month"],input[type="datetime-local"],input[type="time"]{accent-color:var(--primary)}
input::-webkit-datetime-edit-fields-wrapper{border-radius:var(--radius-control)}
input::-webkit-datetime-edit-day-field:focus,input::-webkit-datetime-edit-month-field:focus,input::-webkit-datetime-edit-year-field:focus,input::-webkit-datetime-edit-hour-field:focus,input::-webkit-datetime-edit-minute-field:focus{background:var(--primary);color:var(--primary-foreground);border-radius:4px}
.tr-calendar{position:fixed;inset:auto;margin:0;box-sizing:border-box;width:320px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;padding:14px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--popover);color:var(--foreground);box-shadow:0 8px 28px rgb(0 0 0 / 14%);font:14px/1.4 system-ui,sans-serif}
.tr-calendar-head,.tr-calendar-footer{display:flex;align-items:center;gap:6px;justify-content:space-between}.tr-calendar-head{margin-bottom:12px}.tr-calendar-head input{width:80px;min-width:0;padding:4px}.tr-calendar-head select{min-width:0;flex:1;padding:4px}
.tr-calendar button{font:inherit;cursor:pointer;border:0;border-radius:var(--radius-control);background:transparent;color:var(--foreground);min-height:34px;padding:6px 8px}.tr-calendar button:hover{background:var(--muted)}.tr-calendar button:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.tr-calendar button:disabled{opacity:.3;cursor:default}
.tr-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.tr-calendar-grid.is-months{grid-template-columns:repeat(3,minmax(0,1fr))}.tr-calendar-weekday{text-align:center;color:var(--muted-foreground);font-size:12px;padding:6px 0}
.tr-calendar .tr-calendar-cell[aria-current="date"]{box-shadow:inset 0 0 0 1px var(--primary)}.tr-calendar .tr-calendar-cell[aria-pressed="true"],.tr-calendar button:active,.tr-calendar button.action{background:var(--primary);color:var(--primary-foreground)}
.tr-calendar-footer{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}.tr-calendar-footer button{font-size:12px}.tr-calendar-time{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.tr-calendar-error{font-size:12px;color:var(--destructive);margin-top:6px}

/* Shared month-over-month KPI treatment. */
.kpi-with-trend { position: relative; }
.kpi-with-trend > .label { padding-right: 92px; min-height: 20px; }
.kpi-delta { position: absolute; top: 24px; right: 24px; display: inline-flex; align-items: center; gap: 4px; max-width: 110px; padding: 3px 8px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--foreground); font-size: 12px; line-height: 16px; font-weight: 500; font-variant-numeric: tabular-nums; }
.kpi-delta svg, .kpi-trend svg { width: 14px; height: 14px; flex: 0 0 14px; vertical-align: middle; }
.kpi-trend { margin-top: 24px; display: grid; gap: 4px; text-align: left; width: 100%; }
.kpi-trend strong { font-size: 14px; line-height: 20px; font-weight: 500; color: var(--foreground); }
.kpi-trend > span { color: var(--muted-foreground); font-size: 12px; line-height: 18px; overflow-wrap: anywhere; }
.result-summary .kpi-with-trend .kpi-trend { order: 1; margin-top: 16px; }
.registry-summary > .kpi-with-trend { display: block; padding: 24px; background: var(--card-gradient) var(--card); }
.registry-summary .kpi-with-trend .value { text-align: left; margin-top: 8px; font-size: 30px; line-height: 36px; }
.registry-summary .kpi-with-trend .label { max-width: none; }
@media(max-width:639px){.kpi-delta{top:20px;right:20px}.registry-summary > .kpi-with-trend{padding:20px}.kpi-trend{margin-top:16px}}
#ownerMetrics .kpi-with-trend > small:first-of-type, #ownerMoney .kpi-with-trend > small { margin-top: 8px; }

/* Brand signature shared by navigation and sign-in. */
.brand .brand-tagline { display: flex; align-items: center; gap: 5px; white-space: nowrap; font-size: 10px; line-height: 16px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--muted-foreground); margin-top: 5px; }
.brand-tagline > span { font-size: 8px; color: var(--muted-foreground); }

.sidebar-account-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-account-row strong{overflow:hidden;text-overflow:ellipsis;min-width:0}.sidebar-logout{font:inherit;font-size:12px;flex-shrink:0;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-control);background:transparent;color:var(--sidebar-foreground);cursor:pointer}.sidebar-logout:hover{background:var(--primary);color:var(--primary-foreground)}.sidebar-logout:disabled{opacity:.5}.sidebar-role{display:block;margin-top:12px}.sidebar-account-error{font-size:12px;color:var(--destructive)}

/* Compact account context: clinic and working role. */
.sidebar-context { margin-top: 16px; padding: 12px 8px 0; gap: 8px; }
.sidebar-context label, .sidebar-context small { font-size: 11px; line-height: 16px; }
.sidebar-context .sidebar-role { margin-top: 0; }
.sidebar-context select { height: 32px; min-height: 32px; margin-top: 3px; padding: 4px 24px 4px 8px; font-size: 12px; line-height: 18px; }
.sidebar-context .sidebar-user { padding-top: 8px; }
.sidebar-context strong { margin-top: 3px; }
.sidebar-account-error:empty { display: none; }
@media (pointer: coarse) {
  .sidebar-context select { height: 44px; min-height: 44px; }
}

.owner-traffic-card{position:relative}.owner-traffic-cost{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;border-top:1px solid var(--border);padding-top:12px;margin-top:12px;font-size:12px}.owner-traffic-cost button{border:0;background:transparent;color:var(--foreground);font:inherit;font-weight:600;cursor:pointer}.owner-traffic-plan{display:grid;grid-template-columns:minmax(90px,1fr) auto auto auto;gap:7px;font-size:11px;margin:14px 0;color:var(--muted-foreground)}.owner-traffic-tabs{display:flex;gap:6px;overflow-x:auto;padding-top:12px;margin-top:auto}.owner-traffic-tabs button{flex:0 0 auto;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--card);color:var(--foreground);padding:5px 8px;font:inherit;font-size:11px;cursor:pointer}.owner-traffic-tabs button[aria-pressed=true]{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}

.page-registry .visit-add-primary{min-height:44px;padding:10px 20px;gap:10px;font-weight:600;cursor:pointer;box-shadow:0 2px 5px #00000014}.page-registry .visit-add-primary[hidden]{display:none}.visit-add-primary .visit-add-icon{font-size:24px;font-weight:400;line-height:20px}.visit-add-primary:focus-visible{outline:2px solid var(--primary);outline-offset:3px}

.visit-type-kpi{width:100%;border-collapse:collapse;margin:16px 0 10px;font-size:12px;font-variant-numeric:tabular-nums}.visit-type-kpi th,.visit-type-kpi td{padding:9px 0;border-bottom:1px solid var(--border);text-align:right;background:transparent;white-space:normal}.visit-type-kpi th:first-child{text-align:left}.visit-type-kpi thead th{font-weight:400;color:var(--muted-foreground)}.visit-type-kpi tbody th{font-weight:500}.visit-type-kpi td{font-size:16px;font-weight:600}.visit-kpi-caption,.visit-kpi-notice{display:block;font-size:11px;line-height:1.5}.visit-kpi-notice{margin-top:6px;color:var(--muted-foreground)}.visit-kpi-notice:empty{display:none}

#cashOtherRow[hidden]{display:none}.owner-traffic-cost + .visit-kpi-caption{margin-top:12px}

.cash-issue-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.cash-issue-actions .text-action{text-align:left}.visit-cash-issue{border-left:3px solid var(--foreground);padding:6px 10px;margin-bottom:10px;font-size:12px;max-width:280px;white-space:normal}#cashIssueBanner[hidden]{display:none}

.visit-payment-method { min-width:0; border:0; padding:0; margin:0; }
.visit-payment-method legend { font-size:12px; color:var(--muted-foreground); margin-bottom:6px; padding:0; }
.visit-payment-options { display:flex; flex-wrap:wrap; gap:6px; }
.visit-payment-options label { position:relative; cursor:pointer; }
.visit-payment-options input { position:absolute; opacity:0; width:1px; height:1px; min-height:0; }
.visit-payment-options span { display:block; padding:5px 10px; border:1px solid var(--border); border-radius:var(--radius-control); background:var(--card); color:var(--foreground); font-size:12px; line-height:18px; }
.visit-payment-options input:checked + span { background:var(--primary); color:var(--primary-foreground); border-color:var(--primary); }
.visit-payment-options input:focus-visible + span { outline:2px solid var(--ring); outline-offset:2px; }
@media(pointer:coarse){.visit-payment-options span{padding:11px 10px;}}

.visit-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.visit-dialog-heading h2 { margin:0; padding-top:4px; }
.visit-dialog-heading [data-close] { flex-shrink:0; }

/* Clinic weekly schedule: fixed columns, Monday first. */
.clinic-schedule{margin:24px 0 0;padding:18px;border:1px solid var(--border,#dce5ef);border-radius:16px;min-width:0}.clinic-schedule legend{font-weight:600;padding:0 6px}.clinic-schedule p{color:var(--foreground,#243247);font-size:14px;line-height:1.6}.clinic-schedule-rows{display:grid;gap:8px;max-width:480px}.clinic-schedule-row{display:grid;grid-template-columns:minmax(110px,1fr) 120px 16px 120px;align-items:center;gap:10px}.clinic-schedule-row .input{width:100%;min-width:0;height:40px;box-sizing:border-box}.clinic-schedule-row>span:nth-child(3){text-align:center}@media(max-width:520px){.clinic-schedule{padding:12px}.clinic-schedule-row{grid-template-columns:minmax(90px,1fr) 94px 10px 94px;gap:5px;font-size:12px}.clinic-schedule-row .input{padding:6px;font-size:12px}}

.page-owner #ownerMetrics>.owner-payments-card{grid-column:auto;min-width:0;max-width:100%;padding:16px;align-self:start;display:block}.owner-payments-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.owner-payments-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;margin-bottom:14px}.owner-payments-values>div{display:flex;flex-direction:column;gap:5px}.owner-payments-values>div>span,.owner-payments-card small{color:#73849b;font-size:12px}.owner-payments-values .owner-number{font-size:23px;line-height:1.2;white-space:normal;margin:0;padding:0;text-align:left;overflow-wrap:anywhere}.owner-payments-tabs{display:flex;gap:4px}.owner-payments-tabs button{border:1px solid #dce5ef;border-radius:9px;background:white;color:#132d4b;padding:7px 12px;cursor:pointer}.owner-payments-tabs button[aria-pressed=true]{background:#132d4b;color:white}.owner-payments-chart{display:block;width:100%;border:0;background:transparent;padding:0;cursor:pointer}.owner-payments-chart svg{display:block;width:100%;max-height:120px}.owner-payments-card details{margin-top:10px;font-size:12px}.owner-payments-card details p{max-width:900px}@media(max-width:650px){.owner-payments-values{grid-template-columns:1fr 1fr}.owner-payments-head{flex-wrap:wrap}.owner-payments-values .owner-number{font-size:23px}}

.page-owner #ownerPaymentsCard>small{display:block;margin-top:5px;font-size:10px;line-height:1.4}.owner-payments-head{gap:6px;margin-bottom:10px}.owner-payments-head>strong{font-size:14px}.owner-payments-head>.muted{font-size:10px;text-align:right}.owner-payments-values>div>span,.owner-payments-values>div>small{font-size:10px;line-height:1.4}.owner-payments-values>div{gap:4px}.owner-payments-tabs{gap:2px}.owner-payments-tabs button{font-size:10px;padding:5px 7px}.owner-payments-card details{font-size:10px}.owner-payments-card details[open]{max-height:180px;overflow:auto}.owner-payments-card .input{max-width:100%;box-sizing:border-box}

/* Shared time-series palette: current, previous period, previous year. */
:root{--chart-current:#62ef26;--chart-previous:#8799b0;--chart-year:#344b65}
.visit-flow-legend span:before{background:var(--chart-current)}.visit-flow-legend span+span:before{background:var(--chart-previous);opacity:1}

#ownerPaymentsCard .owner-payments-tabs{flex-wrap:nowrap;max-width:100%}#ownerPaymentsCard .owner-payments-tabs button{padding:5px 6px;font-size:10px}#ownerPaymentsCard .owner-payments-head:has(.owner-payments-tabs){flex-wrap:wrap}

#ownerMetrics>#ownerPaymentBreakdown{display:block;align-self:start;min-width:0;padding:16px}.payment-breakdown-heading,.payment-breakdown-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:6px;align-items:center}.payment-breakdown-heading{font-size:10px;color:var(--muted-foreground);margin:14px 0 5px}.payment-breakdown-heading>span:not(:first-child){text-align:right}.payment-breakdown-list{max-height:310px;overflow:auto}.payment-breakdown-row{position:relative;width:100%;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--foreground);padding:10px 0 12px;text-align:left;cursor:pointer;font:inherit;font-size:12px}.payment-breakdown-row>strong,.payment-breakdown-row>span:nth-child(3){text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.payment-breakdown-row>span:nth-child(3){color:var(--muted-foreground)}.payment-breakdown-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payment-breakdown-name small{display:block;font-size:10px!important}.payment-breakdown-row i{position:absolute;bottom:0;left:0;width:var(--share);height:2px;background:var(--chart-previous,#8799b0)}.payment-breakdown-row:hover{background:var(--muted)}#ownerPaymentBreakdown details{font-size:10px;margin-top:12px}#ownerPaymentBreakdown details[open]{max-height:180px;overflow:auto}#ownerPaymentBreakdown .owner-payments-tabs button{font-size:10px;padding:6px}

#ownerBody.owner-loading>:not(#ownerMetrics){display:none}#ownerMetrics .owner-chart-placeholder{height:110px;margin:12px 0;border-radius:8px;background:linear-gradient(180deg,var(--muted),transparent);border-bottom:1px solid var(--border)}#ownerMetrics button:disabled{cursor:default;opacity:.65}
