.project-page {
  --project-line: var(--line, #dce6e2);
  --project-muted: var(--muted, #576964);
  --project-surface: var(--surface, #fff);
  --project-accent: var(--accent, #255847);
  min-width: 0;
}

.project-page-heading { margin: 0 0 1.1rem; }
.project-page-heading h1 { margin: .18rem 0 .28rem; font-size: clamp(1.6rem, 4vw, 2.15rem); line-height: 1.18; }
.project-page-heading p { color: var(--project-muted); margin: 0; }
.project-page-heading .project-kicker { color: var(--project-accent); font-size: .82rem; font-weight: 700; letter-spacing: .08em; }
.project-controls { display: flex; flex-wrap: wrap; gap: .65rem; align-items: flex-end; margin: 0 0 1rem; }
.project-filter, .project-search label { display: grid; gap: .3rem; min-width: 9rem; font-size: .82rem; }
.project-filter span, .project-search span { color: var(--project-muted); font-weight: 650; }
.project-filter select, .project-search input { min-height: 2.2rem; max-width: 100%; }
.project-search { display: flex; align-items: flex-end; gap: .4rem; }
.project-search input { width: min(100%, 14rem); }
.project-controls .project-muted { align-self: center; margin: .2rem; }

.project-kpis { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit,minmax(8.5rem,1fr)); margin: 0 0 1rem; }
.project-kpi { padding: 1rem; display: grid; gap: .25rem; }
.project-kpi strong { font-size: clamp(1.3rem,2.5vw,1.85rem); overflow-wrap: anywhere; line-height: 1.2; }
.project-kpi span, .project-kpi small { color: var(--project-muted); font-size: .82rem; }
.project-kpi span { font-weight: 700; }
.project-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }

.project-card { margin-bottom: 1rem; padding: 1rem; min-width: 0; }
.project-card > header { display: flex; justify-content: space-between; align-items: center; gap: .65rem; margin-bottom: .75rem; flex-wrap: wrap; }
.project-card > header h2 { font-size: 1.05rem; margin: 0; }
.project-card > header > div { display: flex; flex-wrap: wrap; gap: .4rem; }
.project-card .project-controls { margin: .75rem 0 0; }
.project-table { overflow: auto; }
.project-table table { width: 100%; border-collapse: collapse; text-align: left; font-size: .9rem; }
.project-table th, .project-table td { border-bottom: 1px solid var(--project-line); padding: .52rem .6rem; vertical-align: middle; }
.project-table thead { background: var(--surface-soft, #eff5f2); }
.project-table th { white-space: nowrap; }
.project-table td small { color: var(--project-muted); }
.project-table td:last-child .btn { margin: .1rem .25rem .1rem 0; white-space: nowrap; }
.project-table tbody tr:last-child td { border-bottom: 0; }
.project-empty { min-height: 3.5rem; display: grid; place-content: center; color: var(--project-muted); }
.project-badge { display: inline-block; background: #eef1f0; color: #435550; border-radius: 100px; padding: .12rem .48rem; font-size: .78rem; font-weight: 650; white-space: nowrap; }
.project-badge.good { color: #13634d; background: #e1f4e9; }
.project-badge.warn { color: #795008; background: #fff1cc; }
.project-muted { color: var(--project-muted, #576964); }
.project-detail-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(13rem,1fr)); gap: .85rem; margin: .3rem 0 0; }
.project-detail-grid > div { min-width: 0; }
.project-detail-grid dt { color: var(--project-muted); font-size: .8rem; font-weight: 650; }
.project-detail-grid dd { margin: .25rem 0 0; overflow-wrap: anywhere; white-space: pre-wrap; }

.project-dialog {
  box-sizing: border-box;
  width: min(39rem, calc(100vw - 1.5rem));
  max-height: calc(100vh - 1.5rem);
  overflow: auto;
  border: 1px solid var(--line, #dce6e2);
  border-radius: 1rem;
  padding: 1.15rem;
  color: inherit;
  background: var(--surface, #fff);
}
.project-dialog::backdrop { background: rgb(19 41 35 / .45); }
.project-dialog header, .project-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: .65rem; }
.project-dialog header h2 { margin: 0; font-size: 1.18rem; }
.project-dialog footer { margin: 1rem 0 0; justify-content: flex-end; }
.project-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin-top: .8rem; }
.project-fields.refund-preset-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
.refund-reference { margin: 0; align-items: center; }
.project-fields label { display: grid; align-content: start; gap: .3rem; font-size: .88rem; font-weight: 650; }
.project-fields small { color: var(--muted, #576964); font-weight: 400; }
.finance-invoice-links { list-style: none; margin: .3rem 0; padding: 0; max-width: 26ch; overflow-wrap: anywhere; }
.finance-invoice-links a { color: var(--green); text-decoration: underline; }
.project-fields input, .project-fields select, .project-fields textarea { box-sizing: border-box; width: 100%; min-width: 0; }
.project-span { grid-column: 1 / -1; }
.project-form-error { color: #a02727; margin: .75rem 0 0; }
@media (max-width: 680px) {
  .project-columns, .project-fields, .project-fields.refund-preset-fields { grid-template-columns: 1fr; }
  .project-controls .btn { align-self: flex-end; }
  .project-filter, .project-search { max-width: 100%; }
}
.project-batch{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#edf4ee;padding:8px 11px;margin-bottom:9px;border-radius:8px}
.project-batch label,.project-fields .project-choice{display:flex;align-items:center;gap:6px}
.project-check,.project-choice input{width:17px;height:17px;min-height:0;accent-color:#145b4b}

.project-checklist-dialog { width: min(47rem, calc(100vw - 1.5rem)); }
.project-checklist-dialog > form {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  max-height: calc(100dvh - 4rem);
}
.project-checklist-dialog header { padding-bottom: .75rem; }
.project-checklist-dialog header p { margin: .2rem 0 0; font-size: .84rem; }
.project-checklist-dialog footer {
  justify-content: space-between;
  margin: .5rem 0 0;
  padding-top: .75rem;
  border-top: 1px solid var(--line);
  font-size: .87rem;
}
.project-checklist-content { overflow: auto; overscroll-behavior: contain; }
.project-checklist-summary {
  margin: 0 0 .8rem;
  padding: .55rem .75rem;
  border-radius: .5rem;
  background: var(--brand-soft);
  font-size: .85rem;
  font-weight: 650;
}
.project-checklist-summary small { display: block; margin-top: .2rem; font-weight: 400; }
.project-checklist-sections {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .75rem;
  align-items: start;
}
.project-checklist-section { border: 1px solid var(--line); border-radius: .65rem; }
.project-checklist-section h3 { margin: 0; padding: .6rem .75rem; font-size: .95rem; }
.project-checklist-section > p { margin: 0; padding: .3rem .75rem .75rem; font-size: .84rem; }
.project-checklist-item { border-top: 1px solid var(--line); padding: 0 .75rem; }
.project-checklist-item label {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: .55rem;
  min-height: 2.5rem;
  cursor: pointer;
}
.project-checklist-item input { margin: 0; }
.project-checklist-item label strong { color: var(--green); font-variant-numeric: tabular-nums; }
.project-checklist-item label:has(:checked) span { color: var(--muted); }
.project-checklist-item > small,
.project-checklist-item details { display: block; margin: -.15rem 0 .5rem 1.6rem; font-size: .78rem; color: var(--muted); }
.project-checklist-item details { margin-top: .1rem; }
.project-checklist-item summary { cursor: pointer; }
.project-checklist-item ul { margin: .35rem 0 0; padding-left: 1rem; }
.project-checklist-item li + li { margin-top: .25rem; }
.project-review-link {
  border: 0;
  padding: .15rem .2rem;
  background: transparent;
  color: #795008;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .15em;
}
.project-review-link:hover { color: var(--green); }
.project-review-context {
  margin: .7rem 0 .9rem;
  padding: .75rem .85rem;
  border: 1px solid #e5cf9b;
  border-radius: .65rem;
  background: #fff8e7;
  overflow-wrap: anywhere;
}
.project-review-context h3 { margin: 0 0 .4rem; color: #795008; }
.project-review-context p { margin: .3rem 0 0; font-size: .85rem; }
.project-checklist-dialog li .project-review-link { margin-inline-start: .35rem; }
.project-checklist-summary details { margin-top: .25rem; font-weight: 400; }
.project-checklist-summary summary { cursor: pointer; }
.project-checklist-summary ul { padding-left: 1rem; margin: .35rem 0 0; }
@media (max-width: 620px) {
  .project-checklist-sections { grid-template-columns: 1fr; }
}
