/* Richard McCarthy Homes application system.
   Structure and workflow layouts live in style.css; this layer owns the brand
   across EVERY workspace surface. Fonts/mark are local (see assets/brand). */
:root {
  --navy:#001853;
  --cream:#E8E7E2;
  --bg:var(--cream);
  --surface:#fffefb;
  --ink:#001853;
  --muted:#566176;
  --border:#d5d5cd;
  --primary:var(--navy);
  --primary-dark:#102e69;
  --purple-bg:#e8edf5; /* Existing semantic 'ready' class, not a purple brand. */
  --green:#246247;
  --green-bg:#eaf2e9;
  --amber:#805311;
  --amber-bg:#fff2d9;
  --red:#9d3340;
  --red-bg:#fae9e9;
  --radius:4px;
  font-family:Poppins,Arial,sans-serif;
}
body {font-family:Poppins,Arial,sans-serif;line-height:1.55}
body:has(#home-fallback:not([hidden])) {background:var(--navy)}
button,a,select,input,textarea {touch-action:manipulation}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible {outline:3px solid #96722e;outline-offset:3px}
.sidebar {background:var(--navy);color:#d0d5df;padding-top:28px;overflow-y:auto}
.brand {flex-direction:column;align-items:flex-start;gap:16px;padding:0 14px 28px;letter-spacing:0;color:var(--cream);font-weight:400}
.brand img {width:66px;height:auto;display:block}
.brand-name {font:400 23px/1.2 Gloock,Georgia,serif;letter-spacing:0;max-width:180px}
.workspace-label {color:#b6c0d5;letter-spacing:1.8px;font-size:10px}
.nav-button {border-radius:3px;min-height:44px;font-size:.8125rem}
.nav-button:hover {background:#193369;color:var(--cream)}
.nav-button.active {background:var(--cream);color:var(--navy)}
.nav-count,.active .nav-count {background:#d1d7e3;color:var(--navy)}
.sidebar .nav-button:focus-visible,.brand:focus-visible {outline-color:#f5cb78}
.sidebar-bottom {margin-top:28px}
.demo-side {border-color:#526184}
.demo-side strong,.user strong {color:var(--cream)}
.demo-side p,.user small {color:#c2cadb}
.demo-icon {color:var(--cream)}
.avatar,.user-tag {background:var(--cream);color:var(--navy)}
.user {border-color:#526184}
.topbar {background:var(--bg);border-bottom:1px solid #c8c9c4;min-height:68px}
.persona-bar {background:var(--surface);box-shadow:0 2px 6px #0018530a;gap:18px;padding-top:14px;padding-bottom:14px}
.persona-bar select {background:var(--surface);border-color:#adb3c0;border-radius:3px;font-size:.8125rem;min-height:44px}
.persona-bar label {font-size:10px;letter-spacing:1.6px}
.persona-context strong {font-size:.8125rem}
.persona-context p {font-size:.6875rem;line-height:1.7}
.demo-badge,.badge {border-radius:3px;background:#eeeee8;color:var(--muted);border-color:var(--border)}
.demo-badge {text-transform:uppercase;letter-spacing:1px;font-size:9px}
.page-heading {padding:4px 0 24px;border-bottom:1px solid #c8c9c4;margin-bottom:24px}
h1,#title,h2#detail-title,.launch-brand p,.section-heading h2,.project-card h2,.stage-card-heading h3 button,.focus-card h3 {font-family:Gloock,Georgia,serif;font-weight:400;letter-spacing:0}
#title {font-size:clamp(28px,2.7vw,39px);line-height:1.2}
.eyebrow {color:var(--muted);font-weight:600;letter-spacing:1.8px;font-size:10px}
.page-heading p {max-width:760px;font-size:.875rem;line-height:1.75}
.panel-header h2 {font-size:1rem;font-weight:600;line-height:1.5}
.button {border-radius:3px;min-height:44px;border-color:#adb3c0;background:var(--surface);font-size:.8125rem;font-weight:600}
.button:hover {background:#efeee8;border-color:var(--navy)}
.button.primary {background:var(--navy);color:var(--cream);box-shadow:none;border-color:var(--navy)}
.button.primary:hover {background:var(--primary-dark)}
.icon-button {border-radius:3px;min-width:44px;min-height:44px}
.search,.company-picker select,.projects-toolbar select,.assistant-input input,.review-panel textarea {border-radius:3px;border-color:#adb3c0;background:var(--surface);color:var(--ink)}
.search input::placeholder {color:var(--muted)}
.search:focus-within {outline:2px solid var(--navy);outline-offset:2px}
.panel,.metric,.owner-kpi,.project-card,.focus-card {border-radius:4px;background:var(--surface);border:1px solid var(--border);box-shadow:none}
.metric-label svg {width:17px;height:17px}
.metric-value,.owner-kpi>strong,.project-card-bottom b,.finance-bar-group b {font-family:Poppins,Arial,sans-serif;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.owner-kpi>strong {font-size:27px}
.owner-kpi.dark {background:var(--navy);border-color:var(--navy)}
.owner-kpi.dark>span,.owner-kpi.dark p,.owner-kpi.dark strong small {color:#d0d5df}
.owner-kpi.dark strong {color:var(--cream)}
.record-head,.queue-bottom,.owner-table th,.owner-finance-note,.detail-footer {background:#f2f1eb;color:var(--muted)}
.record-row,.project-task,.watch-item {background:var(--surface);border-color:#e0e0d8}
.record-row:hover,.project-task:hover,.watch-item:hover {background:#f2f1eb}
.doc-icon,.company-mark,.process span,.task-marker {background:#e8edf5;color:var(--navy);border-color:var(--border);border-radius:3px}
.task-marker.risk {color:var(--red);background:var(--red-bg)}
.doc-icon.warn {color:var(--amber);background:var(--amber-bg)}
.doc-icon.good {color:var(--green);background:var(--green-bg)}
.project-card:hover {border-color:var(--navy);box-shadow:0 3px 12px #0018530b}
.project-card.project-managed,.project-card.project-houses {border-top-color:var(--border)}
.project-type {color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:10px}
.project-card h2 {font-size:26px}
.project-open-arrow {color:var(--navy);border-radius:3px}
.focus-card {background:var(--navy);color:var(--cream);padding:24px}
.focus-heading,.focus-card p {color:#d0d5df}
.focus-card h3 {font-size:23px}
.focus-card .button {color:var(--navy);background:var(--cream);border-color:var(--cream)}
.notice,.route-card,.filter-status,.handoff-panel,.assistant-reply,.next-focus {background:#f2f1eb;color:var(--ink);border-color:var(--border);border-radius:4px}
.next-focus {border-left:0;padding:18px}
.next-focus span,.next-focus p,.route-card span,.route-arrow {color:var(--muted)}
.assistant-panel {border-top:1px solid var(--border)}
.assistant-panel .panel-header {background:var(--navy);color:var(--cream);margin-bottom:22px}
.assistant-panel .panel-header p,.assistant-panel .eyebrow {color:#d0d5df}
.assistant-panel .badge {color:var(--navy);background:var(--cream)}
.demo-intro {background:transparent;border:0;border-bottom:1px solid #c8c9c4;border-radius:0;padding:0 0 22px;gap:20px}
.demo-intro h2 {font-family:Poppins,Arial,sans-serif;color:var(--navy);font-size:.9375rem}
.demo-intro p,.demo-intro small {color:var(--muted)}
.demo-intro-actions {align-self:flex-end}
.map-wrap,.map-fallback,.leaflet-container {background:#e1e2dc;font-family:Poppins,Arial,sans-serif}
.map-fallback strong,.map-popup>strong {font:400 24px/1.4 Gloock,Georgia,serif;color:var(--navy)}
.map-fallback span,.map-caption,.map-caption a,.map-popup p,.map-popup>span {color:var(--muted)}
.map-caption {border-color:var(--border)}
.demo-map-marker>span {font-family:Poppins,Arial,sans-serif}
.stage-strip li:before {background:#d7d8d1}
.stage-strip li>span {background:#f0f0ea;color:var(--muted);border-color:var(--surface);box-shadow:0 0 0 1px #c6c9ce}
.stage-strip .complete:before,.stage-strip .current:before {background:#97a4bd}
.stage-strip .complete>span {background:#dce3ee;color:var(--navy)}
.stage-strip .current>span {background:var(--navy);color:var(--cream);box-shadow:0 0 0 3px #dce3ee}
.stage-strip .current strong {color:var(--navy)}
.budget-bar {background:#b9c2d1}
.forecast-bar {background:var(--navy)}
.forecast-bar.over {background:#b65461}
.finance-track {background:#e9e9e2;border-radius:2px}
.owner-table td:first-child button,.stage-card-heading h3 button {color:var(--navy)}
.owner-table td:first-child button span {color:var(--muted)}
.negative {color:var(--red)!important}
.positive {color:var(--green)!important}
/* Warm neutral metadata with readable contrast on the light surfaces. */
.record-first small,.amount small,.activity-item small,.metric-note,.company-row small,.company-row .company-number,
.integration span:last-child,.project-company,.project-context span,.project-card-bottom span,.project-sample,.project-description,
.project-task small,.project-contact small,.sample-email,.property-entry>span,.owner-snapshot,.owner-kpi>span,.owner-kpi p,.owner-kpi strong small,
.watch-item p,.watch-item small,.owner-table td:nth-child(2),.owner-table td:first-child small,.stage-card-heading>div>span,
.stage-card-heading p,.stage-strip li strong,.stage-date,.stage-date strong,.project-date span,.project-date strong,
.finance-bar-group>div:not(.finance-track),.finance-bar-group b,.finance-breakdown dt,.finance-breakdown dd,.finance-note,
.source-label,.paper-sub,.paper-meta,.paper-address strong,.paper-table th,.paper-note,.check small,.field-label,.safe-note,.mail-address,
footer,footer b {color:var(--muted)}
dialog {border-radius:4px;background:var(--surface);border:1px solid var(--border);box-shadow:0 24px 80px #00185333}
dialog::backdrop {background:#00185399;backdrop-filter:none}
.modal-head {border-bottom:1px solid var(--border)}
#detail-title {font-size:27px}
.review-panel {font-family:Poppins,Arial,sans-serif}
.source-panel,.detail-tools {background:var(--cream);color:var(--muted)}
.paper {border-color:var(--border);box-shadow:none}
.watermark {color:var(--muted);background:#f2f1eb;border-color:var(--border)}
.paper-address {background:#f2f1eb;border-color:var(--border)}
#toast {background:var(--navy);color:var(--cream);border-radius:4px}
#home-fallback .button {margin-top:24px}
/* Keep login's cream text: generic workspace metadata must not override it. */
.launch-footer,.launch-footer b {color:#bbc6e0}
@media(min-width:1031px) {
  .sidebar {width:246px;padding-left:16px;padding-right:16px}
  .shell {margin-left:246px}
}
@media(max-width:1030px) {
  .sidebar {overflow:visible}
  .brand {flex-direction:row;align-items:center;padding:0;gap:18px}
  .brand img {width:48px}
  .brand-name {font-size:23px;max-width:none}
}
@media(max-width:600px) {
  .brand-name {font-size:21px;max-width:220px}
  .brand img {width:44px}
  #title {font-size:29px}
  .page-heading {padding-bottom:18px}
  .persona-bar {gap:10px;padding:14px 16px}
  .persona-context p {font-size:10px}
  .owner-kpi>strong {font-size:24px}
  .owner-kpi {padding:16px 12px}
  .owner-kpi strong small {font-size:11px;letter-spacing:0}
  .demo-intro-actions {width:100%}
  .panel-header h2 {font-size:15px}
  #detail-title {font-size:24px}
  .modal-head {flex-wrap:wrap;gap:16px;align-items:flex-start}
  .modal-head>div:first-child {flex:1 1 160px;min-width:0}
  .assignment-body {padding:0 16px 18px}
}
