/* EDS working surfaces. Brand tokens follow the local Fuhrpark reference.
   Keep the shared three-column grid and the 16px layout gap. */
:root {
  --surface: #ffffff; --surface-muted: #edf1f5; --surface-hover: #e4ebf2;
  --action: #005daa; --action-hover: #004880; --action-text: #ffffff;
  --navy-950: #ffffff; --navy-900: #f0f6fb; --navy-800: #005daa;
  --blue-700: #005daa; --blue-600: #0077c8; --blue-100: #eaf3fa;
  --slate-900: #202326; --slate-700: #434950; --slate-600: #535d68;
  --slate-500: #687480; --slate-300: #c6cfd7; --slate-200: #dce3e9;
  --slate-100: #edf1f5; --slate-50: #f4f6f8; --white: #fff;
  --line-strong: #b7c4ce; --sidebar-width: 224px;
  --shadow-sm: 0 1px 2px rgba(32,35,38,.035);
}
/* Charcoal surfaces, with brighter blue reserved for links and focus. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --surface: #24282d; --surface-muted: #2c3138; --surface-hover: #353d46;
  --navy-950: #202429; --navy-900: #24282d; --navy-800: #83c3ff;
  --slate-50: #191d22; --slate-100: #2c3138; --slate-200: #454e59;
  --slate-300: #687583; --slate-500: #acb8c5; --slate-600: #bec8d2;
  --slate-700: #d7dfe7; --slate-900: #f2f5f8; --white: #24282d;
  --blue-700: #8ac9ff; --blue-600: #addcff; --blue-100: #263f55;
  --green-700: #8ce0b0; --green-100: #203d30;
  --red-700: #ffaaa7; --red-100: #4b292c; --line-strong: #687583;
  --action: #1476c7; --action-hover: #1684dc;
}
.toolbar-button { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; border: 1px solid var(--slate-300); border-radius: 6px; padding: 8px 12px; background: var(--surface); color: var(--slate-900); cursor: pointer; font-size: 14px; font-weight: 650; }
.toolbar-button:hover { background: var(--surface-hover); }
.toolbar-button svg, .edit-name svg { width: 20px; height: 20px; flex-shrink: 0; }
.theme-symbol { font-size: 20px; line-height: 1; }
.back-link { display: inline-flex; gap: 8px; align-items: center; padding: 8px 0; margin-bottom: 16px; font-size: 14px; font-weight: 700; color: var(--blue-700); text-underline-offset: 4px; }
.back-link + .breadcrumbs { display: none; }
.editable-title { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.edit-name { display: inline-flex; padding: 8px; border-radius: 6px; color: var(--slate-600); }
.edit-name:hover { background: var(--surface-hover); color: var(--blue-700); }
.required-documents { padding: 16px 24px; background: var(--surface-muted); border-bottom: 1px solid var(--line); }
.required-documents h3 { margin: 0 0 12px; font-size: 16px; }
.required-document { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; }
.required-document p { margin: 4px 0 0; color: var(--slate-600); font-size: 14px; }
:root[data-sidebar="collapsed"] { --sidebar-width: 72px; }
:root[data-sidebar="collapsed"] .sidebar { padding: 24px 8px 16px; }
:root[data-sidebar="collapsed"] .brand { margin: 0 auto 32px; }
:root[data-sidebar="collapsed"] .brand-copy,
:root[data-sidebar="collapsed"] .sidebar-status { display: none; }
:root[data-sidebar="collapsed"] .nav-label { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
:root[data-sidebar="collapsed"] .primary-nav a { justify-content: center; padding: 16px; }
[hidden] { display: none !important; }
html { scroll-padding-top: 24px; }
body { font-size: 15px; -webkit-font-smoothing: antialiased; }
.sidebar { border-right: 1px solid var(--line); color: var(--slate-900); height: 100dvh; }
.brand-mark { color: #fff; width: 40px; height: 40px; background: var(--action); border-radius: 8px; font-size: 14px; }
.brand-copy strong { color: var(--slate-900); font-size: 15px; }
.brand-copy small, .sidebar-status small { color: var(--slate-600); font-size: 12px; }
.primary-nav a { color: var(--slate-600); border-radius: 8px; }
.primary-nav a:hover { background: var(--slate-50); color: var(--blue-700); }
.primary-nav a[aria-current="page"] { background: var(--blue-100); color: var(--blue-700); box-shadow: none; }
.sidebar-status { border-color: var(--line); }
.sidebar-status strong { color: var(--slate-700); font-size: 12px; }
.topbar { background: var(--surface); border-bottom: 1px solid var(--line); }
.topbar-context { color: var(--slate-600); }
.page-shell { max-width: 1480px; padding: 24px 32px 32px; }
.page-heading { align-items: center; gap: 16px; }
.page-heading h1 { font-size: clamp(24px, 2.2vw, 32px); font-weight: 750; }
.section-label { color: var(--blue-700); font-size: 12px; letter-spacing: .06em; }
.page-description { font-size: 14px; }
.panel { border-radius: 8px; box-shadow: none; background: var(--surface); }
.panel-heading { padding: 16px 24px; gap: 16px; }
.panel-heading h2 { font-size: 18px; }
.button { border-radius: 6px; min-height: 40px; font-weight: 650; transition: background .15s, border-color .15s; }
.button::after { display: none; }
.button.primary, .button.primary:hover { background: var(--action); border-color: var(--action); color: var(--action-text); box-shadow: none; transform: none; }
.button.primary:hover { background: var(--action-hover); border-color: var(--action-hover); }
.button.secondary, .button.secondary:hover { background: var(--surface); border-color: var(--slate-300); color: var(--blue-700); box-shadow: 0 1px 2px #20232608; transform: none; }
.button.secondary:hover { background: var(--blue-100); border-color: #a9c6dc; }
.button-small { min-height: 36px; }
.text-link { font-size: 14px; }
input:not([type="checkbox"]):not([type="radio"]), select, textarea { border-radius: 6px; }
input:focus, select:focus, textarea:focus { border-color: var(--blue-600); }
:focus-visible { outline: 3px solid #0077c8; outline-offset: 3px; }
.data-primary small, .table-header, .field-help { font-size: 13px; }
.table-row { min-height: 72px; }
.table-row:hover { background: var(--surface-hover); }
.status, .count-badge { border-radius: 6px; font-size: 12px; }
.empty-state { padding: 24px; }
.empty-icon, .document-icon { background: var(--blue-100); border-color: #d4e5f1; color: var(--blue-700); }
.project-workflow { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.project-workflow a { text-decoration: none; padding: 8px 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; color: var(--blue-700); font-size: 14px; font-weight: 650; }
.project-workflow a:hover { background: var(--blue-100); border-color: #a9c6dc; }
.project-views { display: flex; flex-wrap: wrap; gap: 16px; border-bottom: 1px solid var(--slate-300); margin-bottom: 16px; }
.project-views a { color: var(--slate-600); padding: 12px 4px; border-bottom: 3px solid transparent; text-decoration: none; font-weight: 650; }
.project-views a[aria-current] { color: var(--blue-700); border-bottom-color: var(--blue-700); }
.project-views span { padding: 4px 8px; background: var(--slate-100); border-radius: 6px; font-size: 12px; }
.project-input-rail { display: contents; }
.agent-command-panel, .input-preview-panel, .project-switcher-panel { grid-column: 1 / -1; }
.agent-command-grid { padding: 24px; gap: 24px; }
.command-label { font-size: 12px; }
.readiness-list li, .output-chip-list li { font-size: 14px; }
.readiness-list a { color: var(--blue-700); text-decoration: underline; text-underline-offset: 3px; }
.command-action p, .automatic-state { font-size: 12px; }
.readiness-issues { background: var(--surface-muted); padding: 16px 24px; }
.readiness-issues strong { font-size: 14px; }
.readiness-issues small { font-size: 13px; }
.issue-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.output-chip-list li { border-color: #d4e5f1; }
.metric-card { border-radius: 8px; min-height: 104px; }
.metric-label { font-size: 14px; }
.metric-meta { font-size: 13px; }
.field-group label, .intake-field label, .form-section label { font-size: 14px; }
.input-preview-list { padding: 0 24px 16px; }
.input-preview-list li { grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 8px 16px; }
.input-preview-list strong { font-size: 15px; }
.input-preview-list small { font-size: 13px; }
.input-preview-actions { grid-column: 1 / -1; gap: 16px; }
.project-switcher-panel { order: 4; }
.project-switcher-panel summary, .danger-zone summary { cursor: pointer; padding: 16px 24px; font-weight: 650; }
.project-switcher-panel .panel-heading { display: none; }
.agent-chat-panel { grid-column: span 2; }
.open-questions-panel { grid-column: span 1; }
.agent-chat-feed, .agent-chat-composer textarea { background: var(--surface-muted); }
.chat-message p, .conversation-empty, .rail-empty, .open-question > p { font-size: 14px; }
.chat-message-meta span, .conversation-contract-note, .open-question-meta time { font-size: 12px; }
.agent-chat-composer label, .question-answer-form label { font-size: 14px; }
.document-panel { display: flex; flex-direction: column; }
.document-panel .panel-heading { order: -3; }
.document-panel .form-error { order: -2; }
.document-upload-form { order: -1; background: var(--surface-muted); border-top: 0; border-bottom: 1px solid var(--line); padding: 24px; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.document-upload-form label, .document-upload-form input[type="file"] { font-size: 14px; }
input[type="file"]::file-selector-button { background: var(--surface); border: 1px solid var(--slate-300); border-radius: 6px; padding: 8px 12px; color: var(--blue-700); margin-right: 12px; cursor: pointer; }
.danger-zone { display: block; margin-top: 24px; }
.danger-zone > div, .danger-zone > form { padding: 16px 24px; }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.selected:focus,
.flatpickr-monthSelect-month.selected, .flatpickr-monthSelect-month.selected:hover { background: var(--blue-700); border-color: var(--blue-700); box-shadow: none; }
.auth-page { background: var(--slate-50); }
@media (max-width: 1100px) {
  .agent-command-grid { grid-template-columns: 1fr; gap: 16px; }
  .agent-chat-panel, .open-questions-panel { grid-column: 1 / -1; }
  .document-upload-form { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .page-heading { align-items: stretch; }
  .page-heading > div { min-width: 0; }
  .sidebar { height: auto; }
  .page-shell { padding: 16px; }
  .panel-heading, .agent-command-grid, .document-upload-form { padding: 16px; }
  .input-preview-list li { grid-template-columns: 1fr; }
  .project-views { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 16px; }
  .project-views a { font-size: 14px; }
  .project-workflow { gap: 8px; }
  .header-actions { width: auto; }
  .document-row { grid-template-columns: 40px minmax(0,1fr); padding: 16px; }
  .document-actions { grid-column: 1 / -1; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
/* Shared surfaces include the form, finance, knowledge and calendar routes. */
.account-logout, .account-logout:hover, .flatpickr-calendar { background: var(--surface); color: var(--slate-700); border-color: var(--slate-300); }
.knowledge-section-heading, .source-adders, .finance-month-list, .finance-result-table thead th,
.finance-result-table .finance-emphasis { background: var(--surface-muted); }
.knowledge-item-row:hover, .finance-revision-row:hover { background: var(--surface-hover); }
.status-neutral { background: var(--surface-muted); color: var(--slate-900); border: 1px solid var(--slate-300); }
.primary-nav a[aria-current="page"] { background: var(--blue-100); box-shadow: inset 3px 0 0 var(--blue-700); }
.section-label { color: var(--slate-600); }
.button.secondary { color: var(--slate-900); }
.readiness-list .is-complete { color: var(--green-700); }
.required { color: var(--red-700); }
.table-header, .chat-message-user > div { background: var(--surface-muted); border-color: var(--line); }
.data-row:hover { background: var(--surface-hover); }
.topic-option:has(input:checked) { background: var(--green-100); }
.topic-option.is-pending, .topic-option.is-unavailable { background: var(--surface-muted); border-color: var(--line); }
.danger-zone { border-color: var(--line); }
.auth-card { background: var(--surface); box-shadow: var(--shadow-sm); }
.field-error { color: var(--red-700); font-size: 13px; }
.form-alert { background: var(--red-100); color: var(--red-700); border-color: var(--red-700); }
.form-success { background: var(--green-100); color: var(--green-700); border-color: var(--green-700); }
.button.danger:hover { background: var(--red-100); transform: none; }
.document-panel .panel-heading, .document-panel .form-error, .document-upload-form { order: 0; }
.agent-command-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.agent-chat-panel { grid-column: span 2; }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-monthSelect-month.selected { color: #fff; background: var(--action); border-color: var(--action); }
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay { color: var(--slate-500); }
:root[data-theme="dark"] input, :root[data-theme="dark"] select, :root[data-theme="dark"] textarea { background-color: var(--slate-50); color: var(--slate-900); border-color: var(--slate-300); }
:root[data-theme="dark"] input::placeholder, :root[data-theme="dark"] textarea::placeholder { color: var(--slate-500); opacity: 1; }
:root[data-theme="dark"] .datepicker-display { background-image: url("/static/icons/calendar-dark.svg"); }
:root[data-theme="dark"] .flatpickr-calendar { box-shadow: 0 8px 24px #0005; }
:root[data-theme="dark"] .flatpickr-current-month input.cur-year { background: transparent; }
:root[data-theme="dark"] .flatpickr-months .flatpickr-prev-month,
:root[data-theme="dark"] .flatpickr-months .flatpickr-next-month { color: var(--slate-900); fill: var(--slate-900); }
@media (max-width: 1100px) { .agent-command-grid { grid-template-columns: 1fr; } .agent-chat-panel { grid-column: 1 / -1; } }
@media (max-width: 780px) {
  .app-shell { display: flex; flex-direction: column; }
  .workspace { display: contents; }
  .topbar { display: flex; order: -2; height: auto; min-height: 64px; padding: 12px 16px; gap: 8px; }
  .sidebar { order: -1; min-height: 0; height: auto; }
  :root[data-sidebar="collapsed"] .sidebar { display: none; }
  .account-copy { display: none; }
  .toggle-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .required-document { align-items: stretch; flex-direction: column; }
  .required-documents { padding: 16px; }
  .page-shell { width: 100%; }
}
