/* LUMPE brand layer. Business controls and visibility remain in styles.css. */
:root {
  --ink: #172e40;
  --muted: #667b8b;
  --line: #e1e7ed;
  --paper: #f3f5f7;
  --panel: #fff;
  --forest: #0a2b43;
  --forest-2: #254e6c;
  --lime: #7999b2;
  --amber: #c3954b;
  --red: #b7534c;
  --blue: #38678d;
  --success: #287967;
  --success-bg: #edf6f1;
  --navy-soft: #edf2f7;
  --shadow: 0 12px 36px rgba(10,43,67,.08);
  --brand-font: "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-family: var(--brand-font);
  -webkit-font-smoothing: antialiased;
}
body { font-family: var(--brand-font); }
button, input, textarea, select { font-family: var(--brand-font); }
button, summary, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, summary:focus-visible, a:focus-visible { outline: 3px solid #7ba3c2; outline-offset: 3px; }
.app-shell { grid-template-columns: 236px minmax(0,1fr); }
.sidebar { background: #0a2b43; color: #e0e9f0; padding: 29px 18px 22px; }
.brand { justify-content: center; padding: 0 0 26px; }
.brand-mark { position: relative; display: block; flex: 0 0 76px; width: 76px; height: 76px; overflow: hidden; border-radius: 12px; background: #f3f4f1; }
.brand-mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nav-context { margin: 0 0 25px; padding: 17px 11px; border: 0; border-block: 1px solid #ffffff1c; background: transparent; border-radius: 0; }
.nav-context span { color: #8aabc2; font-size: 9px; letter-spacing: .15em; font-weight: 600; }
.nav-context strong { font: 600 14px/1.5 var(--brand-font); margin-top: 6px; }
.nav-context small { color: #9ab1c2; font-size: 10px; margin-top: 4px; }
.personal-nav { gap: 9px; }
.personal-nav .nav-item { border: 1px solid transparent; min-height: 51px; color: #b7cad8; background: transparent; font-size: 14px; font-weight: 550; border-radius: 7px; }
.personal-nav .nav-item span { color: #9fb9cc; width: 23px; }
.personal-nav .nav-item:hover { color: #fff; border-color: transparent; background: #ffffff0a; }
.personal-nav .nav-item.active { color: #0a2b43; background: #fff; border-color: #fff; box-shadow: 0 5px 16px #001a2b1a; font-weight: 650; }
.personal-nav .nav-item.active span { color: #0a2b43; }
.sidebar-foot { border-color: #ffffff1c; padding-top: 20px; }
.sidebar-foot .personal-storage-entry { min-height: 39px; margin: 0 0 18px; padding: 8px 10px; font-size: 12px; color: #bdd0de; border: 1px solid #ffffff20; border-radius: 6px; }
.sidebar-foot .personal-storage-entry.active { color: #0a2b43; background: #fff; box-shadow: none; }
.sidebar-foot .personal-storage-entry span { color: inherit; }
.sidebar-foot small { color: #9ab1c2; font-size: 11px; }
.sidebar-foot small strong { color: #dae6ee; }
.market-chip { color: #d1e0ea; font-size: 12px; }
.market-chip span { background: #88acbd; width: 5px; height: 5px; }
.topbar { background: #fffffff5; min-height: 84px; padding: 18px 32px; border-color: var(--line); }
.topbar h1 { font: 650 25px/1.25 var(--brand-font); letter-spacing: -.4px; }
.eyebrow, .kicker { color: #6b879c; font-size: 10px; font-weight: 650; letter-spacing: .12em; }
.topbar .eyebrow { font-size: 9px; }
.global-search { border-color: var(--line); border-radius: 7px; height: 42px; box-shadow: none; }
.global-search input { font-size: 13px; }
.global-search:focus-within { border-color: #7298b6; box-shadow: 0 0 0 3px #0a2b4310; }
.global-search-results { border-radius: 9px; box-shadow: 0 16px 42px #0a2b4321; }
.global-search-result:hover, .global-search-result:focus { background: var(--navy-soft); }
.view { padding: 28px 32px 40px; }
.primary-button, .send-button { border-radius: 6px; background: var(--forest); font-weight: 600; }
.primary-button:hover, .send-button:hover { background: var(--forest-2); }
.secondary-button { color: var(--forest); border-color: #d5dfe7; border-radius: 6px; }
.secondary-button:hover { background: #f7f9fb; border-color: #a6bdce; }
.icon-button { background: #edf2f7; color: var(--forest); border-radius: 6px; }
.panel, .table-wrap, .timeline-panel, .client-workspace, .metric, .order-summary-section, .order-summary-metrics article, .simple-finance-form, .finance-receipt-report { border-radius: 10px; border-color: var(--line); box-shadow: none; }
.panel h2, .pipeline-header h2, .ai-console h2, dialog h2, .module-heading h2, .client-workspace-head h2, .rail-head h3, .project-main-head h3, .order-summary-section h3, .simple-finance-heading h3, .spec-detail-head h2 { font-family: var(--brand-font); font-weight: 650; }
.module-heading h2 { font-size: 24px; }
.module-heading p { font-size: 13px; line-height: 1.7; margin-top: 8px; }
table th { color: #738796; background: #f8fafc; font-size: 12px; font-weight: 550; }
td { font-size: 13px; }
.client-table tr.selected, #clientRows tr.selected { background: var(--navy-soft); box-shadow: inset 3px 0 var(--forest); }
tbody tr.selected-row { background: var(--navy-soft); box-shadow: inset 3px 0 var(--forest); }
.customer-order-heading { background: #fff; border-left-color: var(--forest); border-radius: 9px; box-shadow: none; }
.client-list-count { color: #748897; }
.client-filter-menu > summary { font-weight: 550; }
.client-filter-menu > div { border-radius: 8px; }
.client-workspace { padding: 23px; margin-top: 22px; }
.personal-mode .client-workspace-head h2 { font-family: var(--brand-font); font-size: 24px; font-weight: 700; letter-spacing: -.4px; }
.client-contact-line { font-size: 13px; gap: 7px 12px; }
.client-contact-line strong { font-size: 16px; color: #314f65; font-weight: 600; }
.client-profile-signals > * { border-color: #d6e1ea; background: #f3f6f9; color: #3a5e79; border-radius: 5px; font-size: 13px; padding: 7px 11px; }
.client-profile-grade[data-grade="A"] { color: #fff; background: var(--forest); border-color: var(--forest); }
.client-workspace-metrics div { background: #fafbfd; border: 1px solid var(--line); border-radius: 7px; padding: 17px; }
.client-workspace-metrics span { font-size: 12px; font-weight: 500; text-transform: none; }
.client-workspace-metrics strong { font: 600 28px/1.2 var(--brand-font); font-variant-numeric: tabular-nums; margin-top: 10px; }
.client-workspace-metrics small { font-size: 11px; line-height: 1.6; margin-top: 6px; }
.client-project-console { grid-template-columns: 260px minmax(0,1fr); gap: 14px; }
.project-rail { background: #f8fafc; border-radius: 8px; padding: 15px 12px; }
.project-main-workbench { background: #fff; border-radius: 8px; padding: 22px; }
.rail-head { padding: 2px 4px 5px; }
.rail-head h3 { font-size: 17px; }
.project-rail-card { border-radius: 7px; border: 1px solid var(--line); border-left: 3px solid #d8e1e8; padding: 13px 12px; margin-bottom: 10px; }
.project-rail-card.active { border-color: #becfdd; border-left-color: var(--forest); background: #fff; box-shadow: 0 3px 12px #0a2b4308; }
.project-rail-card:hover { border-color: #a5bdcf; box-shadow: none; }
.project-rail-card.won { border-left-color: var(--success); }
.project-rail-card strong { font-size: 14px; font-weight: 650; }
.project-rail-card small { font-size: 11px; line-height: 1.6; }
.project-main-head { flex-wrap: wrap; gap: 13px; padding-bottom: 17px; }
.project-main-head h3 { font-size: 22px; }
.project-main-head p { font-size: 12px; }
.project-main-actions { gap: 8px; }
.project-next-action { margin: 18px 0; border-radius: 7px; padding: 17px 18px; }
.project-next-action p { font-size: 12px; }
.project-next-action strong { font-size: 17px; }
.project-next-action.done { background: var(--success-bg); border-color: #dcece4; border-left-color: var(--success); }
.project-next-action.done strong { color: var(--success); }
.project-next-action.warning { background: #fcf7ed; border-color: #ede2cf; border-left-color: var(--amber); }
.project-workspace-tabs { background: #f6f8fa; border-color: var(--line); }
.project-workspace-tabs button { border-color: var(--line); color: #728695; padding: 12px; }
.project-workspace-tabs button:hover { background: var(--navy-soft); }
.project-workspace-tabs button.active { color: var(--forest); background: #fff; }
.project-workspace-tabs button.active::after { background: var(--forest); height: 2px; }
.project-workspace-tabs button strong { font-size: 12px; font-weight: 600; }
.project-workspace-tabs button span { color: #91a2ae; }
.project-workspace-tabs button em { background: #e6edf3; font-weight: 600; }
.project-status-strip span { border-radius: 4px; border-color: var(--line); background: #f5f8fa; }
.personal-mode .project-status-strip span.order-completed { color: #fff; background: var(--success); border-color: var(--success); }
.project-overview-grid > *, .project-focused-grid > *, .project-tab-section { background: #fafbfd; border-color: var(--line); border-radius: 6px; }
.personal-mode .project-signal-row span { color: #4b6980; background: #eff4f8; border-color: #d6e1eb; border-radius: 4px; }
.simple-finance-order { border-radius: 8px; padding: 17px; }
.simple-finance-order.active { border-left-color: var(--forest); background: #edf2f7; }
.simple-finance-order > strong { font: 650 19px/1.35 var(--brand-font); overflow-wrap: anywhere; }
.simple-finance-heading h3 { font-size: 27px; letter-spacing: -.5px; }
.simple-finance-heading p { font-size: 13px; }
.simple-finance-currency, .finance-status-tags > * { border-radius: 5px; background: #edf2f7; color: #42627b; }
.simple-finance-amounts > * { background: #fafbfd; border-radius: 7px; }
.simple-finance-amounts strong { font: 600 27px/1.3 var(--brand-font); font-variant-numeric: tabular-nums; }
.simple-finance-amounts input { font: 600 24px/1.3 var(--brand-font); }
.simple-finance-amounts .simple-balance { background: #edf2f7; border-top-color: var(--forest); }
.simple-finance-form input, .simple-finance-form select { border-radius: 5px; min-height: 44px; }
.simple-finance-form input[readonly] { background: #eff3f6; }
.finance-workflow { background: #f4f7fa; border-color: var(--line); border-radius: 8px; padding: 20px; }
.finance-workflow span { font-size: 13px; }
.finance-workflow small { font-size: 12px; }
.finance-workflow button { font-size: 15px; }
.finance-receipt-actions > div { background: #fafbfd; border-radius: 7px; }
.finance-receipt-actions strong { font: 600 23px/1.3 var(--brand-font); }
.finance-final-status { border-radius: 5px; }
.finance-completed-result { background: var(--success-bg); border-left-color: var(--success); border-radius: 7px; }
.finance-completed-result h4, .finance-completed-result a { color: var(--success); }
.finance-completed-totals > div { border-radius: 7px; background: #fafbfd; }
.finance-completed-totals strong { font: 600 25px/1.4 var(--brand-font); font-variant-numeric: tabular-nums; }
.finance-correction-preview { background: #edf2f7; border-radius: 6px; }
.order-state-badge, .finance-status-tags .order-state-badge, .simple-finance-order .order-state-badge { border-radius: 5px; font-weight: 650; font-size: 15px; min-height: 39px; }
.order-state-badge.order-state-pending { color: #8a631f; background: #fbf1df; border-color: #ead4a5; }
.order-state-badge.order-state-ready { color: #345e80; background: #edf3f9; border-color: #c0d3e2; }
.order-state-badge.order-state-shipped { color: #2d5d8a; background: #eaf2fa; border-color: #b2cce4; }
.order-state-badge.order-state-complete { color: #fff; background: var(--success); border-color: var(--success); }
.order-summary-metrics { gap: 17px; }
.order-summary-metrics article { border-top: 1px solid var(--line); padding: 24px; }
.order-summary-metrics strong { font: 600 42px/1.2 var(--brand-font); font-variant-numeric: tabular-nums; letter-spacing: -1.3px; }
.order-summary-metrics article:first-child { background: var(--forest); border-color: var(--forest); }
.order-summary-metrics article:first-child strong { color: #fff; }
.order-summary-metrics article:first-child span, .order-summary-metrics article:first-child small { color: #b5c9d8; }
.order-summary-metrics article:nth-child(3) { background: var(--success-bg); }
.order-summary-metrics article:nth-child(3) strong { color: var(--success); }
.order-summary-section h3 { font-size: 19px; }
.order-summary-table thead, .order-summary-table th { background: #f8fafc; }
.order-summary-status { background: #edf2f7; border-radius: 5px; }
.order-summary-status.completed { background: var(--success); color: #fff; }
.order-summary-stages strong { font: 600 32px/1.2 var(--brand-font); }
.order-summary-track { background: #eaf0f5; border-radius: 4px; }
.order-summary-track i { background: #8ba6bb; border-radius: 4px; }
.order-summary-stages .completed i { background: var(--success); }
.lead-summary .metric, .lead-summary article { background: #fff; }
.lead-quick-note, .lead-quick-banner, .lead-quick-entry { background: #edf2f7; border-left-color: var(--forest); }
.metric strong, .large-number, .stage-cell strong, .quote-total strong, .project-focused-grid strong, .order-value-strip strong { font-family: var(--brand-font); font-variant-numeric: tabular-nums; }
dialog { border: 1px solid #dbe4eb; border-radius: 12px; box-shadow: 0 28px 100px #0a2b4333; }
dialog::backdrop { background: #0a223b66; backdrop-filter: blur(3px); }
.dialog-head { padding: 23px 25px 18px; background: #fff; }
.dialog-head h2 { font-size: 25px; }
.dialog-head p { font-size: 12px; }
.dialog-actions { border-top: 1px solid var(--line); padding: 17px 25px; background: #fafcfd; }
.form-grid label { font-size: 13px; }
.form-grid input, .form-grid select, .form-grid textarea { border-color: #d8e2ea; border-radius: 5px; min-height: 42px; font-size: 14px; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { outline: 2px solid #7197b6; outline-offset: 1px; }
.form-grid input[type="checkbox"], .form-grid input[type="radio"] { min-height: 0; }
.spec-field-missing input, .spec-field-missing select, .spec-field-missing textarea, .form-grid [aria-invalid="true"] { border-color: #c55951; outline-color: #c55951; }
.client-classification-fields { background: #f5f8fb; border-radius: 7px; }
.toast { background: var(--forest); border-radius: 7px; font-size: 13px; box-shadow: 0 12px 40px #0a2b4330; }
.pagination-controls button, .finance-pagination button { border-radius: 5px; }
.login-main { background: var(--forest); }
.login-main::before { background: none; }
.login-topbar .brand { padding: 0; }
.login-topbar .brand-mark { flex-basis: 47px; width: 47px; height: 47px; border-radius: 7px; }
.login-card h2, .hero-copy h1 { font-family: var(--brand-font); }
.backup-metrics { display:grid; grid-template-columns:1.1fr 1.25fr 1fr; gap:16px; margin:24px 0; }
.backup-metrics article { padding:23px; border:1px solid var(--line); border-radius:10px; background:#fff; min-width:0; }
.backup-metrics article:first-child { background:var(--forest); color:#fff; border-color:var(--forest); }
.backup-metrics article > span { display:block; font-size:13px; color:var(--muted); }
.backup-metrics article:first-child > span,.backup-metrics article:first-child p { color:#bdd0de; }
.backup-metrics strong { display:block; margin:15px 0 10px; font-size:36px; font-weight:600; font-variant-numeric:tabular-nums; }
.backup-metrics strong small { font-size:12px; margin-left:8px; font-weight:400; }
.backup-metrics .backup-date { font-size:19px; line-height:1.65; }
.backup-metrics p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.backup-location,.backup-history,.backup-restored { padding:24px; margin:20px 0; border:1px solid var(--line); border-radius:10px; background:#fff; }
.backup-location { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.backup-location > div { min-width:0; }
.backup-location h3,.backup-history h3,.backup-restored h3 { margin:7px 0 12px; font-size:18px; font-weight:600; }
.backup-location p,.backup-section-head p,.backup-hint { color:var(--muted); font-size:12px; line-height:1.8; margin:12px 0 0; }
.backup-location code,.backup-restored code,.backup-restore-path { display:block; color:#46667d; font:12px/1.9 var(--brand-font); overflow-wrap:anywhere; user-select:all; }
.backup-location button { flex-shrink:0; }
.backup-section-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.backup-section-head h3 { margin:0; }
.backup-table-scroll { overflow-x:auto; }
.backup-history table { min-width:720px; }
.backup-history td { vertical-align:top; font-size:12px; }
.backup-history td strong { font-weight:550; }
.backup-history td small { display:block; color:var(--muted); font-size:10px; margin-top:7px; max-width:260px; overflow-wrap:anywhere; }
.backup-history th { font-size:12px; text-transform:none; }
.backup-row-actions { display:flex; align-items:center; gap:15px; white-space:nowrap; }
.backup-row-actions a { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; min-height:34px; padding:8px 12px; font-size:11px; }
.backup-row-actions .text-button { font-size:11px; }
.backup-restored article { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 0; border-top:1px solid var(--line); }
.backup-restored article > div { min-width:0; }
.backup-restored article strong { font-weight:550; font-size:13px; }
.backup-restored code { margin-top:7px; }
.backup-footnote { display:flex; gap:12px; color:var(--success); margin-top:24px; }
.backup-footnote p { color:var(--muted); font-size:12px; line-height:1.8; margin:0; }
.backup-error,.backup-invalid { color:var(--red); font-size:13px; line-height:1.7; }
.backup-error:empty { display:none; }
.backup-empty { padding:35px 20px; border:1px dashed #ccd8e3; border-radius:8px; font-size:13px; line-height:1.8; color:var(--muted); text-align:center; background:#fff; }
.backup-empty button { display:block; margin:10px auto 0; }
.backup-restore-body { padding:20px 25px; }
.backup-restore-body p { color:var(--muted); font-size:13px; line-height:1.85; }
.backup-restore-compare { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:22px 0; }
.backup-restore-compare > div { padding:18px; border:1px solid var(--line); border-radius:7px; background:#f7f9fb; }
.backup-restore-compare span,.backup-restore-compare small { display:block; color:var(--muted); font-size:12px; }
.backup-restore-compare strong { display:block; margin:10px 0; font-weight:550; font-size:13px; line-height:1.7; }
.backup-restore-success { padding:20px; border-radius:8px; background:var(--success-bg); color:var(--success); }
.backup-restore-success h3 { font-size:19px; font-weight:600; }
.backup-restore-success p { color:var(--success); }
.backup-restore-path { padding:14px; border:1px solid var(--line); border-radius:5px; background:#f6f9fb; margin:18px 0; }
.hero-copy span { color: #a3c0d5; }
@media (max-width: 1200px) {
  .client-project-console { grid-template-columns: 225px minmax(0,1fr); }
  .project-main-workbench { padding: 18px; }
  .project-main-head h3 { font-size: 20px; }
}
@media (max-width: 980px) {
  .client-project-console { grid-template-columns: 1fr; }
  .project-rail { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
  .rail-head { grid-column: 1 / -1; margin: 0; }
  .project-rail-card { margin-bottom: 0; }
  .project-main-workbench { padding: 20px; }
}
@media (max-width: 720px) {
  .backup-metrics { grid-template-columns:1fr; gap:12px; }
  .backup-location,.backup-section-head,.backup-restored article { align-items:flex-start; flex-direction:column; }
  .backup-location,.backup-history,.backup-restored { padding:18px; }
  .backup-restore-compare { grid-template-columns:1fr; }
  .app-shell { display: block; }
  .sidebar { width: 236px; left: -250px; }
  .sidebar.open { left: 0; }
  .topbar { padding: 14px 16px; min-height: 74px; }
  .topbar h1 { font-size: 21px; }
  .view { padding: 22px 14px 32px; }
  .client-workspace { padding: 17px; }
  .client-project-console { grid-template-columns: 1fr; }
  .project-rail { display: flex; overflow-x: auto; }
  .project-rail .rail-head { display: none; }
  .project-rail-card { min-width: 210px; flex: 0 0 210px; }
  .project-main-workbench { padding: 16px; }
  .personal-mode .client-workspace-head h2 { font-size: 21px; }
  .module-heading h2 { font-size: 22px; }
  .order-summary-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .order-summary-metrics article { padding: 18px; }
  .order-summary-metrics strong { font-size: 34px; }
  .order-summary-metrics span { font-size: 14px; }
  .simple-finance-heading h3 { font-size: 24px; }
  .finance-completed-totals strong { font-size: 23px; }
  .dialog-head { padding-inline: 20px; }
  .dialog-actions { padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* Supplier entries stay compact; dated payments open in one focused dialog. */
.supplier-payment-tools { grid-column:1 / -1; border-top:1px solid var(--line, #dce3e9); padding-top:14px; min-width:0; }
.supplier-payment-actions,.order-month-controls { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.supplier-payment-actions .secondary-button { padding:10px 18px; }
.supplier-payment-records { margin-top:14px; }
.supplier-payment-records summary { font-weight:650; cursor:pointer; }
.supplier-payment-records td { overflow-wrap:anywhere; }
.order-month-controls { justify-content:flex-end; }
.order-month-controls label { display:grid; gap:6px; font-size:13px; color:var(--muted); }
.order-month-controls input { min-height:44px; width:180px; }
.order-month-controls .secondary-button { align-self:flex-end; min-height:44px; }
.simple-supplier-row input[readonly] { background:#f0f4f7; color:var(--ink); }
@media(max-width:720px) { .order-month-controls { justify-content:flex-start; width:100%; } .order-month-controls input { width:160px; } }
/* One status control and inline notices keep the finance desk focused. */
.finance-order-filter { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:20px 0; color:var(--muted); font-size:14px; }
.finance-order-filter label { display:flex; align-items:center; gap:10px; }
.finance-order-filter select { min-height:44px; min-width:150px; border:1px solid var(--line); border-radius:5px; padding:9px 14px; background:white; color:var(--ink); }
.order-attention { display:block; margin:14px 0; padding:12px 14px; border-left:3px solid #b37516; border-radius:4px; background:#fff7e8; color:#80510a; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.order-attention strong { display:block; font-weight:650; }
.order-attention p { margin:6px 0 0; font-size:13px; }
.order-attention-danger { background:#fff0ee; border-color:#be493d; color:#963b31; }
.order-attention-info { background:#edf4fa; border-color:#527d9e; color:#315773; }
.simple-finance-order .order-attention { margin:10px 0 0; padding:8px 10px; font-size:12px; }
.simple-finance-order .order-attention strong { color:inherit; font-size:12px; }
.finance-balance-plan { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; margin:18px 0; }
.finance-balance-plan label { min-width:210px; }
.finance-balance-plan p { flex:1; min-width:180px; margin:0; font-size:13px; line-height:1.65; color:var(--muted); }
