.project-surface { display:grid; align-content:start; grid-auto-rows:max-content; gap:16px; }
.reconciliation-group-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:12px 0; }
.reconciliation-group-controls span { color:#728078; margin-right:auto; }
.reconciliation-group-controls button { background:#f1f5f2; border:1px solid #dce5df; border-radius:7px; padding:7px 12px; color:#263d32; font:inherit; cursor:pointer; }
.work-table .reconciliation-building td { background:#e4eee8; font-weight:700; }
.work-table .reconciliation-work td { background:#f2f6f3; font-weight:600; }
body .reconciliation-toggle { border:0; background:transparent; color:#214c38; font:inherit; cursor:pointer; padding:8px 4px; text-align:left; }
.reconciliation-toggle span { display:inline-block; width:22px; text-align:center; }
.reconciliation-work .reconciliation-toggle { margin-left:24px; }
tr[data-reconciliation-parent][hidden] { display:none !important; }
.budget-filters {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;}
.budget-filters label {display:grid;gap:6px;min-width:0;}
.budget-project,.budget-building {border:1px solid #dce5df;border-radius:10px;margin-top:12px;background:#fff;}
.budget-project>summary,.budget-building>summary {display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer;list-style:none;background:#f1f6f3;border-radius:10px;}
.budget-project>summary::before,.budget-building>summary::before {content:'+';font-size:20px;color:#2f7255;}
.budget-project[open]>summary::before,.budget-building[open]>summary::before {content:'−';}
.budget-project summary::-webkit-details-marker {display:none;}
.budget-project summary>strong {margin-left:auto;}
.budget-building {margin:12px;}
.budget-project-categories,.budget-registry-totals>div {display:flex;flex-wrap:wrap;gap:12px;padding:12px;}
.budget-registry-totals {margin-top:16px;border-top:2px solid #dce5df;background:#f6f9f7;padding:12px;}
.budget-edit {background:transparent;color:#192820;text-decoration:underline;border:0;cursor:pointer;font:inherit;}
#budgetExpand,#budgetCollapse,#budgetReset {background:#fff;color:#31473d;border:1px solid #dce5df;border-radius:7px;padding:7px 11px;margin:0 5px 6px 0;font:inherit;cursor:pointer;}
@media(max-width:700px){.budget-filters{grid-template-columns:repeat(2,minmax(0,1fr));}.budget-project>summary{flex-wrap:wrap;}}
#projectAddBudget { background:var(--accent, #2f7255); color:#fff; border-color:var(--accent, #2f7255); min-height:42px; padding:9px 20px; font-size:18px; }
#projectAddBudget:hover { background:var(--accent-dark, #245c45); border-color:var(--accent-dark, #245c45); color:#fff; }
.project-workspace-nav { display:grid; gap:12px; overflow:visible; }
.project-main-tabs { display:flex; align-items:center; gap:8px; }
.project-main-tabs button { min-height:38px; padding:0 14px; border:1px solid #d9e2dc; border-radius:8px; background:#fff; color:#526159; font-weight:700; }
.project-main-tabs button.active { border-color:#2f7255; background:#2f7255; color:#fff; }
.project-main-tabs button b { display:inline-grid; place-items:center; min-width:22px; height:22px; margin-left:6px; padding:0 6px; border-radius:11px; background:rgba(255,255,255,.18); font-size:11px; }
.project-scope-picker { display:grid; grid-template-columns:minmax(190px,300px) 24px minmax(190px,300px); align-items:end; gap:7px; width:min(660px,100%); padding:10px 12px; border:1px solid #dfe5de; border-radius:10px; background:#f8faf9; box-shadow:0 2px 8px rgba(30,55,43,.04); }
.project-scope-picker label { display:grid; gap:4px; min-width:0; }
.project-scope-picker label > span { color:#728078; font-size:11px; font-weight:700; }
.project-scope-picker select { width:100%; min-width:0; min-height:36px; padding:6px 9px; border:1px solid #d9e2dc; border-radius:7px; background:#fff; color:#17241f; }
.project-scope-arrow { display:grid; place-items:center; height:36px; color:#2f7255; font-size:18px; }
.project-scope-status { grid-column:1/-1; color:#728078; font-size:11px; }
.project-scope-status.is-auto { color:#2f7255; font-weight:700; }
.project-detail-tabs { width:fit-content; margin-top:0; }
.project-search-select { position:relative; min-width:0; width:100%; }
.project-search-select > input { width:100%; min-width:0; min-height:36px; padding:6px 30px 6px 9px; border:1px solid #d9e2dc; border-radius:7px; background:#fff; color:#17241f; }
.project-search-select::after { content:'⌄'; position:absolute; top:7px; right:10px; color:#728078; pointer-events:none; }
.project-search-select > select[hidden] { display:none !important; }
.project-search-options { position:absolute; z-index:1100; top:calc(100% + 3px); left:0; right:0; max-height:230px; overflow:auto; padding:4px; border:1px solid #d9e2dc; border-radius:8px; background:#fff; box-shadow:0 10px 24px rgba(30,55,43,.12); }
.project-search-options[hidden] { display:none !important; }
.project-search-options button { display:block; width:100%; padding:8px 9px; border:0; border-radius:5px; background:transparent; color:#17241f; text-align:left; }
.project-search-options button:hover,.project-search-options button.active { background:#e8f2ec; color:#245c45; }
.project-search-options small { display:block !important; padding:8px 9px; color:#728078; }
.project-search-select > input:focus { border-color:#76a68b; outline:none; box-shadow:0 0 0 3px #e5f0e9; }
.project-detail-tabs { background:#f3f6f4; border-color:#dfe5de; }
.project-object-assignment { display:grid; gap:9px; overflow:visible; }
.project-object-assignment h3 { margin:0; }
.project-object-chips { display:flex; flex-wrap:wrap; gap:6px; }
.project-object-chips span { padding:5px 9px; border-radius:14px; background:#e5eee5; color:#35543b; font-size:12px; font-weight:700; }
.project-object-assignment .object-linker { align-items:end; margin-top:2px; }
.project-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:12px 0; width:100%; }
.project-fields label,.project-expense-fields label { display:grid; gap:5px; }
.directory-inline-form { display:flex; align-items:end; gap:10px; margin-top:14px; max-width:620px; }
.directory-inline-form label { flex:1 1 auto; display:grid; gap:5px; }
.directory-inline-form button { flex:0 0 auto; min-height:38px; }
.project-fields select,.project-fields input,.project-search input { background:white; color:#222; min-width:0; width:100%; padding:9px 10px; border:1px solid #cdc6ba; border-radius:6px; }
.project-warning { padding:12px 16px; background:#fff2d6; border:1px solid #e2c784; border-radius:8px; }
.project-table-scroll { overflow-x:auto; }
.project-table-scroll table { width:100%; }
.project-table-scroll th,.project-table-scroll td { padding:10px; }
.project-table-scroll td small { display:block; color:#777; }
.project-link { background:transparent; border:0; color:#a8481b; text-decoration:underline; cursor:pointer; white-space:nowrap; }
.project-negative { color:#b12525; background:#ffeded; }
.project-building,.project-split { border:1px solid #ddd4c8; padding:14px; border-radius:8px; margin-top:12px; }
#formDialog.project-distribution-dialog { height:fit-content; max-height:calc(100vh - 32px); }
.project-distribution-dialog #projectForm { grid-template-columns:minmax(0,1fr); gap:8px; }
.project-distribution-title { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 12px; border-radius:9px; background:#f6f1e9; }
.project-distribution-title span { color:#6d675f; white-space:nowrap; }
.project-split { display:grid; grid-template-columns:minmax(0,1fr) 145px 36px; align-items:end; gap:8px; margin-top:8px; padding:9px; background:#fffdf9; }
.project-split .project-fields { grid-template-columns:repeat(4,minmax(130px,1fr)); gap:7px; margin:0; }
.project-split .project-fields label { gap:3px; min-width:0; }
.project-split .project-fields label > span,.project-split-amount > span { color:#716a61; font-size:11px; line-height:1.15; white-space:nowrap; }
.project-split .project-fields small { display:none; }
.project-split .project-fields select,.project-split-amount input { min-height:36px; padding:6px 8px; font-size:16px; }
.project-split-amount { display:grid; gap:3px; min-width:0; }
.project-split-amount input { width:100%; min-width:0; }
.project-split-remove { display:grid; place-items:center; width:36px; height:34px; padding:0; border:1px solid #deb9ad; border-radius:7px; background:#fff5f1; color:#a33f29; font-size:20px; }
.project-distribution-footer { display:flex; align-items:stretch; justify-content:space-between; gap:12px; margin-top:10px; }
.project-distribution-summary { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.project-distribution-summary span,.project-distribution-summary > strong { padding:7px 10px; border-radius:8px; background:#f3eee6; color:#635d55; font-size:12px; }
.project-distribution-summary.is-balanced > strong { background:#dcefd8; color:#285b2d; }
.project-distribution-summary.is-balanced span:last-of-type { background:#dcefd8; color:#285b2d; }
.project-distribution-summary.is-diff > strong { background:#fff0dd; color:#8a5119; }
.project-distribution-note { margin:2px 0 0; font-size:11px; }
/* Distribution follows the shared green and white application palette. */
.project-distribution-dialog .project-distribution-title { background:#f0f6f2; border:1px solid #dfe8e2; color:#17241f; }
.project-distribution-dialog .project-distribution-title span { color:#526159; }
.project-distribution-dialog .project-split { background:#fff; border-color:#dfe5de; }
.project-distribution-dialog .project-split .project-fields label > span,
.project-distribution-dialog .project-split-amount > span,
.project-distribution-dialog .project-distribution-note { color:#728078; }
.project-distribution-dialog .project-split input,
.project-distribution-dialog .project-split select { border-color:#d9e2dc; color:#17241f; background:#fff; }
.project-distribution-dialog .project-split-remove { background:transparent; border-color:transparent; color:#728078; box-shadow:none; }
.project-distribution-dialog .project-split-remove:hover { background:#edf4ef; color:#245c45; border-color:#d9e2dc; }
.project-distribution-dialog .project-distribution-summary span,
.project-distribution-dialog .project-distribution-summary > strong { background:#f3f6f4; color:#526159; }
.project-distribution-dialog .project-distribution-summary.is-balanced > strong,
.project-distribution-dialog .project-distribution-summary.is-balanced span:last-of-type { background:#e2f0e7; color:#245c45; }
.project-distribution-dialog .project-distribution-summary.is-diff > strong { background:#f3f6f4; color:#17241f; box-shadow:inset 0 0 0 1px #a5b8ac; }
@media(max-width:900px) { .project-split { grid-template-columns:minmax(0,1fr) 120px 34px; } .project-split .project-fields { grid-template-columns:repeat(2,minmax(130px,1fr)); } }
@media(max-width:600px) { .project-distribution-title,.project-distribution-footer { align-items:stretch; flex-direction:column; } .project-distribution-title span { white-space:normal; } .project-split { grid-template-columns:minmax(0,1fr) 100px 34px; } .project-split .project-fields { grid-template-columns:1fr; } .project-distribution-summary { justify-content:flex-start; } }
.project-building button { margin:4px; }
.project-search,.project-paging { display:flex; gap:10px; align-items:center; margin:12px 0; }
.project-expense-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; background:#f5f2e9; padding:12px; border-radius:8px; }
.project-expense-fields small { grid-column:1/-1; }
.income-breakdown-row .project-fields { grid-column:1/-1; padding:10px; background:#f5f2e9; border-radius:8px; }
.income-breakdown-row:has(.project-fields) { display:grid; grid-template-columns:minmax(180px,1fr) minmax(120px,200px) 40px; align-items:end; }
.income-breakdown-row:has(.project-fields) > label { width:auto; min-width:0; }
.income-breakdown-row:has(.project-fields) > .project-fields { grid-row:2; }
@media(max-width:900px) { .project-main-tabs { flex-wrap:wrap; } }
@media(max-width:600px) { .income-breakdown-row:has(.project-fields) { grid-template-columns:minmax(0,1fr) 100px 32px; } }
@media(max-width:600px) { .project-fields,.project-expense-fields { grid-template-columns:1fr; } .project-scope-picker { grid-template-columns:1fr; } .project-scope-arrow { display:none; } .project-top-tabs { flex-wrap:wrap; } .project-search,.directory-inline-form { flex-wrap:wrap; } }
/* Keep the analytics picker searchable despite the base chip display styles. */
[data-analytics-choice][hidden] { display: none !important; }
.modal-form [data-analytics-choice] input[type="checkbox"] { width: 16px; height: 16px; min-width: 16px; flex: 0 0 16px; margin: 0; }
.income-settings-tabs { margin-bottom: 14px; }
[data-income-settings-pane][hidden] { display: none !important; }
.client-acts-filters { display:flex; gap:14px; flex-wrap:wrap; align-items:end; margin-bottom:20px; }
.client-acts-filters label { display:grid; gap:6px; min-width:170px; flex:1; }
#clientActsPanel { background:#fff; }
#clientActsPanel .work-table td { vertical-align:top; }
#clientActsPanel .work-table td:first-child { white-space:normal; min-width:260px; max-width:360px; overflow:visible; }
#clientActsPanel button, #exportClientStatement { background:#f5f8f6; color:#244a3a; border:1px solid #d7e1db; border-radius:8px; padding:9px 14px; font:inherit; cursor:pointer; text-decoration:none; }
#clientActsPanel button.primary { background:#2d7357; color:white; }
#clientActsPanel button:hover, #exportClientStatement:hover { background:#e6f0ea; }
#clientActsPanel button.primary:hover { background:#245c46; }
#clientActsPanel .client-act-warning { background:#f4f7f5; border:1px solid #b5c9be; padding:12px; border-radius:10px; }
#projectForm [data-act-category] input[type="checkbox"] { width:18px; height:18px; vertical-align:middle; }
#projectForm [data-act-category] input[type="number"] { min-width:145px; font-size:18px; }
#projectForm [data-act-category] label { display:block; }
#clientActsPanel .client-compact-table th { white-space:normal; text-align:center; }
#clientActsPanel .client-compact-table td:not(:first-child) { white-space:nowrap; text-align:right; }
#clientActsPanel .client-compact-table .stage-total { background:#edf4ef; font-weight:600; }
