:root {
  /* Curate Workplace brand (curateworkplace.com): black, white and gold */
  --gold: #d9a84e;          /* brand gold – accents, borders, headings */
  --gold-dark: #8f6516;     /* gold dark enough for readable text/links on white */
  --black: #000000;
  --bg: #ffffff;
  --surface: #ffffff;
  --text: #111111;
  --muted: #6b6b6b;
  --border: #e7e2d6;
  --primary: var(--gold-dark);
  --primary-dark: #000000;
  --danger: #c93636;
  --ok: #1f8a4c;
  --warn: #b7791f;
  --radius: 8px;
  --shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
  font-family: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 15px;
  color: var(--text);
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); line-height: 1.45; }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.55rem; margin: 0 0 .25rem; }
h2 { font-size: 1.2rem; margin: 0; }

/* Top bar */
.topbar {
  display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap;
  background: #1d2330; color: #fff; padding: .7rem 1.5rem;
}
.brand { color: #fff; font-weight: 700; }
.brand span { color: #9fb4ff; font-weight: 500; }
.brand:hover { text-decoration: none; }
.mainnav { display: flex; gap: .25rem; }
.mainnav a { color: #c9cfdb; padding: .35rem .75rem; border-radius: 6px; }
.mainnav a:hover { color: #fff; background: rgba(255,255,255,.08); text-decoration: none; }
.mainnav a.active { color: #fff; background: rgba(255,255,255,.14); }
.userbox { margin-left: auto; display: flex; align-items: center; gap: 1rem; color: #c9cfdb; font-size: .9rem; }
.userbox a { color: #c9cfdb; }
.userbox form { margin: 0; }
.linklike { background: none; border: 0; color: #c9cfdb; cursor: pointer; font: inherit; padding: 0; }
.linklike:hover { color: #fff; text-decoration: underline; }

.container { max-width: 1200px; margin: 0 auto; padding: 1.5rem; }

/* Layout bits */
.pagehead { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin: 0 0 1rem; flex-wrap: wrap; }
.pagehead + .pagehead { margin-top: 1.5rem; }
.actions { display: flex; gap: .5rem; }
.crumbs { margin: 0 0 .5rem; color: var(--muted); font-size: .9rem; }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 1.25rem; }
.description { margin-bottom: 1rem; }
.card-label { margin: 0 0 .4rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.empty { text-align: center; padding: 2.5rem 1rem; }
.empty p { color: var(--muted); margin-top: 0; }
.muted { color: var(--muted); }
.small { font-size: .85rem; }
.strong { font-weight: 600; }
.nowrap { white-space: nowrap; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.overdue { color: var(--danger); font-weight: 600; }

/* Buttons */
.btn {
  display: inline-block; padding: .5rem .95rem; border-radius: 6px; border: 1px solid var(--border);
  background: var(--surface); color: var(--text); font: inherit; font-weight: 500; cursor: pointer; line-height: 1.2;
}
.btn:hover { background: #eef0f4; text-decoration: none; }
.btn-primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); }
.btn-danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.btn-danger:hover { background: #a82b2b; }
.btn-danger-outline { color: var(--danger); border-color: #f0c4c4; }
.btn-ghost { border-color: transparent; background: transparent; }
.btn-sm { padding: .25rem .5rem; font-size: .85rem; }
.btn-block { width: 100%; margin-top: 1.25rem; }

/* Filters */
.filters { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.filters input[type=search] { flex: 1 1 240px; }

/* Forms */
input[type=text], input[type=email], input[type=number], input[type=date], input[type=search],
input[type=password], select, textarea {
  width: 100%; padding: .5rem .65rem; border: 1px solid #cdd2db; border-radius: 6px;
  font: inherit; background: #fff; color: var(--text);
}
.filters input, .filters select { width: auto; }
input:focus, select:focus, textarea:focus { outline: 2px solid #b8c7fb; border-color: var(--primary); }
label { display: block; font-weight: 600; margin: .9rem 0 .3rem; font-size: .92rem; }
.form-card { max-width: 680px; margin: 0 auto; }
.field { margin-bottom: .25rem; }
.field .help { color: var(--muted); font-size: .82rem; margin-top: .25rem; }
.field .error { color: var(--danger); font-size: .85rem; margin-top: .25rem; }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--danger); }
.req { color: var(--danger); }
.form-actions { display: flex; gap: .5rem; margin-top: 1.5rem; flex-wrap: wrap; }
.field-project_types > div { display: flex; flex-wrap: wrap; gap: .3rem 1.25rem; }
.field-project_types label { font-weight: 400; margin: 0; display: flex; align-items: center; gap: .4rem; }
.chip.ptype { background: #f3ecdc; color: #6b5420; }
.chip.contract { background: #e6efe6; color: #2f5d34; }
.field-assignees > div { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .3rem .75rem; }
.field-assignees label { font-weight: 400; margin: 0; display: flex; align-items: center; gap: .4rem; }
.field-is_active label { display: inline; }
.field-new_client_name label { font-weight: 500; color: var(--muted); }
.login-card { max-width: 380px; margin: 4rem auto; }

/* Messages */
.messages { margin-bottom: 1rem; }
.msg { padding: .7rem 1rem; border-radius: 6px; margin-bottom: .5rem; border: 1px solid; }
.msg-success { background: #ecf8f1; border-color: #bfe5cf; color: #17663a; }
.msg-error { background: #fdeeee; border-color: #f2c6c6; color: #9e2626; }
.msg-warning { background: #fff7e8; border-color: #f2dcae; color: #8a5a10; }
.msg-info { background: #eef3ff; border-color: #cbd8ff; color: #23439f; }

/* Tables */
.table-wrap { overflow-x: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { padding: .7rem .85rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.table th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); background: #fafbfc; }
.table th.num, .table td.num { text-align: right; }
.table th a.sort { color: var(--muted); display: inline-flex; align-items: center; gap: .25rem; }
.table th a.sort:hover { color: var(--text); text-decoration: none; }
.table th a.sort:not(.active):hover::after { content: "▲"; opacity: .35; font-size: .7rem; }
.table th a.sort.active { color: var(--primary); }
.table th a.sort .arrow { font-size: .7rem; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover { background: #fafbff; }
.table tbody tr:target { background: #fff8db; }
.row-done td { color: var(--muted); }
.row-done .strong { text-decoration: line-through; }
.table th.btn-col, .table td.btn-col { width: 1%; white-space: nowrap; text-align: center; padding-left: .35rem; padding-right: .35rem; }
.table td.btn-col { vertical-align: middle; }
.btn-danger-outline:hover { background: #fdeeee; }
.actions-cell a { margin-left: .6rem; }
.actions-cell a:first-child { margin-left: 0; }
a.danger { color: var(--danger); }

/* Badges, chips, bars */
.badge { display: inline-block; padding: .12rem .55rem; border-radius: 999px; font-size: .78rem; font-weight: 600; vertical-align: middle; white-space: nowrap; }
.badge-planned, .badge-not_started { background: #eef0f4; color: #4a5368; }
.badge-active, .badge-in_progress { background: #e6edff; color: #2448c2; }
.badge-on_hold, .badge-blocked { background: #fff2dc; color: #8a5a10; }
.badge-complete, .badge-done { background: #e3f5ea; color: #17663a; }
.chip { display: inline-block; background: #eef0f4; color: var(--text); border-radius: 999px; padding: .1rem .55rem; font-size: .82rem; margin: 0 .25rem .25rem 0; white-space: nowrap; }
.chip:hover { background: #e2e6ee; text-decoration: none; }
.bar { height: 8px; background: #e9ecf1; border-radius: 999px; overflow: hidden; min-width: 90px; margin-top: .45rem; }
.bar span { display: block; height: 100%; background: var(--ok); }
.bar-lg { height: 10px; }

.inline-status { margin: 0; }
.status-select { width: auto; padding: .25rem .4rem; font-size: .85rem; border-radius: 999px; font-weight: 600; }
.status-not_started { background: #eef0f4; }
.status-in_progress { background: #e6edff; color: #2448c2; }
.status-blocked { background: #fff2dc; color: #8a5a10; }
.status-done { background: #e3f5ea; color: #17663a; }
/* Project phases: cool → warm as the project progresses, green when complete */
.phase-lead { background: #f4f4f2; color: #5a5a55; }
.phase-initial_mtgs { background: #eef0f4; color: #39414f; }
.phase-test_fit { background: #e6f4f7; color: #1d6475; }
.phase-pre_lease { background: #e6f0ff; color: #1f4fbf; }
.phase-sd_dd { background: #e8e6ff; color: #4b3cc2; }
.phase-cds { background: #f3e6fb; color: #7a2fa8; }
.phase-permitting { background: #fbe6f1; color: #a12a6b; }
.phase-construction_ca { background: #fff0db; color: #8a5a10; }
.phase-pm_vendor { background: #fdf3c9; color: #7a5c00; }
.phase-punch { background: #ffe6dc; color: #a2441a; }
.phase-complete { background: #e3f5ea; color: #17663a; }
.project-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; margin: .25rem 0 1rem; }
.phase-field { display: inline-flex; align-items: center; gap: .4rem; }

/* Completed tasks: keep readable (no strike-through) but visually quieter */
.table-completed { background: #fbfcfd; }
.table-completed .row-done .strong { text-decoration: none; color: var(--muted); }

/* Submittals */
.section-gap { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
h2 .count { font-size: .95rem; font-weight: 500; margin-left: .25rem; }
.submittal-type { background: #fff; border-radius: 6px; font-weight: 500; }
.submittal-waiting_engineers { background: #fff2dc; color: #8a5a10; }
.submittal-waiting_cw_design { background: #e6edff; color: #2448c2; }
.submittal-review_sent { background: #e3f5ea; color: #17663a; }
.notes-cell { min-width: 220px; max-width: 420px; font-size: .9rem; }

/* Task type tags (kept neutral so they don't compete with priority colours) */
.type-tag { display: inline-block; padding: .1rem .5rem; border-radius: 4px; font-size: .8rem; white-space: nowrap; background: #f1f3f7; color: #39414f; border-left: 3px solid #9aa3b5; }
.type-architectural { border-left-color: #2f5bea; }
.type-furniture { border-left-color: #b7791f; }
.type-project_management { border-left-color: #6b46c1; }
.type-business_development { border-left-color: #1f8a4c; }
/* Type as a one-click dropdown: same look as the type tags (coloured left edge) */
select.type-select { border-radius: 4px; font-weight: 500; background-color: #f1f3f7; color: #39414f; border: 1px solid transparent; border-left: 3px solid #9aa3b5; }
select.type-select.type-none { background-color: #fff; color: var(--muted); border: 1px dashed #cdd2db; }
select.type-architectural { border-left-color: #2f5bea; }
select.type-furniture { border-left-color: #b7791f; }
select.type-project_management { border-left-color: #6b46c1; }
select.type-business_development { border-left-color: #1f8a4c; }

/* Priority colours: High red, Medium yellow, Low green, On hold white */
.priority-high { background: #fcd4d4; color: #9b1c1c; border: 1px solid #f19b9b; }
.priority-medium { background: #fdf0a6; color: #6b5300; border: 1px solid #ecd35a; }
.priority-low { background: #d3f2dc; color: #17663a; border: 1px solid #8fd3a6; }
.priority-on_hold { background: #ffffff; color: #4a5368; border: 1px solid #b9bfcc; }

/* Stats */
.stats { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.stat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: .8rem 1.1rem; min-width: 140px; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.stat-wide { flex: 1 1 240px; justify-content: center; }
.stat-num { font-size: 1.5rem; font-weight: 700; }
.stat-label { color: var(--muted); font-size: .85rem; }

@media (max-width: 640px) {
  .container { padding: 1rem; }
  .topbar { padding: .7rem 1rem; gap: .75rem; }
  .userbox { margin-left: 0; width: 100%; }
}

/* ------------------------------------------------------------------ Printing */
.print-only { display: none; }

@media print {
  @page { size: landscape; margin: 12mm; }

  :root { font-size: 10pt; }
  body { background: #fff; color: #000; }
  .container { max-width: none; padding: 0; }

  /* Only the content: no menu, filters, buttons or action columns */
  .topbar, .filters, .messages, .crumbs, .no-print, noscript,
  .btn, .actions, .btn-col, .print-hint, .empty .btn { display: none !important; }
  .print-only { display: block; }

  .print-header { font-size: 9pt; color: #444; border-bottom: 1px solid #999; padding-bottom: 4px; margin-bottom: 10px; }
  #print-filters { margin-top: 2px; }

  h1 { font-size: 16pt; }
  h2 { font-size: 13pt; }
  a { color: #000 !important; text-decoration: none !important; }
  .pagehead { margin-bottom: 6px; }
  .section-gap { margin-top: 14px; padding-top: 8px; break-before: auto; }

  /* Tables: plain, with headings repeated on every page and rows kept whole */
  .table-wrap { overflow: visible; box-shadow: none; border: 0; border-radius: 0; }
  .table { border-collapse: collapse; width: 100%; }
  .table th, .table td { border: 1px solid #bbb; padding: 4px 6px; }
  .table th { background: #f0f0f0 !important; color: #000; }
  .table th a.sort { color: #000; }
  thead { display: table-header-group; }
  tr { break-inside: avoid; }
  .table tbody tr:hover, .table tbody tr:target { background: none; }

  /* Dropdowns print as their chosen value, keeping their colour */
  select, .status-select {
    -webkit-appearance: none; appearance: none;
    border: 0 !important; padding: 1px 6px; width: auto;
    font: inherit; font-weight: 600; outline: none;
  }
  .status-select, .badge, .chip, .type-tag, .overdue, .bar span {
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .chip { border: 1px solid #ccc; }
  .priority-on_hold { border: 1px solid #b9bfcc !important; }
  select.type-select { border-left: 3px solid #9aa3b5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  select.type-architectural { border-left-color: #2f5bea !important; }
  select.type-furniture { border-left-color: #b7791f !important; }
  select.type-project_management { border-left-color: #6b46c1 !important; }
  select.type-business_development { border-left-color: #1f8a4c !important; }
  select.type-none { border-left: 0 !important; }

  .card, .stat { box-shadow: none; border: 1px solid #bbb; }
  .stats { gap: 6px; margin-bottom: 10px; }
  .stat { padding: 4px 8px; min-width: 0; }
  .stat-num { font-size: 12pt; }
  .empty { padding: 8px; }
}

/* ------------------------------------------------------------------ Edit in place */
.edit-btn {
  border: 0; background: none; cursor: pointer; padding: 0 .2rem; margin-left: .15rem;
  font-size: .85rem; line-height: 1; color: var(--muted); opacity: 0; vertical-align: baseline;
}
tr:hover .edit-btn, .edit-btn:focus { opacity: .7; }
.edit-btn:hover { opacity: 1; color: var(--primary); }
@media (hover: none) { .edit-btn { opacity: .5; } }
.edit-empty { color: var(--muted); font-size: .85rem; font-style: italic; opacity: 0; }
tr:hover .edit-empty { opacity: .8; }
@media (hover: none) { .edit-empty { opacity: .6; } }
.inline-editor { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: .15rem 0; min-width: 12rem; }
.inline-editor input, .inline-editor select, .inline-editor textarea { width: auto; flex: 1 1 10rem; padding: .3rem .45rem; font-size: .9rem; }
.inline-editor-number input { flex: 0 1 6rem; }
.inline-editor-textarea { flex-direction: column; align-items: stretch; min-width: 16rem; }
.inline-editor-textarea textarea { width: 100%; }
.edit-actions { display: inline-flex; gap: .25rem; }
.edit-checklist { display: grid; gap: .15rem .75rem; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  background: #fff; border: 1px solid var(--border); border-radius: 6px; padding: .4rem .6rem; flex: 1 1 100%; max-height: 14rem; overflow: auto; }
.edit-checklist label { font-weight: 400; margin: 0; display: flex; align-items: center; gap: .3rem; font-size: .88rem; }
.inline-editor .edit-checklist input { flex: 0 0 auto; width: auto; margin: 0; }
.edit-checklist label { justify-content: flex-start; white-space: nowrap; }
.edit-status { flex: 1 1 100%; font-size: .8rem; color: var(--muted); }
.edit-status:empty { display: none; }
.edit-error { color: var(--danger); }
.edit-hint { font-size: .75rem; color: var(--muted); }
@media print { .edit-btn, .inline-editor, .edit-empty { display: none !important; } }

/* ------------------------------------------------------------------ Meeting minutes */
.mt-titleblock { display: flex; align-items: center; gap: 1rem; }
.mt-logo { height: 52px; width: auto; border-radius: 6px; background: #fff; }
.mt-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.mt-card { padding: 1rem 1.1rem; }
.mt-card-title { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin: 0 0 .6rem; }
.mt-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem 1rem; margin: 0; }
.mt-fields > div { min-width: 0; }
.mt-fields .mt-wide { grid-column: 1 / -1; }
.mt-fields dt { font-size: .75rem; color: var(--muted); font-weight: 600; margin-bottom: .1rem; }
.mt-fields dd { margin: 0; font-size: .92rem; overflow-wrap: anywhere; }
.mt-empty { color: #9aa1b0; font-style: italic; font-size: .88rem; }
.mt-value { cursor: default; }
/* Pencils are always visible on minutes (they're not in table rows) */
.mt-cards .edit-btn, .mt-section .edit-btn, .mt-item .edit-btn { opacity: .45; }
.mt-cards .edit-btn:hover, .mt-section .edit-btn:hover, .mt-item .edit-btn:hover { opacity: 1; }
.mt-section { margin-bottom: 1rem; padding: 1rem 1.1rem; }
.mt-section-head { display: flex; justify-content: space-between; align-items: center; margin: 0 0 .6rem; }
.mt-section-head h2 { margin: 0; }
.mt-attendees { margin-bottom: .6rem; }
.mt-attendees td, .mt-attendees th { padding: .45rem .6rem; }
.mt-present { width: 5rem; text-align: center !important; }
.mt-check { width: 1.1rem; height: 1.1rem; cursor: pointer; accent-color: var(--ok); }
.mt-row-actions { width: 2.5rem; text-align: right; }
.mt-row-actions form { margin: 0; }
.icon-btn { border: 1px solid var(--border); background: #fff; border-radius: 6px; width: 1.9rem; height: 1.9rem;
  cursor: pointer; font-size: .95rem; line-height: 1; color: var(--text); }
.icon-btn:hover:not(:disabled) { background: #eef0f4; }
.icon-btn:disabled { opacity: .35; cursor: default; }
.icon-btn.danger { color: var(--danger); }
.mt-inline-add { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0; }
.mt-inline-add input { flex: 1 1 12rem; width: auto; }
.mt-add-section { padding: .75rem; margin-bottom: 1rem; }
.mt-sections { margin-top: 1.5rem; }
.mt-item { padding: 0; margin-bottom: .9rem; overflow: hidden; }
.mt-item-head { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap;
  padding: .7rem 1rem; background: #f7f8fa; border-bottom: 1px solid var(--border); }
.mt-item-title { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; min-width: 0; }
.mt-item-title h3 { margin: 0; font-size: 1.05rem; }
.mt-num { font-size: .75rem; font-weight: 600; color: var(--muted); background: #e9ecf1; border-radius: 4px; padding: .1rem .4rem; }
.mt-cat { font-size: .82rem; color: var(--muted); }
.mt-item-actions { display: flex; gap: .35rem; align-items: center; }
.mt-item-actions form { margin: 0; }
.mt-current { padding: .8rem 1rem .9rem; }
.mt-notes { display: block; width: 100%; min-height: 4.5rem; resize: vertical; line-height: 1.5; font-size: .95rem; }
.mt-notes-print { white-space: normal; line-height: 1.5; }
.mt-save-status { font-size: .75rem; color: var(--muted); min-height: 1.1em; margin-top: .2rem; }
.mt-save-status.is-saved { color: var(--ok); }
.mt-save-status.is-error { color: var(--danger); }
.mt-hist-meeting { width: 7rem; }
.mt-label { display: block; font-size: .75rem; color: var(--muted); font-weight: 600; margin: 0 0 .25rem; }
.mt-discussion .mt-value { display: inline; line-height: 1.5; }
.mt-resp { grid-template-columns: 1fr; gap: .45rem; }
.mt-history { border-top: 1px solid var(--border); padding: .5rem 1rem .75rem; }
.mt-history summary { cursor: pointer; font-size: .85rem; color: var(--primary); }
.mt-history .table { margin-top: .5rem; font-size: .88rem; }
.mt-item-closed { opacity: .75; }
.mt-item-closed .mt-item-head { background: #eef6f1; }
.mt-disclaimer { font-size: .78rem; color: var(--muted); margin: 1.5rem 0 .5rem; max-width: 70rem; }
.login-logo { display: block; max-width: 220px; margin: 0 auto .5rem; }
.login-title { text-align: center; font-size: 1.1rem; color: var(--muted); font-weight: 500; }
.print-logo { height: 28px; vertical-align: middle; margin-right: .5rem; }
@media (max-width: 700px) { .mt-fields { grid-template-columns: 1fr; } }
@media print {
  .mt-logo { height: 40px; }
  .mt-check { display: none; }
  .mt-empty { visibility: hidden; }
  .mt-item { break-inside: avoid; box-shadow: none; }
  .mt-history summary { list-style: none; color: #000; font-weight: 600; }
  .mt-item-head { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .mt-cards { grid-template-columns: repeat(3, 1fr); }
}

/* ------------------------------------------------------------------ Furniture order tracking */
.ft-table { font-size: .88rem; }
.ft-table th, .ft-table td { padding: .5rem .55rem; }
.ft-table-wrap { margin-bottom: .75rem; box-shadow: none; }
.ft-orders .ft-table .edit-btn { opacity: 0; }
.ft-orders .ft-table tr:hover .edit-btn, .ft-orders .ft-table .edit-btn:focus { opacity: .7; }
.ft-notes { min-width: 12rem; max-width: 22rem; }
.ft-row-actions form { display: inline; margin: 0; }
.ft-row-actions .icon-btn { width: 1.7rem; height: 1.7rem; font-size: .85rem; }
.ft-total td { font-weight: 700; background: #fafbfc; border-top: 2px solid var(--border); }
.ft-delivered { font-size: 1.05rem; margin: 0 0 .25rem; padding: .5rem .7rem; border-radius: 6px; }
.ft-delivered.is-yes { background: #e3f5ea; color: #17663a; }
.ft-delivered.is-no { background: #fff2dc; color: #8a5a10; }
.ft-status-summary { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .4rem; }
/* Status colours: grey → blue (ordering) → amber (waiting) → purple (received/punch) → green (done) */
.ft-not_started { background: #eef0f4; color: #39414f; }
.ft-po_created, .ft-po_sent { background: #e6edff; color: #2448c2; }
.ft-ack_received { background: #e0f2fe; color: #075985; }
.ft-waiting_on_ship { background: #fff2dc; color: #8a5a10; }
.ft-order_received { background: #ede9fe; color: #5b21b6; }
.ft-punch { background: #ffe6dc; color: #a2441a; }
.ft-completed { background: #e3f5ea; color: #17663a; }
.ft-on_hold { background: #fde4e4; color: #9b1c1c; }
.ft-cancelled { background: #f1f1f1; color: #777; text-decoration: line-through; }
@media print {
  .ft-status, .ft-delivered { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .ft-table { font-size: 8pt; }
}

/* Furniture tracking: type straight into cells; they save on their own */
.ft-input { width: 100%; min-width: 0; border: 1px solid transparent; background: transparent; border-radius: 4px;
  padding: .3rem .35rem; font: inherit; font-size: .88rem; color: var(--text); }
.ft-input:hover { border-color: #d5d9e1; background: #fff; }
.ft-input:focus { border-color: var(--primary); background: #fff; outline: 2px solid #b8c7fb; }
.ft-input::placeholder { color: #b5bbc7; }
.ft-number { text-align: right; }
.ft-date { min-width: 8.5rem; }
.ft-textarea { resize: vertical; min-height: 1.9rem; line-height: 1.35; overflow: hidden; }
td .ft-money, dd .ft-money { padding-left: 1rem; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='14'%3E%3Ctext x='0' y='11' font-size='12' fill='%236b7385'%3E$%3C/text%3E%3C/svg%3E") no-repeat .35rem center; }
.mt-fields .ft-input { border-color: #e1e4ea; background-color: #fff; }
.ft-w-xs { min-width: 4rem; } .ft-w-sm { min-width: 7rem; } .ft-w-md { min-width: 9.5rem; }
.ft-grid td { padding: .3rem .3rem; vertical-align: middle; }
.ft-grid .ft-notes { min-width: 13rem; }
/* save states */
.is-dirty { border-left: 3px solid #e3a008 !important; }
.is-saving { border-color: #cbd5f5 !important; }
.is-saved { border-color: var(--ok) !important; background-color: #f1faf4 !important; }
.is-error { border-color: var(--danger) !important; background-color: #fdeeee !important; }
.ft-print { display: none; }
@media print {
  .ft-input, .ft-status, .ft-grid .mt-check { display: none !important; }
  .ft-print, .ft-grid .print-only { display: inline !important; }
}

/* Meeting minutes: single info block across the page */
.mt-infobar { display: grid; grid-template-columns: 11rem 11rem minmax(10rem, 1fr) minmax(14rem, 2fr); gap: .5rem 1.25rem;
  align-items: start; padding: .8rem 1rem; margin-bottom: 1rem; }
.mt-info { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.mt-info label, .mt-info-label { margin: 0; font-size: .75rem; font-weight: 600; color: var(--muted); }
.mt-info .ft-input { border-color: #e1e4ea; background: #fff; font-size: .92rem; }
.mt-info-value { padding: .3rem 0; font-size: .92rem; }
@media (max-width: 760px) { .mt-infobar { grid-template-columns: 1fr 1fr; } .mt-info-wide { grid-column: 1 / -1; } }
@media print { .mt-infobar { grid-template-columns: 1fr 1fr 1fr 2fr; } }

/* Project number, shown wherever a project appears */
.proj-num { font-variant-numeric: tabular-nums; font-weight: 600; color: #6b5420; }

/* Project contacts on meeting minutes */
.pc-wrap { margin-bottom: .6rem; box-shadow: none; }
.pc-table .pc-scope { min-width: 18rem; width: 35%; }
.pc-table .ft-textarea { min-height: 2.2rem; }
.mt-add { margin: .25rem 0 0; }

/* ================================================================== Curate Workplace theme
   Matches curateworkplace.com: black header, white pages, gold accents, Jost text and
   Montserrat (a close free match for Gotham) uppercase headings. */
body { background: #fff; color: var(--text); font-weight: 400; letter-spacing: .01em; }
h1, h2, h3, .mt-card-title, .table th, .brand, .mainnav a, .btn, .stat-label, .card-label {
  font-family: "Montserrat", "Jost", system-ui, sans-serif;
}
h1 { font-weight: 500; text-transform: uppercase; letter-spacing: .06em; font-size: 1.45rem; }
h2 { font-weight: 500; text-transform: uppercase; letter-spacing: .06em; font-size: 1.02rem; color: var(--gold-dark); }
h3 { font-weight: 600; }
a { color: var(--gold-dark); }
a:hover { color: #000; }

/* Header bar: solid black with the wordmark and gold active tab */
.topbar { background: #000; padding: .8rem 1.75rem; border-bottom: 3px solid var(--gold); }
.brand { display: flex; flex-direction: column; line-height: 1.05; color: #fff; }
.brand:hover { color: #fff; }
.brand .brand-name { font-size: 1.25rem; font-weight: 400; letter-spacing: .28em; color: #fff; }
.brand .brand-sub { font-size: .58rem; font-weight: 500; letter-spacing: .38em; color: var(--gold); margin-top: .2rem; }
.mainnav a { color: #d9d9d9; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 500;
  border-radius: 0; padding: .45rem .8rem; border-bottom: 2px solid transparent; }
.mainnav a:hover { color: #fff; background: transparent; border-bottom-color: rgba(217,168,78,.5); }
.mainnav a.active { color: var(--gold); background: transparent; border-bottom-color: var(--gold); }
.userbox, .userbox a, .linklike { color: #bdbdbd; }
.userbox a:hover, .linklike:hover { color: var(--gold); }

/* Buttons: black, turning gold on hover; outlined secondary */
.btn { border-radius: 2px; text-transform: uppercase; letter-spacing: .08em; font-size: .74rem; font-weight: 600;
  padding: .6rem 1rem; border-color: #111; color: #111; background: #fff; }
.btn:hover { background: #111; color: #fff; }
.btn-primary { background: #000; border-color: #000; color: #fff; }
.btn-primary:hover { background: var(--gold); border-color: var(--gold); color: #000; }
.btn-danger-outline { color: var(--danger); border-color: #e9b5b5; }
.btn-danger-outline:hover { background: var(--danger); color: #fff; border-color: var(--danger); }
.btn-danger { border-color: var(--danger); }
.btn-ghost { border-color: transparent; }
.btn-ghost:hover { background: #f4f1ea; color: #000; }
.btn-sm { padding: .3rem .6rem; font-size: .68rem; }

/* Cards and tables: white, hairline borders, gold rule under headings */
.card, .table-wrap, .stat { box-shadow: none; border-color: var(--border); border-radius: 4px; }
.table th { background: #fff; color: #111; font-size: .7rem; letter-spacing: .1em; font-weight: 600;
  border-bottom: 2px solid var(--gold); }
.table th a.sort { color: #111; }
.table th a.sort.active { color: var(--gold-dark); }
.table tbody tr:hover { background: #fcfaf5; }
.table tbody tr:target { background: #fbf3e2; }
.mt-card-title, .card-label { color: var(--gold-dark); letter-spacing: .12em; }
.stat-num { font-family: "Montserrat", sans-serif; font-weight: 500; }
.bar span { background: var(--gold); }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: #000; }

/* Form fields: gold focus */
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(217,168,78,.45); border-color: var(--gold); }
.ft-input:focus { border-color: var(--gold); outline: 2px solid rgba(217,168,78,.45); }
label { font-family: "Montserrat", sans-serif; font-weight: 500; font-size: .82rem; letter-spacing: .02em; }

/* Small gold touches */
.chip.ptype, .proj-num { color: var(--gold-dark); }
.chip.contract { color: #2f5d34; }
.mt-num { background: #f4ecda; color: #6b5420; }
.badge-active, .badge-in_progress { background: #f4ecda; color: #6b5420; }
.edit-btn:hover { color: var(--gold-dark); }
.mt-item-head { background: #fcfaf5; }
.login-title { font-family: "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: .3em; color: var(--gold-dark); }
.login-card .btn-primary { width: 100%; }

/* Header logo (white lettering + gold mark, transparent background for the black bar) */
.brand .brand-logo { display: block; height: 46px; width: auto; }
.topbar { padding-top: .55rem; padding-bottom: .55rem; }
@media (max-width: 640px) { .brand .brand-logo { height: 38px; } }

/* ------------------------------------------------------------------ Project schedule */
.sch-legend { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; margin: 0 0 .9rem; font-size: .92rem; }
.sch-key { display: inline-flex; align-items: center; gap: .4rem; }
.sch-dot { display: inline-block; width: .85rem; height: .85rem; border-radius: 50%; flex: none; vertical-align: middle;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.sch-not_started { background: #b3b3b3; }
.sch-not_started_delayed { background: #c0464a; }
.sch-in_progress { background: #3d566e; }
.sch-in_progress_delayed { background: #e07a2f; }
.sch-completed { background: #3f8b2f; }
.sch-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .6rem; }
.sch-wrap { box-shadow: none; margin-bottom: .6rem; }
.sch-table td { vertical-align: middle; }
.sch-c-num { width: 3.6rem; white-space: nowrap; }
.sch-c-num .sch-n { margin-left: .35rem; color: var(--muted); font-size: .8rem; font-variant-numeric: tabular-nums; }
.sch-c-date { width: 9.5rem; }
.sch-c-pct { width: 6.5rem; }
.sch-c-days { width: 5.5rem; }
.sch-table td input.ft-number[data-field="days"] { min-width: 4.6rem; }
.sch-c-pred { width: 6rem; min-width: 5.5rem; }
.sch-c-res { width: 9rem; min-width: 8rem; }
.sch-c-act { width: 1%; }
.sch-pct { display: inline-flex; align-items: center; gap: .15rem; }
.sch-pct input { width: 4.6rem; }
.sch-name { min-width: 18rem; }
.sch-indent { display: flex; align-items: center; gap: .3rem; padding-left: calc(var(--depth, 0) * 1.4rem); }
.sch-leaf { display: inline-block; width: 1.3rem; flex: none; border-bottom: 1px solid #d5d0c4; height: .55rem; margin-bottom: .55rem; }
.sch-toggle { width: 1.3rem; height: 1.3rem; flex: none; border: 1px solid var(--border); background: #fff; border-radius: 3px;
  cursor: pointer; font-size: .75rem; line-height: 1; padding: 0; color: #333; }
.sch-toggle:hover { border-color: var(--gold); color: var(--gold-dark); }
.sch-section .sch-task { font-weight: 600; }
.sch-section { background: #fcfaf5; }
.sch-calc { color: #111; font-weight: 500; }
.sch-total td { background: #f4ecda; font-weight: 600; border-bottom: 2px solid var(--gold); }
.sch-actions form { display: inline; margin: 0; }
.sch-actions .icon-btn { width: 1.65rem; height: 1.65rem; font-size: .8rem; }
.sch-row[hidden] { display: none; }
@media print {
  .sch-table { font-size: 8pt; }
  .sch-row[hidden] { display: table-row; }
  .sch-section, .sch-total td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ================================================================== Compact layout
   Tighter spacing everywhere so more fits on screen and on paper. */
:root { font-size: 14px; }
.container { max-width: 1440px; padding: .9rem 1.25rem; }
h1 { font-size: 1.22rem; margin-bottom: .1rem; }
h2 { font-size: .95rem; }
.pagehead { margin-bottom: .55rem; gap: .6rem; }
.pagehead + .pagehead { margin-top: .9rem; }
.pagehead p.muted, .mt-titleblock p.muted { margin: .1rem 0 0; }
.crumbs { margin-bottom: .3rem; font-size: .82rem; }
.messages { margin-bottom: .6rem; }
.msg { padding: .45rem .75rem; margin-bottom: .35rem; }
.project-meta { margin: .15rem 0 .5rem; gap: .35rem 1.25rem; }
.mt-logo { height: 40px; }
.mt-titleblock { gap: .75rem; }

/* Buttons and filters */
.btn { padding: .42rem .75rem; font-size: .7rem; }
.btn-sm { padding: .22rem .5rem; font-size: .66rem; }
.actions { gap: .35rem; flex-wrap: wrap; }
.filters { margin-bottom: .6rem; gap: .35rem; }
input[type=text], input[type=email], input[type=number], input[type=date], input[type=search],
input[type=password], input[type=tel], select, textarea { padding: .35rem .5rem; }

/* Cards, stats, sections */
.card { padding: .7rem .85rem; }
.description { margin-bottom: .6rem; }
.stats { gap: .5rem; margin-bottom: .75rem; }
.stat { padding: .4rem .7rem; min-width: 110px; }
.stat-num { font-size: 1.15rem; }
.section-gap { margin-top: 1.1rem; padding-top: .7rem; }
.empty { padding: 1rem; }
.empty p { margin-bottom: .5rem; }

/* Tables */
.table th, .table td { padding: .38rem .55rem; }
.table th { font-size: .64rem; }
.table-wrap { margin-bottom: 0; }
.cell-task { min-width: 15rem; }
.cell-task .strong { line-height: 1.3; }
.chip { margin: 0 .2rem .15rem 0; padding: .05rem .45rem; }
.type-tag, select.type-select { white-space: nowrap; }
.status-select { padding: .15rem .35rem; font-size: .8rem; }
.bar { margin-top: .3rem; }
/* Hide the empty "Add notes / Add email…" line until you hover the row (saves a line per row) */
tr:not(:hover) .muted.small:has(> [data-edit-url] > .edit-empty:only-child),
tr:not(:hover) div:has(> [data-edit-url] > .edit-empty:only-child) { display: none; }

/* Minutes, furniture, schedule */
.mt-cards { gap: .6rem; margin-bottom: .6rem; }
.mt-card { padding: .6rem .8rem; }
.mt-section { margin-bottom: .6rem; padding: .6rem .8rem; }
.mt-section-head { margin-bottom: .35rem; }
.mt-infobar { padding: .5rem .75rem; margin-bottom: .6rem; gap: .35rem 1rem; }
.mt-add-section { padding: .5rem; margin-bottom: .6rem; }
.mt-sections { margin-top: .9rem; }
.mt-item { margin-bottom: .5rem; }
.mt-item-head { padding: .4rem .75rem; }
.mt-current { padding: .45rem .75rem .55rem; }
.mt-notes { min-height: 3.2rem; }
.mt-history { padding: .3rem .75rem .45rem; }
.mt-disclaimer { margin: .9rem 0 .25rem; }
.ft-grid td { padding: .2rem .25rem; }
.ft-input { padding: .22rem .3rem; }
.sch-legend { margin-bottom: .5rem; }
.sch-toolbar { margin-bottom: .4rem; }
.icon-btn { width: 1.6rem; height: 1.6rem; }

/* Header bar */
.topbar { padding: .4rem 1.25rem; }
.brand .brand-logo { height: 40px; }

@media print {
  @page { margin: 8mm; }
  :root { font-size: 9pt; }
  .container { padding: 0; }
  h1 { font-size: 12pt; }
  h2 { font-size: 10pt; }
  .print-header { margin-bottom: 4px; padding-bottom: 2px; }
  .pagehead { margin-bottom: 3px; }
  .card, .mt-card, .mt-section, .mt-infobar, .stat { padding: 3px 6px; }
  .mt-cards, .stats { gap: 4px; margin-bottom: 4px; }
  .mt-item { margin-bottom: 4px; }
  .mt-item-head, .mt-current, .mt-history { padding: 2px 6px; }
  .section-gap { margin-top: 6px; padding-top: 4px; }
  .table th, .table td { padding: 2px 4px; }
  .mt-disclaimer { margin: 4px 0 0; font-size: 7pt; }
  .description { margin-bottom: 4px; }
  .mt-logo { height: 28px; }
}
/* Notes boxes start small and grow as you type; the "Saved" line takes no space until it has text */
.mt-notes { min-height: 2.6rem; }
.mt-save-status { min-height: 0; margin-top: .1rem; }
.mt-save-status:empty { display: none; }
.mt-label { margin-bottom: .15rem; }
.mt-history summary { font-size: .8rem; }

/* Future sections: same cards, quieter look */
.mt-future { margin-top: 1.1rem; padding-top: .7rem; border-top: 1px dashed var(--border); }
.mt-future h2 { color: var(--muted); }
.mt-future .mt-item-head { background: #f6f6f4; }

/* ---------------------------------------------------------------- Budget tracker */
.bd-table { font-size: .88rem; }
.bd-table thead th { white-space: normal; line-height: 1.2; vertical-align: bottom; }
.bd-c-money { min-width: 8.5rem; } .bd-c-sf { min-width: 5.5rem; } .bd-c-pct { min-width: 5rem; }
.bd-desc { min-width: 16rem; }
.bd-calc { color: #4a4a46; white-space: nowrap; }
.bd-head th { background: #f3ecdc; padding: .35rem .3rem; border-top: 2px solid var(--gold); }
.bd-head .ft-input { font-family: "Montserrat", sans-serif; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; font-size: .82rem; color: #3c3220; }
.bd-head td { background: #f3ecdc; border-top: 2px solid var(--gold); }
.bd-section + .bd-section .bd-head th, .bd-section + .bd-section .bd-head td { border-top-width: 2px; }
.bd-total td { font-weight: 700; background: #f6f6f4; border-top: 1px solid var(--border); white-space: nowrap; }
.bd-total td:first-child { text-transform: uppercase; font-size: .8rem; letter-spacing: .03em; }
.bd-grand td { font-weight: 700; font-size: .98rem; background: #1d1d1b; color: #fff; white-space: nowrap; }
.bd-grand td:first-child { text-transform: uppercase; letter-spacing: .05em; color: var(--gold); }
.bd-actions form { display: inline; margin: 0; }
.bd-actions .icon-btn { width: 1.7rem; height: 1.7rem; font-size: .85rem; }
.bd-table .ft-number { min-width: 7rem; }
.bd-sf { display: inline-flex; align-items: center; gap: .35rem; }
.bd-sf .ft-input { width: 8rem; }
.bd-summary dd { text-align: right; }
@media print {
  .bd-head th, .bd-head td, .bd-total td, .bd-grand td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .bd-table { font-size: 7.5pt; }
  .bd-desc { min-width: 0; }
  .bd-c-money, .bd-c-sf, .bd-c-pct { min-width: 0; }
  .bd-head .ft-print { font-weight: 700; text-transform: uppercase; }
}

/* ---------------------------------------------------------------- Meeting minutes: shading
   Grey page, charcoal/gold title bands and gold-tinted section headers so each area stands out. */
.page-minutes { background: #efeeea; }
.page-minutes .card { background: #fff; border-color: #dcd8cc; }

/* Date / Project # / Client / Address bar: charcoal with gold labels */
.page-minutes .mt-infobar { background: #2b2a27; border-color: #2b2a27; border-bottom: 3px solid var(--gold); color: #fff; }
.page-minutes .mt-infobar .mt-info-label { color: var(--gold); text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; }
.page-minutes .mt-infobar .mt-info-label .muted { color: #b9b4a8; text-transform: none; letter-spacing: 0; }
.page-minutes .mt-infobar .mt-info-value { color: #fff; }
.page-minutes .mt-infobar .ft-input { background: #fff; border-color: #fff; color: #1d1d1b; }

/* Card headings (Project Contacts, Attendees): gold band across the top of the card */
.page-minutes .mt-section > .mt-section-head {
  margin: -.6rem -.8rem .55rem; padding: .45rem .8rem; background: #f1e6cc;
  border-bottom: 2px solid var(--gold); border-radius: 4px 4px 0 0; }
.page-minutes .mt-section > .mt-section-head h2 { color: #4a3a17; font-weight: 600; }
.page-minutes .mt-section > .mt-section-head .muted { color: #7a6a48; }
.page-minutes .pc-table th { background: #ecebe6; color: #4a4a46; border-bottom: 1px solid #d6d2c6; }

/* Active / Future headings: full-width title bars */
.page-minutes .mt-sections > .mt-section-head {
  padding: .5rem .8rem; border-radius: 4px; margin-bottom: .5rem; background: #2b2a27; border-left: 6px solid var(--gold); }
.page-minutes .mt-sections > .mt-section-head h2 { color: var(--gold); font-weight: 600; }
.page-minutes .mt-sections > .mt-section-head h2 .count { color: #fff; }
.page-minutes .mt-future { border-top: 0; padding-top: 0; margin-top: 1.4rem; }
.page-minutes .mt-future > .mt-section-head { background: #6e6c66; border-left-color: #bdb8ab; }
.page-minutes .mt-future > .mt-section-head h2, .page-minutes .mt-future > .mt-section-head h2 .count { color: #fff; }
.page-minutes .mt-future > .mt-section-head .muted { color: #e4e1d9; }
.page-minutes .mt-add-section { background: #f8f6f1; border-style: dashed; }

/* Each section card: gold edge, gold-tinted header, gold item number */
.page-minutes .mt-item { border-left: 5px solid var(--gold); }
.page-minutes .mt-item-head { background: #f6eedb; border-bottom: 1px solid #e3d3ac; }
.page-minutes .mt-item-title h3 { color: #1d1d1b; font-weight: 600; }
.page-minutes .mt-num { background: var(--gold); color: #1d1d1b; font-weight: 700; }
.page-minutes .mt-cat { color: #7a6a48; }
.page-minutes .mt-label { color: var(--gold-dark); text-transform: uppercase; letter-spacing: .06em; font-size: .7rem; }
.page-minutes .mt-history { background: #f6f5f2; border-top-color: #e2dfd6; }
.page-minutes .mt-history .table th { background: #ecebe6; }

/* Future section cards: grey instead of gold */
.page-minutes .mt-future .mt-item { border-left-color: #a9a59a; }
.page-minutes .mt-future .mt-item-head { background: #ecebe7; border-bottom-color: #d9d6cd; }
.page-minutes .mt-future .mt-num { background: #a9a59a; color: #fff; }

/* Closed sections stay green-tinted */
.page-minutes .mt-item-closed { border-left-color: #6fae86; }
.page-minutes .mt-item-closed .mt-item-head { background: #e7f3eb; border-bottom-color: #cfe5d7; }

@media print {
  .page-minutes { background: #fff; }
  .page-minutes .mt-infobar, .page-minutes .mt-section > .mt-section-head, .page-minutes .mt-sections > .mt-section-head,
  .page-minutes .mt-item, .page-minutes .mt-item-head, .page-minutes .mt-num, .page-minutes .pc-table th {
    -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  /* Lighter bands on paper to save ink */
  .page-minutes .mt-infobar { background: #f1e6cc; color: #1d1d1b; border-color: #e3d3ac; border-bottom: 2px solid var(--gold); }
  .page-minutes .mt-infobar .mt-info-label { color: #6b5420; }
  .page-minutes .mt-infobar .mt-info-value { color: #1d1d1b; }
  .page-minutes .mt-section > .mt-section-head { margin: -3px -6px 3px; padding: 2px 6px; }
  .page-minutes .mt-sections > .mt-section-head { background: #f1e6cc; padding: 2px 6px; border-left-width: 4px; }
  .page-minutes .mt-sections > .mt-section-head h2 { color: #4a3a17; }
  .page-minutes .mt-sections > .mt-section-head h2 .count { color: #4a3a17; }
  .page-minutes .mt-future > .mt-section-head { background: #ecebe7; }
  .page-minutes .mt-future > .mt-section-head h2, .page-minutes .mt-future > .mt-section-head h2 .count { color: #444; }
}

/* Card heading bands: same look for every card (Attendees' title is a <label>), tight around the text */
.page-minutes .mt-section > .mt-section-head { padding: .3rem .8rem; margin-bottom: .45rem; min-height: 0; }
.page-minutes .mt-section > .mt-section-head h2 { line-height: 1.2; margin: 0; }
.page-minutes .mt-section-head h2 label { display: inline; margin: 0; padding: 0; font: inherit; letter-spacing: inherit;
  text-transform: inherit; color: inherit; cursor: inherit; }

/* Minutes title area: white band behind a larger logo */
.page-minutes .pagehead { background: #fff; border: 1px solid #dcd8cc; border-radius: 4px; padding: .6rem .9rem; margin-bottom: .6rem; }
.page-minutes .mt-logo { height: 76px; border-radius: 0; }
.page-minutes .mt-titleblock { gap: 1.1rem; }
@media print {
  .page-minutes .pagehead { border: 0; padding: 0; }
  .page-minutes .mt-logo { height: 44px; }
}

/* Info bar: lighter charcoal, titles about twice as large */
.page-minutes .mt-infobar { background: #4a4843; border-color: #4a4843; border-bottom-color: var(--gold); }
.page-minutes .mt-infobar .mt-info-label { font-size: 1.35rem; letter-spacing: .06em; line-height: 1.2; }
.page-minutes .mt-infobar .mt-info-label .muted { font-size: .78rem; letter-spacing: 0; vertical-align: middle; }
@media print {
  .page-minutes .mt-infobar { background: #f1e6cc; border-color: #e3d3ac; }
  .page-minutes .mt-infobar .mt-info-label { font-size: 10pt; }
  .page-minutes .mt-infobar .mt-info-label .muted { display: none; }
}
.page-minutes .mt-infobar { grid-template-columns: 17rem 12rem minmax(10rem, 1fr) minmax(14rem, 2fr); }
.page-minutes .mt-infobar .mt-info-label { white-space: nowrap; }
@media (max-width: 760px) { .page-minutes .mt-infobar { grid-template-columns: 1fr 1fr; } }
@media print { .page-minutes .mt-infobar { grid-template-columns: 1fr 1fr 1fr 2fr; } }

/* Info bar: dark gold (logo tone, darker than the section bands); titles match the meeting title */
.page-minutes .mt-infobar { background: #7d5c1f; border-color: #7d5c1f; border-bottom: 3px solid #5a4114; }
.page-minutes .mt-infobar .mt-info-label { font-family: "Montserrat", Jost, system-ui, sans-serif; font-size: 1.22rem;
  font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: #fff; }
.page-minutes .mt-infobar .mt-info-label .muted { color: #f0deb4; font-family: Jost, system-ui, sans-serif; text-transform: none; }
.page-minutes .mt-infobar .mt-info-value { color: #fff; }
@media print {
  .page-minutes .mt-infobar { background: #f1e6cc; border-color: #e3d3ac; border-bottom: 2px solid var(--gold); }
  .page-minutes .mt-infobar .mt-info-label { font-size: 10pt; color: #6b5420; }
  .page-minutes .mt-infobar .mt-info-value { color: #1d1d1b; }
}

/* Info bar: back to the grey band with gold titles; values larger (to match the Project Contacts heading) */
.page-minutes .mt-infobar { background: #4a4843; border-color: #4a4843; border-bottom: 3px solid var(--gold); }
.page-minutes .mt-infobar .mt-info-label { color: var(--gold); }
.page-minutes .mt-infobar .mt-info-label .muted { color: #d6d1c4; }
.page-minutes .mt-infobar .mt-info-value { font-size: 1.15rem; font-weight: 500; padding: .2rem 0; }
.page-minutes .mt-infobar .ft-input { font-size: 1.15rem; padding-top: .2rem; padding-bottom: .2rem; }
@media print {
  .page-minutes .mt-infobar { background: #f1e6cc; border-color: #e3d3ac; border-bottom: 2px solid var(--gold); }
  .page-minutes .mt-infobar .mt-info-label { color: #6b5420; }
  .page-minutes .mt-infobar .mt-info-value, .page-minutes .mt-infobar .ft-print { font-size: 9pt; }
}

/* Active sections bar: same grey as the Date/Project #/Client/Address bar */
.page-minutes .mt-sections:not(.mt-future) > .mt-section-head { background: #4a4843; }
@media print { .page-minutes .mt-sections:not(.mt-future) > .mt-section-head { background: #f1e6cc; } }

/* Info bar: Project # and Address read like Client (no white boxes); still editable – outline on hover/typing */
.page-minutes .mt-infobar .ft-input { background: transparent; border: 1px solid transparent; color: #fff;
  font-weight: 500; padding-left: 0; padding-right: 0; resize: none; box-shadow: none; }
.page-minutes .mt-infobar .ft-input::placeholder { color: #b9b4a8; font-style: italic; font-weight: 400; }
.page-minutes .mt-infobar .ft-input:hover { border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.06);
  padding-left: .35rem; padding-right: .35rem; }
.page-minutes .mt-infobar .ft-input:focus { border-color: var(--gold); background: rgba(255,255,255,.1);
  outline: none; padding-left: .35rem; padding-right: .35rem; }
.page-minutes .mt-infobar .ft-input.is-saved { background-color: rgba(111,174,134,.18) !important; border-color: #8fd0a6 !important; }
.page-minutes .mt-infobar .ft-input.is-error { background-color: rgba(220,80,80,.2) !important; }

/* ---------------------------------------------------------------- Meeting minutes: print like the screen
   Same colours, bands, sizes and spacing as on screen (overrides the lighter, smaller print styles above). */
@media print {
  .page-minutes, .page-minutes * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .page-minutes { background: #efeeea !important; }
  .page-minutes .container { padding: 6px 8px; }
  .page-minutes .print-header { display: none !important; }        /* the title band already has the logo */
  .page-minutes h1 { font-size: 1.22rem; }
  .page-minutes h2 { font-size: .95rem; }
  .page-minutes .card { background: #fff; border: 1px solid #dcd8cc; }

  /* White title band with the large logo */
  .page-minutes .pagehead { background: #fff; border: 1px solid #dcd8cc; border-radius: 4px; padding: .6rem .9rem; margin-bottom: .6rem; }
  .page-minutes .mt-logo { height: 76px; }

  /* Date / Project # / Client / Address: grey band, gold titles, white values, one row */
  .page-minutes .mt-infobar { display: grid; grid-template-columns: max-content max-content minmax(0, 1fr) minmax(0, 2fr);
    gap: .35rem 2.5rem; padding: .5rem .75rem; margin-bottom: .6rem; background: #4a4843; border: 1px solid #4a4843;
    border-bottom: 3px solid var(--gold); color: #fff; }
  .page-minutes .mt-infobar .mt-info-label { font-size: 1.22rem; color: var(--gold); }
  .page-minutes .mt-infobar .mt-info-label .muted { display: inline; color: #d6d1c4; font-size: .78rem; }
  .page-minutes .mt-infobar .mt-info-value, .page-minutes .mt-infobar .ft-print { color: #fff; font-size: 1.15rem; font-weight: 500; }

  /* Card heading bands */
  .page-minutes .mt-section { padding: .6rem .8rem; margin-bottom: .6rem; }
  .page-minutes .mt-section > .mt-section-head { margin: -.6rem -.8rem .45rem; padding: .3rem .8rem; background: #f1e6cc; }
  .page-minutes .mt-section > .mt-section-head h2 { color: #4a3a17; }

  /* Active / Future title bars */
  .page-minutes .mt-sections > .mt-section-head { padding: .5rem .8rem; border-left-width: 6px; margin-bottom: .5rem; }
  .page-minutes .mt-sections:not(.mt-future) > .mt-section-head { background: #4a4843; }
  .page-minutes .mt-sections:not(.mt-future) > .mt-section-head h2 { color: var(--gold); }
  .page-minutes .mt-sections:not(.mt-future) > .mt-section-head h2 .count { color: #fff; }
  .page-minutes .mt-future > .mt-section-head { background: #6e6c66; }
  .page-minutes .mt-future > .mt-section-head h2, .page-minutes .mt-future > .mt-section-head h2 .count { color: #fff; }

  /* Section cards */
  .page-minutes .mt-item { margin-bottom: .5rem; }
  .page-minutes .mt-item-head { padding: .4rem .75rem; }
  .page-minutes .mt-current { padding: .45rem .75rem .55rem; }
  .page-minutes .mt-history { padding: .3rem .75rem .45rem; }

  /* Notes and attendees print inside boxes, like the text boxes on screen */
  .page-minutes .mt-notes-print { display: block; background: #fff; border: 1px solid #d5d2c8; border-radius: 4px;
    padding: .4rem .6rem; min-height: 2.6rem; }
}
@media print { .page-minutes .mt-infobar .mt-info-wide { grid-column: auto; } }
@media print {
  .page-minutes .mt-item { border: 1px solid #dcd8cc !important; border-left: 5px solid var(--gold) !important; }
  .page-minutes .mt-future .mt-item { border-left-color: #a9a59a !important; }
  .page-minutes .mt-item-closed { border-left-color: #6fae86 !important; }
}

/* ================================================================== Site-wide look (matches the meeting minutes)
   Grey page, white title band with the logo, dark grey table header bars with gold titles,
   gold heading bands on cards. Prints the same as it looks on screen. */
body { background: #efeeea; }
.card, .table-wrap, .stat { background: #fff; border-color: #dcd8cc; }
.mt-logo { height: 76px; border-radius: 0; }
.mt-titleblock { gap: 1.1rem; }

/* Title band */
.pagehead:has(h1) { background: #fff; border: 1px solid #dcd8cc; border-radius: 4px; padding: .6rem .9rem;
  margin-bottom: .6rem; align-items: center; }

/* Section title bars inside a page (e.g. Tasks / Completed tasks / Submittals on a project) */
.pagehead:has(> h2) { background: #4a4843; border-left: 6px solid var(--gold); border-radius: 4px;
  padding: .45rem .8rem; margin: .9rem 0 .5rem; align-items: center; }
.pagehead:has(> h2) h2 { color: var(--gold); font-weight: 600; margin: 0; }
.pagehead:has(> h2) h2 .count { color: #fff; }
.section-gap { border-top: 0; padding-top: 0; margin-top: .9rem; }

/* Filters: a white strip */
.filters { background: #fff; border: 1px solid #dcd8cc; border-radius: 4px; padding: .45rem .55rem; }

/* Main tables: dark grey header bar with gold titles (tables inside cards keep a light grey header) */
.table th { background: #ecebe6; color: #4a4a46; }
main > .table-wrap .table thead th, main > section > .table-wrap .table thead th {
  background: #4a4843; color: var(--gold); border-bottom: 3px solid var(--gold); }
main > .table-wrap .table thead th a.sort, main > section > .table-wrap .table thead th a.sort { color: var(--gold); }
main > .table-wrap .table thead th a.sort.active, main > section > .table-wrap .table thead th a.sort.active { color: #fff; }
main > .table-wrap .table thead th a.sort:hover, main > section > .table-wrap .table thead th a.sort:hover { color: #fff; }

/* Stat boxes and summary cards: gold edge / gold heading band */
.stat { border-top: 3px solid var(--gold); }
.stat-label { color: #6b5420; }
.mt-card-title { margin: -.6rem -.8rem .55rem; padding: .3rem .8rem; background: #f1e6cc; border-bottom: 2px solid var(--gold);
  border-radius: 4px 4px 0 0; color: #4a3a17; font-weight: 600; }
.mt-section > .mt-section-head { margin: -.6rem -.8rem .55rem; padding: .3rem .8rem; background: #f1e6cc;
  border-bottom: 2px solid var(--gold); border-radius: 4px 4px 0 0; }
.mt-section > .mt-section-head h2 { color: #4a3a17; font-weight: 600; line-height: 1.2; }
.card-label { color: #6b5420; }
.bd-grand td { background: #4a4843; }

@media print {
  body, body * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  body { background: #efeeea !important; }
  .container { padding: 6px 8px; }
  h1 { font-size: 1.22rem; }
  h2 { font-size: .95rem; }
  .print-header { border: 0; color: #6b6b6b; font-size: 7.5pt; margin-bottom: 4px; padding: 0; }
  .print-header .print-logo { display: none; }
  .card, .table-wrap, .stat { background: #fff; border: 1px solid #dcd8cc; }
  .pagehead:has(h1) { background: #fff; border: 1px solid #dcd8cc; border-radius: 4px; padding: .6rem .9rem; margin-bottom: .6rem; }
  .mt-logo { height: 76px; }
  .pagehead:has(> h2) { padding: .45rem .8rem; margin: .9rem 0 .5rem; }
  .table th { background: #ecebe6 !important; color: #4a4a46; border-color: #d6d2c6; }
  .table td { border-color: #dcd8cc; }
  main > .table-wrap .table thead th, main > section > .table-wrap .table thead th {
    background: #4a4843 !important; color: var(--gold) !important; border-bottom: 3px solid var(--gold); }
  main > .table-wrap .table thead th a, main > section > .table-wrap .table thead th a { color: var(--gold) !important; }
  .table-wrap { background: #fff; }
  .stat { border-top: 3px solid var(--gold); padding: .4rem .7rem; }
  .card.mt-section, .card.mt-card { padding: .6rem .8rem; }
}
/* Pages with their own section title bars (project page): tables under them keep a light grey header */
main:has(.pagehead > h2) .table-wrap .table thead th { background: #ecebe6 !important; color: #4a4a46 !important;
  border-bottom: 1px solid #d6d2c6 !important; }
main:has(.pagehead > h2) .table-wrap .table thead th a.sort { color: #4a4a46 !important; }
main:has(.pagehead > h2) .table-wrap .table thead th a.sort.active { color: var(--gold-dark) !important; }
/* Keep the minutes contact table's light header, and the budget's gold section rows, on screen and paper */
main .pc-table thead th { background: #ecebe6 !important; color: #4a4a46 !important; border-bottom: 1px solid #d6d2c6 !important; }
.bd-head th, .bd-head td { background: #f3ecdc !important; }
