:root {
  --ink: #18212a;
  --ink-2: #27323d;
  --ink-3: #52606d;
  --nav: #17212b;
  --nav-soft: #22303b;
  --paper: #f4f1eb;
  --surface: #ffffff;
  --surface-2: #f8f7f3;
  --line: #dedbd4;
  --line-strong: #c9c3b8;
  --gold: #c99651;
  --gold-dark: #9b6a2e;
  --gold-soft: #f2e5d2;
  --green: #2f7d5a;
  --green-soft: #e4f3eb;
  --red: #a9493d;
  --red-soft: #fae9e6;
  --blue: #326a83;
  --blue-soft: #e6f0f4;
  --shadow: 0 14px 36px rgba(23, 33, 43, 0.08);
  --sidebar: 252px;
}

* {
  box-sizing: border-box;
}

html {
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background:
    linear-gradient(rgba(23, 33, 43, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23, 33, 43, 0.018) 1px, transparent 1px),
    var(--paper);
  background-size: 28px 28px;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(201, 150, 81, 0.35);
  outline-offset: 2px;
}

.app-shell {
  min-height: 100vh;
}

.sidebar {
  background: var(--nav);
  color: #fff;
  display: flex;
  flex-direction: column;
  height: 100vh;
  left: 0;
  padding: 22px 18px;
  position: fixed;
  top: 0;
  width: var(--sidebar);
  z-index: 30;
}

.project-file-panel { align-items: center; display: flex; gap: 24px; justify-content: space-between; margin-bottom: 22px; padding: 22px; }
.project-file-panel h2 { font-size: 1.1rem; margin: 0 0 8px; }
.project-file-panel p { color: var(--ink-3); font-size: .9rem; line-height: 1.5; margin: 0 0 10px; max-width: 650px; }
.project-file-panel [data-project-file-status] { display: block; font-size: .875rem; overflow-wrap: anywhere; }
.project-file-actions { display: flex; flex: 0 0 245px; flex-direction: column; gap: 8px; }
#sync-copy { overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .project-file-panel { align-items: stretch; flex-direction: column; gap: 16px; }
  .project-file-actions { flex-basis: auto; }
  #save-project-file { font-size: .75rem; padding: 7px; }
}

.brand {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 24px;
  padding: 2px 4px;
}

.brand-logo {
  background: #fff;
  border-radius: 8px;
  display: block;
  height: 108px;
  object-fit: contain;
  padding: 10px;
  width: 180px;
}

.brand strong,
.brand span,
.profile-row strong,
.profile-row span,
.sync-card strong,
.sync-card span {
  display: block;
}

.brand strong {
  font-size: 0.93rem;
  letter-spacing: -0.01em;
}

.brand span {
  color: #aeb9c1;
  font-size: 0.78rem;
  margin-top: 2px;
}

.side-nav {
  display: grid;
  gap: 5px;
}

.nav-item {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 9px;
  color: #b9c3ca;
  display: flex;
  font-size: 0.9rem;
  font-weight: 600;
  gap: 12px;
  padding: 11px 12px;
  text-align: left;
  width: 100%;
}

.nav-item:hover {
  background: var(--nav-soft);
  color: #fff;
}

.nav-item.active {
  background: #2a3741;
  color: #fff;
  box-shadow: inset 3px 0 var(--gold);
}

.nav-icon {
  color: var(--gold);
  font-size: 1.08rem;
  line-height: 1;
  text-align: center;
  width: 20px;
}

.sidebar-foot {
  display: grid;
  gap: 16px;
  margin-top: auto;
}

.sync-card {
  align-items: center;
  background: #202d37;
  border: 1px solid #2e3c47;
  border-radius: 10px;
  display: flex;
  gap: 10px;
  padding: 11px;
}

.sync-dot,
.connectivity-dot {
  background: #4fbd83;
  border-radius: 999px;
  box-shadow: 0 0 0 4px rgba(79, 189, 131, 0.12);
  display: inline-block;
  height: 8px;
  width: 8px;
}

.sync-card strong {
  font-size: 0.78rem;
}

.sync-card span:not(.sync-dot) {
  color: #97a5ae;
  font-size: 0.75rem;
  margin-top: 2px;
}

.profile-row {
  align-items: center;
  border-top: 1px solid #2a3741;
  display: flex;
  gap: 10px;
  padding: 16px 4px 0;
}

.profile-row strong {
  font-size: 0.82rem;
}

.profile-row span:not(.avatar) {
  color: #97a5ae;
  font-size: 0.75rem;
  margin-top: 2px;
}

.avatar {
  align-items: center;
  background: var(--gold-soft);
  border-radius: 50%;
  color: var(--gold-dark);
  display: flex;
  font-size: 0.75rem;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.main-shell {
  margin-left: var(--sidebar);
  min-height: 100vh;
}

.topbar {
  align-items: center;
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid var(--line);
  display: flex;
  height: 74px;
  justify-content: space-between;
  padding: 0 34px;
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(12px);
}

.topbar-title span,
.topbar-title strong {
  display: block;
}

.eyebrow {
  color: var(--ink-3);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 3px;
  text-transform: uppercase;
}

.topbar-title strong {
  font-size: 1rem;
}

.topbar-actions {
  align-items: center;
  display: flex;
  gap: 10px;
}

.connectivity-pill,
.prototype-badge {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 700;
  gap: 8px;
  min-height: 32px;
  padding: 0 12px;
}

.connectivity-pill {
  background: var(--green-soft);
  border: 1px solid #bedfcc;
  color: #235f43;
}

.connectivity-pill.offline {
  background: var(--gold-soft);
  border-color: #dfc198;
  color: #754a19;
}

.connectivity-pill.offline .connectivity-dot,
body.is-offline .sync-dot {
  background: var(--gold);
  box-shadow: 0 0 0 4px rgba(201, 150, 81, 0.14);
}

.prototype-badge {
  background: #eef0f2;
  color: #59636b;
}

.mobile-menu,
.mobile-nav {
  display: none;
}

.view-root {
  margin: 0 auto;
  max-width: 1540px;
  padding: 28px 34px 48px;
}

.loading-card {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  display: flex;
  gap: 12px;
  padding: 24px;
}

.loader {
  animation: spin 0.9s linear infinite;
  border: 3px solid #e5e1da;
  border-top-color: var(--gold);
  border-radius: 50%;
  height: 22px;
  width: 22px;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.page-heading {
  align-items: flex-start;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  margin-bottom: 22px;
}

.page-heading h1 {
  font-size: clamp(1.45rem, 2vw, 2rem);
  letter-spacing: -0.035em;
  line-height: 1.1;
  margin: 0 0 7px;
}

.page-heading p {
  color: var(--ink-3);
  line-height: 1.5;
  margin: 0;
  max-width: 700px;
}

.heading-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.btn {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 8px;
  display: inline-flex;
  font-size: 0.86rem;
  font-weight: 750;
  gap: 8px;
  justify-content: center;
  min-height: 40px;
  padding: 0 15px;
}

.btn-primary {
  background: var(--nav);
  color: #fff;
}

.btn-primary:hover {
  background: #25333e;
}

.btn-gold {
  background: var(--gold);
  color: #20170d;
}

.btn-gold:hover {
  background: #d4a96d;
}

.btn-secondary {
  background: #fff;
  border-color: var(--line-strong);
  color: var(--ink);
}

.btn-secondary:hover {
  background: var(--surface-2);
}

.btn-ghost {
  background: transparent;
  border-color: var(--line);
  color: var(--ink-2);
}

.btn-small {
  min-height: 34px;
  padding: 0 11px;
}

.quote-head {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 18px;
  padding: 20px 22px;
}

.quote-address {
  align-items: flex-start;
  display: flex;
  gap: 12px;
}

.project-glyph {
  align-items: center;
  background: var(--gold-soft);
  border-radius: 10px;
  color: var(--gold-dark);
  display: flex;
  font-weight: 900;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.quote-address h1 {
  font-size: 1.3rem;
  letter-spacing: -0.025em;
  margin: 0 0 5px;
}

.quote-address p {
  color: var(--ink-3);
  font-size: 0.82rem;
  margin: 0;
}

.status-chip,
.type-chip,
.formula-chip,
.tiny-chip {
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: 750;
  line-height: 1;
  padding: 6px 9px;
  white-space: nowrap;
}

.status-chip.draft {
  background: var(--gold-soft);
  color: #755021;
}

.status-chip.issued,
.status-chip.ready {
  background: var(--green-soft);
  color: #235f43;
}

.status-chip.review {
  background: var(--blue-soft);
  color: #25586f;
}

.stepbar {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 18px;
  overflow: hidden;
}

.step-button {
  align-items: center;
  background: #fff;
  border: 0;
  border-right: 1px solid var(--line);
  color: var(--ink-3);
  display: flex;
  font-size: 0.86rem;
  font-weight: 750;
  gap: 9px;
  justify-content: center;
  min-height: 48px;
  position: relative;
}

.step-button:last-child {
  border-right: 0;
}

.step-button.active {
  color: var(--ink);
}

.step-button.active::after {
  background: var(--gold);
  bottom: 0;
  content: "";
  height: 3px;
  left: 16%;
  position: absolute;
  right: 16%;
}

.step-number {
  align-items: center;
  background: #edf0f2;
  border-radius: 50%;
  display: flex;
  font-size: 0.75rem;
  height: 24px;
  justify-content: center;
  width: 24px;
}

.step-button.active .step-number,
.step-button.complete .step-number {
  background: var(--nav);
  color: #fff;
}

.workspace-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: 245px minmax(0, 1fr) 292px;
}

.panel,
.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
}

.panel {
  min-width: 0;
  overflow: hidden;
}

.panel-head {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  min-height: 52px;
  padding: 11px 15px;
}

.panel-head h2,
.panel-head h3 {
  font-size: 0.9rem;
  margin: 0;
}

.panel-head span {
  color: var(--ink-3);
  font-size: 0.75rem;
}

.panel-body {
  padding: 18px;
}

.room-list {
  display: grid;
  gap: 5px;
  padding: 8px;
}

.room-button {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--ink-2);
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 10px;
  text-align: left;
  width: 100%;
}

.room-button:hover {
  background: var(--surface-2);
}

.room-button.active {
  background: var(--gold-soft);
  border-color: #e2c69e;
  color: #62421b;
}

.room-button strong,
.room-button small {
  display: block;
}

.room-button strong {
  font-size: 0.82rem;
}

.room-button small {
  color: var(--ink-3);
  font-size: 0.75rem;
  margin-top: 3px;
}

.room-button .amount {
  font-size: 0.75rem;
  font-weight: 750;
}

.add-room {
  border-top: 1px solid var(--line);
  padding: 10px;
}

.add-room .btn {
  width: 100%;
}
.room-list-actions { display: grid; gap: 7px; }
.btn-danger { background: var(--red); border-color: var(--red); color: #fff; }
.btn-danger:hover { background: #8d382f; border-color: #8d382f; }

.section-title {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-bottom: 15px;
}

.section-title h2,
.section-title h3 {
  letter-spacing: -0.015em;
  margin: 0;
}

.section-title h2 {
  font-size: 1.12rem;
}

.section-title h3 {
  font-size: 0.94rem;
}

.section-title p {
  color: var(--ink-3);
  font-size: 0.78rem;
  margin: 4px 0 0;
}

.input-grid {
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.takeoff-note {
  color: var(--ink-3);
  font-size: 0.8rem;
  line-height: 1.5;
  margin: 10px 0 16px;
}

.takeoff-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 13px;
}

.takeoff-field {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px;
}

.takeoff-field.stale {
  background: #fff9ee;
  border-color: #d8b378;
}

.takeoff-label,
.takeoff-controls {
  align-items: center;
  display: flex;
  gap: 9px;
  justify-content: space-between;
}

.takeoff-label { margin-bottom: 9px; }
.takeoff-label label { font-size: 0.8rem; font-weight: 700; }
.takeoff-field .takeoff-mode { color: var(--ink-3); font-size: 0.7rem; white-space: nowrap; width: auto; }
.takeoff-field.stale .takeoff-mode { color: var(--gold-dark); font-weight: 700; }
.takeoff-controls .input-wrap { flex: 1; min-width: 80px; }
.takeoff-controls input { background: #fff; border: 1px solid var(--line-strong); border-radius: 8px; min-height: 40px; padding: 8px 43px 8px 10px; width: 100%; }
.takeoff-controls .btn { flex-shrink: 0; }
.takeoff-field small { color: var(--ink-3); display: block; font-size: 0.7rem; margin-top: 8px; }

.takeoff-helpers,
.takeoff-sheet-layout {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.takeoff-helpers {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}

.sheet-action {
  align-items: center;
  border-bottom: 1px solid var(--line);
  color: var(--ink-3);
  display: flex;
  font-size: 0.77rem;
  gap: 12px;
  justify-content: space-between;
  margin-top: 17px;
  padding-bottom: 12px;
}

.sheet-action .btn {
  flex-shrink: 0;
}

.takeoff-sheet-layout {
  margin-top: 14px;
}

.takeoff-sheet-column {
  min-width: 0;
}

.takeoff-sheet-row {
  align-items: stretch;
  display: grid;
  grid-template-columns: minmax(108px, 45%) minmax(68px, 1fr);
  min-height: 35px;
}

.takeoff-sheet-row label {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.8rem;
  gap: 2px;
  min-width: 0;
  padding: 4px 6px 4px 0;
}

.takeoff-sheet-row input {
  background: #f1f2f4;
  border: 1px solid #d2d0c9;
  border-bottom-color: var(--ink-2);
  border-radius: 0;
  color: var(--ink);
  min-height: 35px;
  min-width: 0;
  padding: 5px 10px;
  text-align: right;
  width: 100%;
}

.takeoff-sheet-row input:hover,
.takeoff-sheet-row input:focus {
  background: #fff;
}

.takeoff-sheet-row.stale input {
  background: #fff6e7;
  border-color: #c99651;
}

.takeoff-mode {
  color: var(--blue);
  font-size: 0.62rem;
  width: 100%;
}

.takeoff-sheet-row.stale .takeoff-mode {
  color: var(--gold-dark);
  font-weight: 700;
}

.takeoff-warning {
  margin-top: 14px;
}

.scope-takeoff-button {
  background: none;
  border: 0;
  color: var(--blue);
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  margin-top: 5px;
  padding: 0;
  text-align: left;
}

.scope-takeoff-button:hover {
  text-decoration: underline;
}

.field {
  display: grid;
  gap: 6px;
}

.field label {
  color: var(--ink-3);
  font-size: 0.75rem;
  font-weight: 700;
}

.field input,
.field select,
.search-input,
.editable-number {
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  color: var(--ink);
  min-height: 40px;
  padding: 8px 10px;
  width: 100%;
}

.input-wrap {
  position: relative;
}

.input-wrap input {
  padding-right: 44px;
}

.input-unit {
  color: var(--ink-3);
  font-size: 0.75rem;
  position: absolute;
  right: 11px;
  top: 50%;
  transform: translateY(-50%);
}

.calculated-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 16px;
}

.calculated-card {
  background: var(--surface-2);
  border: 1px solid #e8e4dd;
  border-radius: 9px;
  padding: 13px;
}

.calculated-card span,
.calculated-card strong {
  display: block;
}

.calculated-card span {
  color: var(--ink-3);
  font-size: 0.75rem;
  margin-bottom: 6px;
}

.calculated-card strong {
  font-size: 1.1rem;
}

.subsection {
  border-top: 1px solid var(--line);
  margin-top: 20px;
  padding-top: 18px;
}

.linked-list {
  display: grid;
  gap: 9px;
}

.linked-row {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 11px 12px;
}

.linked-row strong,
.linked-row span {
  display: block;
}

.linked-row strong {
  font-size: 0.8rem;
}

.linked-row span {
  color: var(--ink-3);
  font-size: 0.75rem;
  margin-top: 3px;
}

.formula-chip {
  background: var(--blue-soft);
  color: #25586f;
}

.summary-stack {
  display: grid;
  gap: 14px;
}

.summary-total {
  background: var(--nav);
  border-radius: 10px;
  color: #fff;
  padding: 18px;
}

.summary-total span,
.summary-total strong {
  display: block;
}

.summary-total span {
  color: #b8c3ca;
  font-size: 0.75rem;
  margin-bottom: 7px;
}

.summary-total strong {
  font-size: 1.55rem;
  letter-spacing: -0.04em;
}

.mini-breakdown {
  display: grid;
  gap: 9px;
}

.mini-row {
  align-items: center;
  color: var(--ink-3);
  display: flex;
  font-size: 0.76rem;
  gap: 10px;
  justify-content: space-between;
}

.mini-row strong {
  color: var(--ink);
  font-size: 0.78rem;
}

.mini-row.total {
  border-top: 1px solid var(--line);
  color: var(--ink);
  font-weight: 750;
  margin-top: 2px;
  padding-top: 10px;
}

.check-card {
  align-items: flex-start;
  background: var(--green-soft);
  border: 1px solid #baddc9;
  border-radius: 9px;
  color: #245e44;
  display: flex;
  font-size: 0.75rem;
  gap: 9px;
  line-height: 1.4;
  padding: 11px;
}

.check-card.warning {
  background: var(--red-soft);
  border-color: #ecc4bd;
  color: #84382e;
}

.check-card:has(.issue-actions) { flex-wrap: wrap; align-items: center; }
.check-card:has(.issue-actions) > span:not(.issue-actions) { flex: 1 1 190px; }
.issue-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.issue-actions .btn { min-height: 36px; }
.issue-navigation {
  position: sticky; top: 82px; z-index: 19;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 12px 16px; margin-bottom: 18px;
  background: #fff7eb; border: 1px solid #ccae7d; border-radius: 12px;
  box-shadow: 0 4px 12px #17212b12;
}
.issue-navigation-copy { min-width: 0; font-size: 14px; }
.issue-navigation-copy strong, .issue-navigation-copy span { display: block; }
.issue-navigation-copy span { margin-top: 3px; overflow-wrap: anywhere; }
.issue-highlight { outline: 3px solid #b38135 !important; outline-offset: 5px; }
.issue-highlight, .issue-highlight input, .issue-highlight button, .issue-highlight select { scroll-margin-top: 180px; scroll-margin-bottom: 40px; }
@media (max-width: 760px) {
  .issue-navigation { top: 70px; align-items: flex-start; flex-direction: column; gap: 8px; }
  .issue-navigation-copy span { max-height: 3em; overflow: auto; }
  .issue-highlight, .issue-highlight input, .issue-highlight button, .issue-highlight select { scroll-margin-top: 240px; }
}
@media print {
  .issue-navigation, .issue-actions { display: none !important; }
  .issue-highlight { outline: none !important; }
}

.table-toolbar {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 14px;
}

.search-wrap {
  flex: 1;
  max-width: 440px;
  position: relative;
}

.search-input {
  padding-left: 36px;
}

.search-wrap::before {
  color: var(--ink-3);
  content: "⌕";
  left: 12px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.data-table-wrap {
  overflow-x: auto;
}

.data-table {
  border-collapse: collapse;
  font-size: 0.78rem;
  min-width: 760px;
  width: 100%;
}

.data-table th {
  background: #f2f1ed;
  color: var(--ink-3);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  padding: 10px 12px;
  text-align: left;
  text-transform: uppercase;
}

.data-table td {
  border-top: 1px solid var(--line);
  padding: 11px 12px;
  vertical-align: middle;
}

.data-table tbody tr:hover {
  background: #fbfaf7;
}

.data-table .number {
  text-align: right;
  white-space: nowrap;
}

.editable-number {
  min-height: 34px;
  padding: 5px 8px;
  text-align: right;
  width: 80px;
}

.type-chip {
  background: #edf0f2;
  color: #57636c;
}

.type-chip.selected {
  background: var(--gold-soft);
  color: #724a1b;
}

.scope-layout {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) 290px;
}

.scope-room-control { margin: 12px 0 14px; }
.scope-room-heading { display: block; font-size: 0.8rem; font-weight: 700; margin-bottom: 8px; }
.scope-room-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.scope-room-button { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); cursor: pointer; font-size: 0.8rem; min-height: 40px; padding: 8px 12px; text-align: center; }
.scope-room-button:hover { background: var(--surface-2); border-color: var(--nav); }
.scope-room-button.active { background: var(--nav); border-color: var(--nav); color: #fff; font-weight: 700; }
.scope-room-button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.scope-retired-choice { align-items: center; flex-wrap: wrap; margin:8px 0; }
.scope-retired-choice span { flex: 1 1 180px; }
.scope-retired-choice .btn { margin-left: auto; }
.scope-countline { align-items: baseline; color: var(--ink-3); display: flex; flex-wrap: wrap; font-size: 0.75rem; gap: 8px; justify-content: space-between; margin: 16px 0 8px; }
.scope-countline strong { color: var(--ink); }
.scope-accordion-list { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.scope-accordion-group { border-bottom: 1px solid var(--line); }
.scope-accordion-group:last-child { border-bottom: 0; }
.scope-accordion-trigger { align-items: center; background: var(--surface); border: 0; color: var(--ink); cursor: pointer; display: flex; gap: 10px; min-height: 44px; padding: 9px 13px; text-align: left; width: 100%; }
.scope-accordion-trigger:hover, .scope-accordion-trigger[aria-expanded="true"] { background: var(--surface-2); }
.scope-accordion-trigger:focus-visible { outline: 2px solid var(--blue); outline-offset: -3px; }
.scope-accordion-trigger strong { flex: 1; font-size: 0.82rem; }
.scope-accordion-trigger small { color: var(--ink-3); font-size: 0.7rem; white-space: nowrap; }
.scope-chevron { color: var(--blue); font-size: 1rem; width: 16px; }
.scope-group-count { background: var(--gold-soft); border-radius: 999px; color: #724a1b; font-size: 0.68rem; font-weight: 700; padding: 3px 7px; white-space: nowrap; }
.scope-level-trade > .scope-trade-heading { background: #000; color: #fff; }
.scope-level-trade > .scope-trade-heading > .scope-accordion-trigger { background: #000; color: #fff; }
.scope-level-trade > .scope-trade-heading > .scope-accordion-trigger:hover, .scope-level-trade > .scope-trade-heading > .scope-accordion-trigger[aria-expanded="true"] { background: #1b1b1b; }
.scope-level-trade > .scope-trade-heading > .scope-accordion-trigger small { color: #d3d3d3; }
.scope-level-trade > .scope-trade-heading > .scope-accordion-trigger .scope-chevron { color: #d6ad70; }
.scope-accordion-panel { border-left: 2px solid var(--line); margin-left: 18px; }
.scope-level-family > .scope-trade-heading > .scope-accordion-trigger { background: var(--surface-2); }
.scope-level-family > .scope-trade-heading > .scope-accordion-trigger:hover, .scope-level-family > .scope-trade-heading > .scope-accordion-trigger[aria-expanded="true"] { background: #f0eee9; }
.scope-level-detail > .scope-trade-heading > .scope-accordion-trigger { background: #fff; }
.scope-level-detail > .scope-trade-heading > .scope-accordion-trigger:hover, .scope-level-detail > .scope-trade-heading > .scope-accordion-trigger[aria-expanded="true"] { background: #faf8f3; }
.scope-check-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 9px; grid-template-columns: minmax(0, 1fr) minmax(65px, auto) minmax(110px, auto); min-height: 47px; padding: 7px 13px; }
.scope-check-row:last-child { border-bottom: 0; }
.scope-check-row.checked { background: #fffcf5; }
.scope-check-expanded { align-items: start; }
.scope-line-fields { grid-column: 1 / -1; min-width: 0; padding: 3px 0 7px 27px; }
.scope-instance-list { display: grid; gap: 8px; grid-column: 1 / -1; min-width: 0; padding: 4px 0 7px 27px; }
.scope-instance-card { background: #fff; border: 1px solid #ded7cd; border-left: 3px solid #d6ad70; border-radius: 9px; display: grid; gap: 10px; min-width: 0; padding: 10px 11px; }
.scope-instance-header { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; }
.scope-instance-header > strong { color: var(--ink); font-size: .74rem; }
.scope-instance-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; }
.scope-instance-basics { align-items: start; display: grid; gap: 10px; grid-template-columns: minmax(190px, 1fr) minmax(180px, 240px); }
.scope-location-label, .scope-instance-quantity { color: var(--ink); display: grid; font-size: .72rem; font-weight: 700; gap: 4px; }
.scope-location-label small, .scope-instance-quantity small { color: var(--ink-3); font-size: .65rem; font-weight: 400; }
.scope-location-label input, .scope-instance-quantity input, .scope-takeoff-select { background: #fff; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); font: inherit; min-height: 37px; padding: 6px 9px; width: 100%; }
.scope-takeoff-select { font-size: .72rem; font-weight: 600; }
.scope-location-label input:focus-visible, .scope-instance-quantity input:focus-visible, .scope-takeoff-select:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.scope-instance-quantity > span { align-items: center; display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.scope-instance-quantity > span input { border-radius: 7px 0 0 7px; }
.scope-instance-quantity > span b { align-items: center; background: var(--surface-2); border: 1px solid var(--line); border-left: 0; border-radius: 0 7px 7px 0; color: var(--ink-3); display: flex; font-size: .66rem; font-weight: 600; min-height: 37px; padding: 0 8px; }
.scope-instance-quantity .scope-takeoff-button { justify-self: start; margin: 0; }
.scope-instance-card .scope-material-choice { max-width: none; }
.scope-required-hint { color: #914b19; font-size: .68rem; grid-column: 1 / -1; margin-left: 27px; }
.scope-material-choice { border: 1px solid #dbd2c6; border-radius: 8px; display: grid; gap: 6px; max-width: 540px; padding: 9px 11px; }
.scope-material-choice.missing { background: #fff4eb; border-color: #e7aa74; }
.scope-material-choice.chosen { background: #f1f8f2; border-color: #a8c9ae; }
.scope-material-choice label, .scope-subtrade-fields label, .scope-suggested-rate label { font-size: .74rem; font-weight: 700; }
.scope-material-choice select, .scope-material-choice input, .scope-line-fields input, .scope-instance-card input { background: #fff; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); font: inherit; min-height: 37px; padding: 6px 9px; width: 100%; }
.scope-material-choice small, .scope-subtrade-fields small, .scope-suggested-rate small { color: var(--ink-3); font-size: .69rem; }
.scope-material-choice select:focus-visible, .scope-line-fields input:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.scope-travel-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.scope-travel-grid label { display: grid; font-size: .72rem; font-weight: 700; gap: 5px; }
.scope-travel-total { align-self: end; display: grid; gap: 4px; grid-column: 1 / -1; }
.scope-travel-total small { color: var(--ink-3); font-size: .69rem; }
.scope-travel-total strong { font-size: .9rem; }
.scope-subtrade-fields, .scope-suggested-rate { display: grid; gap: 5px; max-width: 310px; }
.scope-subtrade-fields .input-wrap { max-width: 250px; }
.scope-required-panel { margin-bottom: 18px; }
.scope-material-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); margin-top: 14px; }
.scope-required-card { background: var(--surface-2); border: 1px solid var(--line); border-radius: 9px; display: grid; gap: 8px; padding: 12px; }
.scope-required-card > strong { font-size: .78rem; }
.scope-check-label { align-items: flex-start; cursor: pointer; display: flex; font-size: 0.8rem; font-weight: 600; gap: 10px; line-height: 1.4; min-width: 0; }
.scope-check-label input { accent-color: var(--nav); cursor: pointer; flex: 0 0 auto; height: 17px; margin: 1px 0 0; width: 17px; }
.scope-allowance-badge { -webkit-print-color-adjust: exact; background: #4b392e; border: 1px solid #4b392e; border-radius: 999px; color: #fff; display: inline-flex; font-size: .72rem; font-style: normal; font-weight: 800; letter-spacing: .035em; line-height: 1; margin-left: 5px; padding: 3px 7px; print-color-adjust: exact; text-transform: uppercase; vertical-align: 1px; white-space: nowrap; }
.scope-check-unit { color: var(--ink-3); font-size: 0.68rem; text-align: right; }
.scope-hourly-rate { align-items: center; display: flex; gap: 5px; justify-self: end; white-space: nowrap; }
.scope-hourly-rate label { color: var(--ink-3); font-size: 0.72rem; }
.scope-hourly-rate span { font-size: 0.8rem; }
.scope-hourly-rate input { background: #fff; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); font-size: 0.85rem; padding: 6px; text-align: right; width: 70px; }
.scope-hourly-rate input:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.scope-unpriced-note { display: block; margin-top: 0.2rem; color: var(--gold-dark); font-size: 0.64rem; }
.scope-check-hint { color: var(--ink-3); font-size: 0.68rem; text-align: right; }
.scope-check-quantity { align-items: center; display: flex; flex-direction: column; gap: 2px; }
.scope-check-quantity .editable-number { width: 94px; }
.scope-check-quantity .scope-takeoff-button { margin: 0; text-align: center; }
.scope-quantity-origin { color: var(--ink-3); font-size: 0.66rem; text-align: center; }

.filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 14px;
}

.filter-chip {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink-3);
  font-size: 0.75rem;
  font-weight: 700;
  min-height: 31px;
  padding: 0 11px;
}

.filter-chip.active {
  background: var(--nav);
  border-color: var(--nav);
  color: #fff;
}

.material-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.material-card {
  border: 1px solid var(--line);
  border-radius: 11px;
  overflow: hidden;
}

.material-swatch {
  background:
    linear-gradient(135deg, rgba(255,255,255,.16), transparent 55%),
    repeating-linear-gradient(90deg, #8c6a48 0 18px, #a68059 18px 36px);
  height: 105px;
  position: relative;
}

.material-swatch.paint {
  background: linear-gradient(135deg, #eee8dd 0 52%, #d9d1c2 52% 100%);
}

.material-swatch.trim {
  background: repeating-linear-gradient(0deg, #eceae5 0 14px, #d5d1c8 14px 17px);
}

.material-swatch.tile {
  background:
    linear-gradient(135deg, rgba(255,255,255,.35), transparent 60%),
    repeating-linear-gradient(45deg, #c5c0b4 0 16px, #ece8de 16px 18px);
}

.material-swatch::after {
  background: rgba(23, 33, 43, 0.84);
  border-radius: 999px;
  bottom: 10px;
  color: #fff;
  content: attr(data-label);
  font-size: 0.75rem;
  font-weight: 750;
  left: 10px;
  padding: 5px 8px;
  position: absolute;
}

.material-content {
  padding: 13px;
}

.material-content h3 {
  font-size: 0.84rem;
  margin: 0 0 5px;
}

.material-content p {
  color: var(--ink-3);
  font-size: 0.75rem;
  line-height: 1.4;
  margin: 0 0 11px;
}

.grade-select {
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(3, 1fr);
}

.grade-button {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--ink-3);
  font-size: 0.75rem;
  font-weight: 750;
  min-height: 30px;
  padding: 4px;
}

.grade-button.active {
  background: var(--gold-soft);
  border-color: #dcb983;
  color: #684415;
}

.material-footer {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
}

.material-footer span,
.material-footer strong {
  display: block;
}

.material-footer span {
  color: var(--ink-3);
  font-size: 0.75rem;
}

/* Workbook-backed material picker; the generic prototype swatches are not used here. */
.material-section-intro { align-items: start; gap: 14px; }
.material-section-intro h3 { font-size: 1rem; margin: 0 0 3px; }
.material-section-intro p { color: var(--ink-3); font-size: .875rem; line-height: 1.5; margin: 0; max-width: 760px; }
.scope-material-grid.material-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 390px), 1fr)); margin-top: 16px; }
.material-trade-list { display: grid; gap: 10px; }
.material-trade-section { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.material-trade-heading { margin: 0; }
.material-trade-trigger { align-items: center; background: var(--surface-2); border: 0; color: var(--ink); cursor: pointer; display: flex; gap: 12px; min-height: 64px; padding: 14px 16px; text-align: left; width: 100%; }
.material-trade-trigger:hover, .material-trade-trigger[aria-expanded="true"] { background: #eeeae4; }
.material-trade-trigger:focus-visible { outline: 2px solid var(--blue); outline-offset: -3px; }
.material-trade-title { display: grid; flex: 1; gap: 4px; }
.material-trade-title strong { font-size: .9rem; }
.material-trade-title small { color: var(--ink-3); font-size: .75rem; font-weight: 400; }
.material-trade-status { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; max-width: 60%; }
.material-trade-status .status-chip { font-size: .72rem; }
.material-trade-body { padding: 0 14px 14px; }
.material-trade-body .cabinet-specifications { margin: 14px 0 0; }
@media (max-width: 600px) {
  .material-trade-trigger { flex-wrap: wrap; gap: 8px; }
  .material-trade-status { flex-basis: 100%; justify-content: flex-start; margin-left: 24px; max-width: none; }
  .material-trade-body { padding: 0 8px 8px; }
}
.workbook-material-card { background: #fff; scroll-margin-top: 28px; }
.workbook-material-card.is-confirmed { border-color: var(--green); }
.workbook-material-card .material-content { padding: 17px; }
.workbook-material-card h3 { font-size: 1.05rem; line-height: 1.32; margin: 10px 0 4px; }
.workbook-material-card p, .workbook-material-card .material-footer span { font-size: .875rem; }
.material-card-heading { align-items: center; display: flex; justify-content: space-between; gap: 8px; }
.material-card-statuses { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.status-chip.shared { background: #e6eef4; color: #29485d; }
.material-project-share { align-items: center; background: #f7f4ef; border: 1px solid #ddd2c4; border-radius: 9px; display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) auto; margin-top: 12px; padding: 11px 12px; }
.material-project-share.active { background: #edf4f7; border-color: #a9c1ce; }
.material-project-share strong { display: block; font-size: .875rem; }
.material-project-share small { color: var(--ink-3); display: block; font-size: .78rem; line-height: 1.4; margin-top: 3px; }
.material-project-share .btn { max-width: 170px; }
.material-quantity-label { display: grid; gap: 7px; font-size: .875rem; font-weight: 720; margin: 12px 0 16px; }
.material-quantity-input { align-items: center; border: 1px solid var(--line-strong); border-radius: 8px; display: flex; max-width: 220px; overflow: hidden; }
.material-quantity-input input { border: 0; flex: 1; min-height: 40px; min-width: 0; padding: 8px 10px; }
.material-quantity-input span { background: var(--surface-2); border-left: 1px solid var(--line); color: var(--ink-3); font-size: .875rem; padding: 10px; white-space: nowrap; }
.material-room-names { overflow-wrap: anywhere; }
.material-combined-quantity { align-items: start; display: grid; gap: 7px; margin: 16px 0; }
.material-combined-quantity > span { font-size: .875rem; font-weight: 700; }
.material-combined-quantity > strong { font-size: 1rem; }
.material-combined-quantity > button { justify-self: start; margin-top: 3px; }
.material-room-quantities { border-left: 3px solid var(--line); display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); margin: 0 0 16px; padding-left: 12px; }
.material-room-quantities[hidden] { display: none !important; }
.material-room-quantities .material-quantity-label { margin: 0; }
.workbook-material-card .grade-select { display: flex; flex-wrap: wrap; }
.workbook-material-card .grade-button { font-size: .875rem; flex: 1 1 108px; min-height: 43px; padding: 6px 9px; }
.workbook-material-card .grade-button small { display: block; font-size: .75rem; font-weight: 500; }
.workbook-choice-grid, .workbook-choice-grid p { margin-top: 12px; }
.picture-disclosure { align-items: center; background: var(--surface-2); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); display: flex; font-size: .875rem; font-weight: 700; justify-content: space-between; margin-top: 12px; min-height: 42px; padding: 8px 12px; text-align: left; width: 100%; }
.picture-disclosure:hover { border-color: var(--gold-dark); }
.picture-disclosure span:last-child { font-size: 1.15rem; }
.workbook-choice-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)); }
.workbook-choice-grid[hidden] { display: none !important; }
.workbook-choice { background: #fff; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); display: grid; gap: 5px; min-width: 0; overflow: hidden; padding: 7px; text-align: left; width: 100%; }
.workbook-choice-wrap { min-width: 0; }
.photo-preview-button { background: transparent; border: 0; color: var(--blue); font-size: .8rem; min-height: 30px; padding: 3px 7px; text-align: left; text-decoration: underline; }
.material-photo-large { margin: 0 auto; max-width: 520px; text-align: center; }
.material-photo-large img { background: transparent; height: auto; max-height: 550px; max-width: 100%; object-fit: contain; width: auto; }
.material-photo-large p { font-size: .875rem; line-height: 1.5; }
.workbook-choice:hover { border-color: var(--gold-dark); }
.workbook-choice.selected { background: var(--gold-soft); border-color: var(--gold-dark); box-shadow: inset 0 0 0 1px var(--gold-dark); }
.workbook-choice img { background: transparent; display: block; height: auto; margin: 0 auto; max-height: 100px; max-width: 100%; object-fit: contain; width: auto; }
.workbook-choice span, .workbook-choice strong { font-size: .875rem; }
.workbook-choice strong { line-height: 1.25; }
.material-no-photo { color: var(--ink-3); margin: 10px 0; }
.material-selected-product { align-items: center; display: flex; gap: 16px; margin: 18px 0; min-height: 102px; }
.material-selected-product > img, .material-selected-placeholder { background: #fff; border: 1px solid var(--line); border-radius: 8px; flex: 0 0 100px; height: 100px; object-fit: contain; width: 100px; }
.material-selected-product > strong { font-size: .95rem; min-width: 0; overflow-wrap: anywhere; }
.material-selected-placeholder { align-items: center; color: var(--ink-3); display: flex; font-size: .8rem; justify-content: center; padding: 8px; text-align: center; }
@media (max-width: 600px) { .material-selected-product > img, .material-selected-placeholder { flex-basis: 80px; height: 80px; width: 80px; } }
.material-custom-toggle { margin-top: 10px; min-height: 38px; }
.material-custom-fields { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin-top: 12px; }
.material-custom-fields label { display: grid; font-size: .875rem; font-weight: 650; gap: 5px; }
.material-custom-fields input { border: 1px solid var(--line-strong); border-radius: 7px; min-height: 40px; min-width: 0; padding: 8px; }
.workbook-material-card .material-footer { align-items: center; border-top: 1px solid var(--line); flex-wrap: wrap; gap: 9px; padding-top: 14px; }
.workbook-material-card .material-footer strong { font-size: .875rem; margin-top: 4px; }
.material-status-buttons { display: flex; gap: 8px; margin-top: 13px; }
.material-status-buttons button { flex: 1; min-height: 38px; }
.pending-material-list { display: grid; gap: 7px; margin-top: 15px; }
.pending-material-row { align-items: center; background: var(--surface-2); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); display: flex; font-size: .875rem; gap: 12px; justify-content: space-between; min-height: 55px; padding: 10px 13px; text-align: left; }
.pending-material-row:hover { border-color: var(--gold-dark); }
.pending-material-row small { color: var(--ink-3); display: block; font-size: .8rem; margin-top: 3px; }
.pending-material-row > span:last-child { color: var(--ink-3); text-align: right; }

/* Shared light palette for client documents. */
.shopping-document-page, .summary-preview-page, .weekly-report-sheet {
  --client-row-fill: rgba(249,247,244,.87);
  --client-heading-fill: #f2efeb;
  --client-soft-band: linear-gradient(90deg, rgba(246,243,239,.96) 0%, rgba(246,243,239,.92) 76%, rgba(246,243,239,.24) 100%);
}

/* Oakburn-inspired, client-facing material shopping list. */
.document-phase-band { align-items: center; background: linear-gradient(90deg,#e5dcd3 0%,#f2eeea 100%); border-left: 3px solid #baa48f; border-radius: 17px 5px 17px 17px; break-after: avoid; color: #453b33; display: flex; gap: 16px; justify-content: space-between; margin: 0 0 12px; min-height: 40px; padding: 10px 16px; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
.document-phase-band > strong { font-family: "Cinzel Oakburn", Cinzel, Georgia, serif; font-size: 16px; font-weight: 400; letter-spacing: .025em; line-height: 1.3; min-width: 0; overflow-wrap: anywhere; }
.document-phase-band > span { color: #776b60; flex: 0 0 auto; font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.shopping-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; margin-bottom: 16px; }
.shopping-toolbar > span { color: var(--ink-3); font-size: .875rem; }
.shopping-document { display: grid; gap: 22px; margin: 0 auto; max-width: 1056px; overflow-x: auto; padding-bottom: 8px; }
.shopping-document-page { -webkit-print-color-adjust: exact; background: #fff; border: 1px solid #e7e2dc; box-shadow: 0 15px 34px rgba(23,33,43,.1); color: #403b38; font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; height: 816px; margin: 0 auto; overflow: hidden; page: shoppingList; print-color-adjust: exact; position: relative; width: 1056px; }
.shopping-page-head { align-items: start; display: grid; gap: 18px; grid-template-columns: 150px 1fr; left: 34px; position: absolute; right: 34px; top: 18px; }
.shopping-page-head > img { background: transparent; height: 72px; object-fit: contain; width: 150px; }
.shopping-page-title { min-width: 0; text-align: right; }
.shopping-page-address { background: var(--client-heading-fill); border-radius: 11px; color: #191715; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 22px; height: 41px; letter-spacing: .02em; line-height: 41px; overflow: hidden; padding: 0 18px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-page-title h1 { color: #211e1b; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 20px; font-weight: 400; letter-spacing: .05em; line-height: 1.15; margin: 5px 0 1px; text-transform: uppercase; }
.shopping-page-title p { color: #766e66; font-size: 8px; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.shopping-page-body { bottom: 61px; left: 34px; position: absolute; right: 34px; top: 108px; }
.shopping-page-intro { align-items: center; background: var(--client-soft-band); border-radius: 17px 5px 17px 17px; display: grid; gap: 13px; grid-template-columns: minmax(0,1fr) 78px 104px; margin-bottom: 9px; min-height: 62px; padding: 12px 15px; }
.shopping-page-intro > div { min-width: 0; }
.shopping-page-intro > div strong { color: #3c332d; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 15px; font-weight: 400; letter-spacing: .025em; }
.shopping-page-intro p { color: #514943; font-size: 14px; line-height: 1.45; margin: 7px 0 0; }
.shopping-page-intro aside { border-left: 1px solid rgba(200,185,173,.62); display: grid; justify-items: center; min-height: 38px; padding-left: 10px; text-align: center; }
.shopping-page-intro aside span { color: #4b4038; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 18px; line-height: 21px; }
.shopping-page-intro aside small { color: #776e67; font-size: 7px; letter-spacing: .04em; line-height: 1.2; text-transform: uppercase; }
.shopping-page-intro aside.shopping-needs-attention span { color: #8b5135; }
.shopping-page-continued { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#d8cec3 75%,rgba(216,206,195,0) 100%); border-radius: 3px; color: #3e3732; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10px; justify-content: space-between; letter-spacing: .025em; margin-bottom: 9px; min-height: 24px; padding: 0 13px; }
.shopping-page-continued strong { font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
.shopping-table-wrap { overflow: visible; }
.shopping-table { border-collapse: separate; border-spacing: 0 9px; font-size: 10px; table-layout: fixed; width: 100%; }
.shopping-table col { width: auto; }
.shopping-table th { color: #5e554f; font-size: 8px; font-weight: 700; letter-spacing: .09em; padding: 1px 10px 4px; text-align: left; text-transform: uppercase; }
.shopping-table th:nth-child(1) { width: 38%; }
.shopping-table th:nth-child(2) { text-align: center; width: 15%; }
.shopping-table th:nth-child(3) { text-align: center; width: 20%; }
.shopping-table th:nth-child(4) { width: 27%; }
.shopping-table td { background: var(--client-row-fill); border-bottom: 1px solid rgba(222,211,203,.5); border-top: 1px solid rgba(222,211,203,.28); height: 78px; line-height: 1.35; padding: 7px 10px; vertical-align: middle; }
.shopping-table td:first-child { border-left: 3px solid #d5c7bb; border-radius: 16px 0 0 16px; }
.shopping-table td:last-child { border-radius: 0 16px 16px 0; }
.shopping-table .shopping-phase-row > td { background: transparent; border: 0; border-radius: 0; height: auto; padding: 0; }
.shopping-phase-row .document-phase-band { margin: 0; }
.shopping-table td small { color: #7b726b; display: block; font-size: 8px; line-height: 1.35; margin-top: 3px; }
.shopping-row-confirmed td:first-child { border-left-color: #82ad91; }
.shopping-row-supplied td:first-child { border-left-color: #9d8e82; }
.shopping-item-cell { align-items: center; display: flex; gap: 11px; min-width: 170px; }
.shopping-item-cell > div { min-width: 0; }
.shopping-item-cell strong { color: #453e39; font-size: 10.5px; font-weight: 700; }
.shopping-item-photo, .shopping-item-photo-empty { background: transparent; border: 0; border-radius: 7px; flex: 0 0 64px; height: 60px; width: 64px; }
.shopping-item-photo { object-fit: scale-down; }
.shopping-item-photo-empty { align-items: center; color: #8a7e75; display: flex; font-size: 8px; justify-content: center; line-height: 1.25; padding: 4px; text-align: center; }
.shopping-table td.quantity { color: #514a45; text-align: center; white-space: nowrap; }
.shopping-table td.quantity strong, .shopping-allowance-cell strong { font-size: 10px; }
.shopping-table .needs-measure { color: var(--red); }
.shopping-allowance-cell { position: relative; text-align: center; }
.shopping-allowance-cell > span { display: block; }
.shopping-allowance-cell .shopping-allowance-badge { bottom: 0; font-size: 7px; left: 50%; margin: 0; padding: 3px 7px; position: absolute; transform: translate(-50%, 50%); white-space: nowrap; z-index: 2; }
.shopping-selection-cell > strong { color: #4a423d; font-size: 9px; }
.shopping-empty-row td { border-radius: 16px !important; color: #776e67; height: 120px; text-align: center; }
.shopping-page-bottom-band { background: rgba(244,240,237,.9); border-radius: 7px; bottom: 12px; height: 40px; left: 34px; position: absolute; right: 34px; }
.shopping-document-foot { align-items: center; bottom: 12px; color: #746b63; display: flex; font-size: 7px; height: 40px; justify-content: space-between; left: 49px; line-height: 1.35; position: absolute; right: 49px; z-index: 2; }
.shopping-document-foot p { margin: 0; max-width: 620px; }
.shopping-document-foot span { color: #514943; font-weight: 700; text-align: right; }

/* Oakburn landscape previews: introductory pages use crisp, selectable typography. */
@font-face { font-family: "Cinzel Oakburn"; src: url("./fonts/cinzel-oakburn-headers.ttf") format("truetype"); font-display: block; font-style: normal; font-weight: 400; }
.summary-preview-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; justify-content: space-between; margin-bottom: 14px; }
.summary-page-buttons { align-items: center; display: flex; gap: 10px; }
.summary-page-buttons > span { color: var(--ink-3); font-size: .875rem; min-width: 88px; text-align: center; }
.summary-page-buttons select { background: #fff; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink-2); font-size: .8rem; min-height: 38px; padding: 6px 28px 6px 9px; }
.summary-preview-completeness { display: grid; gap: 2px; text-align: center; }
.summary-preview-completeness strong { color: var(--ink-2); font-size: .82rem; }
.summary-preview-completeness span { color: var(--ink-3); font-size: .74rem; }
.summary-preview-notice { background: var(--gold-soft); border-left: 4px solid var(--gold-dark); font-size: .875rem; line-height: 1.5; margin: 0 0 16px; padding: 12px 15px; }
.summary-preview-canvas { margin: 0 auto; max-width: 1184px; min-width: 0; overflow-x: auto; padding: 0 0 8px; width: 100%; }
.summary-preview-stack { display: grid; gap: 22px; }
.summary-page-layout { align-items: stretch; display: flex; gap: 24px; position: relative; width: 1184px; }
.summary-page-layout > .summary-preview-page { flex: 0 0 1056px; margin: 0; }
.summary-override-rail { align-self: stretch; background: transparent; flex: 0 0 104px; position: relative; }
.summary-preview-page { background: #fff; border: 1px solid #e9e2dc; box-shadow: 0 12px 30px #17212b0a; height: 816px; margin: 0 auto; min-height: 816px; position: relative; width: 1056px; }
.summary-preview-page.is-intro { border: 0; height: 816px; min-height: 0; width: 1056px; }
.oakburn-how-it-works { -webkit-print-color-adjust: exact; background: #fff; box-sizing: border-box; color: #514a45; display: grid; font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; font-size: 14px; grid-template-columns: 354px minmax(0,1fr); height: 816px; isolation: isolate; line-height: 19px; padding-bottom: 60px; position: relative; print-color-adjust: exact; width: 1056px; }
.oakburn-cover-panel { background: var(--client-heading-fill); border: 1px solid rgba(222,211,203,.5); border-radius: 18px; display: flex; flex-direction: column; margin: 24px 0 0 22px; min-width: 0; padding: 22px 28px 30px; position: relative; z-index: 1; }
.oakburn-brand { bottom: 130px; position: absolute; right: 18px; width: 128px; }
.oakburn-logo { background: transparent; display: block; height: 76px; object-fit: contain; width: 128px; }
.oakburn-title-band { margin-top: 0; min-width: 0; }
.oakburn-title-band > p { color: #85796f; font-size: 9px; font-weight: 700; letter-spacing: .14em; line-height: 13px; margin: 0 0 16px; text-transform: uppercase; }
.oakburn-title-band h1 { color: #302b27; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 48px; font-weight: 400; letter-spacing: .015em; line-height: 1.1; margin: 0; }
.oakburn-title-band h1 span { display: block; }
.oakburn-intro { margin-top: 26px; }
.oakburn-intro > i { background: #baa897; display: block; height: 2px; width: 42px; }
.oakburn-intro > p { color: #655a51; font-size: 15px; line-height: 23px; margin: 18px 0 0; }
.oakburn-intro > span { color: #85796f; display: block; font-size: 11px; line-height: 17px; margin-top: 21px; max-width: 245px; }
.oakburn-project { margin-top: auto; min-width: 0; padding-top: 32px; }
.oakburn-project > span { color: #85796f; display: block; font-size: 9px; letter-spacing: .12em; line-height: 13px; text-transform: uppercase; }
.oakburn-project > p { color: #655a51; font-size: 12px; line-height: 18px; margin: 7px 0 0; overflow-wrap: anywhere; }
.oakburn-project > strong { color: #453e39; display: block; font-size: 17px; font-weight: 700; line-height: 23px; margin-top: 5px; overflow-wrap: anywhere; }
.oakburn-project > small { color: #85796f; display: block; font-size: 10px; line-height: 15px; margin-top: 8px; }
.oakburn-guide-panel { min-width: 0; padding: 44px 44px 22px; position: relative; z-index: 1; }
.oakburn-guide-heading h2 { color: #453e39; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 28px; font-weight: 400; letter-spacing: .025em; line-height: 34px; margin: 0; }
.oakburn-guide-heading p { color: #85796f; font-size: 12px; line-height: 18px; margin: 7px 0 0; }
.oakburn-card-grid { display: grid; gap: 16px; grid-template-columns: minmax(0,1fr); margin-top: 21px; }
.oakburn-section { font-size: inherit; line-height: inherit; position: relative; width: calc(100% - 28px); }
.oakburn-section:nth-child(even) { margin-left: 28px; }
.oakburn-step-heading { align-items: center; background: var(--client-row-fill); border: 1px solid rgba(222,211,203,.5); border-top-color: rgba(222,211,203,.28); border-left: 3px solid #d5c7bb; border-radius: 12px; display: grid; gap: 12px; grid-template-columns: 28px minmax(0,1fr); padding: 6px 12px; }
.oakburn-step-heading > b { color: #a08d7c; font-size: 12px; font-weight: 700; letter-spacing: .04em; line-height: 21px; }
.oakburn-section h2 { color: #453e39; font-size: 14px; font-weight: 700; line-height: 21px; margin: 0; }
.oakburn-section p { color: #514a45; line-height: inherit; margin: 8px 0 0; padding: 0 12px 0 55px; }
.oakburn-important { background: var(--client-row-fill); border: 1px solid rgba(222,211,203,.5); border-left: 3px solid #d5c7bb; border-radius: 16px; margin-top: 12px; padding: 14px 17px; }
.oakburn-important > strong { color: #453e39; display: block; font-size: 11px; font-weight: 700; letter-spacing: .055em; line-height: 16px; text-transform: uppercase; }
.oakburn-important > span { color: #6e655e; display: block; font-size: 13px; line-height: 18px; margin-top: 7px; }
.summary-preview-main { color: #403b38; font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; font-size: .8rem; line-height: 1.35; padding: 28px 28px 36px; }
.summary-page-identity { align-items: center; border-top: 1px solid rgba(204, 185, 170, .42); bottom: 9px; color: #766b64; display: flex; font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; font-size: 9px; justify-content: space-between; left: 28px; letter-spacing: .02em; padding-top: 4px; position: absolute; right: 28px; z-index: 3; }
.summary-page-identity strong { color: #4d4540; font-size: inherit; }
.summary-document-total, .summary-phase-total { align-items: center; background: var(--client-soft-band); border: 1px solid rgba(222,211,203,.65); border-radius: 9px; break-inside: avoid; color: #453e39; display: flex; gap: 20px; justify-content: space-between; margin-top: 13px; min-height: 60px; padding: 10px 13px; }
.summary-document-total strong, .summary-phase-total strong { display: block; font-size: 16px; overflow-wrap: anywhere; }
.summary-document-total small, .summary-phase-total small { color: #766b64; display: block; font-size: 9px; margin-top: 3px; }
.summary-document-total > span, .summary-phase-total > span { flex-shrink: 0; font-size: 18px; font-variant-numeric: tabular-nums; font-weight: 700; text-align: right; }
.summary-phase-total { background: linear-gradient(90deg,#f3eee8,#faf8f5); border-left: 3px solid #baa48f; border-radius: 17px 5px 17px 17px; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
.summary-preview-page.is-intro .summary-page-identity { border-top: 1px solid rgba(222,211,203,.5); bottom: 17px; left: 46px; right: 46px; }
.summary-scope-column-head { border-bottom: 1px solid rgba(204, 185, 170, .58); color: #5e554f; display: grid; font-size: 8px; font-weight: 700; gap: 8px; grid-template-columns: minmax(0, 1fr) 128px 86px 112px; letter-spacing: .09em; text-transform: uppercase; margin: 0 65px 11px 124px; padding: 0 0 5px; text-align: right; }
.summary-scope-column-head span:first-child { text-align: left; }
.summary-material-column-head { color: #5e554f; display: grid; font-size: 8px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; gap: 9px; grid-template-columns: minmax(0, 1fr) 97px 132px; margin: 0 11px 14px 118px; text-align: center; }
.summary-material-column-head span:first-child { text-align: left; }
.summary-material-column-head span:last-child { text-align: center; }
.summary-group { margin-bottom: 13px; }
.summary-room-band { background: var(--client-heading-fill); border: 1px solid rgba(222,211,203,.5); border-radius: 4px; color: #453e39; font-size: 12px; font-weight: 700; line-height: 1.25; margin-bottom: 6px; padding: 2px 13px; text-align: left; }
.summary-scope-group > .summary-room-band { align-items: center; display: flex; gap: 16px; justify-content: space-between; }
.summary-room-name { min-width: 0; overflow-wrap: anywhere; }
.summary-room-total { flex-shrink: 0; font-variant-numeric: tabular-nums; margin-left: auto; text-align: right; white-space: nowrap; }
.summary-room-total small { font-size: 9px; font-weight: 400; }
.summary-trade-panel { min-height: 60px; padding-left: 105px; position: relative; }
.summary-trade-panel > .summary-trade-icon { height: 49px; left: 35px; object-fit: contain; position: absolute; top: 8px; width: 49px; }
.summary-trade-content { background: var(--client-row-fill); border: 1px solid rgba(222,211,203,.5); border-left: 3px solid #d5c7bb; border-radius: 16px; padding: 4px 65px 5px 8px; position: relative; }
.summary-trade-content::before { background: var(--client-soft-band); border-radius: 5px 5px 3px 3px; content: ""; height: 16px; left: 29%; position: absolute; right: 0; top: 0; z-index: 0; }
.summary-trade-band { align-items: center; color: #4f4742; display: flex; gap: 12px; justify-content: space-between; margin-right: -48px; min-height: 24px; position: relative; }
.summary-trade-band strong { color: #453e39; font-size: 10.5px; font-weight: 700; min-width: 0; }
.summary-scope-row { align-items: center; display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) 128px 86px 112px; padding: 2px 0 3px 11px; position: relative; }
.summary-scope-row span:first-child { color: #514a45; font-size: 10px; font-weight: 400; line-height: 1.35; }
.summary-scope-row span:not(:first-child) { color: #726a64; font-size: 10px; text-align: right; }
.summary-scope-row + .summary-scope-row { border-top: 1px solid rgba(222,211,203,.28); }
.summary-scope-description small { color: #7b726b; display: block; font-size: 8px; line-height: 1.35; margin-top: 1px; }
.summary-scope-description small b { color: #4d433d; font-weight: 700; }
.summary-scope-row .summary-price-pending { color: #977c69; font-style: italic; white-space: nowrap; }
.summary-scope-row .summary-line-total { color: #514a45; font-style: normal; white-space: nowrap; }
.summary-scope-allowance { align-items: flex-end; display: flex; flex-direction: column; gap: 4px; justify-content: center; min-height: 19px; transform: translateX(48px); }
.summary-scope-allowance .scope-allowance-badge { font-size: .61rem; margin-left: 0; padding: 3px 6px; vertical-align: 0; }
.revision-comparison-strip { -webkit-print-color-adjust: exact; align-items: center; background: #f3eee8; border-left: 4px solid #8f674a; border-radius: 4px; color: #493e36; display: flex; gap: 18px; justify-content: space-between; margin: 0 65px 10px 124px; padding: 7px 10px; print-color-adjust: exact; }
.revision-comparison-strip div { display: grid; gap: 1px; white-space: nowrap; }
.revision-comparison-strip strong { font-size: .72rem; }
.revision-comparison-strip span, .revision-comparison-strip small { font-size: .63rem; }
.revision-comparison-strip small { line-height: 1.3; text-align: right; }
.revision-change-badge { border: 1px solid currentColor; border-radius: 999px; display: inline-flex; font-size: 8px; font-style: normal; font-weight: 800; letter-spacing: .04em; margin-right: 5px; padding: 1px 4px; text-transform: uppercase; vertical-align: 1px; }
.revision-change-badge.added { background: #dcefe4; color: #23623d; }
.revision-change-badge.changed { background: #f6e8cd; color: #80551d; }
.revision-change-badge.removed { background: #f9d8d8; color: #922c2c; }
.summary-scope-row.revision-added, .summary-material-row.revision-added { background: #e8f4ec; box-shadow: inset 3px 0 #3a8557; }
.summary-scope-row.revision-changed, .summary-material-row.revision-changed { background: #fff0cd; box-shadow: inset 3px 0 #b27a2a; }
.summary-scope-row.revision-removed, .summary-material-row.revision-removed { background: #fceaea; box-shadow: inset 3px 0 #b54343; }
.revision-removed del { color: #813535; text-decoration-color: #b54343; text-decoration-thickness: 1px; }
.revision-removed .revision-excluded { color: #813535; font-size: 8px; font-weight: 600; }
.revision-added, .revision-changed, .revision-removed, .revision-change-badge { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.summary-material-trade-band { margin-bottom: 2px; }
.summary-material-group .summary-trade-panel > .summary-trade-icon { top: 10px; }
.summary-material-group .summary-trade-content { background: transparent; border: 0; display: grid; gap: 9px; padding: 0; }
.summary-material-group .summary-trade-content::before { display: none; }
.summary-material-row { align-items: center; background: var(--client-row-fill); border: 1px solid rgba(222,211,203,.5); border-top-color: rgba(222,211,203,.28); border-left: 3px solid #d5c7bb; border-radius: 16px; display: grid; gap: 9px; grid-template-columns: minmax(0, 1fr) 97px 132px; min-height: 76px; padding: 7px 10px; position: relative; }
.summary-material-item { align-items: center; display: flex; gap: 11px; min-width: 0; }
.summary-material-description { min-width: 0; overflow-wrap: anywhere; }
.summary-material-description strong { color: #453e39; font-size: 10.5px; font-weight: 700; }
.summary-material-description small { color: #7b726b; display: block; font-size: 8px; line-height: 1.35; margin-top: 3px; }
.summary-material-row > span { color: #514a45; font-size: 10px; text-align: center; }
.summary-material-row > .summary-material-allowance { align-items: center; align-self: stretch; background: transparent; border-radius: 5px; display: flex; font-weight: 700; justify-content: center; position: relative; text-align: center; }
.summary-override-button { background: #fff; border: 1px solid #5f7c68; border-radius: 6px; color: #31543c; font-size: 12px; font-weight: 600; left: 0; line-height: 16px; min-height: 28px; padding: 4px; position: absolute; top: 0; transform: translateY(-50%); visibility: hidden; width: 104px; z-index: 1; }
.summary-page-layout.is-scope .summary-override-button { min-height: 20px; padding: 1px 4px; }
.summary-override-button:hover, .summary-override-button.is-active { background: #31543c; color: #fff; }
.package-toolbar { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 14px; }
.package-toolbar > div { display: grid; gap: 2px; text-align: center; }
.package-toolbar > div strong { color: var(--ink-2); font-size: .9rem; }
.package-toolbar > div span { color: var(--ink-3); font-size: .74rem; }
.package-notice { background: var(--gold-soft); border-left: 4px solid var(--gold-dark); font-size: .875rem; line-height: 1.5; margin: 0 0 18px; padding: 12px 15px; }
.package-exports { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); margin-bottom: 24px; }
.package-export { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 10px; display: flex; gap: 12px; justify-content: space-between; padding: 16px; }
.package-export > div { display: grid; gap: 5px; min-width: 0; }
.package-export strong { color: var(--ink-2); font-size: 1rem; }
.package-export span { color: var(--ink-3); font-size: .875rem; overflow-wrap: anywhere; }
.package-export button { flex-shrink: 0; }
.client-package-document { display: grid; gap: 30px; }
.fee-proposal-page-wrap { margin-bottom: 22px; }
.summary-material-allowance .material-allowance-badge { bottom: 0; font-size: .58rem; left: 50%; margin: 0; padding: 3px 6px; position: absolute; transform: translate(-50%, 35%); vertical-align: 0; z-index: 2; }
.summary-material-photo, .summary-material-photo-empty { background: transparent; border: 0; border-radius: 7px; flex: 0 0 64px; height: 60px; width: 64px; }
.summary-material-photo { object-fit: scale-down; }
.revision-control-card { align-items: center; display: flex; gap: 22px; justify-content: space-between; margin-top: 18px; padding: 18px; }
.revision-control-card h2 { margin: 0 0 5px; }
.revision-control-card p { color: var(--ink-3); font-size: .82rem; line-height: 1.45; margin: 0; max-width: 620px; }
.revision-control-card p + p { margin-top: 5px; }
.revision-control-card p[role="status"] { color: var(--ink); font-weight: 600; }
.revision-control-actions { align-items: end; display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-end; }
.revision-control-actions label { color: var(--ink-3); display: grid; font-size: .7rem; gap: 4px; }
.revision-control-actions select { min-height: 38px; min-width: 170px; }
.summary-material-photo-empty { align-items: center; color: #8a7e75; display: flex; font-size: 8px; justify-content: center; line-height: 1.25; padding: 4px; text-align: center; }
.summary-empty { color: #655e59; margin: 40px 0 0; text-align: center; }

/* Weekly reports */
.weekly-report-tabs { display: flex; gap: 8px; margin-bottom: 18px; overflow-x: auto; padding-bottom: 3px; }
.weekly-report-tabs button { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; color: var(--ink-3); display: grid; flex: 0 0 auto; gap: 2px; min-width: 150px; padding: 10px 13px; text-align: left; }
.weekly-report-tabs button span { color: var(--ink); font-size: .84rem; font-weight: 750; }
.weekly-report-tabs button small { font-size: .7rem; }
.weekly-report-tabs button.active { background: var(--nav); border-color: var(--nav); box-shadow: inset 3px 0 var(--gold); color: #c7d0d6; }
.weekly-report-tabs button.active span { color: #fff; }
.weekly-metrics { margin-bottom: 18px; }
.weekly-report-details, .weekly-photo-panel, .weekly-progress-panel { margin-bottom: 18px; }
.weekly-report-fields { align-items: end; display: grid; gap: 14px; grid-template-columns: 180px 220px minmax(180px, 1fr); }
.weekly-report-fields label { color: var(--ink-3); display: grid; font-size: .76rem; font-weight: 700; gap: 5px; }
.weekly-report-fields input { background: #fff; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--ink); min-height: 42px; padding: 9px 10px; }
.weekly-report-fields > div { background: var(--surface-2); border: 1px solid var(--line); border-radius: 9px; display: grid; gap: 4px; min-height: 64px; padding: 10px 13px; }
.weekly-report-fields > div span { color: var(--ink-3); font-size: .72rem; }
.weekly-report-fields > div strong { font-size: .94rem; }
.weekly-photo-panel .panel-head p, .weekly-progress-panel .panel-head p { color: var(--ink-3); font-size: .76rem; margin: 3px 0 0; }
.weekly-photo-upload { overflow: hidden; position: relative; }
.weekly-photo-upload input, .weekly-photo-slot input { inset: 0; opacity: 0; position: absolute; width: 100%; }
.weekly-photo-slots { display: grid; gap: 12px; grid-template-columns: repeat(5, minmax(120px, 1fr)); }
.weekly-photo-slot { background: var(--surface-2); border: 1px dashed var(--line-strong); border-radius: 12px; display: grid; gap: 7px; min-width: 0; padding: 8px; }
.weekly-photo-slot > div { align-items: center; aspect-ratio: 4 / 3; background: #ece8e1; border-radius: 8px; color: #857c73; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.weekly-photo-slot > div strong { font-family: "Cinzel Oakburn", serif; font-size: 1.4rem; font-weight: 400; }
.weekly-photo-slot > div span { font-size: .7rem; }
.weekly-photo-slot img { height: 100%; object-fit: cover; width: 100%; }
.weekly-photo-slot label, .weekly-photo-slot button { background: #fff; border: 1px solid var(--line); border-radius: 7px; color: var(--ink-2); font-size: .7rem; font-weight: 700; min-height: 31px; padding: 7px; position: relative; text-align: center; }
.weekly-photo-slot button { color: var(--red); }
.weekly-photo-help { color: var(--ink-3); font-size: .72rem; line-height: 1.45; margin: 11px 0 0; }
.weekly-report-warning { margin-bottom: 18px; }
.weekly-editor-stages { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.weekly-editor-stage { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.weekly-editor-stage-head { align-items: center; background: var(--nav); color: #fff; display: flex; justify-content: space-between; min-height: 52px; padding: 8px 10px; }
.weekly-editor-stage-head > div:first-child { align-items: center; display: flex; gap: 9px; }
.weekly-editor-stage-head > div:first-child span { align-items: center; border: 1px solid #77828a; border-radius: 7px; color: var(--gold); display: flex; font-family: "Cinzel Oakburn", serif; font-size: 1.15rem; height: 34px; justify-content: center; width: 34px; }
.weekly-editor-stage-head strong { font-size: .77rem; letter-spacing: .04em; }
.weekly-editor-stage-head > div:last-child { align-items: baseline; display: grid; gap: 1px 6px; grid-template-columns: auto auto; text-align: right; }
.weekly-editor-stage-head small { color: #9fabb3; font-size: .6rem; }
.weekly-editor-stage-head b { font-size: .73rem; }
.weekly-editor-head, .weekly-editor-row { align-items: center; display: grid; gap: 8px; grid-template-columns: minmax(130px, 1.25fr) 78px 84px minmax(120px, 1fr); padding: 7px 10px; }
.weekly-editor-head { background: #ece8e1; color: var(--ink-3); font-size: .63rem; font-weight: 750; text-transform: uppercase; }
.weekly-editor-row { border-top: 1px solid #ebe8e2; min-height: 52px; }
.weekly-editor-row > div { min-width: 0; }
.weekly-editor-row > div strong, .weekly-editor-row > div small { display: block; }
.weekly-editor-row > div strong { font-size: .76rem; }
.weekly-editor-row > div small { color: var(--ink-3); font-size: .63rem; margin-top: 2px; }
.weekly-editor-row > span { color: var(--ink-2); font-size: .72rem; }
.weekly-editor-row label { display: grid; grid-template-columns: 1fr 22px; }
.weekly-editor-row label input, .weekly-editor-row > input { border: 1px solid var(--line-strong); min-height: 34px; padding: 6px 8px; }
.weekly-editor-row label input { border-radius: 7px 0 0 7px; min-width: 0; text-align: right; }
.weekly-editor-row label b { align-items: center; background: #ece8e1; border: 1px solid var(--line-strong); border-left: 0; border-radius: 0 7px 7px 0; color: var(--ink-3); display: flex; font-size: .65rem; justify-content: center; }
.weekly-editor-row > input { border-radius: 7px; font-size: .72rem; min-width: 0; width: 100%; }
.weekly-editor-row.is-na { background: #faf9f6; color: #8d8984; }
.weekly-na-chip { background: #eeebe6; border-radius: 999px; font-size: .62rem !important; font-weight: 750; justify-self: start; padding: 4px 8px; }
.weekly-na-copy { color: #9a958f !important; font-style: italic; }
.weekly-preview-section { margin-top: 26px; }
.weekly-preview-toolbar { align-items: center; display: flex; justify-content: space-between; margin-bottom: 12px; }
.weekly-preview-toolbar h2 { font-size: 1.05rem; margin: 0; }
.weekly-preview-toolbar p { color: var(--ink-3); font-size: .75rem; margin: 3px 0 0; }
.weekly-preview-canvas { margin: 0 auto; max-width: 1100px; overflow-x: auto; padding-bottom: 8px; }
.weekly-report-sheet { -webkit-print-color-adjust: exact; background: #fff; border: 1px solid #e7e2dc; box-shadow: 0 15px 34px rgba(23,33,43,.1); color: #171513; height: 816px; margin: 0 auto; overflow: hidden; page: weeklyReport; print-color-adjust: exact; position: relative; width: 1056px; }
.weekly-report-photo-rail { background: var(--client-row-fill); border: 1px solid rgba(222,211,203,.5); border-radius: 0 28px 28px 0; bottom: 50px; left: 0; position: absolute; top: 92px; width: 272px; }
.weekly-report-photo { background: var(--client-heading-fill); border: 1px solid rgba(222,211,203,.5); border-radius: 29px; height: 151px; overflow: hidden; padding: 4px; position: absolute; width: 202px; }
.weekly-report-photo img { border-radius: 24px; display: block; height: 100%; object-fit: cover; width: 100%; }
.weekly-report-photo-1 { left: 38px; top: -70px; }
.weekly-report-photo-2 { left: 100px; top: 67px; }
.weekly-report-photo-3 { left: 38px; top: 204px; }
.weekly-report-photo-4 { left: 100px; top: 341px; }
.weekly-report-photo-5 { left: 38px; top: 478px; }
.weekly-report-header { align-items: start; display: grid; gap: 12px; grid-template-columns: 142px 1fr; left: 310px; position: absolute; right: 26px; top: 20px; }
.weekly-report-header > img { height: 64px; object-fit: contain; width: 142px; }
.weekly-report-header > div { min-width: 0; text-align: right; }
.weekly-report-address { background: #f2efeb; border-radius: 11px; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 22px; height: 41px; letter-spacing: .015em; line-height: 41px; overflow: hidden; padding: 0 18px; text-overflow: ellipsis; white-space: nowrap; }
.weekly-report-header h1 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 18px; font-weight: 400; letter-spacing: .03em; margin: 4px 0 0; }
.weekly-report-header p { color: #766e66; font-size: 7px; letter-spacing: .08em; margin: 1px 0 0; text-transform: uppercase; }
.weekly-report-body { bottom: 65px; left: 310px; overflow: hidden; position: absolute; right: 26px; top: 96px; }
.weekly-report-columns { color: #5f5750; display: grid; font-size: 7px; font-weight: 650; grid-template-columns: minmax(0,1fr) 60px 60px 120px; letter-spacing: .13em; margin: 0 200px 5px 82px; text-transform: uppercase; }
.weekly-report-columns span:not(:first-child) { text-align: center; }
.weekly-report-stage { display: grid; grid-template-columns: 34px 48px minmax(0,1fr) 200px; grid-template-rows: 16px auto; margin-bottom: 3px; min-height: 66px; position: relative; }
.weekly-report-stage::before { background: var(--client-soft-band); border: 1px solid rgba(222,211,203,.5); border-radius: 16px; content: ""; grid-column: 3 / 5; grid-row: 2; margin: 2px 0; pointer-events: none; position: relative; z-index: 0; }
.weekly-report-stage-title { background: var(--client-soft-band); border: 1px solid rgba(222,211,203,.5); border-radius: 4px; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 9px; grid-column: 2 / 5; line-height: 14px; padding-left: 5px; }
.weekly-report-stage-number { align-items: center; background: var(--client-row-fill); border: 1px solid rgba(222,211,203,.5); border-radius: 6px; color: #8a7d72; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 16px; grid-column: 1; grid-row: 2; height: 30px; justify-content: center; margin-top: 5px; width: 34px; }
.weekly-report-stage-icon { align-self: center; grid-column: 2; grid-row: 2; height: 34px; justify-self: center; object-fit: contain; width: 38px; }
.weekly-report-stage-rows { align-self: center; background: transparent; border-radius: 20px; grid-column: 3; grid-row: 2; padding: 4px 8px; position: relative; z-index: 1; }
.weekly-report-trade { align-items: center; display: grid; font-size: 8.25px; grid-template-columns: minmax(0,1fr) 60px 60px 120px; line-height: 13px; min-height: 13px; }
.weekly-report-trade span:not(:first-child) { overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.weekly-report-trade.is-na, .weekly-report-trade.is-complete { color: #43b978; }
.weekly-report-trade.is-na span:not(:last-child), .weekly-report-trade.is-complete span:not(:last-child) { text-decoration: line-through; text-decoration-thickness: .7px; }
.weekly-report-trade span.weekly-report-note { color: #171513; font-size: 8px; padding-left: 9px; text-align: left; }
.weekly-report-trade .weekly-report-note.has-note { color: #171513; font-weight: 650; }
.weekly-report-trade .weekly-report-note.is-completed { color: #43b978; font-weight: 750; letter-spacing: .035em; }
.weekly-report-trade .weekly-report-note strong { color: #43b978; font-size: 7.5px; font-weight: 750; }
.weekly-report-trade .weekly-report-note span { color: #000; font-weight: 650; letter-spacing: 0; }
.weekly-report-trade.is-na .weekly-report-note { color: #43b978; }
.weekly-stage-chart { align-self: stretch; display: flex; grid-column: 4; grid-row: 2; justify-content: center; padding: 3px 2px 3px 12px; position: relative; z-index: 1; }
.weekly-stage-chart-bottom { align-items: center; display: flex; gap: 17px; justify-content: center; width: 100%; }
.weekly-stage-donut { align-items: center; background: conic-gradient(#d8cec3 0 var(--weekly-progress),#f2efeb var(--weekly-progress) 360deg); border-radius: 50%; display: flex; flex: 0 0 auto; height: 64px; justify-content: center; position: relative; width: 64px; }
.weekly-stage-donut::after { background: #fff; border-radius: 50%; content: ""; height: 39px; position: absolute; width: 39px; }
.weekly-stage-donut span { font-size: 8px; font-weight: 650; position: relative; z-index: 1; }
.weekly-stage-chart-bottom > div:last-child { display: grid; text-align: center; }
.weekly-stage-chart-bottom strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 15px; font-weight: 400; }
.weekly-stage-chart-bottom span { color: #746b63; font-size: 7px; letter-spacing: .04em; text-transform: uppercase; }
.weekly-report-total { background: var(--client-row-fill); border: 1px solid rgba(222,211,203,.5); border-radius: 20px; bottom: 22px; display: flex; height: 49px; left: 286px; overflow: hidden; position: absolute; right: 24px; }
.weekly-report-total > div { align-items: center; display: flex; gap: 7px; justify-content: center; min-width: 94px; }
.weekly-report-total-complete { background: var(--client-heading-fill); border-right: 1px solid rgba(222,211,203,.5); }
.weekly-report-total strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 20px; font-weight: 400; }
.weekly-report-total span { color: #6e655d; font-size: 7px; letter-spacing: .04em; text-transform: uppercase; }

/* Oakburn fee proposal: A4 portrait, with live pricing on pages 4 and 6. */
.fee-proposal-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin-bottom: 14px; }
.fee-proposal-fields { align-items: end; display: flex; flex-wrap: wrap; gap: 10px; }
.fee-proposal-fields label { color: var(--ink-3); display: grid; font-size: .72rem; font-weight: 750; gap: 4px; letter-spacing: .035em; text-transform: uppercase; }
.fee-proposal-fields input { background: #fff; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--ink); height: 38px; min-width: 142px; padding: 0 10px; text-transform: none; }
.fee-proposal-notice { background: var(--gold-soft); border-left: 4px solid var(--gold-dark); font-size: .875rem; line-height: 1.5; margin: 0 0 16px; padding: 12px 15px; }
.fee-proposal-document { margin: 0 auto; max-width: 820px; overflow-x: auto; padding-bottom: 10px; }
.fee-proposal-page-wrap.is-screen-hidden { display: none; }
.fee-document-page { -webkit-print-color-adjust: exact; background: #fff; border: 1px solid #e6e0da; box-shadow: 0 15px 36px rgba(23,33,43,.11); color: #272320; font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; height: 1123px; margin: 0 auto; overflow: hidden; page: feeProposal; print-color-adjust: exact; position: relative; width: 794px; }
.fee-reference-page { border: 0; }
.fee-reference-image { display: block; height: 100%; object-fit: fill; width: 100%; }
.fee-partner-links { inset: 0; position: absolute; z-index: 3; }
.fee-partner-link { border-radius: 4px; display: block; position: absolute; }
.fee-partner-link:focus-visible, .fee-partner-link:hover { background: rgba(201,150,81,.08); box-shadow: 0 0 0 2px rgba(155,106,46,.42); outline: 0; }
.fee-page-footer { align-items: end; bottom: 17px; display: grid; grid-template-columns: 46px 1fr auto; left: 28px; position: absolute; right: 34px; }
.fee-page-footer img { height: 31px; object-fit: contain; object-position: left bottom; width: 43px; }
.fee-page-footer span { background: linear-gradient(90deg,#d8cec3 0%,#f3f0ed 78%,rgba(243,240,237,0) 100%); border-radius: 0 5px 5px 0; height: 11px; margin-bottom: 3px; }
.fee-page-footer small { color: #77716d; font-size: 7px; padding: 0 0 3px 8px; }
.fee-document-header { align-items: start; display: grid; gap: 18px; grid-template-columns: 104px 1fr; height: 128px; padding: 27px 43px 0; }
.fee-document-header > img { height: 66px; object-fit: contain; width: 104px; }
.fee-document-header > div { text-align: right; }
.fee-document-address { background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 78%,rgba(243,240,237,.74) 100%); border-radius: 12px 3px 12px 12px; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 17px; height: 35px; letter-spacing: .025em; line-height: 35px; overflow: hidden; padding: 0 16px; text-overflow: ellipsis; white-space: nowrap; }
.fee-document-header h1 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 22px; font-weight: 400; letter-spacing: .11em; margin: 6px 0 0; text-transform: uppercase; }
.fee-document-header p { color: #756c66; font-size: 8px; letter-spacing: .18em; margin: 1px 1px 0 0; text-transform: uppercase; }
.fee-cover-page { background: linear-gradient(145deg,#fff 0%,#fff 76%,#f7f4f1 100%); }
.fee-cover-brand { align-items: center; display: grid; gap: 24px; grid-template-columns: 125px 1fr; left: 48px; position: absolute; right: 48px; top: 35px; }
.fee-cover-brand img { height: 80px; object-fit: contain; width: 125px; }
.fee-cover-address-bar { background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 75%,rgba(243,240,237,.7) 100%); border-radius: 14px 3px 14px 14px; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 18px; line-height: 1.35; min-height: 48px; padding: 11px 18px; text-align: right; text-transform: uppercase; }
.fee-cover-address-bar span::after { content: " · "; }
.fee-cover-photo-offset { background: #d8cec3; border-radius: 26px 8px 26px 26px; height: 432px; left: 67px; position: absolute; top: 150px; width: 682px; }
.fee-cover-photo { border-radius: 26px 8px 26px 26px; height: 432px; left: 50px; object-fit: cover; position: absolute; top: 133px; width: 682px; }
.fee-cover-card { background: rgba(255,255,255,.96); border: 1px solid #e1dbd4; border-radius: 26px 7px 26px 26px; box-shadow: 12px 12px 0 rgba(216,206,195,.82); left: 89px; min-height: 288px; padding: 31px 42px 27px; position: absolute; right: 89px; text-align: center; top: 501px; }
.fee-cover-card > span { color: #746b63; font-size: 8px; letter-spacing: .17em; text-transform: uppercase; }
.fee-cover-card h1 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 39px; font-weight: 400; letter-spacing: .17em; margin: 14px 0 13px; text-transform: uppercase; }
.fee-cover-card i { background: linear-gradient(90deg,rgba(216,206,195,0) 0%,#d8cec3 22%,#d8cec3 78%,rgba(216,206,195,0) 100%); display: block; height: 2px; margin: 0 auto 20px; width: 82%; }
.fee-cover-card p { color: #786f68; font-size: 8px; letter-spacing: .17em; margin: 0 0 8px; text-transform: uppercase; }
.fee-cover-card > strong { display: block; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 18px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }
.fee-cover-card address { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10px; font-style: normal; letter-spacing: .13em; line-height: 1.5; margin-top: 9px; text-transform: uppercase; }
.fee-cover-meta { display: flex; gap: 15px; justify-content: center; left: 70px; position: absolute; right: 70px; top: 835px; }
.fee-cover-meta > span { background: #f3f0ed; border-radius: 12px 4px 12px 12px; color: #756d66; display: grid; font-size: 7px; gap: 4px; letter-spacing: .12em; min-width: 190px; padding: 9px 17px; text-align: center; text-transform: uppercase; }
.fee-cover-meta strong { color: #2f2b28; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10px; font-weight: 400; letter-spacing: .04em; }
.fee-cover-footer { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#f3f0ed 72%,rgba(243,240,237,0) 100%); bottom: 32px; display: flex; height: 58px; justify-content: space-between; left: 0; padding: 0 48px; position: absolute; right: 0; }
.fee-cover-footer span { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11px; letter-spacing: .06em; }
.fee-cover-footer small { color: #716963; font-size: 8px; }
.fee-timeline-intro { background: linear-gradient(100deg,#f3f0ed 0%,#f3f0ed 74%,rgba(243,240,237,0) 100%); border-radius: 0 20px 20px 0; margin: 10px 95px 25px 0; padding: 23px 58px 21px; }
.fee-timeline-intro > span { color: #7a7068; font-size: 8px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.fee-timeline-intro h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 18px; font-weight: 400; letter-spacing: .02em; margin: 8px 0; }
.fee-timeline-intro p { font-size: 10px; line-height: 1.55; margin: 0; max-width: 590px; }
.fee-timeline-cards { display: grid; gap: 16px; margin: 0 58px; }
.fee-timeline-cards article { align-items: center; background: #fff; border: 1px solid #e3ddd7; border-radius: 19px 5px 19px 19px; box-shadow: 8px 8px 0 #f3f0ed; display: grid; gap: 22px; grid-template-columns: 66px 1fr; min-height: 142px; padding: 20px 27px 20px 18px; }
.fee-timeline-cards article:nth-child(2) { margin-left: 30px; margin-right: -30px; }
.fee-timeline-cards article > b { align-items: center; border: 2px solid #d8cec3; border-radius: 15px 4px 15px 15px; color: #b9aa9a; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 24px; font-weight: 400; height: 62px; justify-content: center; width: 62px; }
.fee-timeline-cards h3 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 15px; font-weight: 400; letter-spacing: .03em; margin: 0 0 8px; text-transform: uppercase; }
.fee-timeline-cards p { font-size: 10px; line-height: 1.55; margin: 0; }
.fee-timeline-alignment { color: #5e5650; font-size: 9px; line-height: 1.5; margin: 27px 76px 0; text-align: center; }
.fee-timeline-summary { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#f3f0ed 74%,rgba(243,240,237,0) 100%); border-radius: 20px 5px 20px 20px; bottom: 70px; display: grid; grid-template-columns: 1fr auto auto; left: 58px; min-height: 105px; padding: 18px 35px; position: absolute; right: 58px; }
.fee-timeline-summary > div { display: grid; gap: 6px; }
.fee-timeline-summary span { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
.fee-timeline-summary small { color: #6f665f; font-size: 7.5px; max-width: 370px; }
.fee-timeline-summary > strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 31px; font-weight: 400; letter-spacing: .14em; margin-left: 25px; }
.fee-timeline-summary > b { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12px; font-weight: 400; letter-spacing: .14em; margin-left: 11px; text-transform: uppercase; }
.fee-cost-intro { align-items: center; background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 76%,rgba(243,240,237,0) 100%); border-radius: 0 16px 16px 0; display: grid; gap: 24px; grid-template-columns: 155px 1fr; margin: 4px 60px 18px 0; min-height: 63px; padding: 11px 34px 11px 48px; }
.fee-cost-intro > div { display: grid; gap: 3px; }
.fee-cost-intro span { color: #776e67; font-size: 7px; letter-spacing: .12em; text-transform: uppercase; }
.fee-cost-intro strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; font-weight: 400; }
.fee-cost-intro p { border-left: 1px solid #cfc5ba; font-size: 8.5px; line-height: 1.45; margin: 0; padding-left: 24px; }
.fee-cost-stages { display: grid; gap: 14px 16px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0 48px; }
.fee-cost-stage { background: #fff; border: 1px solid #e1dbd5; border-radius: 16px 5px 16px 16px; box-shadow: 7px 7px 0 #f3f0ed; display: grid; grid-template-rows: 54px 1fr 32px; min-height: 219px; overflow: hidden; }
.fee-cost-stage > header { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#e4dbd1 76%,rgba(228,219,209,.45) 100%); display: flex; justify-content: space-between; padding: 7px 14px; }
.fee-cost-stage > header > div { align-items: center; display: flex; gap: 10px; }
.fee-cost-stage > header span { align-items: center; background: rgba(255,255,255,.72); border-radius: 9px 3px 9px 9px; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12px; height: 31px; justify-content: center; width: 31px; }
.fee-cost-stage > header strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 8.5px; font-weight: 400; letter-spacing: .035em; max-width: 215px; text-transform: uppercase; }
.fee-cost-stage > header img { height: 38px; object-fit: contain; opacity: .82; width: 45px; }
.fee-cost-trades { align-content: start; display: grid; gap: 1px; padding: 7px 14px 5px; }
.fee-cost-trades > div { color: #aaa19a; display: grid; font-size: 8px; grid-template-columns: 1fr auto; line-height: 1.38; }
.fee-cost-trades > div.is-priced { color: #302b28; }
.fee-cost-trades strong { font-size: 8px; font-weight: 400; padding-left: 10px; text-align: right; }
.fee-cost-stage > footer { align-items: center; background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 78%,rgba(243,240,237,.5) 100%); display: flex; font-size: 8px; justify-content: space-between; padding: 0 14px; text-transform: uppercase; }
.fee-cost-stage > footer strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10px; font-weight: 400; }
.fee-cost-grand { align-items: stretch; background: #f3f0ed; border-radius: 18px 5px 18px 18px; bottom: 66px; display: grid; grid-template-columns: 1.25fr 1fr 1fr; left: 48px; min-height: 72px; overflow: hidden; position: absolute; right: 48px; }
.fee-cost-grand > div { align-content: center; display: grid; gap: 4px; padding: 12px 20px; text-align: right; }
.fee-cost-grand > div + div { border-left: 1px solid #d8cec3; }
.fee-cost-grand span { color: #756c65; font-size: 7px; letter-spacing: .11em; text-transform: uppercase; }
.fee-cost-grand strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; font-weight: 400; }
.fee-cost-grand > div:first-child { background: #d8cec3; }
.fee-cost-grand > div:first-child strong { font-size: 18px; }
.fee-billing-intro { background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 80%,rgba(243,240,237,0) 100%); border-radius: 0 16px 16px 0; font-size: 9px; line-height: 1.55; margin: 6px 78px 18px 0; padding: 14px 48px; }
.fee-billing-project { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; margin: 0 48px 20px; }
.fee-billing-project > div { background: #fff; border: 1px solid #e1dbd5; border-radius: 15px 4px 15px 15px; box-shadow: 6px 6px 0 #f3f0ed; display: grid; gap: 4px; min-height: 78px; padding: 13px 18px; }
.fee-billing-project span { color: #7a716a; font-size: 7px; letter-spacing: .13em; text-transform: uppercase; }
.fee-billing-project strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12px; font-weight: 400; }
.fee-billing-project small { color: #625a54; font-size: 8px; }
.fee-billing-columns { color: #786f68; display: grid; font-size: 7px; grid-template-columns: 1fr 105px 135px; letter-spacing: .12em; margin: 0 63px 5px 110px; text-transform: uppercase; }
.fee-billing-columns span:nth-child(n+2) { text-align: right; }
.fee-billing-rows { margin: 0 48px; }
.fee-billing-rows > div { align-items: center; border-bottom: 1px solid #e0dad4; display: grid; font-size: 11px; grid-template-columns: 47px 1fr 105px 135px; min-height: 55px; }
.fee-billing-rows i { align-items: center; border: 1.5px solid #d8cec3; border-radius: 10px 3px 10px 10px; color: #ac9c8d; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12px; font-style: normal; height: 31px; justify-content: center; width: 31px; }
.fee-billing-rows span { font-size: 10px; }
.fee-billing-rows b { color: #9c9188; font-weight: 400; text-align: right; }
.fee-billing-rows > div > strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11px; font-weight: 400; text-align: right; }
.fee-billing-summary { align-items: center; display: grid; gap: 30px; grid-template-columns: 1fr 1.08fr; margin: 28px 48px 0; }
.fee-signature { align-items: end; display: grid; grid-template-columns: 1fr; justify-items: center; }
.fee-signature img { height: 67px; object-fit: contain; width: 270px; }
.fee-signature strong { font-size: 11px; font-weight: 400; }
.fee-signature span { color: #716862; font-size: 8px; }
.fee-billing-totals { background: #f3f0ed; border-radius: 17px 5px 17px 17px; overflow: hidden; }
.fee-billing-totals > div { display: grid; font-size: 9px; grid-template-columns: 1fr 125px; line-height: 32px; padding: 0 18px; text-transform: uppercase; }
.fee-billing-totals > div + div { border-top: 1px solid #d8cec3; }
.fee-billing-totals strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11px; font-weight: 400; letter-spacing: .04em; text-align: right; }
.fee-billing-totals > div:first-child { background: #d8cec3; line-height: 42px; }
.fee-billing-totals > div:first-child strong { font-size: 16px; }
.fee-validity { bottom: 73px; color: #706760; font-size: 7.5px; left: 49px; margin: 0; position: absolute; }

/* Fee proposal v43: editorial A4 pages matched to the retained Oakburn pages. */
.fee-document-page { isolation: isolate; }
.fee-page-watermark { object-fit: contain; pointer-events: none; position: absolute; z-index: 0; }
.fee-page-footer { align-items: end; bottom: 16px; display: grid; grid-template-columns: 47px 1fr auto; left: 32px; position: absolute; right: 40px; z-index: 5; }
.fee-page-footer img { height: 31px; object-fit: contain; object-position: left bottom; width: 44px; }
.fee-page-footer span { background: linear-gradient(90deg,#d8cec3 0%,#f3f0ed 80%,rgba(243,240,237,0) 100%); border-radius: 0 7px 7px 0; height: 10px; margin-bottom: 3px; }
.fee-page-footer small { color: #77716d; font-size: 7px; padding: 0 0 3px 8px; }
.fee-document-header { background: linear-gradient(90deg,#f5f2ef 0%,#f3f0ed 72%,rgba(243,240,237,.78) 100%); display: block; height: 146px; padding: 26px 48px 18px; position: relative; text-align: center; z-index: 2; }
.fee-document-address { background: none; border-radius: 0; color: #746c66; font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; font-size: 7px; height: auto; left: auto; letter-spacing: .14em; line-height: 1; max-width: 250px; overflow: hidden; padding: 0; position: absolute; right: 47px; text-overflow: ellipsis; text-transform: uppercase; top: 17px; white-space: nowrap; }
.fee-document-header h1 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 31px; font-weight: 400; letter-spacing: .22em; margin: 10px 0 11px; text-shadow: 1px 2px 2px rgba(45,40,36,.15); text-transform: uppercase; }
.fee-document-header i { background: #4d4742; display: block; height: 1px; margin: 0 auto 10px; width: 72%; }
.fee-document-header p { color: #5f5751; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 9px; letter-spacing: .08em; margin: 0; text-transform: uppercase; }

.fee-cover-page { background: #fff; }
.fee-cover-frame { border: 1.5px solid #d8cec3; bottom: 55px; left: 42px; pointer-events: none; position: absolute; right: 42px; top: 39px; z-index: 0; }
.fee-cover-photo-offset { background: #d8cec3; border-radius: 24px 7px 24px 24px; height: 458px; left: 82px; position: absolute; top: 84px; width: 630px; z-index: 0; }
.fee-cover-photo { border-radius: 24px 7px 24px 24px; height: 458px; left: 64px; object-fit: cover; object-position: center 48%; position: absolute; top: 66px; width: 630px; z-index: 1; }
.fee-cover-logo { background: linear-gradient(180deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.94) 42%,#fff 100%); border-radius: 18px 5px 18px 18px; filter: drop-shadow(0 7px 7px rgba(35,31,28,.12)); height: 176px; left: 232px; object-fit: contain; padding: 4px 17px 8px; position: absolute; top: 449px; width: 330px; z-index: 3; }
.fee-cover-copy { left: 82px; position: absolute; right: 82px; text-align: center; top: 642px; z-index: 2; }
.fee-cover-copy h1 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 39px; font-weight: 400; letter-spacing: .24em; margin: 0 0 15px; text-shadow: 1px 2px 2px rgba(45,40,36,.14); text-transform: uppercase; }
.fee-cover-copy i { background: linear-gradient(90deg,rgba(216,206,195,0) 0%,#d8cec3 18%,#d8cec3 82%,rgba(216,206,195,0) 100%); display: block; height: 2px; margin: 0 auto 18px; width: 86%; }
.fee-cover-copy p { color: #6e665f; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10px; letter-spacing: .08em; margin: 0 0 12px; text-transform: uppercase; }
.fee-cover-copy > strong { display: block; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 20px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; }
.fee-cover-copy address { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11px; font-style: normal; letter-spacing: .17em; line-height: 1.55; margin-top: 14px; text-transform: uppercase; }
.fee-cover-meta { align-items: stretch; display: grid; gap: 0; grid-template-columns: 1fr 1fr 1.4fr; justify-content: initial; left: 71px; overflow: hidden; position: absolute; right: 71px; top: 908px; z-index: 2; }
.fee-cover-meta > span { align-content: center; background: #f3f0ed; border-radius: 0; color: #746c66; display: grid; font-size: 7px; gap: 5px; letter-spacing: .13em; min-height: 57px; min-width: 0; padding: 9px 15px; text-align: center; text-transform: uppercase; }
.fee-cover-meta > span:first-child { border-radius: 14px 0 0 14px; }
.fee-cover-meta > span:last-child { background: linear-gradient(90deg,#d8cec3 0%,#ede7e1 80%,rgba(237,231,225,.45) 100%); border-radius: 0 14px 14px 0; }
.fee-cover-meta > span + span { border-left: 1px solid #d8cec3; }
.fee-cover-meta strong { color: #2f2b28; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10px; font-weight: 400; letter-spacing: .04em; }
.fee-cover-meta .fee-cover-tagline { color: #342f2b; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 9px; letter-spacing: .055em; line-height: 1.45; }
.fee-cover-contact { bottom: 65px; color: #77706a; font-size: 7px; left: 60px; letter-spacing: .04em; margin: 0; position: absolute; right: 60px; text-align: center; }

.fee-timeline-watermark { bottom: 36px; height: 455px; opacity: .78; right: -72px; width: 425px; }
.fee-timeline-intro { background: linear-gradient(100deg,#f3f0ed 0%,#f3f0ed 75%,rgba(243,240,237,0) 100%); border-radius: 0 18px 18px 0; margin: 19px 88px 23px 0; min-height: 108px; padding: 19px 54px 18px; position: relative; z-index: 1; }
.fee-timeline-intro > span { color: #766e67; font-size: 8px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.fee-timeline-intro h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 20px; font-weight: 400; letter-spacing: .025em; margin: 8px 0; }
.fee-timeline-intro p { font-size: 11px; line-height: 1.55; margin: 0; max-width: 590px; }
.fee-timeline-cards { display: grid; gap: 17px; margin: 0 62px; position: relative; z-index: 2; }
.fee-timeline-cards::before { background: linear-gradient(180deg,rgba(216,206,195,0),#d8cec3 14%,#d8cec3 86%,rgba(216,206,195,0)); bottom: 45px; content: ""; left: 45px; position: absolute; top: 45px; width: 1px; z-index: -1; }
.fee-timeline-cards article { align-items: center; background: linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 77%,rgba(247,244,241,.88) 100%); border: 1px solid #dfd7d0; border-radius: 21px 5px 21px 21px; box-shadow: 9px 9px 0 rgba(243,240,237,.92); display: grid; gap: 25px; grid-template-columns: 72px 1fr; min-height: 148px; padding: 20px 31px 20px 17px; }
.fee-timeline-cards article:first-child { margin-right: 18px; }
.fee-timeline-cards article:nth-child(2) { margin-left: 30px; margin-right: 0; }
.fee-timeline-cards article:last-child { margin-right: 24px; }
.fee-timeline-cards article > b { align-items: center; background: #d8cec3; border: 0; border-radius: 50%; color: #fff; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 23px; font-weight: 400; height: 68px; justify-content: center; width: 68px; }
.fee-timeline-cards h3 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 15px; font-weight: 400; letter-spacing: .055em; margin: 0 0 9px; text-transform: uppercase; }
.fee-timeline-cards p { font-size: 11px; line-height: 1.55; margin: 0; }
.fee-timeline-alignment { color: #5c554f; font-size: 10px; line-height: 1.5; margin: 23px 78px 0; position: relative; text-align: center; z-index: 2; }
.fee-timeline-summary { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#e7dfd7 70%,rgba(243,240,237,.72) 100%); border-radius: 20px 5px 20px 20px; bottom: 68px; display: grid; grid-template-columns: 1fr auto auto; left: 53px; min-height: 125px; padding: 21px 35px; position: absolute; right: 53px; z-index: 3; }
.fee-timeline-summary > div { display: grid; gap: 7px; }
.fee-timeline-summary span { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 14px; letter-spacing: .055em; text-transform: uppercase; }
.fee-timeline-summary small { color: #625b55; font-size: 8.5px; line-height: 1.45; max-width: 360px; }
.fee-timeline-summary > strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 37px; font-weight: 400; letter-spacing: .14em; margin-left: 24px; }
.fee-timeline-summary > b { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; font-weight: 400; letter-spacing: .14em; margin-left: 9px; text-transform: uppercase; }

.fee-cost-watermark { height: 485px; opacity: .032; right: -125px; top: 332px; width: 485px; }
.fee-cost-intro { align-items: center; background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 78%,rgba(243,240,237,0) 100%); border-radius: 0 16px 16px 0; display: grid; gap: 22px; grid-template-columns: 155px 1fr; margin: 15px 56px 16px 0; min-height: 68px; padding: 12px 33px 12px 45px; position: relative; z-index: 1; }
.fee-cost-intro > div { display: grid; gap: 4px; }
.fee-cost-intro span { color: #776e67; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.fee-cost-intro strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 14px; font-weight: 400; }
.fee-cost-intro p { border-left: 1px solid #cfc5ba; font-size: 10px; line-height: 1.45; margin: 0; padding-left: 22px; }
.fee-cost-stages { display: grid; gap: 13px 15px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0 42px; position: relative; z-index: 2; }
.fee-cost-stage { background: rgba(255,255,255,.93); border: 1px solid #dfd8d1; border-radius: 17px 5px 17px 17px; box-shadow: 7px 7px 0 rgba(243,240,237,.9); display: grid; grid-template-rows: 54px 1fr 35px; min-height: 220px; overflow: hidden; }
.fee-cost-stage > header { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#e7dfd7 76%,rgba(243,240,237,.58) 100%); display: flex; justify-content: space-between; padding: 7px 14px; }
.fee-cost-stage > header > div { align-items: center; display: flex; gap: 11px; }
.fee-cost-stage > header span { align-items: center; background: rgba(255,255,255,.82); border-radius: 10px 3px 10px 10px; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; height: 33px; justify-content: center; width: 33px; }
.fee-cost-stage > header strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 9.5px; font-weight: 400; letter-spacing: .04em; line-height: 1.25; max-width: 225px; text-transform: uppercase; }
.fee-cost-stage > header img { height: 40px; object-fit: contain; opacity: .84; width: 47px; }
.fee-cost-trades { align-content: start; display: grid; gap: 1px; padding: 6px 14px 3px; }
.fee-cost-trades > div { color: #a59c95; display: grid; font-size: 9.5px; grid-template-columns: 1fr auto; line-height: 1.37; }
.fee-cost-trades > div.is-priced { color: #302b28; font-weight: 600; }
.fee-cost-trades strong { font-size: 9.5px; font-weight: 400; padding-left: 10px; text-align: right; }
.fee-cost-stage > footer { align-items: center; background: linear-gradient(90deg,#f3f0ed 0%,#eee8e2 78%,rgba(243,240,237,.46) 100%); display: flex; font-size: 9px; justify-content: space-between; padding: 0 14px; text-transform: uppercase; }
.fee-cost-stage > footer strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11px; font-weight: 400; }
.fee-cost-grand { align-items: stretch; background: #f3f0ed; border-radius: 18px 5px 18px 18px; bottom: 66px; display: grid; grid-template-columns: 1.3fr 1fr 1fr; left: 42px; min-height: 82px; overflow: hidden; position: absolute; right: 42px; z-index: 3; }
.fee-cost-grand > div { align-content: center; display: grid; gap: 5px; padding: 12px 19px; text-align: right; }
.fee-cost-grand > div + div { border-left: 1px solid #d8cec3; }
.fee-cost-grand span { color: #706760; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.fee-cost-grand strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 14px; font-weight: 400; }
.fee-cost-grand > div:first-child { background: linear-gradient(90deg,#d8cec3 0%,#e5dcd3 100%); }
.fee-cost-grand > div:first-child strong { font-size: 20px; font-weight: 600; }

.fee-billing-watermark { bottom: 33px; height: 430px; left: -92px; opacity: .03; width: 430px; }
.fee-billing-intro { background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 81%,rgba(243,240,237,0) 100%); border-radius: 0 17px 17px 0; font-size: 10.5px; line-height: 1.55; margin: 17px 73px 19px 0; min-height: 60px; padding: 14px 48px; position: relative; z-index: 1; }
.fee-billing-project { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; margin: 0 48px 24px; position: relative; z-index: 2; }
.fee-billing-project > div { background: linear-gradient(110deg,#fff 0%,#fff 66%,#f6f2ee 100%); border: 1px solid #dfd8d1; border-radius: 16px 4px 16px 16px; box-shadow: 7px 7px 0 rgba(243,240,237,.95); display: grid; gap: 5px; min-height: 88px; padding: 14px 19px; }
.fee-billing-project span { color: #776f68; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.fee-billing-project strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 14px; font-weight: 400; }
.fee-billing-project small { color: #5f5751; font-size: 9px; }
.fee-billing-columns { color: #6f6760; display: grid; font-size: 8px; grid-template-columns: 1fr 92px 150px; letter-spacing: .13em; margin: 0 64px 7px 116px; position: relative; text-transform: uppercase; z-index: 2; }
.fee-billing-columns span:nth-child(n+2) { text-align: right; }
.fee-billing-rows { display: grid; gap: 7px; margin: 0 48px; position: relative; z-index: 2; }
.fee-billing-rows > div { align-items: center; background: linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 47%,rgba(243,240,237,.84) 72%,rgba(216,206,195,.82) 100%); border: 1px solid #e0d9d3; border-radius: 17px 5px 17px 17px; display: grid; font-size: 12px; grid-template-columns: 50px 1fr 92px 150px; min-height: 60px; padding: 0 17px 0 12px; }
.fee-billing-rows > div:nth-child(even) { background: linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.95) 42%,rgba(240,235,230,.88) 70%,rgba(207,194,181,.82) 100%); }
.fee-billing-rows i { align-items: center; background: rgba(255,255,255,.82); border: 1.5px solid #cdbfb1; border-radius: 11px 3px 11px 11px; color: #9c8b7b; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; font-style: normal; height: 34px; justify-content: center; width: 34px; }
.fee-billing-rows span { font-size: 11.5px; font-weight: 600; letter-spacing: .015em; }
.fee-billing-rows b { color: #786e66; font-size: 11px; font-weight: 400; text-align: right; }
.fee-billing-rows > div > strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; font-weight: 400; letter-spacing: .03em; text-align: right; }
.fee-billing-summary { align-items: center; display: grid; gap: 31px; grid-template-columns: 1fr 1.13fr; margin: 29px 48px 0; min-height: 142px; position: relative; z-index: 2; }
.fee-signature { align-items: end; display: grid; grid-template-columns: 1fr; justify-items: center; }
.fee-signature img { height: 78px; object-fit: contain; width: 280px; }
.fee-signature strong { font-size: 12px; font-weight: 400; }
.fee-signature span { color: #716862; font-size: 9px; }
.fee-billing-totals { background: rgba(243,240,237,.94); border: 1px solid #ded6cf; border-radius: 18px 5px 18px 18px; overflow: hidden; }
.fee-billing-totals > div { display: grid; font-size: 10px; grid-template-columns: 1fr 135px; line-height: 35px; padding: 0 18px; text-transform: uppercase; }
.fee-billing-totals > div + div { border-top: 1px solid #d8cec3; }
.fee-billing-totals strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12px; font-weight: 400; letter-spacing: .04em; text-align: right; }
.fee-billing-totals > div:first-child { background: linear-gradient(90deg,#d8cec3 0%,#e5dcd3 100%); line-height: 47px; }
.fee-billing-totals > div:first-child strong { font-size: 18px; }
.fee-validity { bottom: 67px; color: #706760; font-size: 8.5px; left: 49px; margin: 0; position: absolute; z-index: 3; }

/* Fee proposal v44: one consistent, legible editorial system across all ten pages. */
.fee-cover-copy p { font-size: 11px; }
.fee-cover-copy > strong { font-size: 22px; }
.fee-cover-copy address { font-size: 12.5px; line-height: 1.6; }
.fee-cover-meta { grid-template-columns: 1fr 1fr; left: 150px; right: 150px; top: 898px; }
.fee-cover-meta > span { font-size: 8px; min-height: 61px; padding: 10px 18px; }
.fee-cover-meta strong { font-size: 11.5px; }
.fee-cover-meta > span:last-child { background: linear-gradient(90deg,#e4d9cf 0%,#f3f0ed 100%); }
.fee-cover-slogan { align-items: center; color: #3c3733; display: grid; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10.5px; gap: 15px; grid-template-columns: 1fr auto 1fr; left: 116px; letter-spacing: .12em; position: absolute; right: 116px; text-align: center; text-transform: uppercase; top: 983px; z-index: 2; }
.fee-cover-slogan i { background: linear-gradient(90deg,rgba(216,206,195,0),#cfc1b4); height: 1px; }
.fee-cover-slogan i:last-child { background: linear-gradient(90deg,#cfc1b4,rgba(216,206,195,0)); }
.fee-cover-contact { bottom: 67px; font-size: 8px; }

.fee-process-watermark { bottom: 30px; height: 470px; opacity: .035; right: -105px; width: 470px; }
.fee-process-intro, .fee-breakdown-intro { background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 78%,rgba(243,240,237,0) 100%); border-radius: 0 17px 17px 0; margin: 21px 82px 22px 0; min-height: 86px; padding: 15px 49px; position: relative; z-index: 1; }
.fee-process-intro strong, .fee-breakdown-intro strong { display: block; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 17px; font-weight: 400; letter-spacing: .025em; margin-bottom: 7px; }
.fee-process-intro p, .fee-breakdown-intro p { font-size: 11.5px; line-height: 1.55; margin: 0; }
.fee-process-grid, .fee-breakdown-grid { display: grid; gap: 18px 19px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0 49px; position: relative; z-index: 2; }
.fee-process-step, .fee-breakdown-grid > section { align-items: start; background: rgba(255,255,255,.94); border: 1px solid #dfd8d1; border-radius: 18px 5px 18px 18px; box-shadow: 7px 7px 0 rgba(243,240,237,.92); display: grid; gap: 15px; grid-template-columns: 49px 1fr; min-height: 199px; padding: 18px 18px 16px 14px; }
.fee-process-step > b, .fee-breakdown-grid > section > b { align-items: center; background: linear-gradient(145deg,#c9b9aa 0%,#dfd3c8 66%,#f3f0ed 100%); border-radius: 13px 4px 13px 13px; color: #fff; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 16px; font-weight: 400; height: 46px; justify-content: center; width: 46px; }
.fee-process-step h2, .fee-breakdown-grid h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 15px; font-weight: 400; letter-spacing: .05em; line-height: 1.3; margin: 2px 0 9px; text-transform: uppercase; }
.fee-process-step p, .fee-breakdown-grid p { font-size: 11.5px; line-height: 1.58; margin: 0; }

.fee-timeline-intro p, .fee-timeline-cards p { font-size: 11.5px; }
.fee-timeline-summary small { font-size: 9.5px; }
.fee-timeline-summary.has-phase-timelines { gap: 24px; grid-template-columns: minmax(0,1fr) minmax(270px,1fr); padding: 18px 28px; }
.fee-phase-timeline-line { align-items: baseline; display: grid; gap: 12px; grid-template-columns: minmax(0,1fr) auto; padding: 4px 0; }
.fee-phase-timeline-line + .fee-phase-timeline-line { border-top: 1px solid rgba(95,85,76,.18); padding-top: 9px; }
.fee-phase-timeline-line > span { font-size: 12px; letter-spacing: .025em; overflow-wrap: anywhere; }
.fee-phase-timeline-line > strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 23px; font-weight: 400; text-align: right; }
.fee-phase-timeline-line em { font-size: 11px; font-style: normal; }
.fee-phase-timeline-line > strong.is-unset { font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; font-size: 12px; }

.fee-cost-intro { margin-top: 21px; }
.fee-cost-intro p { font-size: 10.8px; }
.fee-cost-stages { gap: 15px 16px; }
.fee-cost-stage { min-height: 224px; }
.fee-cost-stage > header strong { font-size: 10px; }
.fee-cost-trades { gap: .5px; padding: 6px 14px 3px; }
.fee-cost-trades > div, .fee-cost-trades strong { font-size: 10.2px; line-height: 1.3; }
.fee-cost-grand span { font-size: 8.5px; }
.fee-cost-grand strong { font-size: 15px; }

.fee-breakdown-watermark { bottom: 35px; height: 460px; left: -100px; opacity: .035; width: 460px; }
.fee-breakdown-grid > section { min-height: 195px; }
.fee-breakdown-note { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#e5dcd3 72%,rgba(243,240,237,.7) 100%); border-radius: 17px 5px 17px 17px; bottom: 67px; display: grid; gap: 18px; grid-template-columns: 95px 1fr; left: 49px; min-height: 72px; padding: 12px 20px; position: absolute; right: 49px; z-index: 3; }
.fee-breakdown-note strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; }
.fee-breakdown-note span { border-left: 1px solid rgba(89,79,71,.25); font-size: 10px; line-height: 1.5; padding-left: 18px; }

.fee-billing-intro { font-size: 11px; margin-top: 22px; }
.fee-billing-project { margin-bottom: 22px; }
.fee-billing-project span, .fee-billing-columns { font-size: 8.5px; }
.fee-billing-project strong { font-size: 15px; }
.fee-billing-project small { font-size: 9.5px; }
.fee-billing-rows { gap: 8px; }
.fee-billing-rows > div { min-height: 58px; }
.fee-billing-rows span { font-size: 12px; }
.fee-billing-rows b { font-size: 11.5px; }
.fee-billing-rows > div > strong { font-size: 13.5px; }
.fee-billing-rows > div > span small { color: #786e66; display: block; font-size: 8.5px; font-weight: 400; letter-spacing: 0; line-height: 1.35; margin-top: 4px; }
.fee-billing-page.is-service .fee-billing-rows { gap: 18px; }
.fee-billing-page.is-service .fee-billing-rows > div { grid-template-columns: 60px 1fr 92px 150px; min-height: 180px; padding: 20px 17px 20px 12px; }
.fee-billing-page.is-service .fee-billing-rows i { font-size: 18px; height: 44px; width: 44px; }
.fee-billing-page.is-service .fee-billing-rows > div > span { font-size: 16px; }
.fee-billing-page.is-service .fee-billing-rows > div > span small { font-size: 10px; margin-top: 8px; }
.fee-billing-page.is-service .fee-billing-rows b { font-size: 18px; }
.fee-billing-page.is-service .fee-billing-rows > div > strong { font-size: 18px; }
.fee-billing-summary { display: block; margin: 18px 48px 0; min-height: 0; }
.fee-billing-totals { display: grid; grid-template-columns: 1.28fr 1fr 1fr; }
.fee-billing-totals > div { font-size: 10px; grid-template-columns: 1fr; line-height: 1.2; min-height: 67px; padding: 13px 18px 10px; text-align: right; }
.fee-billing-totals > div + div { border-left: 1px solid #d8cec3; border-top: 0; }
.fee-billing-totals strong { font-size: 13px; margin-top: 6px; }
.fee-billing-totals > div:first-child { align-content: center; line-height: 1.2; }
.fee-billing-totals > div:first-child strong { font-size: 19px; font-weight: 600; }
.fee-billing-summary .fee-signature { background: transparent; justify-items: end; margin: 6px 10px 0 0; }
.fee-billing-summary .fee-signature img { height: 52px; object-position: right center; width: 210px; }
.fee-billing-summary .fee-signature strong { font-size: 10.5px; padding-right: 49px; }
.fee-billing-summary .fee-signature span { font-size: 8.5px; padding-right: 70px; }
.fee-validity { bottom: 61px; font-size: 8.5px; }

.fee-next-page { background: #fff; }
.fee-next-hero { height: 288px; margin: 18px 50px 0; overflow: hidden; position: relative; z-index: 2; }
.fee-next-hero::after { border: 1px solid rgba(216,206,195,.9); border-radius: 21px 6px 21px 21px; content: ""; inset: 0; position: absolute; }
.fee-next-hero img { height: 100%; left: 0; object-fit: cover; object-position: center 63%; position: absolute; top: 0; width: 100%; }
.fee-next-intro { background: linear-gradient(90deg,#d8cec3 0%,#e6ddd4 72%,rgba(243,240,237,.65) 100%); border-radius: 18px 5px 18px 18px; margin: -27px 77px 22px 77px; min-height: 93px; padding: 17px 27px; position: relative; z-index: 3; }
.fee-next-intro strong { display: block; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 18px; font-weight: 400; margin-bottom: 7px; }
.fee-next-intro p { font-size: 11.5px; line-height: 1.5; margin: 0; }
.fee-next-steps { display: grid; gap: 16px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0 52px; position: relative; z-index: 2; }
.fee-next-steps section { align-items: start; background: #fff; border: 1px solid #dfd8d1; border-radius: 17px 5px 17px 17px; box-shadow: 7px 7px 0 #f3f0ed; display: grid; gap: 13px; grid-template-columns: 43px 1fr; min-height: 137px; padding: 15px 16px 13px 13px; }
.fee-next-steps b { align-items: center; background: linear-gradient(145deg,#c9b9aa,#eee8e2); border-radius: 12px 4px 12px 12px; color: #fff; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 14px; font-weight: 400; height: 40px; justify-content: center; width: 40px; }
.fee-next-steps h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 14px; font-weight: 400; letter-spacing: .05em; margin: 1px 0 7px; text-transform: uppercase; }
.fee-next-steps p { font-size: 10.8px; line-height: 1.5; margin: 0; }
.fee-next-closing { bottom: 75px; color: #514a45; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12px; left: 80px; letter-spacing: .04em; position: absolute; right: 80px; text-align: center; }

.fee-acceptance-watermark { bottom: 45px; height: 470px; opacity: .032; right: -100px; width: 470px; }
.fee-acceptance-intro { background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 80%,rgba(243,240,237,0) 100%); border-radius: 0 17px 17px 0; margin: 21px 82px 21px 0; min-height: 89px; padding: 16px 49px; position: relative; z-index: 1; }
.fee-acceptance-intro strong { display: block; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 16px; font-weight: 400; letter-spacing: .04em; margin-bottom: 7px; text-transform: uppercase; }
.fee-acceptance-intro p { font-size: 11px; line-height: 1.55; margin: 0; }
.fee-acceptance-list { display: grid; gap: 11px; margin: 0 50px 19px; position: relative; z-index: 2; }
.fee-acceptance-list > div { align-items: center; background: linear-gradient(90deg,#fff 0%,#fff 77%,rgba(243,240,237,.8) 100%); border: 1px solid #e0d9d3; border-radius: 15px 4px 15px 15px; display: grid; gap: 15px; grid-template-columns: 40px 1fr; min-height: 70px; padding: 11px 18px 11px 12px; }
.fee-acceptance-list b { align-items: center; background: #d8cec3; border-radius: 11px 3px 11px 11px; color: #fff; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; font-weight: 400; height: 37px; justify-content: center; width: 37px; }
.fee-acceptance-list p { font-size: 10.8px; line-height: 1.5; margin: 0; }
.fee-acceptance-project { background: linear-gradient(90deg,#d8cec3,#eee8e2); border-radius: 16px 5px 16px 16px; display: grid; gap: 8px 13px; grid-template-columns: auto 1fr auto 1fr; margin: 0 50px 20px; padding: 13px 19px; position: relative; z-index: 2; }
.fee-acceptance-project span { color: #6c635d; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.fee-acceptance-project strong { font-size: 10px; font-weight: 600; }
.fee-signing-block { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; margin: 0 50px; position: relative; z-index: 2; }
.fee-signing-block > div { background: rgba(255,255,255,.94); border: 1px solid #dfd8d1; border-radius: 16px 5px 16px 16px; min-height: 184px; padding: 14px 18px; }
.fee-signing-block h3 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; font-weight: 400; letter-spacing: .07em; margin: 0 0 11px; text-transform: uppercase; }
.fee-signing-block span { color: #736a63; display: block; font-size: 8px; text-transform: uppercase; }
.fee-signing-block i { border-bottom: 1px solid #bfb4aa; display: block; height: 22px; margin-bottom: 8px; }
.fee-signing-block img { display: block; height: 77px; object-fit: contain; object-position: left center; width: 240px; }
.fee-signing-block strong { display: block; font-size: 11px; }
.fee-signing-block small { color: #716862; font-size: 8.5px; }

.fee-terms-watermark { bottom: 38px; height: 430px; opacity: .025; right: -92px; width: 430px; }
.fee-terms-intro { background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 78%,rgba(243,240,237,0) 100%); border-radius: 0 16px 16px 0; margin: 20px 77px 18px 0; min-height: 62px; padding: 13px 48px; position: relative; z-index: 1; }
.fee-terms-intro p { font-size: 10.8px; line-height: 1.5; margin: 0; }
.fee-terms-grid { display: grid; gap: 13px 15px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0 45px; position: relative; z-index: 2; }
.fee-terms-grid section { align-items: start; background: rgba(255,255,255,.94); border: 1px solid #dfd8d1; border-radius: 15px 4px 15px 15px; display: grid; gap: 11px; grid-template-columns: 35px 1fr; min-height: 143px; padding: 13px 14px 12px 11px; }
.fee-terms-grid b { align-items: center; background: linear-gradient(145deg,#c9b9aa,#e9e2dc); border-radius: 10px 3px 10px 10px; color: #fff; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11px; font-weight: 400; height: 33px; justify-content: center; width: 33px; }
.fee-terms-grid h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11.5px; font-weight: 400; letter-spacing: .045em; line-height: 1.3; margin: 1px 0 6px; text-transform: uppercase; }
.fee-terms-grid p { font-size: 9.5px; line-height: 1.43; margin: 0; }
.fee-terms-note { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#e9e1d9 72%,rgba(243,240,237,.67) 100%); border-radius: 15px 4px 15px 15px; display: grid; gap: 16px; grid-template-columns: 105px 1fr; margin: 17px 45px 0; min-height: 63px; padding: 11px 18px; position: relative; z-index: 2; }
.fee-terms-note strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10.5px; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; }
.fee-terms-note span { border-left: 1px solid rgba(89,79,71,.25); font-size: 9px; line-height: 1.45; padding-left: 16px; }
.fee-terms-initials { bottom: 66px; display: grid; font-size: 8px; gap: 8px; grid-template-columns: auto 80px auto 80px; left: 48px; position: absolute; text-transform: uppercase; z-index: 3; }
.fee-terms-initials i { border-bottom: 1px solid #a99c92; }

.fee-partners-page { background: #fff; }
.fee-partners-reference-image { display: block; height: 100%; object-fit: fill; position: absolute; width: 100%; z-index: 0; }
.fee-partners-page .fee-document-header { box-shadow: 0 10px 20px rgba(255,255,255,.9); }
.fee-partners-intro { background: linear-gradient(90deg,#fff 0%,#fff 70%,rgba(255,255,255,.93) 100%); left: 0; min-height: 169px; padding: 21px 52px 18px; position: absolute; right: 0; top: 146px; z-index: 2; }
.fee-partners-intro p { font-size: 11px; line-height: 1.55; margin: 0 0 10px; max-width: 660px; }
.fee-partners-intro strong { color: #5f5751; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11px; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; }
.fee-partner-category { background: linear-gradient(90deg,#d8cec3 0%,rgba(231,223,215,.95) 72%,rgba(243,240,237,0) 100%); height: 24px; left: 25px; position: absolute; right: 25px; transform: translateY(-50%); z-index: 2; }
.fee-partner-category span { color: #332f2c; display: block; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10px; letter-spacing: .1em; line-height: 24px; padding-left: 19px; text-transform: uppercase; }
.fee-partners-page .fee-partner-links { z-index: 4; }

/* Fee proposal v45: circular process, staggered reading pages and agreement-ready terms. */
.fee-process-intro { margin-bottom: 15px; }
.fee-process-track { display: grid; gap: 38px 24px; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0 44px; position: relative; z-index: 2; }
.fee-process-track::before, .fee-process-track::after { background: linear-gradient(90deg,rgba(216,206,195,0),#d8cec3 8%,#d8cec3 92%,rgba(216,206,195,0)); content: ""; height: 1px; left: -44px; position: absolute; right: -44px; top: 42px; z-index: -1; }
.fee-process-track::after { top: 337px; }
.fee-process-track .fee-process-step { align-items: center; background: transparent; border: 0; border-radius: 0; box-shadow: none; display: flex; flex-direction: column; gap: 0; min-height: 257px; padding: 0 10px; text-align: center; }
.fee-process-track .fee-process-step:nth-child(2), .fee-process-track .fee-process-step:nth-child(5) { transform: translateY(12px); }
.fee-process-track .fee-process-step > b { align-items: center; background: linear-gradient(145deg,#c9b9aa 0%,#ddd2c8 60%,#eee8e2 100%); border: 7px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px rgba(204,190,177,.45); color: #fff; display: flex; flex: 0 0 auto; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 26px; font-weight: 400; height: 84px; justify-content: center; margin-bottom: 19px; width: 84px; }
.fee-process-track .fee-process-step h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 14px; font-weight: 400; letter-spacing: .045em; line-height: 1.3; margin: 0 0 10px; text-transform: uppercase; }
.fee-process-track .fee-process-step p { font-size: 10.8px; line-height: 1.55; margin: 0; }
.fee-process-watermark { opacity: .025; }

.fee-breakdown-intro { margin-bottom: 15px; min-height: 101px; padding-bottom: 14px; padding-top: 13px; }
.fee-breakdown-intro > span { background: #45382f; border-radius: 999px; color: #fff; display: inline-block; font-size: 7.5px; font-weight: 700; letter-spacing: .12em; margin-bottom: 7px; padding: 4px 9px; text-transform: uppercase; }
.fee-breakdown-intro strong { font-size: 16px; margin-bottom: 5px; }
.fee-breakdown-intro p { font-size: 10.5px; }
.fee-breakdown-layout { display: flex; flex-direction: column; gap: 10px; margin: 0 49px; position: relative; z-index: 2; }
.fee-breakdown-section { align-items: start; background: linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(250,247,244,.96) 76%,rgba(243,240,237,.7) 100%); border: 1px solid #dfd8d1; border-radius: 17px 5px 17px 17px; box-shadow: 6px 6px 0 rgba(243,240,237,.9); display: grid; gap: 15px; grid-template-columns: 45px 1fr; min-height: 116px; padding: 14px 21px 13px 13px; width: 82%; }
.fee-breakdown-section:nth-child(even) { align-self: flex-end; background: linear-gradient(90deg,rgba(243,240,237,.76) 0%,rgba(255,255,255,.97) 28%,#fff 100%); border-radius: 5px 17px 17px 17px; }
.fee-breakdown-section > b { align-items: center; background: linear-gradient(145deg,#c9b9aa,#e7dfd7); border-radius: 12px 4px 12px 12px; color: #fff; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 14px; font-weight: 400; height: 42px; justify-content: center; width: 42px; }
.fee-breakdown-section h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13.5px; font-weight: 400; letter-spacing: .045em; margin: 1px 0 6px; text-transform: uppercase; }
.fee-breakdown-section p { font-size: 10.5px; line-height: 1.5; margin: 0; }
.fee-breakdown-fees { align-items: center; background: linear-gradient(90deg,#d8cec3,#e8e0d8 72%,rgba(243,240,237,.62)); border-radius: 16px 5px 16px 16px; display: grid; gap: 16px; grid-template-columns: 185px 1fr; margin: 17px 49px 0; min-height: 72px; padding: 12px 19px; position: relative; z-index: 3; }
.fee-breakdown-fees strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 9.5px; font-weight: 400; letter-spacing: .04em; line-height: 1.45; text-transform: uppercase; }
.fee-breakdown-fees span { border-left: 1px solid rgba(89,79,71,.25); font-size: 9px; line-height: 1.5; padding-left: 16px; }

.fee-billing-signoff { align-items: center; bottom: 60px; color: #6c645e; display: flex; font-size: 8.5px; justify-content: space-between; left: 49px; letter-spacing: .05em; position: absolute; right: 49px; text-transform: uppercase; z-index: 3; }
.fee-billing-signoff label { align-items: center; display: flex; gap: 9px; }
.fee-billing-signoff i { border-bottom: 1px solid #8e8278; display: inline-block; height: 13px; width: 82px; }

.fee-next-watermark { bottom: 20px; height: 430px; opacity: .025; right: -95px; width: 430px; }
.fee-next-hero { height: 306px; }
.fee-next-intro { margin-bottom: 16px; min-height: 86px; }
.fee-next-route { display: flex; flex-direction: column; gap: 9px; margin: 0 55px; position: relative; z-index: 2; }
.fee-next-route::before { background: linear-gradient(180deg,rgba(216,206,195,0),#d8cec3 10%,#d8cec3 90%,rgba(216,206,195,0)); bottom: 22px; content: ""; left: 35px; position: absolute; top: 22px; width: 1px; z-index: -1; }
.fee-next-route section { align-items: center; background: linear-gradient(90deg,#fff 0%,#fff 70%,rgba(243,240,237,.7) 100%); border-bottom: 1px solid #ded6cf; display: grid; gap: 16px; grid-template-columns: 70px 1fr; min-height: 67px; padding: 7px 18px 7px 0; width: 88%; }
.fee-next-route section:nth-child(even) { align-self: flex-end; }
.fee-next-route b { align-items: center; background: linear-gradient(145deg,#c9b9aa,#e7dfd7); border: 5px solid #fff; border-radius: 50%; color: #fff; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; font-weight: 400; height: 46px; justify-content: center; width: 46px; }
.fee-next-route h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12.5px; font-weight: 400; letter-spacing: .04em; margin: 0 0 4px; text-transform: uppercase; }
.fee-next-route p { font-size: 10px; line-height: 1.4; margin: 0; }
.fee-next-return { align-items: center; background: linear-gradient(90deg,#d8cec3,#e9e1d9 75%,rgba(243,240,237,.55)); border-radius: 15px 5px 15px 15px; display: flex; gap: 20px; justify-content: center; margin: 15px 96px 0; min-height: 54px; position: relative; z-index: 3; }
.fee-next-return strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10.5px; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; }
.fee-next-return span { border-left: 1px solid rgba(89,79,71,.25); font-size: 9.5px; padding-left: 20px; }

.fee-terms-intro { margin-bottom: 12px; margin-top: 14px; min-height: 56px; padding-bottom: 11px; padding-top: 11px; }
.fee-terms-intro p { font-size: 10px; }
.fee-terms-grid { gap: 8px 13px; margin: 0 43px; }
.fee-terms-grid section { gap: 9px; grid-template-columns: 31px 1fr; min-height: 0; padding: 9px 11px 9px 9px; }
.fee-terms-grid b { border-radius: 9px 3px 9px 9px; font-size: 10px; height: 29px; width: 29px; }
.fee-terms-grid h2 { font-size: 10.5px; margin: 0 0 4px; }
.fee-terms-grid p { font-size: 9.6px; line-height: 1.4; }
.fee-terms-signatures { display: grid; gap: 15px; grid-template-columns: 1.15fr .85fr; margin: 12px 43px 0; position: relative; z-index: 3; }
.fee-terms-signatures > div { background: rgba(255,255,255,.95); border: 1px solid #ded6cf; border-radius: 14px 4px 14px 14px; min-height: 116px; padding: 10px 15px; }
.fee-terms-signatures > div:first-child { display: grid; gap: 3px 9px; grid-template-columns: 74px 1fr; }
.fee-terms-signatures span { color: #6f6760; font-size: 7.5px; letter-spacing: .08em; text-transform: uppercase; }
.fee-terms-signatures i { border-bottom: 1px solid #b7aca2; height: 15px; }
.fee-terms-signatures img { display: block; height: 55px; object-fit: contain; object-position: left center; width: 200px; }
.fee-terms-signatures strong { display: block; font-size: 10px; }
.fee-terms-signatures small { color: #716862; font-size: 7.5px; }

.fee-partners-page .fee-document-header { background: #f5f2ef; box-shadow: none; }
.fee-partners-intro { background: #fff; height: 184px; min-height: 184px; padding: 19px 52px 18px; }
.fee-partners-intro p { font-size: 10.5px; max-width: 675px; }
.fee-partners-reference-image { z-index: 0; }

/* Fee proposal v46: fuller A4 composition and a native partner directory. */
.fee-process-page .fee-process-intro { margin-bottom: 15px; margin-top: 26px; min-height: 96px; padding-bottom: 18px; padding-top: 18px; }
.fee-process-page .fee-process-intro p { font-size: 12px; }
.fee-process-track { align-content: center; column-gap: 30px; height: 690px; row-gap: 72px; }
.fee-process-track .fee-process-step { min-height: 248px; padding-left: 12px; padding-right: 12px; }
.fee-process-track .fee-process-step > b { font-size: 30px; height: 96px; margin-bottom: 22px; width: 96px; }
.fee-process-track .fee-process-step h2 { font-size: 15.5px; margin-bottom: 12px; }
.fee-process-track .fee-process-step p { font-size: 12px; line-height: 1.58; }
.fee-process-track::before { top: 106px; }
.fee-process-track::after { top: 426px; }

.fee-breakdown-layout { gap: 18px; }
.fee-breakdown-section { min-height: 135px; padding: 18px 24px 16px 15px; width: 84%; }
.fee-breakdown-section h2 { font-size: 14.5px; margin-bottom: 8px; }
.fee-breakdown-section p { font-size: 11px; line-height: 1.55; }
.fee-breakdown-fees { background: linear-gradient(90deg,#cfc0b3 0%,#e2d7ce 76%,rgba(243,240,237,.88) 100%); grid-template-columns: 205px 1fr; margin-top: 18px; min-height: 96px; padding: 15px 20px; }
.fee-breakdown-fees strong { background: #45382f; border-radius: 11px 3px 11px 11px; color: #fff; font-size: 10.5px; line-height: 1.45; padding: 11px 12px; }
.fee-breakdown-fees span { color: #332f2c; font-size: 10.5px; font-weight: 600; line-height: 1.55; }

.fee-next-route { gap: 12px; }
.fee-next-route section { min-height: 80px; padding-bottom: 10px; padding-top: 10px; width: 90%; }
.fee-next-route b { font-size: 14px; height: 52px; width: 52px; }
.fee-next-route h2 { font-size: 13.5px; margin-bottom: 5px; }
.fee-next-route p { font-size: 11.2px; line-height: 1.48; }
.fee-next-return { margin-top: 16px; min-height: 64px; }
.fee-next-return strong { font-size: 11.5px; }
.fee-next-return span { font-size: 10.5px; }

.fee-acceptance-list { gap: 14px; margin-bottom: 18px; }
.fee-acceptance-list > div { min-height: 72px; padding-bottom: 12px; padding-top: 12px; }
.fee-acceptance-list p { font-size: 11px; }
.fee-signing-block > div, .fee-terms-signatures > div { background: transparent; border: 0; border-radius: 0; border-top: 1px solid #cfc5bc; padding-left: 4px; padding-right: 4px; }

.fee-partners-page { background: #fff; }
.fee-partners-page .fee-document-header { background: linear-gradient(90deg,#f5f2ef 0%,#f3f0ed 72%,rgba(243,240,237,.78) 100%); }
.fee-partners-intro { background: linear-gradient(90deg,#f3f0ed 0%,#f3f0ed 78%,rgba(243,240,237,0) 100%); height: 103px; min-height: 103px; padding: 15px 52px 13px; position: relative; top: auto; }
.fee-partners-intro p { font-size: 12px; line-height: 1.55; margin-bottom: 8px; max-width: 690px; }
.fee-partners-intro strong { font-size: 11px; }
.fee-partner-directory { display: grid; gap: 3px; margin: 7px 31px 0; position: relative; z-index: 2; }
.fee-partner-group { min-height: 77px; }
.fee-partner-group h2 { align-items: center; background: linear-gradient(90deg,#cfc0b3 0%,#e4dbd3 72%,rgba(243,240,237,.18) 100%); border-radius: 8px 2px 8px 8px; color: #332f2c; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 10.5px; font-weight: 600; height: 23px; letter-spacing: .1em; margin: 0; padding: 0 16px; text-transform: uppercase; }
.fee-partner-logo-row { height: 54px; position: relative; }
.fee-partner-logo-row > img { display: block; height: 100%; object-fit: contain; width: 100%; }
.fee-partner-row-links { inset: 0; position: absolute; z-index: 3; }
.fee-partner-row-links .fee-partner-link { bottom: 0; height: auto; top: 0; }
.fee-partners-page .fee-page-footer { z-index: 6; }

@media (max-width: 650px) {
  .workbook-choice-grid { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); }
  .material-project-share { grid-template-columns: 1fr; }
  .material-project-share .btn { max-width: none; width: 100%; }
  .summary-preview-completeness { order: 3; text-align: left; width: 100%; }
  .summary-page-buttons { flex-wrap: wrap; }
  .revision-control-card { align-items: stretch; flex-direction: column; }
  .revision-control-actions { align-items: stretch; flex-direction: column; }
  .revision-control-actions .btn, .revision-control-actions select { width: 100%; }
  .shopping-document { margin-left: -18px; margin-right: -18px; max-width: none; }
  .pending-material-row { align-items: start; flex-direction: column; }
  .summary-preview-page:not(.is-intro) { min-width: 800px; }
  .weekly-report-fields { grid-template-columns: 1fr; }
  .weekly-photo-slots { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .weekly-editor-stages { grid-template-columns: 1fr; }
  .weekly-editor-head, .weekly-editor-row { grid-template-columns: minmax(110px,1fr) 64px 78px minmax(105px,1fr); }
  .fee-proposal-toolbar { align-items: stretch; flex-direction: column; }
  .fee-proposal-fields { align-items: stretch; flex-direction: column; }
  .fee-proposal-fields input { width: 100%; }
  .fee-proposal-document { margin-left: -18px; margin-right: -18px; max-width: none; }
}

@media print {
  .revision-control-card { display: none !important; }
  @page { size: A4; margin: 14mm; }
  @page summaryDraft { size: letter landscape; margin: 0; }
  @page shoppingList { size: letter landscape; margin: 0; }
  @page weeklyReport { size: letter landscape; margin: 0; }
  @page feeProposal { size: A4 portrait; margin: 0; }
  html, body { background: #fff !important; min-width: 0; }
  .sidebar, .topbar, .mobile-nav, .shopping-toolbar, .summary-preview-toolbar, .summary-preview-notice, .fee-proposal-toolbar, .fee-proposal-notice, .package-toolbar, .package-notice, .summary-override-rail, .summary-override-button, .toast-region, .modal-backdrop { display: none !important; }
  .app-shell, .main-shell, .view-root { display: block !important; margin: 0 !important; min-height: 0 !important; padding: 0 !important; width: 100% !important; }
  .shopping-document { display: block; margin: 0; max-width: none; overflow: visible; padding: 0; }
  .shopping-document-page { border: 0; box-shadow: none; break-after: page; height: 8.5in; margin: 0; width: 11in; }
  .shopping-document-page:last-child { break-after: auto; }
  .shopping-table-wrap { overflow: visible; }
  .shopping-table { min-width: 0; }
  .shopping-table tr { break-inside: avoid; }
  .shopping-item-photo, .shopping-item-photo-empty { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .shopping-table th { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .shopping-document-foot { break-inside: avoid; }
  .summary-preview-canvas, .summary-preview-stack { display: block; margin: 0 !important; max-width: none !important; overflow: visible !important; padding: 0 !important; }
  /* The app has already measured and paginated these sheets. Print each as
     one indivisible box, so browser fragmentation cannot move a trade group
     out of its fixed-height page. Page spacing is built into the artwork. */
  .summary-page-layout { break-after: page; display: block; margin: 0; page: summaryDraft; width: auto; }
  .summary-page-layout > .summary-preview-page { margin: 0; }
  .summary-preview-page { border: 0; box-shadow: none; display: inline-block; height: 8.5in; margin: 0; max-width: none; min-height: 0; page: summaryDraft; padding: 0; vertical-align: top; width: 11in; }
  .summary-preview-stack > .summary-page-layout:last-child { break-after: auto; }
  .summary-room-band, .summary-trade-content, .summary-document-total { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .weekly-report-tabs, .weekly-metrics, .weekly-report-details, .weekly-photo-panel, .weekly-report-warning, .weekly-progress-panel, .weekly-preview-toolbar, .page-heading { display: none !important; }
  .weekly-preview-section, .weekly-preview-canvas { margin: 0 !important; max-width: none !important; overflow: visible !important; padding: 0 !important; }
  .weekly-report-sheet { border: 0; box-shadow: none; height: 8.5in; margin: 0; width: 11in; }
  .fee-proposal-document { display: block; margin: 0; max-width: none; overflow: visible; padding: 0; }
  .fee-proposal-page-wrap, .fee-proposal-page-wrap.is-screen-hidden { display: block !important; }
  .fee-proposal-page-wrap { margin: 0; break-after: page; page: feeProposal; }
  .fee-proposal-page-wrap:last-child { break-after: auto; }
  .fee-document-page { border: 0; box-shadow: none; display: inline-block; vertical-align: top; break-inside: avoid; break-after: auto; height: 297mm; margin: 0; width: 210mm; }
  .client-package-document { display: block; }
  .package-exports { display: none !important; }
  body[data-print-document="fee"] .client-package-document > :not([data-client-document="fee"]),
  body[data-print-document="scope"] .client-package-document > :not([data-client-document="scope"]),
  body[data-print-document="material"] .client-package-document > :not([data-client-document="material"]),
  body[data-print-document="shopping"] .client-package-document > :not([data-client-document="shopping"]) { display: none !important; }
}

.material-footer strong {
  font-size: 0.86rem;
  margin-top: 3px;
}

.review-grid,
.project-grid,
.document-grid,
.settings-grid {
  display: grid;
  gap: 18px;
}

.review-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
}

.project-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.document-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.settings-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* v47: supplier worksheet, persistent proposal pager, revised cost summary and planning documents. */
.shopping-client-workspace { align-items: center; border-top: 1px solid rgba(201,190,181,.65); display: grid; gap: 4px 6px; grid-template-columns: 19px auto 1fr; margin-top: 6px; padding-top: 5px; }
.shopping-client-check { -webkit-print-color-adjust: exact; align-items: center; background: #fff; border: 1px solid #766b63; border-radius: 3px; color: #fff; display: flex; font-size: 12px; font-weight: 800; height: 18px; justify-content: center; padding: 0; print-color-adjust: exact; width: 18px; }
.shopping-client-check.is-checked { background: #4b392e; border-color: #4b392e; }
.shopping-client-workspace > span { color: #584f49; font-size: 7.5px; font-weight: 700; text-transform: uppercase; }
.shopping-client-workspace label { align-items: center; color: #6e655f; display: flex; font-size: 7.5px; gap: 3px; justify-content: flex-end; white-space: nowrap; }
.shopping-client-workspace input { background: transparent; border: 0; border-bottom: 1px solid #9f9288; border-radius: 0; font-size: 8px; height: 18px; padding: 0 2px; width: 56px; }
.shopping-product-details { background: transparent; border: 0; border-bottom: 1px solid #9f9288; border-radius: 0; color: inherit; display: block; font-family: inherit; font-size: 8px; height: 18px; margin-top: 3px; min-width: 0; padding: 0 2px; width: 100%; }

.fee-floating-pager { align-items: center; background: rgba(23,33,43,.95); border: 1px solid rgba(255,255,255,.12); border-radius: 15px; box-shadow: 0 12px 28px rgba(23,33,43,.24); color: #fff; display: grid; gap: 4px; grid-template-rows: 42px auto 42px; padding: 6px; position: fixed; right: 22px; top: 50%; transform: translateY(-50%); z-index: 80; }
.fee-floating-pager button { align-items: center; background: #fff; border: 0; border-radius: 10px; color: #17212b; display: flex; font-size: 28px; height: 42px; justify-content: center; line-height: 1; padding: 0; width: 42px; }
.fee-floating-pager button:disabled { cursor: default; opacity: .28; }
.fee-floating-pager span { color: #c9d0d5; display: grid; font-size: 9px; gap: 1px; padding: 5px 0; text-align: center; }
.fee-floating-pager span b { color: #fff; font-size: 14px; }

.fee-cost-page .fee-cost-intro { margin-bottom: 11px; margin-top: 9px; min-height: 61px; }
.fee-cost-page .fee-cost-intro p { font-size: 10.5px; }
.fee-cost-ledger-head { align-items: center; border-bottom: 1px solid #cfc4ba; color: #625851; display: flex; font-size: 8px; font-weight: 700; justify-content: space-between; letter-spacing: .11em; margin: 0 50px 7px; padding: 0 13px 6px; position: relative; text-transform: uppercase; z-index: 2; }
.fee-cost-stages { display: flex; flex-direction: column; gap: 8px; margin: 0 43px; position: relative; z-index: 2; }
.fee-cost-stage { background: rgba(255,255,255,.95); border: 1px solid #ddd5cd; border-radius: 16px 5px 16px 16px; box-shadow: 6px 6px 0 rgba(243,240,237,.82); display: grid; grid-template-columns: 236px 1fr; min-height: 106px; overflow: hidden; width: 95%; }
.fee-cost-stage:nth-child(even) { align-self: flex-end; border-radius: 5px 16px 16px 16px; box-shadow: -6px 6px 0 rgba(243,240,237,.82); }
.fee-cost-stage > header { align-items: center; background: linear-gradient(110deg,#cfc0b3 0%,#e5dcd4 74%,rgba(243,240,237,.72) 100%); display: grid; gap: 9px; grid-template-columns: 36px 37px 1fr; min-height: 100%; padding: 10px 13px 9px 10px; position: relative; }
.fee-cost-stage > header > span { align-items: center; background: rgba(255,255,255,.83); border-radius: 10px 3px 10px 10px; display: flex; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 13px; height: 34px; justify-content: center; width: 34px; }
.fee-cost-stage > header img { height: 34px; object-fit: contain; opacity: .84; width: 37px; }
.fee-cost-stage > header div { display: grid; gap: 2px; }
.fee-cost-stage > header small { color: #6f655d; font-size: 7px; letter-spacing: .11em; text-transform: uppercase; }
.fee-cost-stage > header strong { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 11px; font-weight: 600; letter-spacing: .045em; line-height: 1.2; text-transform: uppercase; }
.fee-cost-stage > header aside { align-items: baseline; bottom: 8px; display: flex; gap: 7px; grid-column: 2 / 4; justify-content: flex-end; position: absolute; right: 13px; }
.fee-cost-stage > header aside small { font-size: 6.5px; }
.fee-cost-stage > header b { color: #332d29; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 12px; font-weight: 600; }
.fee-cost-trades { align-content: center; background: linear-gradient(90deg,#fff 0%,#fff 78%,rgba(249,247,244,.72) 100%); display: grid; gap: 0 20px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; padding: 8px 17px; }
.fee-cost-trades > div { align-items: center; border-bottom: 1px solid rgba(222,213,205,.72); color: #302b28; display: grid; font-size: 9.8px; gap: 12px; grid-template-columns: minmax(0,1fr) auto; line-height: 1.25; min-height: 22px; padding: 3px 0; }
.fee-cost-trades > div:nth-last-child(-n+2) { border-bottom-color: transparent; }
.fee-cost-trades strong { color: #403731; font-size: 9.8px; font-weight: 700; padding: 0; text-align: right; white-space: nowrap; }
.fee-cost-trades .is-empty { color: #817871; font-style: italic; grid-column: 1 / -1; }
.fee-cost-grand { bottom: 63px; left: 43px; min-height: 76px; right: 43px; }

.fee-partners-page .fee-document-header { margin-bottom: 14px; }
.fee-partners-intro { border-radius: 0 15px 15px 0; margin: 0 66px 0 0; padding-left: 52px; }
.fee-partner-directory { margin-top: 12px; }
.fee-signing-block img, .fee-terms-signatures img { mix-blend-mode: multiply; }

.planning-heading { align-items: center; }
.planning-editor { display: grid; gap: 18px; }
.planning-range-card { align-items: center; background: linear-gradient(110deg,#17212b 0%,#24313d 61%,#36424c 100%); color: #fff; display: grid; gap: 22px; grid-template-columns: minmax(260px,1fr) auto minmax(220px,.7fr); padding: 22px; }
.planning-range-card > div:first-child { display: grid; gap: 4px; }
.planning-range-card span, .planning-range-card small { color: #bec7cd; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.planning-range-card > div:first-child strong { color: #fff; font-family: Georgia,serif; font-size: 1.65rem; font-weight: 500; }
.planning-range-inputs { display: grid; gap: 10px; grid-template-columns: repeat(2,minmax(130px,1fr)); }
.planning-range-inputs label { color: #d4dadd; display: grid; font-size: .7rem; gap: 5px; text-transform: uppercase; }
.planning-range-inputs input { background: rgba(255,255,255,.96); border: 0; border-radius: 8px; min-height: 40px; padding: 7px 9px; }
.planning-range-check { border-left: 3px solid #d6ad70; display: grid; gap: 4px; padding: 7px 0 7px 14px; }
.planning-range-check.is-aligned { border-left-color: #79b692; }
.planning-range-check strong { font-size: .86rem; }
.planning-range-check span { text-transform: none; }
.planning-range-check .btn { justify-self: start; margin-top: 4px; }
.planning-form-card, .planning-text-card { padding: 20px; }
.planning-form-card h2, .planning-text-card > strong { font-family: Georgia,serif; font-size: 1.15rem; margin: 0 0 14px; }
.planning-form-card > label, .planning-text-card { color: var(--ink-3); display: grid; font-size: .75rem; font-weight: 700; gap: 6px; }
.planning-form-card > label + label { margin-top: 14px; }
.planning-editor textarea, .planning-editor input { background: #fff; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--ink); line-height: 1.45; padding: 10px; resize: vertical; width: 100%; }
.rom-stage-editor { display: grid; gap: 10px; }
.rom-stage-editor article { align-items: start; background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 12px; grid-template-columns: 42px minmax(260px,1fr) 135px 135px; padding: 13px; }
.rom-stage-editor article > b { align-items: center; background: #d8cec3; border-radius: 11px 3px 11px 11px; color: #fff; display: flex; font-family: Georgia,serif; height: 38px; justify-content: center; width: 38px; }
.rom-stage-editor h3 { margin: 1px 0 8px; }
.rom-stage-editor label { color: var(--ink-3); display: grid; font-size: .68rem; gap: 4px; text-transform: uppercase; }
.rom-stage-editor textarea { font-size: .82rem; text-transform: none; }
.planning-editor-grid { display: grid; gap: 18px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.planning-text-card textarea { font-size: .82rem; font-weight: 400; }

.planning-document { display: grid; gap: 22px; margin: 0 auto; max-width: 816px; }
.planning-document-page { -webkit-print-color-adjust: exact; background: #fff; border: 1px solid #e4ded8; box-shadow: 0 15px 36px rgba(23,33,43,.11); color: #272320; font-family: "Century Gothic","Avenir Next","Trebuchet MS",sans-serif; height: 1056px; overflow: hidden; page: planningDoc; position: relative; print-color-adjust: exact; width: 816px; }
.planning-page-head { align-items: center; background: linear-gradient(90deg,#f4f1ee 0%,#f1ede9 77%,rgba(243,240,237,.4) 100%); display: grid; gap: 25px; grid-template-columns: 100px 1fr; min-height: 133px; padding: 24px 47px 18px; }
.planning-page-head img { height: 65px; object-fit: contain; width: 96px; }
.planning-page-head > div { text-align: right; }
.planning-page-head span { color: #766e68; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.planning-page-head h1 { font-family: "Cinzel Oakburn",Cinzel,Georgia,serif; font-size: 24px; font-weight: 400; letter-spacing: .08em; margin: 7px 0 2px; text-transform: uppercase; }
.planning-page-head p { color: #766e68; font-size: 9px; letter-spacing: .15em; margin: 0; text-transform: uppercase; }
.planning-page-foot { align-items: end; bottom: 17px; display: grid; grid-template-columns: 44px 1fr auto; left: 31px; position: absolute; right: 36px; }
.planning-page-foot img { height: 30px; object-fit: contain; width: 42px; }
.planning-page-foot i { background: linear-gradient(90deg,#d8cec3,#f3f0ed 80%,rgba(243,240,237,0)); height: 11px; margin-bottom: 3px; }
.planning-page-foot span { color: #77716d; font-size: 7px; padding: 0 0 3px 8px; text-transform: uppercase; }
.planning-cover { background: linear-gradient(145deg,#fff 0%,#fff 78%,#f4f0ec 100%); }
.planning-cover::after { background: linear-gradient(145deg,rgba(216,206,195,.34),rgba(255,255,255,0)); border-radius: 50%; bottom: -155px; content: ""; height: 520px; position: absolute; right: -160px; width: 520px; }
.planning-cover-photo-offset { background: #d8cec3; border-radius: 28px 8px 28px 28px; height: 455px; left: 66px; position: absolute; top: 66px; width: 704px; }
.planning-cover-photo { border-radius: 28px 8px 28px 28px; height: 455px; left: 48px; object-fit: cover; position: absolute; top: 48px; width: 704px; }
.planning-cover-logo { background: rgba(255,255,255,.96); border-radius: 19px 5px 19px 19px; box-shadow: 8px 8px 0 rgba(216,206,195,.86); height: 112px; left: 50%; object-fit: contain; padding: 15px 20px; position: absolute; top: 424px; transform: translateX(-50%); width: 178px; z-index: 3; }
.planning-cover-title { left: 70px; position: absolute; right: 70px; text-align: center; top: 565px; z-index: 2; }
.planning-cover-title > span { color: #9e8f82; display: block; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 16px; letter-spacing: .42em; margin-bottom: 9px; text-transform: uppercase; }
.planning-cover-title h1 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 36px; font-weight: 400; letter-spacing: .09em; line-height: 1.22; margin: 0; text-transform: uppercase; }
.planning-cover-title i { background: linear-gradient(90deg,transparent,#cfc0b3 22%,#cfc0b3 78%,transparent); display: block; height: 1px; margin: 19px auto 13px; width: 68%; }
.planning-cover-title p { color: #716862; font-size: 10px; letter-spacing: .19em; margin: 0; text-transform: uppercase; }
.planning-cover-client { align-items: end; bottom: 81px; display: grid; gap: 4px 14px; grid-template-columns: 1fr auto; left: 75px; position: absolute; right: 75px; z-index: 2; }
.planning-cover-client span { color: #776e67; font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.planning-cover-client strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 14px; font-weight: 500; grid-column: 1; text-transform: uppercase; }
.planning-cover-client small { color: #6e665f; font-size: 9px; grid-column: 1; }
.planning-cover-client b { background: #d8cec3; border-radius: 10px 3px 10px 10px; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 10px; font-weight: 500; grid-column: 2; grid-row: 1 / 4; padding: 9px 13px; text-transform: uppercase; }
.planning-page-watermark { bottom: 45px; height: 430px; object-fit: contain; opacity: .025; position: absolute; right: -95px; width: 430px; }

.rom-doc-overview { margin: 18px 51px 12px; position: relative; z-index: 2; }
.rom-doc-overview h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 14px; font-weight: 600; letter-spacing: .05em; margin: 0 0 7px; text-transform: uppercase; }
.rom-doc-overview p { font-size: 10.2px; line-height: 1.5; margin: 0; }
.rom-doc-range { align-items: center; background: linear-gradient(90deg,#d8cec3,#eee8e2 78%,rgba(243,240,237,.3)); border-radius: 0 17px 17px 0; display: grid; gap: 6px 18px; grid-template-columns: 1fr auto; margin: 0 70px 11px 0; min-height: 86px; padding: 12px 41px 11px 51px; position: relative; z-index: 2; }
.rom-doc-range > div { display: grid; gap: 3px; }
.rom-doc-range span { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 11.5px; font-weight: 600; text-transform: uppercase; }
.rom-doc-range > strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 18px; font-weight: 500; }
.rom-doc-range small { color: #756c65; font-size: 7px; letter-spacing: .07em; text-transform: uppercase; }
.rom-doc-range p { font-size: 8.6px; grid-column: 1/-1; line-height: 1.4; margin: 1px 0 0; }
.rom-doc-stage-heading { align-items: baseline; border-bottom: 1px solid #d2c8bf; display: flex; justify-content: space-between; margin: 0 52px 6px; padding: 0 8px 5px; position: relative; z-index: 2; }
.rom-doc-stage-heading span { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.rom-doc-stage-heading strong { color: #766e68; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.rom-doc-stage-list { display: flex; flex-direction: column; gap: 6px; margin: 0 50px; position: relative; z-index: 2; }
.rom-doc-stage { align-items: center; background: linear-gradient(90deg,#fff 0%,#fff 72%,rgba(243,240,237,.77)); border: 1px solid #e0d8d1; border-radius: 14px 4px 14px 14px; display: grid; gap: 12px; grid-template-columns: 38px 1fr auto; min-height: 78px; padding: 8px 16px 8px 9px; width: 96%; }
.rom-doc-stage:nth-child(even) { align-self: flex-end; background: linear-gradient(90deg,rgba(243,240,237,.7),#fff 30%,#fff 100%); border-radius: 4px 14px 14px 14px; }
.rom-doc-stage > b { align-items: center; background: linear-gradient(145deg,#c9b9aa,#e5ddd5); border-radius: 10px 3px 10px 10px; color: #fff; display: flex; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 11px; height: 34px; justify-content: center; width: 34px; }
.rom-doc-stage h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 10.5px; font-weight: 600; letter-spacing: .04em; margin: 0 0 3px; text-transform: uppercase; }
.rom-doc-stage p { font-size: 8.7px; line-height: 1.36; margin: 0; }
.rom-doc-stage > strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.rom-method-lead { align-items: start; background: linear-gradient(90deg,#fff 0%,#fff 72%,rgba(243,240,237,.74) 100%); border-bottom: 1px solid #d8cec3; display: grid; gap: 15px; grid-template-columns: 45px 1fr; margin: 24px 56px 18px; padding: 8px 22px 17px 0; position: relative; width: 82%; z-index: 2; }
.rom-method-lead > b, .rom-method-middle header > b, .rom-material-clarification > b { align-items: center; background: linear-gradient(145deg,#c9b9aa,#e5ddd5); border-radius: 12px 4px 12px 12px; color: #fff; display: flex; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; height: 42px; justify-content: center; width: 42px; }
.rom-method-lead h2, .rom-method-middle h2, .rom-material-clarification h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 13px; font-weight: 600; letter-spacing: .04em; margin: 1px 0 7px; text-transform: uppercase; }
.rom-method-lead p, .rom-material-clarification p { font-size: 10.5px; line-height: 1.55; margin: 0; }
.rom-method-middle { display: grid; gap: 22px; grid-template-columns: .9fr 1.1fr; margin: 0 53px; position: relative; z-index: 2; }
.rom-method-middle > section { min-height: 405px; }
.rom-method-middle header { align-items: center; display: grid; gap: 12px; grid-template-columns: 42px 1fr; margin-bottom: 12px; }
.rom-method-middle header p { color: #756d66; font-size: 8px; line-height: 1.35; margin: 0; }
.rom-adjust-list { padding-top: 16px; }
.rom-adjust-list > p { align-items: center; border-bottom: 1px solid #ded6cf; display: grid; font-size: 10px; gap: 10px; grid-template-columns: 29px 1fr; margin: 0; min-height: 57px; padding: 7px 4px; }
.rom-adjust-list > p span { align-items: center; background: #f1ece7; border-radius: 8px 2px 8px 8px; color: #766d66; display: flex; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 8px; height: 26px; justify-content: center; width: 26px; }
.rom-pricing-context { background: linear-gradient(145deg,#f4f0ec,#fff 68%); border-radius: 20px 6px 20px 20px; padding: 16px 18px 18px; }
.rom-pricing-context > p { align-items: center; background: #fff; border-left: 4px solid #d8cec3; border-radius: 4px 13px 13px 4px; display: grid; gap: 4px; margin: 10px 0 0; min-height: 71px; padding: 11px 15px; }
.rom-pricing-context > p:nth-of-type(2) { margin-left: 15px; }
.rom-pricing-context > p:nth-of-type(3) { margin-left: 30px; }
.rom-pricing-context > p span { color: #6f665f; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
.rom-pricing-context > p strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 13px; font-weight: 600; }
.rom-material-clarification { align-items: start; background: linear-gradient(90deg,#d8cec3,#ede6df 78%,rgba(243,240,237,.42)); border-radius: 17px 5px 17px 17px; display: grid; gap: 15px; grid-template-columns: 45px 1fr; margin: 20px 86px 0 53px; min-height: 118px; padding: 15px 23px 14px 13px; position: relative; z-index: 2; }
.rom-planning-flow { display: grid; gap: 16px; grid-template-columns: .85fr 1.15fr; margin: 27px 52px 0; position: relative; z-index: 2; }
.rom-planning-flow section { border: 1px solid #dfd7d0; border-radius: 16px 5px 16px 16px; padding: 17px 20px; }
.rom-planning-flow section > span { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.rom-planning-flow section > p { font-size: 10.2px; line-height: 1.52; margin: 9px 0 0; }
.rom-optional { align-self: start; background: linear-gradient(90deg,#fff,#f8f6f3); min-height: 190px; }
.rom-exclusions { background: linear-gradient(145deg,#f4f0ec,#fff 72%); grid-row: span 2; min-height: 456px; }
.rom-exclusions p { align-items: start; border-bottom: 1px solid #e0d9d2; display: grid; gap: 9px; grid-template-columns: 8px 1fr; padding: 8px 0; }
.rom-exclusions p i { background: #bba896; border-radius: 50%; height: 6px; margin-top: 5px; width: 6px; }
.rom-important { background: #fff; min-height: 250px; }
.rom-next { background: linear-gradient(90deg,#d8cec3,#eee8e2 80%,rgba(243,240,237,.5)); grid-column: 1 / -1; min-height: 190px; width: 89%; }
.rom-next p { font-size: 10.8px !important; }
.rom-slogan { bottom: 55px; color: #514a45; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; left: 52px; letter-spacing: .06em; margin: 0; position: absolute; right: 52px; text-align: center; text-transform: uppercase; z-index: 2; }

/* v49: full-height image-free planning documents and vertically stacked cost ledger. */
.planning-cover-graphic { background: linear-gradient(145deg,#fff 0%,#fff 58%,#f6f2ee 100%); }
.planning-cover-graphic::after { background: linear-gradient(145deg,rgba(216,206,195,.42),rgba(255,255,255,0)); bottom: -130px; height: 500px; right: -120px; width: 500px; }
.planning-cover-frame { border: 1px solid #d7cdc4; bottom: 59px; left: 42px; position: absolute; right: 42px; top: 42px; z-index: 1; }
.planning-cover-band { pointer-events: none; position: absolute; z-index: 1; }
.planning-cover-band-a { background: linear-gradient(90deg,#d4c8bd 0%,#e7dfd8 76%,rgba(243,240,237,0) 100%); border-radius: 0 76px 18px 0; height: 178px; left: 0; top: 133px; width: 690px; }
.planning-cover-band-b { background: linear-gradient(270deg,#756457 0%,#9d8979 58%,rgba(216,206,195,.24) 100%); border-radius: 72px 0 0 18px; height: 112px; right: 0; top: 315px; width: 596px; }
.planning-cover-letter { color: rgba(255,255,255,.74); font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 88px; font-weight: 400; left: 106px; letter-spacing: .23em; line-height: 1; position: absolute; text-shadow: 0 1px 2px rgba(72,59,49,.18); top: 327px; z-index: 2; }
.planning-cover-graphic-logo { background: transparent; border-radius: 0; box-shadow: none; height: 145px; left: 50%; object-fit: contain; padding: 0; position: absolute; top: 80px; transform: translateX(-50%); width: 232px; z-index: 4; }
.ppf-cover .planning-cover-letter { color: rgba(255,255,255,.82); }
.planning-cover-graphic .planning-cover-title { top: 480px; }
.planning-cover-graphic .planning-cover-title > span { font-size: 18px; margin-bottom: 12px; }
.planning-cover-graphic .planning-cover-title h1 { font-size: 43px; line-height: 1.2; }
.planning-cover-graphic .planning-cover-title i { margin-bottom: 17px; margin-top: 24px; width: 76%; }
.planning-cover-graphic .planning-cover-title p { font-size: 11px; }
.planning-cover-graphic .planning-cover-client { background: linear-gradient(90deg,#f1ece7 0%,#f1ece7 77%,rgba(241,236,231,.3) 100%); border-radius: 16px 4px 16px 16px; bottom: 102px; grid-template-columns: 1fr; left: 64px; min-height: 104px; padding: 18px 21px; right: 64px; }
.planning-cover-graphic .planning-cover-client strong { font-size: 16px; }
.planning-cover-graphic .planning-cover-client small { font-size: 10px; }

.rom-method-flow { display: grid; gap: 12px; grid-template-rows: 148px 189px 211px 1fr; height: 790px; margin: 17px 51px 0; position: relative; z-index: 2; }
.rom-overview-page .rom-doc-stage-list { gap: 8px; }
.rom-overview-page .rom-doc-stage { min-height: 94px; }
.rom-method-chapter { border-bottom: 1px solid #d8cec3; display: grid; min-height: 0; padding: 13px 20px 14px 0; }
.rom-method-chapter:nth-child(even) { background: linear-gradient(90deg,rgba(243,240,237,.72) 0%,rgba(243,240,237,.72) 78%,rgba(243,240,237,0) 100%); border-bottom: 0; border-radius: 0 17px 17px 0; margin-left: -51px; padding-left: 51px; padding-right: 32px; }
.rom-method-chapter > header { align-items: center; display: grid; gap: 14px; grid-template-columns: 43px 1fr; }
.rom-method-chapter > header b, .rom-plan-chapter > header b, .rom-plan-next > header b { align-items: center; background: linear-gradient(145deg,#c7b6a7,#e5dcd4); border-radius: 12px 4px 12px 12px; color: #fff; display: flex; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; height: 42px; justify-content: center; width: 42px; }
.rom-method-chapter h2, .rom-plan-chapter h2, .rom-plan-next h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 14px; font-weight: 600; letter-spacing: .045em; margin: 0 0 4px; text-transform: uppercase; }
.rom-method-chapter header p, .rom-plan-chapter header p { color: #6f6760; font-size: 8.5px; line-height: 1.4; margin: 0; }
.rom-method-built { align-items: center; grid-template-columns: 330px 1fr; }
.rom-method-built > p { border-left: 1px solid #cfc3b9; font-size: 10.5px; line-height: 1.55; margin: 0; padding-left: 21px; }
.rom-method-adjust > div { display: grid; gap: 8px 22px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 10px 0 0 57px; }
.rom-method-adjust > div p { align-items: center; border-bottom: 1px solid #ded6cf; display: grid; gap: 10px; grid-template-columns: 28px 1fr; margin: 0; min-height: 44px; padding: 5px 0; }
.rom-method-adjust > div span { align-items: center; background: #fff; border: 1px solid #d8cec3; border-radius: 8px 2px 8px 8px; display: flex; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 8px; height: 26px; justify-content: center; width: 26px; }
.rom-method-adjust > div strong { font-size: 10.2px; font-weight: 600; }
.rom-method-pricing > div { display: grid; gap: 12px; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 13px 0 0 57px; }
.rom-method-pricing > div > div { border-left: 4px solid #cdbdaf; display: grid; gap: 4px; min-height: 98px; padding: 12px 9px 10px 14px; }
.rom-method-pricing > div span { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 10.5px; font-weight: 600; }
.rom-method-pricing > div small { color: #746b64; font-size: 7.5px; text-transform: uppercase; }
.rom-method-pricing > div strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12.5px; font-weight: 500; margin-top: 6px; }
.rom-material-clarification { align-items: center; background: linear-gradient(90deg,#d8cec3 0%,#e9e2dc 78%,rgba(243,240,237,.24) 100%); border: 0; border-radius: 17px 5px 17px 17px; grid-template-columns: 325px 1fr; margin: 0; min-height: 0; padding: 16px 23px 16px 13px; }
.rom-material-clarification > p { border-left: 1px solid rgba(113,101,91,.35); font-size: 10.5px; line-height: 1.55; margin: 0; padding-left: 21px; }

.rom-planning-flow-v2 { display: grid; gap: 12px; grid-template-rows: 125px 235px 126px 246px; margin: 17px 51px 0; position: relative; z-index: 2; }
.rom-plan-chapter { border-bottom: 1px solid #d8cec3; display: grid; grid-template-columns: 330px 1fr; padding: 12px 18px 13px 0; }
.rom-plan-chapter > header, .rom-plan-next > header { align-items: center; display: grid; gap: 14px; grid-template-columns: 43px 1fr; }
.rom-plan-chapter > p { border-left: 1px solid #cfc3b9; font-size: 10.5px; line-height: 1.55; margin: 0; padding-left: 21px; }
.rom-plan-exclusions { background: linear-gradient(90deg,rgba(243,240,237,.76) 0%,rgba(243,240,237,.76) 80%,rgba(243,240,237,0) 100%); border: 0; border-radius: 0 17px 17px 0; grid-template-columns: 300px 1fr; margin-left: -51px; padding-left: 51px; padding-right: 30px; }
.rom-plan-exclusions > div { border-left: 1px solid #cfc3b9; display: grid; padding-left: 22px; }
.rom-plan-exclusions > div p { align-items: start; border-bottom: 1px solid #ddd4cc; display: grid; font-size: 10px; gap: 10px; grid-template-columns: 7px 1fr; line-height: 1.4; margin: 0; padding: 8px 0; }
.rom-plan-exclusions > div p:last-child { border-bottom: 0; }
.rom-plan-exclusions i { background: #aa9888; border-radius: 50%; height: 6px; margin-top: 5px; width: 6px; }
.rom-plan-next { background: linear-gradient(90deg,#d4c7bb 0%,#e7dfd8 76%,rgba(243,240,237,.55) 100%); border-radius: 18px 5px 18px 18px; display: grid; grid-template-rows: auto 1fr; padding: 17px 20px 16px 14px; }
.rom-plan-next > header { align-items: start; }
.rom-plan-next > header p { font-size: 9.5px; line-height: 1.45; margin: 4px 0 0; }
.rom-plan-next > div { display: grid; gap: 12px; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 14px 0 0 57px; }
.rom-plan-next article { border-left: 1px solid rgba(89,77,68,.34); display: grid; gap: 4px; padding: 7px 10px 3px 13px; }
.rom-plan-next article span { color: #6d625a; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 8px; }
.rom-plan-next article strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; text-transform: uppercase; }
.rom-plan-next article small { font-size: 8.5px; line-height: 1.4; }
.rom-planning-page .rom-slogan { bottom: 57px; font-size: 10px; }

.fee-cost-page .fee-cost-intro { margin-bottom: 8px; margin-top: 7px; min-height: 56px; padding-bottom: 9px; padding-top: 9px; }
.fee-cost-ledger-head { margin-bottom: 5px; padding-bottom: 5px; }
.fee-cost-stages { display: flex; flex-direction: column; gap: 8px; grid-template-columns: none; grid-template-rows: none; height: auto; margin: 0 43px; }
.fee-cost-stage { display: grid; grid-template-columns: 236px 1fr; grid-template-rows: auto; height: auto; min-height: 0; width: 95%; }
.fee-cost-stage:nth-child(even) { align-self: flex-end; justify-self: auto; }
.fee-cost-stage > header { gap: 9px; grid-template-columns: 36px 37px 1fr; min-height: 100%; padding: 10px 13px 9px 10px; }
.fee-cost-stage > header > span { font-size: 13px; height: 34px; width: 34px; }
.fee-cost-stage > header img { height: 34px; width: 37px; }
.fee-cost-stage > header strong { font-size: 11px; }
.fee-cost-stage-main { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.fee-cost-trades { align-content: start; display: flex; flex: 1 1 auto; flex-direction: column; gap: 0; min-height: 0; padding: 4px 17px 2px; }
.fee-cost-trades > div { border-bottom: 1px solid rgba(222,213,205,.72); font-size: 9.3px; line-height: 1.15; min-height: 14px; padding: 1px 0; }
.fee-cost-trades > div:last-child { border-bottom-color: transparent; }
.fee-cost-trades strong { font-size: 9.3px; }
.fee-cost-trades .is-unquoted { color: #8b837d; }
.fee-cost-trades .is-unquoted strong { color: #776f69; font-weight: 500; }
.fee-cost-stage-total { align-items: center; align-self: flex-end; background: linear-gradient(90deg,#ece5df 0%,#d8cec3 100%); border-radius: 10px 0 0 0; display: flex; flex: 0 0 24px; height: 24px; justify-content: space-between; margin-top: auto; padding: 0 14px; text-transform: uppercase; width: 215px; }
.fee-cost-stage-total span { color: #675d55; font-size: 7px; letter-spacing: .1em; }
.fee-cost-stage-total strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 10.5px; font-weight: 600; }
.fee-cost-grand { bottom: 61px; min-height: 75px; }

/* Compact totals: lead with the project subtotal, then show tax and the
   inclusive total as two quieter, clearly labelled lines underneath. */
.fee-cost-grand.fee-price-stack, .fee-billing-totals.fee-price-stack { background: transparent; border: 0; border-radius: 0; display: grid; gap: 3px; grid-template-columns: 1fr; min-height: 0; overflow: visible; padding: 0; width: 340px; }
.fee-cost-grand.fee-price-stack { left: auto; }
.fee-billing-totals.fee-price-stack { margin-left: auto; }
.fee-price-stack > div { align-content: center; align-items: baseline; display: grid; gap: 16px; grid-template-columns: minmax(0,1fr) auto; line-height: 1.35; min-height: 0; padding: 0 12px; text-align: left; }
.fee-price-stack > div + div { border: 0; }
.fee-price-stack span { color: #706760; font-size: 10px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.fee-price-stack strong { color: #706760; font-family: "Century Gothic", "Avenir Next", "Trebuchet MS", sans-serif; font-size: 10px; font-weight: 400; letter-spacing: 0; margin: 0; text-align: right; white-space: nowrap; }
.fee-price-stack > div:first-child { background: linear-gradient(90deg,#f7f4f1 0%,#eee8e2 100%); border: 1px solid #e2d9d1; border-radius: 7px; line-height: 1.2; margin-bottom: 2px; padding: 6px 12px; }
.fee-price-stack > div:first-child span { color: #514a45; font-weight: 600; }
.fee-price-stack > div:first-child strong { color: #302b28; font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 18px; font-weight: 600; }
.fee-price-stack > div:last-child span, .fee-price-stack > div:last-child strong { color: #403b38; font-size: 12px; }
.fee-phase-overview-intro { color: #5f554e; font-size: 11px; line-height: 1.55; margin: 20px 43px; position: relative; z-index: 2; }
.fee-phase-overview-intro p { margin: 0 0 8px; }
.fee-phase-price-list { display: grid; gap: 15px; margin: 0 43px; position: relative; z-index: 2; }
.fee-phase-price-card { background: rgba(255,255,255,.92); border: 1px solid #e2d9d1; border-radius: 17px 5px 17px 17px; overflow: hidden; }
.fee-phase-price-card > header { align-items: center; background: linear-gradient(90deg,#e5dcd3,#f2eeea); display: flex; gap: 20px; justify-content: space-between; padding: 12px 17px; }
.fee-phase-price-card h2 { color: #453b33; font-family: "Cinzel Oakburn", Cinzel, Georgia, serif; font-size: 16px; font-weight: 400; line-height: 1.35; margin: 0; overflow-wrap: anywhere; }
.fee-phase-price-card > header > div { flex-shrink: 0; text-align: right; }
.fee-phase-price-card > header span { color: #756b63; display: block; font-size: 9px; margin-bottom: 3px; }
.fee-phase-price-card > header strong { color: #453b33; font-family: "Cinzel Oakburn", Cinzel, Georgia, serif; font-size: 18px; font-weight: 500; }
.fee-phase-price-detail { display: grid; gap: 9px 24px; grid-template-columns: 1fr 1fr; padding: 12px 17px; }
.fee-phase-price-detail > span { align-items: baseline; color: #766b64; display: flex; font-size: 9px; gap: 10px; justify-content: space-between; line-height: 1.4; }
.fee-phase-price-detail strong { color: #514a45; font-size: 10px; font-weight: 500; white-space: nowrap; }
.fee-phase-overview-continued { bottom: 90px; color: #776b63; font-size: 11px; left: 43px; position: absolute; }
.fee-cover-phase { background: #f1eae3; border-radius: 12px 4px 12px 12px; color: #51463d; font-family: "Cinzel Oakburn", Cinzel, Georgia, serif; font-size: 13px; letter-spacing: .025em; line-height: 1.35; margin: 15px auto 0; max-width: 540px; padding: 8px 16px; overflow-wrap: anywhere; }
.fee-cover-page.has-project-phase .fee-cover-copy { top: 620px; }

@media (max-width: 900px) {
  .planning-range-card { grid-template-columns: 1fr; }
  .rom-stage-editor article { grid-template-columns: 42px 1fr; }
  .rom-stage-editor article > label { grid-column: 2; }
  .planning-editor-grid, .ppf-question-grid { grid-template-columns: 1fr; }
  .ppf-type-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .planning-document { margin-left: -18px; margin-right: -18px; max-width: none; overflow-x: auto; }
  .fee-floating-pager { bottom: 16px; grid-template-columns: 42px auto 42px; grid-template-rows: 42px; left: 50%; right: auto; top: auto; transform: translateX(-50%); }
}

@media print {
  @page planningDoc { size: letter portrait; margin: 0; }
  .planning-heading, .planning-editor, .fee-floating-pager { display: none !important; }
  .planning-document { display: block; margin: 0; max-width: none; overflow: visible; }
  .planning-document-page { border: 0; box-shadow: none; break-after: page; height: 11in; margin: 0; width: 8.5in; }
  .planning-document-page:last-child { break-after: auto; }
  .shopping-client-workspace input { color: #000; }
  .shopping-client-check { appearance: none; }
}

.metric-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 18px;
}

.metric-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 11px;
  padding: 16px;
}

.metric-card span,
.metric-card strong,
.metric-card small {
  display: block;
}

.metric-card span {
  color: var(--ink-3);
  font-size: 0.75rem;
  margin-bottom: 7px;
}

.metric-card strong {
  font-size: 1.25rem;
  letter-spacing: -0.03em;
}

.metric-card small {
  color: var(--ink-3);
  font-size: 0.75rem;
  margin-top: 5px;
}

.review-section + .review-section {
  border-top: 1px solid var(--line);
  margin-top: 17px;
  padding-top: 17px;
}

.review-lines {
  display: grid;
  gap: 9px;
}

.review-line {
  align-items: center;
  display: grid;
  font-size: 0.78rem;
  gap: 10px;
  grid-template-columns: minmax(120px, 1fr) 100px 110px;
}

.bar-track {
  background: #eeeae3;
  border-radius: 999px;
  height: 7px;
  overflow: hidden;
}

.bar-fill {
  background: var(--gold);
  border-radius: inherit;
  display: block;
  height: 100%;
}

.review-line strong {
  text-align: right;
}

.billing-list {
  display: grid;
  gap: 8px;
}

.billing-plan-switch { display: flex; gap: 8px; margin: 16px 0 12px; }
.billing-plan-switch .btn { flex: 1; }

.billing-row {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  font-size: 0.76rem;
  gap: 10px;
  grid-template-columns: 1fr 54px 92px;
  padding-bottom: 8px;
}

.billing-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.billing-row span:nth-child(2),
.billing-row strong {
  text-align: right;
}

.grand-total {
  background: var(--nav);
  border-radius: 11px;
  color: #fff;
  margin-top: 16px;
  padding: 18px;
}

.grand-total-row {
  align-items: center;
  color: #c5cdd3;
  display: flex;
  font-size: 0.76rem;
  justify-content: space-between;
  margin-bottom: 9px;
}

.grand-total-row.final {
  border-top: 1px solid #3d4952;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 800;
  margin-bottom: 0;
  margin-top: 12px;
  padding-top: 13px;
}

.project-card,
.document-card {
  padding: 18px;
}

.project-card {
  cursor: pointer;
  text-align: left;
  transition: transform 0.16s ease, box-shadow 0.16s ease;
  width: 100%;
}

.project-card:hover {
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}

.project-card-head {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.project-card h2,
.document-card h2 {
  font-size: 0.98rem;
  margin: 0 0 5px;
}

.project-card p,
.document-card p {
  color: var(--ink-3);
  font-size: 0.75rem;
  line-height: 1.45;
  margin: 0;
}

.project-meta {
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  margin-top: 17px;
  padding-top: 13px;
}

.project-meta span,
.project-meta strong {
  display: block;
}

.project-meta span {
  color: var(--ink-3);
  font-size: 0.75rem;
  margin-bottom: 4px;
}

.project-meta strong {
  font-size: 0.8rem;
}

.document-icon {
  align-items: center;
  background: var(--gold-soft);
  border-radius: 10px;
  color: var(--gold-dark);
  display: flex;
  font-size: 1.2rem;
  height: 46px;
  justify-content: center;
  margin-bottom: 16px;
  width: 46px;
}

.document-card .btn {
  margin-top: 17px;
  width: 100%;
}

.crew-document-card {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  padding: 22px;
  margin-top: 24px;
}
.crew-document-card > div { flex: 1 1 340px; }
.crew-document-card h2 { margin: 0 0 8px; font-size: 1.1rem; }
.crew-document-card p { margin: 0; font-size: .95rem; line-height: 1.5; color: var(--ink-3); }
.crew-document-card small { display: block; margin-top: 8px; font-size: .85rem; }
.crew-document-card .crew-export-status { flex-basis: 100%; }
.crew-document-card .crew-export-status:empty { display: none; }
.crew-export-status a { color: var(--green-dark, #315843); text-decoration: underline; }

.catalog-filters {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(240px, 1fr) 190px;
  margin-bottom: 15px;
}

.catalog-tabs {
  display: flex;
  gap: 6px;
  margin: 16px 0;
  padding: 6px;
  background: var(--nav);
  border-radius: 12px;
}

.catalog-tabs button {
  background: transparent;
  border: 0;
  border-radius: 8px;
  color: #fff;
  font-size: .85rem;
  padding: 12px 17px;
}

.catalog-tabs button.active {
  background: var(--gold);
  color: #14212a;
  font-weight: 700;
}

.catalog-source-note,
.catalog-editor-context {
  color: var(--ink-3);
  font-size: .84rem;
  line-height: 1.5;
  margin: 0 0 14px;
}

.catalog-source,
.catalog-description {
  color: var(--ink-3);
  display: block;
  font-size: .78rem;
  line-height: 1.45;
  margin-top: 4px;
  max-width: 300px;
}

.catalog-unpriced,
.catalog-no-photo {
  color: var(--ink-3);
  font-style: italic;
}

.catalog-table {
  min-width: 920px;
}

.catalog-table td strong {
  line-height: 1.4;
}

.catalog-material-thumb {
  background: transparent;
  display: block;
  height: 56px;
  object-fit: contain;
  width: 74px;
}

.catalog-row-actions {
  min-width: 125px;
}

.catalog-row-actions .btn {
  margin: 3px 0;
  width: 100%;
}

.catalog-pagination {
  align-items: center;
  color: var(--ink-3);
  display: flex;
  font-size: .82rem;
  gap: 12px;
  justify-content: space-between;
  padding-top: 15px;
}

.catalog-pagination > div {
  display: flex;
  gap: 8px;
}

.scope-catalog-only {
  border-top: 1px solid var(--line);
  margin-top: 22px;
  padding-top: 16px;
}

.scope-catalog-only h3 {
  font-size: .95rem;
  margin: 0 0 6px;
}

.scope-catalog-only-row {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(120px, auto) auto;
  margin-top: 8px;
  padding: 11px;
}

.scope-catalog-only-row small {
  color: var(--ink-3);
  display: block;
  margin-top: 4px;
}

.scope-catalog-quantity { display: grid; font-size: .72rem; font-weight: 700; gap: 4px; min-width: 180px; }
.scope-catalog-quantity .editable-number { width: 100%; }

.setting-group {
  padding: 18px;
}

.setting-group h2 {
  font-size: 0.96rem;
  margin: 0 0 5px;
}

.setting-group > p {
  color: var(--ink-3);
  font-size: 0.75rem;
  line-height: 1.45;
  margin: 0 0 16px;
}

.setting-list {
  display: grid;
  gap: 13px;
}

.setting-row {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.setting-row label strong,
.setting-row label span {
  display: block;
}

.setting-row label strong {
  font-size: 0.78rem;
}

.setting-row label span {
  color: var(--ink-3);
  font-size: 0.75rem;
  margin-top: 3px;
}

.setting-row input,
.setting-row select {
  max-width: 115px;
}

.switch {
  background: #d4d8db;
  border: 0;
  border-radius: 999px;
  height: 26px;
  padding: 3px;
  position: relative;
  width: 46px;
}

.switch::after {
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,.22);
  content: "";
  display: block;
  height: 20px;
  transition: transform .15s ease;
  width: 20px;
}

.switch.on {
  background: var(--green);
}

.switch.on::after {
  transform: translateX(20px);
}

.empty-state {
  color: var(--ink-3);
  font-size: 0.82rem;
  padding: 28px 16px;
  text-align: center;
}

.modal-backdrop {
  align-items: center;
  background: rgba(12, 18, 23, 0.55);
  bottom: 0;
  display: flex;
  justify-content: center;
  left: 0;
  padding: 18px;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 60;
}

.modal-backdrop[hidden] {
  display: none;
}

.modal {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 26px 70px rgba(0,0,0,.22);
  max-width: 560px;
  overflow: hidden;
  width: 100%;
}

.modal-backdrop[data-catalog-material-id] .modal,
.modal-backdrop[data-catalog-scope-id] .modal {
  max-width: 740px;
}

.catalog-editor-grid {
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.catalog-editor-grid label,
.catalog-editor-wide,
.catalog-photo-option label,
.catalog-add-photo label {
  color: var(--ink-2);
  display: grid;
  font-size: .83rem;
  font-weight: 600;
  gap: 5px;
}

.catalog-editor-wide {
  margin: 13px 0;
}

.catalog-required-switch {
  align-items: center;
  display: flex;
  gap: 10px;
  margin: 12px 0;
}

.catalog-required-switch input {
  width: auto;
}

.catalog-grade-groups {
  display: grid;
  gap: 9px;
  margin: 17px 0;
}

.catalog-grade-group {
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}

.catalog-grade-group summary {
  background: var(--nav);
  color: #fff;
  cursor: pointer;
  font-weight: 600;
  padding: 12px 15px;
}

.catalog-grade-group > :not(summary) {
  margin: 13px;
}

.catalog-photo-option {
  align-items: start;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 14px;
  grid-template-columns: 90px minmax(0, 1fr);
  padding-bottom: 12px;
}

.catalog-photo-option img {
  background: transparent;
  height: 90px;
  object-fit: contain;
  width: 90px;
}

.catalog-photo-option > div {
  display: grid;
  gap: 10px;
}

.catalog-photo-option input[type="file"],
.catalog-add-photo input[type="file"] {
  font-size: .75rem;
}

.catalog-add-photo {
  background: var(--surface-2);
  border-radius: 9px;
  display: grid;
  gap: 10px;
  padding: 13px;
}

.modal-head,
.modal-foot {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 16px 18px;
}

.modal-head {
  border-bottom: 1px solid var(--line);
}

.modal-head h2 {
  font-size: 1rem;
  margin: 0;
}

.modal-body {
  max-height: 65vh;
  overflow: auto;
  padding: 18px;
}

.modal-foot {
  border-top: 1px solid var(--line);
  gap: 10px;
  justify-content: flex-end;
}

.catalog-picker-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.catalog-picker-row {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 11px;
}

.catalog-picker-row strong,
.catalog-picker-row span {
  display: block;
}

.catalog-picker-row strong {
  font-size: 0.78rem;
}

.catalog-picker-row span {
  color: var(--ink-3);
  font-size: 0.75rem;
  margin-top: 3px;
}

.icon-button {
  align-items: center;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--ink-3);
  display: inline-flex;
  height: 32px;
  justify-content: center;
  width: 32px;
}

.toast-region {
  bottom: 22px;
  display: grid;
  gap: 8px;
  position: fixed;
  right: 24px;
  z-index: 80;
}

.toast {
  animation: toast-in .18s ease-out;
  background: var(--nav);
  border: 1px solid #34434e;
  border-radius: 9px;
  box-shadow: var(--shadow);
  color: #fff;
  font-size: 0.78rem;
  max-width: 340px;
  padding: 12px 14px;
}

@keyframes toast-in {
  from { opacity: 0; transform: translateY(8px); }
}

@media (max-width: 1180px) {
  .workspace-grid {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  .workspace-grid > .panel:last-child {
    grid-column: 1 / -1;
  }

  .summary-stack {
    grid-template-columns: 220px minmax(0, 1fr) 260px;
  }

  .project-grid,
  .document-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 920px) {
  :root { --sidebar: 216px; }

  .view-root,
  .topbar {
    padding-left: 22px;
    padding-right: 22px;
  }

  .workspace-grid,
  .scope-layout,
  .review-grid {
    grid-template-columns: 1fr;
  }


  .workspace-grid > .panel:last-child {
    grid-column: auto;
  }

  .summary-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .material-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-filters {
    grid-template-columns: 1fr 1fr;
  }

  .catalog-filters .search-wrap {
    grid-column: 1 / -1;
    max-width: none;
  }
}

@media (max-width: 680px) {
  .catalog-tabs button { flex: 1; font-size: .76rem; padding: 10px 6px; }
  .catalog-pagination { align-items: flex-start; flex-direction: column; }
  .catalog-editor-grid { grid-template-columns: 1fr; }
  .catalog-photo-option { grid-template-columns: 72px minmax(0, 1fr); }
  .catalog-photo-option img { height: 72px; width: 72px; }
  .catalog-filters { grid-template-columns: 1fr; }
  .catalog-filters .search-wrap { grid-column: 1; }

  body {
    padding-bottom: 68px;
  }

  .sidebar {
    box-shadow: 15px 0 40px rgba(0,0,0,.22);
    transform: translateX(-105%);
    transition: transform .2s ease;
    width: min(84vw, 290px);
  }

  .sidebar.open {
    transform: translateX(0);
  }

  .main-shell {
    margin-left: 0;
  }

  .topbar {
    height: 64px;
    padding: 0 15px;
  }

  .mobile-menu {
    background: transparent;
    border: 0;
    color: var(--ink);
    display: block;
    font-size: 1.2rem;
    margin-right: 8px;
    padding: 7px;
  }

  .topbar-title {
    margin-right: auto;
  }

  .topbar-title .eyebrow,
  .prototype-badge {
    display: none;
  }

  .topbar-title strong {
    font-size: 0.9rem;
  }

  .connectivity-pill {
    min-height: 30px;
    padding: 0 9px;
  }

  .view-root {
    padding: 15px 13px 32px;
  }

  .quote-head {
    align-items: flex-start;
    padding: 15px;
  }

  .quote-head .heading-actions .btn-secondary {
    display: none;
  }

  .quote-address h1 {
    font-size: 1.05rem;
  }

  .project-glyph {
    height: 36px;
    width: 36px;
  }

  .stepbar {
    position: sticky;
    top: 74px;
    z-index: 12;
  }

  .step-button {
    font-size: 0.75rem;
    gap: 4px;
    min-height: 45px;
  }

  .step-number {
    height: 20px;
    width: 20px;
  }

  .panel-body {
    padding: 14px;
  }

  .input-grid,
  .takeoff-grid,
  .takeoff-helpers,
  .takeoff-sheet-layout,
  .calculated-grid,
  .metric-grid,
  .project-grid,
  .document-grid,
  .settings-grid,
  .material-grid,
  .summary-stack {
    grid-template-columns: 1fr;
  }

  .scope-room-control { max-width: none; }
  .scope-accordion-panel { margin-left: 8px; }
  .scope-accordion-trigger { gap: 6px; padding-left: 9px; padding-right: 9px; }
  .scope-accordion-trigger small { display: none; }
  .scope-check-row { grid-template-columns: minmax(0, 1fr) auto; }
  .scope-check-unit { grid-column: 2; grid-row: 1; }
  .scope-hourly-rate { grid-column: 2; grid-row: 1; }
  .scope-hourly-rate label { display: none; }
  .scope-check-hint, .scope-check-quantity { grid-column: 1 / -1; justify-self: start; margin-left: 27px; }
  .scope-check-unit { max-width: 170px; }
  .scope-line-fields { padding-left: 27px; }
  .scope-instance-list { padding-left: 0; }
  .scope-instance-basics { grid-template-columns: 1fr; }
  .scope-instance-header { align-items: flex-start; }
  .scope-instance-actions { width: 100%; }
  .scope-catalog-only-row { grid-template-columns: 1fr; }
  .scope-check-quantity { align-items: flex-start; flex-direction: row; gap: 8px; }

  .room-list {
    display: flex;
    overflow-x: auto;
    padding: 9px;
  }

  .room-button {
    flex: 0 0 155px;
  }

  .add-room {
    border-left: 1px solid var(--line);
    border-top: 0;
    min-width: 130px;
  }

  .page-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .page-heading h1 {
    font-size: 1.38rem;
  }

  .heading-actions .btn {
    flex: 1;
  }

  .table-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .catalog-filters {
    grid-template-columns: 1fr;
  }

  .catalog-filters .search-wrap {
    grid-column: auto;
  }

  .review-line {
    grid-template-columns: 110px minmax(70px, 1fr) 88px;
  }

  .mobile-nav {
    background: #fff;
    border-top: 1px solid var(--line);
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    left: 0;
    padding-bottom: env(safe-area-inset-bottom);
    position: fixed;
    right: 0;
    z-index: 45;
  }

  .mobile-nav button {
    align-items: center;
    background: #fff;
    border: 0;
    color: var(--ink-3);
    display: flex;
    flex-direction: column;
    font-size: 0.66rem;
    font-weight: 700;
    gap: 2px;
    min-height: 58px;
    padding: 8px 2px 6px;
  }

  .mobile-nav button span {
    color: var(--gold-dark);
    font-size: 1rem;
  }

  .mobile-nav button.active {
    color: var(--ink);
  }

  .toast-region {
    bottom: 78px;
    left: 12px;
    right: 12px;
  }

  .toast {
    max-width: none;
  }
}

/* Cabinet specification editor: one coordinated set of choices per cabinet group. */
.cabinet-specifications { margin-bottom: 22px; }
.cabinet-spec-card { margin: 0; padding: 0; min-width: 0; }
.cabinet-spec-card .cabinet-component-top { margin: 18px 0; }
.cabinet-spec-card .cabinet-choice-grid strong { display: block; font-size: .875rem; margin-top: 8px; }
.cabinet-group-heading { align-items: flex-start; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 18px; }
.cabinet-group-heading h3 { font-size: 1.3rem; margin: 10px 0 4px; }
.cabinet-group-heading p { color: var(--ink-3); margin: 0; }
.cabinet-group-heading > strong { color: var(--gold-dark); font-size: .95rem; }
.cabinet-components { display: grid; gap: 16px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.cabinet-component { border: 1px solid var(--line); border-radius: 12px; min-width: 0; padding: 16px; background: #faf9f6; }
.cabinet-component-top { display: flex; align-items: center; gap: 16px; min-height: 102px; }
.cabinet-component-top > img, .cabinet-no-picture { background: #fff; border: 1px solid var(--line); border-radius: 8px; flex: 0 0 100px; height: 100px; width: 100px; object-fit: contain; }
.cabinet-no-picture { display: grid; place-items: center; padding: 10px; font-size: .875rem; color: var(--ink-3); }
.cabinet-component h4 { font-size: 1rem; margin: 0 0 8px; }
.cabinet-component-top strong { display: block; font-size: .95rem; }
.cabinet-component-top small { display: block; font-size: .875rem; color: var(--ink-3); margin-top: 6px; }
.cabinet-component .picture-disclosure { margin-top: 14px; background: #fff; }
.cabinet-finish-note, .cabinet-search-label, .cabinet-catalog-filters label, .cabinet-catalog-editor > label { display: grid; gap: 7px; font-size: .875rem; font-weight: 600; margin: 15px 0; }
.cabinet-finish-note input, .cabinet-search-label input, .cabinet-catalog-filters input, .cabinet-catalog-filters select, .cabinet-catalog-editor input, .cabinet-assignment-room input, .cabinet-assignment-room select, .cabinet-rate-list input { background: #fff; border: 1px solid var(--line-strong); border-radius: 7px; font: inherit; min-height: 42px; padding: 9px 11px; min-width: 0; width: 100%; }
.cabinet-choice-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill,minmax(110px,1fr)); max-height: 430px; overflow-y: auto; padding: 3px; }
.cabinet-choice-grid button { background: #fff; min-width: 0; padding: 8px; }
.cabinet-choice-grid img { height: 112px; width: 100%; object-fit: contain; }
.cabinet-choice-grid span { display: block; font-size: .875rem; line-height: 1.4; overflow-wrap: anywhere; }
.cabinet-rates { border-top: 1px solid var(--line); padding-top: 12px; }
.cabinet-rates summary, .cabinet-assignments summary { cursor: pointer; font-size: .9rem; font-weight: 700; padding: 6px 0; }
.cabinet-rate-list { display: grid; gap: 12px; margin: 15px 0; }
.cabinet-rate-list label { display: grid; grid-template-columns: minmax(0,1fr) 115px; align-items: center; gap: 12px; font-size: .875rem; }
.cabinet-rate-list .input-wrap { min-width: 0; }
.cabinet-rate-list small, .cabinet-assignment-room small { display: block; color: var(--ink-3); font-size: .8rem; margin-top: 4px; }
.cabinet-rates .btn { margin: 6px 4px 0 0; white-space: normal; }
.cabinet-status { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; margin-top: 16px; }
.cabinet-group-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.cabinet-assignments { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 10px; }
.cabinet-assignment-room { display: grid; gap: 12px; margin: 18px 0; }
.cabinet-assignment-room > label { display: grid; gap: 10px; grid-template-columns: minmax(0,1fr) minmax(160px,1fr); align-items: center; font-size: .9rem; }
.cabinet-catalog-filters { display: grid; gap: 20px; grid-template-columns: 1fr 2fr; }
.cabinet-catalog-layout { align-items: start; display: grid; gap: 26px; grid-template-columns: minmax(260px,1fr) minmax(320px,1.2fr); }
.cabinet-catalog-layout > .cabinet-choice-grid { max-height: 780px; }
.cabinet-catalog-editor { border: 1px solid var(--line); border-radius: 12px; padding: 20px; }
.cabinet-catalog-editor h2 { overflow-wrap: anywhere; }
.cabinet-selected-pricing { background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.cabinet-selected-pricing > strong { display: block; margin-top: 12px; font-size: .9rem; }
.cabinet-selected-pricing .cabinet-percent-input { grid-template-columns: minmax(0,1fr) 120px; }
.cabinet-catalog-saving { margin: 22px 0 0; }
.cabinet-all-groups > summary { cursor: pointer; font-size: 1rem; font-weight: 650; padding: 8px 0; }
.cabinet-catalog-layout .cabinet-choice-grid > button > strong { display: block; font-size: .875rem; margin-top: 8px; }
.cabinet-catalog-photo { display: block; width: 170px; height: 170px; object-fit: contain; margin: 0 auto 16px; }
.cabinet-document-warning { border: 1px solid #ab7950; color: #684120; font-size: 10px; padding: 6px 10px; margin: 0 0 8px; }
.cabinet-percent-table { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; margin: 8px 0 18px; }
.cabinet-percent-family { align-items: center; display: grid; gap: 18px; grid-template-columns: minmax(0,1fr) 150px 100px; padding: 16px 20px; background: #faf9f6; }
.cabinet-percent-family + .cabinet-percent-family { border-top: 1px solid var(--line); }
.cabinet-percent-family strong { font-size: 1rem; }
.cabinet-percent-family small { display: block; color: var(--ink-3); font-size: .875rem; margin-top: 5px; }
.cabinet-percent-input { display: grid; align-items: center; gap: 14px; grid-template-columns: minmax(0,1fr) 150px; font-size: .9rem; font-weight: 600; margin: 14px 0; }
.cabinet-percent-family .input-wrap, .cabinet-percent-input .input-wrap { min-width: 0; }
.cabinet-percent-family input, .cabinet-percent-input input { width: 100%; min-width: 0; padding: 10px; font: inherit; }
.cabinet-multiplier { text-align: right; font-size: .9rem; font-weight: 600; color: var(--ink-3); }
.cabinet-percent-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cabinet-percent-result { font-size: .9rem; font-weight: 600; }
.cabinet-choice-grid small { display: block; font-size: .8rem; color: var(--ink-3); margin-top: 5px; overflow-wrap: anywhere; }
@media (max-width: 600px) { .cabinet-percent-family { grid-template-columns: minmax(0,1fr) 110px; padding: 14px; gap: 10px; } .cabinet-multiplier { grid-column: 2; } .cabinet-percent-input { grid-template-columns: minmax(0,1fr) 110px; } }
@media (max-width: 1000px) { .cabinet-components, .cabinet-catalog-layout { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .cabinet-group-heading { display: block; } .cabinet-group-heading > strong { display: block; margin-top: 12px; } .cabinet-catalog-filters, .cabinet-assignment-room > label { grid-template-columns: 1fr; } .cabinet-component-top > img { width: 80px; height: 80px; flex-basis: 80px; } }

.cabinet-front-area { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 12px; }
.cabinet-front-area summary { cursor: pointer; font-size: .9rem; font-weight: 600; }
.cabinet-front-area summary span { color: var(--ink-3); font-weight: 400; margin-left: 10px; }
.cabinet-front-area .cabinet-percent-input small { display: block; font-weight: 400; margin-top: 5px; color: var(--ink-3); }

/* v101: retain the original ROM layout; only the ~6.5pt copy becomes 7.5pt. */
.rom-document .rom-doc-stage p,
.rom-document .rom-doc-range p,
.rom-document .rom-method-chapter header p,
.rom-document .rom-plan-chapter header p,
.rom-document .rom-plan-next article small { font-size: 10px; }

.rom-photo-editor { padding: 22px; }
.rom-photo-editor > h2 { font-size: 18px; margin: 0 0 8px; }
.rom-photo-editor > p { color: var(--ink-3); font-size: 14px; line-height: 1.5; margin: 0 0 18px; }
.rom-photo-upload-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.rom-photo-upload-card { min-width: 0; }
.rom-photo-upload-card h3 { font-size: 16px; margin: 0 0 10px; }
.rom-photo-upload-preview { align-items: center; background: #f7f5f2; border: 1px solid var(--line); border-radius: 12px; display: flex; height: 220px; justify-content: center; overflow: hidden; }
.rom-photo-upload-preview img { height: 100%; object-fit: contain; width: 100%; }
.rom-photo-upload-preview > span { color: var(--ink-3); font-size: 14px; padding: 24px; text-align: center; }
.rom-photo-upload-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.rom-photo-upload-actions label { cursor: pointer; overflow: hidden; position: relative; }
.rom-photo-upload-actions label:focus-within { outline: 2px solid var(--ink); outline-offset: 3px; }
.rom-photo-upload-actions input { cursor: pointer; height: 100%; inset: 0; opacity: 0; position: absolute; width: 100%; }
.rom-photo-upload-actions label:has(input:disabled) { cursor: wait; opacity: .65; }
.rom-photo-editor > .rom-photo-help { margin: 16px 0 0; }
.rom-photo-document { display: flex; flex-direction: column; gap: 18px; margin: 20px 51px 0; }
.rom-photo-figure { margin: 0; }
.rom-photo-figure figcaption { align-items: center; display: flex; gap: 12px; margin-bottom: 10px; }
.rom-photo-figure figcaption > span { align-items: center; background: linear-gradient(145deg,#c7b6a7,#e5dcd4); border-radius: 10px 3px 10px 10px; color: #fff; display: flex; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; height: 32px; justify-content: center; width: 32px; }
.rom-photo-figure h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 14px; font-weight: 600; letter-spacing: .04em; margin: 0; text-transform: uppercase; }
.rom-photo-frame { align-items: center; background: #f8f6f3; border: 1px solid #e0d8d1; border-radius: 14px 4px 14px 14px; display: flex; height: 320px; justify-content: center; overflow: hidden; padding: 8px; }
.rom-photo-frame img { display: block; height: 100%; object-fit: contain; width: 100%; }
.rom-photo-frame p { font-size: 12px; padding: 24px; text-align: center; }
.rom-photo-document-single .rom-photo-frame { height: 670px; }
.rom-concept-caption { color: #625b55; font-size: 10px; line-height: 1.45; margin: 0; }
@media (max-width: 700px) { .rom-photo-upload-grid { grid-template-columns: 1fr; } }

/* Contract and proposal signing: shared document palette and fixed A4 paper. */
.contract-cover-copy h1 { font-size: 32px; letter-spacing: .16em; max-width: 650px; }
.contract-page-content { position: relative; z-index: 2; margin: 25px 48px 0; font-size: 13px; line-height: 1.5; }
.contract-page-content > p { margin: 0 0 14px; }
.contract-page-content h2 { font-family: "Cinzel Oakburn", Cinzel, serif; font-size: 16px; font-weight: 500; letter-spacing: .025em; margin: 20px 0 10px; }
.contract-page-content .contract-lead { font-size: 14px; line-height: 1.6; }
.contract-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; margin: 20px 0; }
.contract-detail-grid > div { border-bottom: 1px solid #e4ddd6; padding-bottom: 8px; min-width: 0; }
.contract-detail-grid dt { font-size: 9px; text-transform: uppercase; letter-spacing: .06em; color: #71665b; }
.contract-detail-grid dd { margin: 4px 0 0; font-size: 13px; overflow-wrap: anywhere; }
.contract-table { width: 100%; border-collapse: collapse; margin: 10px 0 14px; font-size: 12px; }
.contract-table th { background: #f1ece6; font-size: 10px; text-align: left; font-weight: 600; }
.contract-table td, .contract-table th { border-bottom: 1px solid #e5ded6; padding: 9px 11px; }
.contract-table td:last-child, .contract-table th:last-child { text-align: right; }
.contract-table .contract-total { font-weight: 700; background: #f4f0eb; }
.contract-callout { border-left: 3px solid #b49976; background: #f7f4ef; padding: 13px 17px; margin: 17px 0; }
.contract-callout p { margin: 5px 0 0; }
.contract-attachments { white-space: pre-wrap; overflow-wrap: anywhere; }
.contract-clause { margin: 0 0 19px; }
.contract-clause h2 { display: flex; gap: 13px; align-items: center; font-size: 15px; margin: 0 0 9px; padding: 8px 13px; background: linear-gradient(105deg,rgba(238,231,224,.88),rgba(247,244,241,.74)); border: 1px solid rgba(205,192,180,.65); border-radius: 12px 4px 12px 12px; break-after: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.contract-clause h2 span { color: #9f825d; flex: 0 0 24px; font-size: 18px; }
.contract-clause p { margin: 0 0 10px; }
.contract-terms-page .contract-page-content { font-size: 12.6px; line-height: 1.46; }
.contract-page-number { position: absolute; bottom: 57px; right: 48px; color: #746a60; font-size: 9px; }
.document-signers { display: grid; gap: 16px; margin: 18px 0; }
.document-signer { border: 1px solid #d6cbbf; padding: 12px 15px; border-radius: 4px; }
.document-signer h3 { margin: 0 0 10px; color: #5e4c36; font-size: 13px; font-weight: 600; }
.document-signer label { display: block; color: #71665b; font-size: 9px; }
.document-signer-details { display: grid; grid-template-columns: 1.7fr 1fr; gap: 18px; margin-bottom: 8px; }
.pdf-signature-field { display: block; height: 29px; border-bottom: 1px solid #aa9986; color: #28231e; font-size: 13px; padding: 5px 2px; }
.pdf-signature-field.is-signature { height: 42px; }
.pdf-signature-field.is-applied-signature { height: 52px; padding: 2px 0; }
.is-applied-signature img { display: block; width: 200px; max-width: 100%; height: 46px; object-fit: contain; object-position: left center; }
.contract-page-content .contract-signing-note { font-size: 10.5px; line-height: 1.5; color: #70675f; }
.fee-approval-content { margin-top: 32px; }
.contract-editor { padding: 18px 22px; margin-bottom: 20px; }
.contract-editor summary { cursor: pointer; font-weight: 650; }
.contract-editor > p { font-size: 13px; color: var(--ink-3); margin: 14px 0; }
.contract-editor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.contract-editor-grid label { display: grid; gap: 6px; font-size: 12px; color: var(--ink-3); }
.contract-editor-grid input, .contract-editor-grid select, .contract-editor-grid textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 6px; padding: 9px; background: white; color: var(--ink); font: inherit; }
.contract-editor-wide { grid-column: 1 / -1; }
@media(max-width: 850px) { .contract-editor-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width: 550px) { .contract-editor-grid { grid-template-columns: 1fr; } }
@media print {
  .contract-editor { display: none !important; }
  body[data-print-document="contract"] .client-package-document > :not([data-client-document="contract"]) { display: none !important; }
}
.signable-download-link { color: #73532c; font-weight: 700; margin-left: 10px; text-decoration: underline; }

/* Per-item reserves stay outside the paper; only their client explanation prints. */
.summary-page-layout.is-scope .summary-override-rail { flex-basis: 280px; }
.summary-row-actions { display: flex; gap: 6px; left: 0; position: absolute; top: 0; transform: translateY(-50%); visibility: hidden; }
.summary-row-actions .summary-override-button { flex: 0 0 104px; position: static; transform: none; visibility: inherit; }
.summary-row-actions .summary-contingency-button { flex-basis: 130px; width: 130px; }
.summary-contingency-badge { flex-shrink: 0; font-size: .61rem; margin-left: 0; text-transform: uppercase; }
.summary-scope-row:has(.summary-contingency-badge) { align-items: start; }
.summary-scope-allowance:has(.summary-contingency-badge) { align-content: start; display: grid; grid-template-columns: 112px; grid-template-rows: 19px auto; justify-content: end; justify-items: end; }
.summary-scope-allowance .summary-contingency-badge { grid-row: 2; justify-content: center; max-width: none; min-width: 244px; padding: 3px 8px; text-align: center; white-space: nowrap; width: max-content; }
.summary-trade-contingency-button { width: 200px; }
.summary-trade-contingency-band { -webkit-print-color-adjust: exact; background: #f1e5cb; border: 1px solid #d9c49a; border-radius: 7px; color: #59432f; margin: 2px -48px 7px 0; padding: 6px 10px; print-color-adjust: exact; }
.summary-trade-contingency-band > strong { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .025em; line-height: 1.3; text-transform: uppercase; }
.summary-trade-contingency-band > small { display: block; font-size: 9px; line-height: 1.35; margin-top: 2px; }
.fee-billing-summary.has-contingency { align-items: start; column-gap: 20px; display: grid; grid-template-columns: 1fr 220px; row-gap: 10px; }
.fee-billing-summary.has-contingency .fee-price-stack { grid-column: 1 / -1; }
.fee-contingency { background: #faf8f5; border: 1px solid #e2d9d1; border-radius: 9px; padding: 9px 11px; }
.fee-contingency > strong { display: block; font-size: 12px; font-weight: 600; text-transform: uppercase; }
.fee-contingency > b { display: block; font-size: 12px; font-weight: 400; margin-top: 3px; }
.fee-contingency p { color: #655e58; font-size: 9px; line-height: 1.4; margin: 5px 0 0; }

@media screen {
  .summary-page-layout.is-scope { width: 1360px; }
  .summary-preview-canvas:has(.summary-page-layout.is-scope) { max-width: 1360px; }
}

/* PPF: the ROM's open chapters, rounded gradient headings and fine rules. */
.ppf-editor { gap: 28px; max-width: 980px; }
.ppf-editor-intro { margin: 0 20px; max-width: 850px; }
.ppf-editor-intro h2, .ppf-editor-next > h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 18px; font-weight: 500; margin: 0 0 10px; }
.ppf-editor-intro p, .ppf-investment-intro { color: var(--ink-3); font-size: .87rem; line-height: 1.7; margin: 0; }
.ppf-section { padding: 0 20px 18px; }
.ppf-section:nth-of-type(even) { margin-left: 22px; }
.ppf-chapter-heading { align-items: center; background: linear-gradient(100deg,#eee7e0 0%,#f7f4f1 76%,rgba(255,255,255,.6) 100%); border: 1px solid #e0d7cf; border-radius: 16px 5px 16px 16px; display: flex; gap: 14px; margin: 0 0 14px; padding: 10px 16px 10px 10px; }
.ppf-chapter-heading > b { align-items: center; background: linear-gradient(145deg,#c7b6a7,#e5dcd4); border-radius: 11px 4px 11px 11px; color: #fff; display: flex; flex: 0 0 38px; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; font-weight: 500; height: 38px; justify-content: center; }
.ppf-chapter-heading h2 { color: #40362f; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 17px; font-weight: 500; letter-spacing: .025em; margin: 0; }
.ppf-chapter-heading p { color: #71665e; font-size: .79rem; line-height: 1.45; margin: 5px 0 0; }
.ppf-investment-intro { margin: 12px 0 16px; }
.ppf-question-grid { display: grid; gap: 18px; grid-template-columns: 1fr; margin: 18px 0 0; }
.ppf-question-grid label, .ppf-type-entry label { color: var(--ink); display: grid; font-size: .85rem; font-weight: 500; gap: 7px; line-height: 1.5; }
.ppf-editor textarea { background: linear-gradient(180deg,#fff,#faf8f5); border: 0; border-bottom: 1px solid #cfc2b7; border-radius: 0 0 7px 7px; font-size: .86rem; font-weight: 400; min-height: 72px; }
.ppf-choice-grid { display: grid; gap: 0; grid-template-columns: 1fr; }
.ppf-choice-grid.is-investment { column-gap: 22px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 18px; }
.ppf-choice { align-items: start; background: transparent; border: 0; border-bottom: 1px solid #ded5cc; border-radius: 0; color: var(--ink); display: grid; gap: 12px; grid-template-columns: 22px 1fr; padding: 14px 9px; text-align: left; }
.ppf-choice span { font-size: .86rem; font-weight: 600; }
.ppf-choice small { color: var(--ink-3); display: block; font-size: .8rem; font-weight: 400; line-height: 1.6; margin-top: 5px; }
.ppf-choice.active, .ppf-type.active { background: #f2ede7; }
.ppf-choice i, .ppf-type i { align-items: center; background: #fff; border: 1px solid #aa998b; border-radius: 4px; color: #fff; display: flex; font-size: 12px; font-style: normal; height: 21px; justify-content: center; width: 21px; }
.ppf-choice.active i, .ppf-type.active i { background: #6d5b4d; border-color: #6d5b4d; }
.ppf-choice:focus-visible, .ppf-type:focus-visible { outline: 2px solid #88705b; outline-offset: 3px; }
.ppf-type-grid { display: grid; gap: 8px; }
.ppf-type-entry { align-items: start; border-bottom: 1px solid #e0d7cf; display: grid; gap: 24px; grid-template-columns: 230px 1fr; padding: 10px 0 16px; }
.ppf-type { align-items: center; background: transparent; border: 0; border-radius: 9px; color: var(--ink); display: flex; gap: 12px; padding: 10px; text-align: left; }
.ppf-type strong { font-size: .85rem; font-weight: 600; }
.ppf-type-entry label { font-size: .77rem; }
.ppf-editor-next { background: linear-gradient(105deg,#f0e9e2,#faf8f5); border: 1px solid #e0d7cf; border-radius: 18px 5px 18px 18px; padding: 22px; }
.ppf-editor-next p { font-size: .86rem; line-height: 1.6; }
.ppf-previous-answers { border-top: 1px solid #ddd3ca; margin: 0 20px; padding-top: 18px; }
.ppf-previous-answers summary { cursor: pointer; font-weight: 600; }
.ppf-previous-answers > p { color: var(--ink-3); font-size: .8rem; }
.ppf-submit { align-items: center; background: #f2eee8; border: 1px solid #ddd3ca; border-radius: 16px 5px 16px 16px; display: flex; gap: 24px; justify-content: space-between; padding: 23px; }
.ppf-submit h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 17px; margin: 0 0 6px; }
.ppf-submit p { color: var(--ink-3); font-size: .82rem; margin: 0; }
.ppf-flow-content { margin: 18px 51px 0; position: relative; z-index: 2; }
.ppf-form-overview { border-bottom: 1px solid #dfd5cc; margin-bottom: 14px; padding-bottom: 12px; }
.ppf-form-overview h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; font-weight: 500; margin: 0 0 6px; }
.ppf-form-overview p { font-size: 10px; line-height: 1.5; margin: 0; }
.ppf-flow-chapter + .ppf-flow-chapter { margin-top: 18px; }
.ppf-flow-chapter:nth-child(even) { margin-left: 16px; }
.ppf-flow-page .ppf-chapter-heading { gap: 12px; margin-bottom: 8px; padding: 7px 12px 7px 8px; }
.ppf-flow-page .ppf-chapter-heading > b { flex-basis: 32px; font-size: 11px; height: 32px; }
.ppf-flow-page .ppf-chapter-heading h2 { font-size: 13px; }
.ppf-flow-page .ppf-chapter-heading p { font-size: 9px; margin-top: 3px; }
.ppf-chapter-rows { padding: 0 10px; }
.ppf-answer-row { border-bottom: 1px solid #eee7e1; break-inside: avoid; padding: 10px 0; }
.ppf-answer-row:last-child { border-bottom: 0; }
.ppf-answer-row h3, .ppf-option-row h3, .ppf-project-row h3 { font-family: "Century Gothic","Avenir Next","Trebuchet MS",sans-serif; font-size: 10px; font-weight: 600; line-height: 1.5; margin: 0 0 7px; }
.ppf-answer-row h3 small { color: #837368; font-size: 9px; font-weight: 400; }
.ppf-answer-row > p { font-size: 10px; line-height: 1.5; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.ppf-writing-lines { display: grid; gap: 0; padding: 0; }
.ppf-writing-lines i { border-bottom: 1px solid #dcd2c8; display: block; height: 15px; }
.ppf-investment-options { margin: 12px 0 4px; }
.ppf-investment-options > p { font-size: 10px; line-height: 1.5; margin: 0 0 12px; }
.ppf-investment-options > div { display: grid; gap: 0 24px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.ppf-investment-options > div > span { align-items: center; border-bottom: 1px solid #e3d9d0; display: flex; font-size: 10px; gap: 10px; min-height: 30px; }
.ppf-print-check { align-items: center; background: #fff; border: 1px solid #9f8e80; border-radius: 3px; color: #44372d; display: inline-flex; flex: 0 0 15px; font-size: 11px; font-style: normal; height: 15px; justify-content: center; width: 15px; }
.ppf-option-row { align-items: start; border-bottom: 1px solid #e5dcd4; display: flex; gap: 13px; padding: 10px 0; }
.ppf-option-row .ppf-print-check { margin-top: 2px; }
.ppf-option-row h3 { margin-bottom: 4px; }
.ppf-option-row p { color: #655b54; font-size: 10px; line-height: 1.5; margin: 0; }
.ppf-project-row { align-items: start; border-bottom: 1px solid #e5dcd4; display: grid; gap: 20px; grid-template-columns: 235px 1fr; min-height: 48px; padding: 7px 0; }
.ppf-project-row > div { align-items: center; display: flex; gap: 12px; }
.ppf-project-row h3 { margin: 0; }
.ppf-project-row section > span { color: #78695e; font-size: 8px; }
.ppf-project-row section > p { font-size: 10px; line-height: 1.5; margin: 3px 0 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.ppf-scope-writing-line { border-bottom: 1px solid #dcd2c8; display: block; height: 15px; }
.ppf-next-heading { padding: 13px 16px !important; }
.ppf-closing { font-size: 10px; line-height: 1.65; padding: 7px 0; }
.ppf-closing p { margin: 8px 0 15px; }
@media (max-width: 700px) {
  .ppf-editor .ppf-section { margin-left: 0; padding-left: 0; padding-right: 0; }
  .ppf-type-entry { gap: 5px; grid-template-columns: 1fr; }
  .ppf-choice-grid.is-investment { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ppf-submit { align-items: start; flex-direction: column; }
}

/* Restore the approved first page after the cover. */
.ppf-snapshot-intro { background: linear-gradient(90deg,#d8cec3,#eee8e2 78%,rgba(243,240,237,.35)); border-radius: 0 16px 16px 0; margin: 17px 76px 16px 0; min-height: 69px; padding: 12px 44px 11px 52px; position: relative; z-index: 2; }
.ppf-snapshot-intro strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; text-transform: uppercase; }
.ppf-snapshot-intro p { font-size: 9px; line-height: 1.4; margin: 5px 0 0; }
.ppf-snapshot-grid { display: grid; gap: 13px 18px; grid-template-columns: 1.12fr .88fr; margin: 0 50px; position: relative; z-index: 2; }
.ppf-snapshot-grid > section { background: rgba(255,255,255,.95); border: 1px solid #ded6cf; border-radius: 16px 5px 16px 16px; padding: 12px 15px; }
.ppf-snapshot-grid > section > header { align-items: center; display: grid; gap: 10px; grid-template-columns: 34px 1fr; margin-bottom: 7px; }
.ppf-snapshot-grid > section > header b { align-items: center; background: linear-gradient(145deg,#c9b9aa,#e5ddd5); border-radius: 9px 3px 9px 9px; color: #fff; display: flex; font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 9px; height: 31px; justify-content: center; width: 31px; }
.ppf-snapshot-grid h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 11px; font-weight: 600; margin: 0 0 2px; text-transform: uppercase; }
.ppf-snapshot-grid header p { color: #766e68; font-size: 7.5px; margin: 0; }
.ppf-snapshot-grid section > p, .ppf-snapshot-types article > p { align-items: center; display: grid; gap: 8px; grid-template-columns: 18px 1fr; margin: 0; min-height: 27px; }
.ppf-snapshot-grid section > p i, .ppf-snapshot-types article > p i { align-items: center; border: 1px solid #776e67; border-radius: 3px; display: flex; font-size: 10px; font-style: normal; font-weight: 800; height: 16px; justify-content: center; width: 16px; }
.ppf-snapshot-grid section > p span, .ppf-snapshot-types article > p span { font-size: 9px; font-weight: 600; }
.ppf-snapshot-types { grid-row: span 2; }
.ppf-snapshot-types article { border-bottom: 1px solid #e4ddd7; padding: 4px 0 5px; }
.ppf-snapshot-types article small { color: #776e67; display: block; font-size: 7px; line-height: 1.3; margin-left: 26px; }
.ppf-snapshot-types label { color: #6f665f; display: grid; font-size: 7.5px; gap: 4px; margin-top: 9px; text-transform: uppercase; }
.ppf-snapshot-types label span { border-bottom: 1px solid #9c8f85; color: #332e2a; font-size: 9px; min-height: 23px; padding: 4px; text-transform: none; }
.ppf-snapshot-grid > section:last-child { grid-column: 1 / -1; column-count: 3; column-gap: 24px; min-height: 145px; }
.ppf-snapshot-grid > section:last-child header { break-inside: avoid; column-span: all; }
.ppf-snapshot-grid > section:last-child > p { break-inside: avoid; }
.ppf-snapshot-intro { margin-bottom: 11px; margin-top: 13px; min-height: 62px; padding-bottom: 10px; padding-top: 10px; }
.ppf-snapshot-intro p { font-size: 9.2px; }
.ppf-snapshot-grid { gap: 10px 14px; grid-template-areas: "types finish" "types stage" "investment investment"; grid-template-columns: .92fr 1.08fr; grid-template-rows: 265px 325px 125px; margin: 0 46px; }
.ppf-snapshot-grid > section { padding: 10px 13px; }
.ppf-snapshot-types { grid-area: types; }
.ppf-snapshot-finish { grid-area: finish; }
.ppf-snapshot-stage { grid-area: stage; }
.ppf-snapshot-investment { grid-area: investment; }
.ppf-snapshot-grid > section:last-child { column-count: auto; grid-column: 1 / -1; min-height: 0; }
.ppf-snapshot-grid > section:last-child header { column-span: none; }
.ppf-snapshot-grid > section > header { margin-bottom: 7px; }
.ppf-snapshot-finish > header h2, .ppf-snapshot-stage > header h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 10.5px; font-weight: 600; letter-spacing: .03em; }
.ppf-snapshot-types > header h2 { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 10.5px; font-weight: 600; letter-spacing: .03em; }
.ppf-snapshot-investment > header h2 { font-size: 10.5px; }
.ppf-snapshot-grid header p { font-size: 8.8px; line-height: 1.4; }
.ppf-snapshot-grid article { border-bottom: 1px solid #e4ddd7; padding: 3px 0 4px; }
.ppf-snapshot-grid article > p, .ppf-snapshot-investment > div > p { align-items: center; display: grid; gap: 9px; grid-template-columns: 20px 1fr; margin: 0; min-height: 22px; }
.ppf-snapshot-grid article > p i, .ppf-snapshot-investment > div > p i { align-items: center; background: #fff; border: 1.2px solid #776e67; border-radius: 3px; color: #332e2a; display: flex; font-size: 11px; font-style: normal; font-weight: 800; height: 18px; justify-content: center; width: 18px; }
.ppf-snapshot-grid article > p span, .ppf-snapshot-investment > div > p span { font-family: "Century Gothic","Avenir Next",sans-serif; font-size: 9.8px; font-weight: 600; }
.ppf-snapshot-grid article small { color: #625b56; display: block; font-size: 9.5px; line-height: 1.45; margin-left: 29px; }
.ppf-snapshot-types article { min-height: 70px; padding-bottom: 7px; padding-top: 6px; }
.ppf-snapshot-types article small { font-size: 9.5px; }
.ppf-snapshot-finish article { min-height: 0; padding-bottom: 3px; padding-top: 2px; }
.ppf-snapshot-stage article { min-height: 0; padding-bottom: 5px; padding-top: 4px; }
.ppf-snapshot-stage article small { font-size: 9.5px; }
.ppf-snapshot-types label { margin-top: 7px; }
.ppf-snapshot-investment > div { display: grid; gap: 0 18px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.ppf-snapshot-investment > div > p { min-height: 22px; }


/* The question pages share the ROM's split chapters and full-bleed bands. */
.ppf-rom-flow { margin: 23px 51px 0; }
.ppf-rom-flow > section + section { margin-top: 20px; }
.ppf-rom-chapter { align-items: stretch; gap: 24px; grid-template-columns: 214px minmax(0,1fr); padding: 13px 0 14px; }
.ppf-rom-chapter > header { align-content: center; align-items: start; gap: 13px; grid-template-columns: 43px minmax(0,1fr); }
.ppf-rom-chapter > header h2 { font-size: 16px; line-height: 1.4; }
.ppf-rom-chapter > header p { font-size: 9.2px; line-height: 1.65; margin-top: 15px; }
.ppf-rom-chapter > .ppf-rom-questions { display: block; border-left: 1px solid #cfc3b9; min-width: 0; padding-left: 21px; }
.ppf-rom-chapter.rom-plan-exclusions { margin-left: -51px; padding-left: 51px; padding-right: 20px; }
.ppf-rom-questions .ppf-answer-row { border: 0; min-height: 84px; padding: 7px 0 10px; }
.ppf-rom-questions .ppf-answer-row h3 { font-size: 10.5px; font-weight: 500; line-height: 1.5; margin: 0 0 7px; }
.ppf-rom-questions .ppf-answer-row > p { display: block; border: 0; color: #443b34; font-size: 10.5px; line-height: 1.5; margin: 0; min-height: 0; padding: 0; }
.ppf-rom-questions .ppf-writing-lines { display: block; }
.ppf-rom-questions .ppf-writing-lines i { background: transparent; border-bottom: 1px solid #d8cec3; border-radius: 0; display: block; height: 15px; margin: 0; width: 100%; }
.ppf-rom-next { gap: 17px; margin-top: 6px; padding: 22px 24px; }
.ppf-rom-next > header { display: block; }
.ppf-rom-next > header h2 { font-size: 17px; }
.ppf-rom-next > .ppf-rom-next-content { display: block; margin: 0; }
.ppf-rom-next .ppf-answer-row { min-height: 112px; }
.ppf-rom-next .ppf-writing-lines i { height: 21px; }
.ppf-rom-next .ppf-closing { display: grid; gap: 28px; grid-template-columns: 1.5fr 1fr; margin-top: 8px; }
.ppf-rom-next .ppf-closing p:last-child { border-left: 1px solid #bdac9d; padding-left: 22px; }
.ppf-rom-next .ppf-closing strong { font-family: "Cinzel Oakburn",Cinzel,serif; font-size: 12px; font-weight: 500; }
.ppf-snapshot-types label span { overflow-wrap: anywhere; white-space: pre-wrap; }

/* Optional catalog minimums share the existing quiet scope-note treatment. */
.scope-minimum-hint { color: var(--ink-3); font-size: .68rem; line-height: 1.45; }
.minimum-review { margin-bottom: 20px; }

/* Project minimum controls live entirely beside the printable paper. */
.summary-trade-actions { align-items: center; display: flex; gap: 6px; left: 0; position: absolute; top: 0; transform: translateY(-50%); visibility: hidden; width: 280px; }
.summary-trade-actions .summary-override-button { flex: 0 0 auto; position: static; transform: none; visibility: inherit; white-space: nowrap; }
.summary-trade-actions .summary-trade-contingency-button { width: 158px; }
.summary-trade-actions .summary-minimum-button { width: 116px; }
.summary-minimum-button.is-applied { background: #f1e5cb; border-color: #b59154; color: #59432f; }
.summary-minimum-button.is-removed { background: #f5f3ef; border-color: #a39b91; color: #62584e; }
.summary-minimum-marker { align-items: center; background: #f1e5cb; border: 1px solid #b59154; border-radius: 5px; color: #59432f; cursor: help; display: inline-flex; font-size: 10px; font-weight: 700; height: 18px; justify-content: center; left: -22px; line-height: 1; position: absolute; top: 50%; transform: translateY(-50%); width: 18px; }
.summary-minimum-marker:focus-visible { outline: 2px solid #73532c; outline-offset: 2px; }
@media print { .summary-trade-actions, .summary-minimum-marker { display: none !important; } }

/* Phase controls are workspace-only. Client documents show a small phase label. */
.phase-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;margin-bottom:20px;background:#f2eae0;border:1px solid #ded0c0;border-radius:16px 5px 16px 16px;color:#574838}
.phase-toolbar>div{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.phase-toolbar label,.scope-phase-control{display:flex;flex-direction:column;gap:5px;font-size:12px}.phase-toolbar select{min-width:180px;padding:9px 12px;border:1px solid #c8b9a8;border-radius:7px;background:#fffdf9;color:inherit;font:inherit}.phase-toolbar p{margin:0;font-size:12px;line-height:1.6}
.scope-trade-heading{display:flex;align-items:center;gap:10px}.scope-trade-heading>.scope-accordion-trigger{flex:1;min-width:0}.scope-phase-move-trade{margin-right:12px;padding:7px 10px;border:1px solid #c8b9a8;border-radius:8px;background:#fffaf4;color:#68533e;font:inherit;font-size:11px;white-space:nowrap}.scope-phase-control{min-width:130px}.scope-phase-control select{max-width:200px;padding:7px;border:1px solid #c8b9a8;border-radius:6px;background:#fffdf9;color:inherit;font:inherit}.phase-manager{display:grid;gap:12px;margin:20px 0}.phase-manager label{display:flex;align-items:center;gap:16px}.phase-manager span{min-width:95px;color:#75695d;font-size:12px}.phase-manager input{flex:1;min-width:0;padding:10px;border:1px solid #c8b9a8;border-radius:8px}.fee-phase-label{font-size:10px}.bill-phase-label{display:block;color:#80684e;font-size:12px;margin-top:5px}
@media(max-width:640px){.scope-trade-heading{flex-wrap:wrap;gap:0}.scope-phase-move-trade{margin:0 12px 10px 35px}.phase-toolbar>div{width:100%}.phase-toolbar label{flex:1}.phase-toolbar select{min-width:130px;width:100%}}
@media print{.phase-toolbar,.scope-phase-move-trade,.scope-phase-control{display:none!important}}

.phase-header-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.phase-toolbar select:disabled{opacity:.65;cursor:wait}

/* The current assignment and destination remain visibly separate in phase moves. */
#phase-new-name-field[hidden]{display:none!important}
.phase-move-context{display:grid;gap:6px;margin-bottom:18px}.phase-move-context>strong{font-size:16px}.phase-move-context>span{font-size:12px;line-height:1.6;color:var(--ink-3)}
.phase-current-summary{padding:15px 18px;margin:0 0 20px;background:#f2eae0;border:1px solid #dfd0c0;border-left:3px solid #b79d80;border-radius:14px 5px 14px 14px}.phase-current-summary h3{font-size:11px;font-weight:700;line-height:1.5;text-transform:uppercase;letter-spacing:.06em;color:#786451;margin:0 0 8px}.phase-current-summary>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0}.phase-current-summary strong{font-size:15px;overflow-wrap:anywhere}.phase-current-summary span{font-size:12px;white-space:nowrap;color:#786451}
.phase-destination-field{margin-bottom:16px}.phase-create-field{padding:15px 17px;border:1px solid #dfd0c0;border-radius:12px;background:#fcfaf6}.phase-create-field small{font-size:12px;line-height:1.6;color:var(--ink-3)}.phase-move-preview{font-size:13px;line-height:1.65;margin:16px 0 0;color:#655441}.modal-foot #phase-move-confirm:disabled{opacity:.45;cursor:not-allowed}
