:root {
  --ink: #0b2a3d;
  --ink-2: #173f58;
  --turf: #2f6b45;
  --turf-soft: #e9f1ec;
  --chalk: #f5f7f4;
  --paper: #ffffff;
  --line: #d7e1e5;
  --muted: #627986;
  --orange: #ee7b32;
  --orange-dark: #c95b19;
  --danger: #b9363f;
  --shadow: 0 18px 55px rgba(11, 42, 61, 0.11);
  --radius: 18px;
  --green-950: #04150d;
  --green-900: #082416;
  --green-800: #0d3b24;
  --green-700: #17643a;
  --green-100: #dcecdf;
  --green-050: #f4fbf5;
  --ink-900: #14211a;
  --ink-700: #34493c;
  --ink-500: #6b7d70;
  --surface: #ffffff;
  --surface-soft: #f7fbf7;
  --surface-tint: #ecf4ee;
  --border: #cbd9cf;
  --border-strong: #94aa9b;
  --shadow-soft: 0 10px 28px rgba(4, 21, 13, .1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background-color: #f3f0e8;
  background-image:
    linear-gradient(31deg, transparent 49.8%, rgba(47, 107, 69, .035) 50%, transparent 50.2%),
    linear-gradient(-31deg, transparent 49.8%, rgba(238, 123, 50, .03) 50%, transparent 50.2%);
  background-size: 760px 520px;
  color: var(--ink);
  font-family: "Segoe UI", Arial, sans-serif;
  margin: 0;
  min-width: 320px;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }

.field-stripe {
  background: repeating-linear-gradient(90deg, var(--orange) 0 66px, #f6c49f 66px 71px, var(--turf) 71px 137px, #b7cdbd 137px 142px);
  height: 5px;
}

.site-header {
  align-items: center;
  background: linear-gradient(120deg, #082416, #0d3b24);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  display: flex;
  justify-content: space-between;
  min-height: 76px;
  padding: 12px clamp(18px, 4vw, 64px);
  position: sticky;
  top: 0;
  z-index: 20;
}
.brand { align-items: center; color: #fff; display: flex; gap: 13px; text-decoration: none; }
.brand img { height: 42px; object-fit: contain; width: 92px; }
.brand span { border-left: 1px solid rgba(255, 255, 255, .28); display: grid; line-height: 1.05; padding-left: 13px; }
.brand strong { font-family: Bahnschrift, "Arial Narrow", sans-serif; font-size: 17px; letter-spacing: .02em; text-transform: uppercase; }
.brand small { color: var(--turf); font-size: 10px; font-weight: 700; letter-spacing: .14em; margin-top: 5px; text-transform: uppercase; }
.header-tools { align-items: center; display: flex; gap: 18px; }
.integration-status { display: flex; gap: 6px; }
.integration-status span {
  align-items: center; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px;
  color: #e5efe8; display: inline-flex; font: 700 9px/1 "Segoe UI", sans-serif;
  gap: 6px; letter-spacing: .04em; padding: 6px 9px; text-transform: uppercase;
}
.integration-status span::before { background: #a8b7bf; border-radius: 50%; content: ""; height: 6px; width: 6px; }
.integration-status span[data-status="ready"]::before { background: #3b9d61; }
.integration-status span[data-status="mock"]::before { background: #e6a53b; }
.integration-status span[data-status="off"]::before { background: #c6cfd4; }
.quiet-button, .quiet-button:visited { background: transparent; border: 0; color: #fff; font-size: 13px; font-weight: 700; padding: 8px 0; }
.quiet-button:hover { color: #f6b17f; }
.signed-in-user { border-left: 1px solid rgba(255, 255, 255, .24); display: grid; gap: 2px; padding-left: 16px; }
.signed-in-user span { color: #a9c0b0; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.signed-in-user strong { color: #fff; font-size: 11px; }

.workspace {
  display: grid;
  gap: clamp(22px, 3vw, 44px);
  grid-template-columns: 110px minmax(520px, 780px) minmax(390px, 520px);
  margin: 0 auto;
  max-width: 1540px;
  padding: 44px clamp(18px, 4vw, 64px) 90px;
}
.step-rail { align-self: start; display: grid; gap: 25px; padding-top: 166px; position: sticky; top: 96px; }
.step-rail .rail-track { background: var(--line); height: 138px; left: 14px; position: absolute; top: 184px; width: 1px; }
.step-rail a { color: #78909b; display: grid; font: 700 9px/1.25 "Segoe UI", sans-serif; gap: 6px; letter-spacing: .08em; position: relative; text-decoration: none; text-transform: uppercase; }
.step-rail a span { align-items: center; background: #edf2f3; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); display: flex; font: 700 9px/1 Bahnschrift, sans-serif; height: 29px; justify-content: center; transition: .2s ease; width: 29px; }
.step-rail a.is-current { color: var(--ink); }
.step-rail a.is-current span { background: var(--turf); border-color: var(--turf); color: white; box-shadow: 0 0 0 5px var(--turf-soft); }

.form-column { min-width: 0; }
.page-intro { margin-bottom: 32px; max-width: 700px; }
.eyebrow { color: var(--turf); font: 800 10px/1.2 "Segoe UI", sans-serif; letter-spacing: .16em; margin: 0 0 8px; text-transform: uppercase; }
.page-intro h1 { font: 700 clamp(36px, 4.3vw, 58px)/.98 Bahnschrift, "Arial Narrow", sans-serif; letter-spacing: -.045em; margin: 0; max-width: 690px; }
.page-intro > p:last-child { color: var(--muted); font-size: 16px; line-height: 1.55; margin: 18px 0 0; max-width: 660px; }

.form-card { background: var(--paper); border: 1px solid #dfe7e9; border-radius: var(--radius); box-shadow: 0 5px 20px rgba(11, 42, 61, .035); margin-bottom: 22px; padding: clamp(20px, 3vw, 32px); scroll-margin-top: 100px; }
.card-heading { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 14px; grid-template-columns: 42px 1fr auto; margin-bottom: 26px; padding-bottom: 18px; }
.step-number { align-items: center; background: var(--ink); border-radius: 10px; color: white; display: flex; font: 700 11px/1 Bahnschrift, sans-serif; height: 38px; justify-content: center; width: 38px; }
.card-heading .eyebrow { margin-bottom: 3px; }
.card-heading h2, .card-heading h3 { font: 700 23px/1.1 Bahnschrift, sans-serif; letter-spacing: -.02em; margin: 0; }
.card-badge { background: #f0f4f5; border-radius: 999px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; padding: 7px 10px; text-transform: uppercase; }
.card-badge[data-kind="success"] { background: var(--turf-soft); color: var(--turf); }

.form-grid { display: grid; gap: 18px 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field { display: grid; gap: 7px; min-width: 0; position: relative; }
.field.full-width, .full-width { grid-column: 1 / -1; }
.field label { color: var(--ink-2); font-size: 11px; font-weight: 800; letter-spacing: .03em; }
.field input, .field select, .field textarea,
.assumption-bar input, .line-row input, .line-row select, .expense-row input {
  background: #fbfcfc; border: 1px solid #cbd8dd; border-radius: 9px; color: var(--ink);
  outline: none; padding: 11px 12px; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; width: 100%;
}
.field textarea { line-height: 1.4; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus,
.assumption-bar input:focus, .line-row input:focus, .line-row select:focus, .expense-row input:focus {
  background: white; border-color: var(--turf); box-shadow: 0 0 0 3px rgba(47, 107, 69, .12);
}
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(185, 54, 63, .1); }
.field small { color: var(--muted); font-size: 11px; }

.search-input { position: relative; }
.search-input input { padding-left: 40px; }
.search-input > span { border: 2px solid #78909b; border-radius: 50%; height: 13px; left: 14px; position: absolute; top: 14px; width: 13px; }
.search-input > span::after { background: #78909b; content: ""; height: 2px; left: 9px; position: absolute; top: 10px; transform: rotate(45deg); width: 7px; }
.company-results { background: white; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow); left: 0; max-height: 270px; overflow: auto; padding: 7px; position: absolute; right: 0; top: calc(100% + 6px); z-index: 15; }
.company-results button { background: transparent; border: 0; border-radius: 8px; color: var(--ink); display: grid; gap: 2px; padding: 10px; text-align: left; width: 100%; }
.company-results button:hover, .company-results button:focus { background: var(--turf-soft); outline: none; }
.company-results button strong { font-size: 13px; }
.company-results button span { color: var(--muted); font-size: 11px; }
.company-results p { color: var(--muted); font-size: 12px; margin: 10px; }
.inline-action { background: transparent; border: 0; color: var(--turf); font-size: 11px; font-weight: 800; justify-self: start; padding: 0; }
.inline-action:hover { color: var(--orange-dark); }
.shipping-field small[data-kind="success"] { color: var(--turf); }
.shipping-field small[data-kind="error"] { color: var(--danger); }

.assumption-bar { align-items: center; background: #f3f7f5; border-left: 4px solid var(--turf); display: flex; flex-wrap: wrap; gap: 14px 22px; margin-bottom: 22px; padding: 12px 14px; }
.assumption-bar > label { align-items: center; color: var(--ink-2); display: flex; font-size: 11px; font-weight: 800; gap: 8px; }
.suffix-field { align-items: center; display: flex; position: relative; width: 84px; }
.suffix-field input { padding: 7px 26px 7px 8px; }
.suffix-field i { color: var(--muted); font-size: 11px; font-style: normal; position: absolute; right: 9px; }
.formula-note { color: var(--muted); font: 600 10px/1.3 Consolas, monospace; margin-left: auto; }

.line-header, .line-row { display: grid; gap: 8px; grid-template-columns: minmax(180px, 2.2fr) 70px 70px 105px 92px 105px 32px; }
.line-header { color: #728894; font-size: 9px; font-weight: 800; letter-spacing: .08em; padding: 0 10px 7px; text-transform: uppercase; }
.line-items { display: grid; gap: 9px; }
.line-row { align-items: start; background: #f7f9fa; border: 1px solid var(--line); border-radius: 12px; padding: 10px; }
.line-product { display: grid; gap: 6px; }
.line-product input:first-child { font-weight: 700; }
.line-product input + input { color: var(--muted); font-size: 11px; padding-block: 8px; }
.line-row input, .line-row select { background: white; font-size: 12px; padding: 9px 8px; }
.line-row .calculated { background: #eaf1ed; border-color: #c6d7cb; color: var(--turf); font-weight: 800; }
.line-taxable { align-items: center; color: var(--muted); display: flex; font-size: 10px; gap: 5px; grid-column: 2 / span 4; padding: 2px 0 0; }
.line-taxable input { height: 14px; width: 14px; }
.remove-line, .remove-expense { align-items: center; background: transparent; border: 0; border-radius: 7px; color: #8aa0ab; display: flex; font-size: 17px; height: 32px; justify-content: center; padding: 0; width: 32px; }
.remove-line:hover, .remove-expense:hover { background: #fae9e9; color: var(--danger); }
.add-line { align-items: center; background: transparent; border: 1px dashed #aabcc4; border-radius: 10px; color: var(--ink-2); display: flex; font-size: 12px; font-weight: 800; gap: 8px; justify-content: center; margin-top: 11px; padding: 11px; width: 100%; }
.add-line:hover { background: var(--turf-soft); border-color: var(--turf); color: var(--turf); }
.add-line span { font-size: 17px; font-weight: 400; }
.add-line.compact { width: auto; }

.details-panel { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 16px; }
.details-panel summary { color: var(--ink-2); cursor: pointer; font-size: 12px; font-weight: 800; }
.details-panel summary span { color: var(--muted); font-size: 10px; font-weight: 500; margin-left: 6px; }
.expense-items { display: grid; gap: 8px; margin-top: 14px; }
.expense-row { display: grid; gap: 8px; grid-template-columns: 1fr 130px 32px; }
.expense-row input { background: white; font-size: 12px; padding: 9px; }

.send-option { align-items: flex-start; background: #f4f7f8; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; display: flex; gap: 12px; margin-top: 22px; padding: 15px; }
.send-option > input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.check-box { background: white; border: 1px solid #9fb2bb; border-radius: 5px; flex: 0 0 auto; height: 20px; position: relative; width: 20px; }
.send-option > input:checked + .check-box { background: var(--turf); border-color: var(--turf); }
.send-option > input:checked + .check-box::after { border: solid white; border-width: 0 2px 2px 0; content: ""; height: 9px; left: 6px; position: absolute; top: 3px; transform: rotate(45deg); width: 5px; }
.send-option strong, .send-option small { display: block; }
.send-option strong { font-size: 12px; }
.send-option small { color: var(--muted); font-size: 11px; line-height: 1.45; margin-top: 3px; }
.submit-row { align-items: center; display: flex; gap: 18px; margin-top: 23px; }
.primary-button, .secondary-button { align-items: center; border-radius: 10px; display: inline-flex; font-size: 12px; font-weight: 800; gap: 18px; justify-content: center; min-height: 44px; padding: 0 18px; text-decoration: none; }
.primary-button { background: var(--orange); border: 1px solid var(--orange); color: #23180f; }
.primary-button:hover { background: #ff8b42; }
.primary-button:disabled { cursor: wait; opacity: .6; }
.primary-button i { font-style: normal; font-size: 16px; }
.secondary-button { background: white; border: 1px solid #b9c8ce; color: var(--ink); }
.secondary-button:hover { border-color: var(--turf); color: var(--turf); }
.form-status { color: var(--muted); flex: 1; font-size: 11px; line-height: 1.4; margin: 0; }
.form-status[data-kind="working"] { color: var(--ink-2); }
.form-status[data-kind="success"] { color: var(--turf); font-weight: 700; }
.form-status[data-kind="error"] { color: var(--danger); font-weight: 700; }

.preview-column { min-width: 0; }
.preview-card { background: var(--ink); border-radius: 24px; box-shadow: var(--shadow); color: white; overflow: hidden; position: sticky; top: 105px; }
.preview-heading { align-items: start; display: flex; justify-content: space-between; padding: 24px 26px 18px; }
.preview-heading .eyebrow { color: #8ec4a0; }
.preview-heading h2 { font: 700 21px/1.15 Bahnschrift, sans-serif; margin: 0; max-width: 300px; }
.live-pill { align-items: center; background: rgba(255, 255, 255, .08); border-radius: 999px; color: #c0d1d9; display: flex; font-size: 9px; font-weight: 800; gap: 6px; padding: 7px 9px; text-transform: uppercase; }
.live-pill i { background: #8da2ad; border-radius: 50%; height: 6px; width: 6px; }
.live-pill[data-kind="ready"] i { background: #61c880; box-shadow: 0 0 0 4px rgba(97, 200, 128, .13); }
.live-pill[data-kind="working"] i { animation: pulse 1s infinite; background: var(--orange); }
.live-pill[data-kind="error"] i { background: #f27379; }
@keyframes pulse { 50% { opacity: .35; } }
.total-panel { background: var(--turf); display: grid; padding: 18px 26px 20px; }
.total-panel span { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.total-panel strong { font: 700 41px/1 Bahnschrift, sans-serif; letter-spacing: -.03em; margin: 5px 0; }
.total-panel small { color: #d7eadc; font-size: 11px; }
.metric-row { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 16px 25px; }
.metric-row div { border-right: 1px solid rgba(255, 255, 255, .13); padding-right: 12px; }
.metric-row div + div { padding-left: 12px; }
.metric-row div:last-child { border: 0; }
.metric-row dt { color: #91a9b5; font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.metric-row dd { font: 700 16px/1.2 Bahnschrift, sans-serif; margin: 5px 0 0; }
.document-window { background: #cad4d8; height: min(57vh, 650px); margin: 0 14px; overflow: hidden; position: relative; }
.document-window iframe { background: white; border: 0; height: 100%; transform-origin: top left; width: 100%; }
.preview-placeholder { align-items: center; color: #506774; display: flex; flex-direction: column; inset: 0; justify-content: center; padding: 36px; position: absolute; text-align: center; }
.preview-placeholder > span { border: 2px solid #78909b; height: 55px; margin-bottom: 14px; position: relative; width: 43px; }
.preview-placeholder > span::after { border-top: 2px solid #78909b; content: ""; left: 8px; position: absolute; right: 8px; top: 15px; box-shadow: 0 9px 0 #78909b, 0 18px 0 #78909b; }
.preview-placeholder strong { color: var(--ink); }
.preview-placeholder p { font-size: 11px; line-height: 1.45; max-width: 260px; }
.result-actions { align-items: center; display: flex; gap: 9px; padding: 15px; }
.result-actions .primary-button, .result-actions .secondary-button { flex: 1; }
.text-button { background: transparent; border: 0; color: #aec0c8; font-size: 10px; font-weight: 800; padding: 8px; }
.text-button:hover { color: white; }

.history-dialog { border: 0; border-radius: 18px; box-shadow: var(--shadow); color: var(--ink); max-height: 80vh; max-width: 720px; padding: 0; width: calc(100% - 32px); }
.history-dialog::backdrop { background: rgba(11, 42, 61, .58); }
.dialog-heading { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding: 22px 24px; }
.dialog-heading h2 { font: 700 25px/1 Bahnschrift, sans-serif; margin: 0; }
.icon-button { align-items: center; background: #eef3f4; border: 0; border-radius: 50%; color: var(--ink); display: flex; height: 34px; justify-content: center; width: 34px; }
.history-list { display: grid; max-height: 60vh; overflow: auto; padding: 12px; }
.history-item { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 12px; grid-template-columns: 105px 1fr auto; padding: 13px 10px; }
.history-item:last-child { border: 0; }
.history-item > span { color: var(--turf); font: 700 11px/1 Bahnschrift, sans-serif; }
.history-item strong, .history-item small { display: block; }
.history-item small { color: var(--muted); margin-top: 4px; }
.history-item a { color: var(--ink-2); font-size: 11px; font-weight: 800; }
.history-actions { align-items: flex-end; display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.load-project-button { background: var(--turf-soft); border: 1px solid #b7ccbd; border-radius: 8px; color: var(--turf); font-size: 10px; font-weight: 800; padding: 7px 9px; white-space: nowrap; }
.load-project-button:hover { background: #dceadd; border-color: var(--turf); }
.history-empty { color: var(--muted); padding: 32px; text-align: center; }

/* Turf-style two-workspace shell */
.app-main { padding: 42px clamp(18px, 4vw, 64px) 90px; }
.form-shell {
  background: rgba(255, 255, 255, .94);
  border: 1px solid rgba(195, 210, 204, .8);
  border-radius: 22px;
  box-shadow: 0 22px 60px rgba(11, 42, 61, .1);
  margin: 0 auto;
  max-width: 1320px;
  overflow: hidden;
  padding: clamp(22px, 3.5vw, 46px);
  position: relative;
}
.form-shell::before { background: linear-gradient(90deg, var(--orange) 0 32%, #f1bd96 32% 34%, var(--turf) 34% 100%); content: ""; height: 7px; inset: 0 0 auto; pointer-events: none; position: absolute; }
.form-shell-header {
  align-items: end;
  border-bottom: 4px solid var(--turf);
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1fr) 320px;
  margin-bottom: 28px;
  padding-bottom: 26px;
}
.section-kicker {
  color: var(--turf);
  font: 800 10px/1.2 "Segoe UI", sans-serif;
  letter-spacing: .16em;
  margin: 0 0 8px;
  text-transform: uppercase;
}
.form-shell-title {
  color: var(--ink);
  font: 700 clamp(32px, 4vw, 51px)/.98 Bahnschrift, "Arial Narrow", sans-serif;
  letter-spacing: -.035em;
  margin: 0;
  text-transform: uppercase;
}
.form-shell-subtitle { color: var(--muted); line-height: 1.65; margin: 15px 0 0; max-width: 760px; }
.form-shell-meta { align-content: end; display: grid; gap: 12px; justify-items: end; }
.form-shell-meta > p { color: var(--muted); font-size: 11px; line-height: 1.55; margin: 0; max-width: 300px; text-align: right; }
.field-legend {
  align-items: center;
  background: linear-gradient(180deg, #fbfdfb, #e8f0ea);
  border: 1px solid #c85d45;
  border-radius: 9px;
  color: var(--ink-2);
  display: inline-flex;
  font-size: 11px;
  font-weight: 700;
  gap: 9px;
  padding: 9px 12px;
}
.legend-sample { background: #dce2e4; border: 1px solid #c85d45; border-radius: 4px; height: 13px; width: 13px; }
.form-stack { display: grid; gap: 22px; }
.workspace-tabs {
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(235,244,238,.96));
  border: 1px solid #cfddd4;
  border-radius: 15px;
  box-shadow: 0 8px 20px rgba(11, 42, 61, .07);
  display: flex;
  gap: 26px;
  justify-content: center;
  padding: 11px;
}
.workspace-tab {
  align-items: center;
  background: linear-gradient(180deg, white, #f5f8f6);
  border: 1px solid rgba(47, 107, 69, .22);
  border-radius: 10px;
  color: var(--ink-2);
  display: inline-flex;
  font-size: 12px;
  font-weight: 850;
  gap: 10px;
  justify-content: center;
  letter-spacing: .08em;
  min-width: 190px;
  padding: 12px 24px;
  text-transform: uppercase;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.workspace-tab > span { color: var(--turf); font: 700 10px/1 Bahnschrift, sans-serif; }
.workspace-tab:hover { box-shadow: 0 8px 16px rgba(11, 42, 61, .09); transform: translateY(-1px); }
.workspace-tab.is-active { background: linear-gradient(135deg, #2f6b45, #174c30); border-color: #174c30; box-shadow: 0 10px 22px rgba(23, 76, 48, .22); color: white; }
.workspace-tab.is-active > span { color: #bfe0c9; }
.workspace-tab:focus-visible { outline: 3px solid rgba(238, 123, 50, .35); outline-offset: 2px; }
.workspace-tab-panel { display: grid; gap: 22px; }
.workspace-tab-panel[hidden] { display: none; }
.workspace-tab-panel .form-card { margin-bottom: 0; }
.workspace-tab-arrows { pointer-events: none; }
.workspace-tab-arrow {
  align-content: center;
  background: rgba(255, 255, 255, .95);
  border: 1px solid rgba(47, 107, 69, .24);
  border-radius: 20px;
  box-shadow: 0 14px 30px rgba(11, 42, 61, .14);
  display: grid;
  gap: 6px;
  justify-items: center;
  min-height: 82px;
  padding: 10px 8px;
  pointer-events: auto;
  position: fixed;
  top: 66%;
  transform: translateY(-50%);
  width: 92px;
  z-index: 19;
}
.workspace-tab-arrow-left { left: max(12px, calc(50% - 760px)); }
.workspace-tab-arrow-right { right: max(12px, calc(50% - 760px)); }
.workspace-tab-arrow-icon { border-right: 3px solid var(--turf); border-top: 3px solid var(--turf); display: block; height: 19px; width: 19px; }
.workspace-tab-arrow-left .workspace-tab-arrow-icon { transform: rotate(-135deg); }
.workspace-tab-arrow-right .workspace-tab-arrow-icon { transform: rotate(45deg); }
.workspace-tab-arrow-label { color: var(--turf); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.workspace-tab-arrow:hover { background: var(--turf-soft); box-shadow: 0 18px 34px rgba(11, 42, 61, .18); }
.workspace-tab-arrow:disabled { cursor: not-allowed; opacity: .22; }
.tab-intro { align-items: end; display: flex; gap: 28px; justify-content: space-between; padding: 10px 4px 0; }
.tab-intro h2 { font: 700 32px/1 Bahnschrift, sans-serif; letter-spacing: -.025em; margin: 0; }
.tab-intro > p { color: var(--muted); font-size: 12px; line-height: 1.55; margin: 0; max-width: 470px; text-align: right; }
.critical > input, .critical > textarea { border-left: 3px solid #c85d45; }
.panel-actions {
  align-items: center;
  background: linear-gradient(110deg, #0b2a3d, #173f58);
  border-radius: 15px;
  color: white;
  display: flex;
  gap: 22px;
  justify-content: space-between;
  padding: 18px 22px;
}
.panel-actions strong, .panel-actions span { display: block; }
.panel-actions strong { font: 700 16px/1.2 Bahnschrift, sans-serif; }
.panel-actions > div > span { color: #b7c9d2; font-size: 11px; margin-top: 4px; }
.panel-actions .primary-button { flex: 0 0 auto; }
.proposal-workspace { align-items: start; display: grid; gap: 22px; grid-template-columns: minmax(330px, 430px) minmax(520px, 1fr); }
.proposal-controls { display: grid; gap: 22px; }
.proposal-fields { grid-template-columns: 1fr; }
.compact-card { padding: 25px; }
.proposal-manifest {
  background: var(--ink);
  border-radius: 14px;
  color: white;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
}
.proposal-manifest > div { border-right: 1px solid rgba(255, 255, 255, .14); min-width: 0; padding: 15px 18px; }
.proposal-manifest > div:last-child { border-right: 0; }
.proposal-manifest span, .proposal-manifest strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.proposal-manifest span { color: #a9c0cb; font-size: 8px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.proposal-manifest strong { font: 700 13px/1.25 Bahnschrift, sans-serif; margin-top: 5px; }
.compact-heading { margin-bottom: 20px; }
.narrative-card { border-top: 3px solid #9bb8a5; }
.create-card { background: linear-gradient(155deg, white 0%, #f2f7f3 100%); border-top: 4px solid var(--turf); }
.create-card h3 { font: 700 24px/1.1 Bahnschrift, sans-serif; letter-spacing: -.02em; margin: 0; }
.create-card > p:not(.section-kicker):not(.form-status) { color: var(--muted); font-size: 12px; line-height: 1.55; }
.create-actions { display: flex; gap: 10px; margin: 20px 0 14px; }
.create-actions > * { flex: 1; }
.create-card .result-actions { border-top: 1px solid var(--line); margin-top: 15px; padding: 15px 0 0; }
.create-card .text-button { color: var(--muted); }
.create-card .text-button:hover { color: var(--turf); }
.commercial-alert {
  background: #fff4e9;
  border: 1px solid #efbd91;
  border-left: 4px solid var(--orange);
  border-radius: 10px;
  margin-top: 15px;
  padding: 12px 14px;
}
.commercial-alert strong, .commercial-alert span { display: block; }
.commercial-alert strong { color: #823d16; font-size: 12px; }
.commercial-alert span { color: #865c40; font-size: 10px; line-height: 1.45; margin-top: 4px; }
.quote-confirm-box {
  background: var(--ink);
  border-radius: 12px;
  color: white;
  margin-top: 16px;
  padding: 16px;
}
.quote-confirm-box strong, .quote-confirm-box span { display: block; }
.quote-confirm-box strong { font: 700 15px/1.2 Bahnschrift, sans-serif; }
.quote-confirm-box span { color: #aec1ca; font-size: 10px; line-height: 1.45; margin-top: 4px; }
.quote-confirm-actions { display: flex; gap: 9px; margin-top: 14px; }
.quote-confirm-actions > * { flex: 1; }
.email-draft { border-top: 1px solid var(--line); display: grid; gap: 13px; margin-top: 20px; padding-top: 20px; }
.email-draft-heading { align-items: center; display: flex; justify-content: space-between; }
.email-draft-heading h4 { font: 700 19px/1.1 Bahnschrift, sans-serif; margin: 0; }
.email-draft .field { margin: 0; }
.email-attachment { align-items: center; background: #eef4f0; border: 1px solid #d2e0d6; border-radius: 10px; display: grid; gap: 2px 10px; grid-template-columns: 36px 1fr; padding: 10px; }
.email-attachment > span { align-items: center; background: var(--turf); border-radius: 6px; color: white; display: flex; font-size: 8px; font-weight: 900; grid-row: 1 / 3; height: 34px; justify-content: center; }
.email-attachment strong { font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.email-attachment small { color: var(--muted); font-size: 9px; }
.salesperson-history-card > p { color: var(--muted); font-size: 11px; line-height: 1.45; }
.salesperson-history-heading { align-items: center; display: flex; gap: 15px; justify-content: space-between; }
.salesperson-history-heading h3 { font: 700 21px/1.1 Bahnschrift, sans-serif; margin: 0; }
.salesperson-history-list { border-top: 1px solid var(--line); margin-top: 15px; }
.salesperson-history-item { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) auto; padding: 12px 2px; }
.salesperson-history-item strong, .salesperson-history-item span { display: block; }
.salesperson-history-item strong { font-size: 11px; }
.salesperson-history-item span { color: var(--muted); font-size: 9px; margin-top: 3px; }
.salesperson-history-item a { color: var(--turf); font: 800 9px/1 Bahnschrift, sans-serif; text-decoration: none; }
.salesperson-history-item a:hover { text-decoration: underline; }
.proposal-workspace .preview-card { position: sticky; top: 100px; }

/* Full Turf proposal workspace: editable HTML, PDF, email, and history. */
.turf-card { border-color: var(--border); box-shadow: var(--shadow-soft); }
.proposal-settings-card { padding: 22px; }
.proposal-settings-grid { display: grid; gap: 18px 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.proposal-settings-grid .field:nth-last-child(-n+3) { grid-column: span 1; }
.proposal-create-row { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
.proposal-create-row .form-status { margin-right: auto; order: -1; }
.proposal-edit-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.proposal-edit-toolbar .secondary-button { min-height: 38px; padding: 0 14px; }
.proposal-edit-toolbar .primary-button { margin-left: auto; min-height: 38px; padding: 0 18px; }
.proposal-edit-help { color: var(--ink-500); font-size: .86rem; line-height: 1.5; margin: 0 0 14px; }
.proposal-preview-status { color: var(--green-800); display: block; float: right; font-size: .8rem; font-weight: 700; margin-top: -22px; }
.proposal-page-preview { display: grid; gap: 12px; }
.proposal-page-preview-head {
  align-items: center;
  background: linear-gradient(180deg, #eef5ef, #f9fbf9);
  border: 1px solid var(--border);
  border-radius: 12px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 12px 14px;
}
.proposal-page-preview-head strong,
.proposal-page-preview-head span { display: block; }
.proposal-page-preview-head strong { color: var(--green-950); font-size: .92rem; }
.proposal-page-preview-head span { color: var(--ink-500); font-size: .76rem; margin-top: 3px; }
.proposal-page-preview .pdf-preview-frame { height: 900px; }

.crm-confirm-box {
  align-items: center; background: linear-gradient(180deg, #fff8df 0%, #fffdf4 100%);
  border: 1px solid rgba(200, 166, 90, .55); border-radius: 14px;
  box-shadow: 0 10px 22px rgba(200, 166, 90, .1); display: flex; gap: 14px;
  justify-content: space-between; margin-top: 12px; padding: 12px 14px;
}
.crm-confirm-copy { display: grid; gap: 2px; min-width: 0; }
.crm-confirm-copy strong { color: #7d5a10; font-size: .92rem; }
.crm-confirm-copy span { color: #8c6a1f; font-size: .86rem; line-height: 1.4; }
.crm-confirm-actions { align-items: center; display: inline-flex; flex-shrink: 0; gap: 8px; }
.net-profit-guard {
  align-items: center; background: linear-gradient(180deg, #fef2f1 0%, #fffafa 100%);
  border: 1px solid rgba(192, 40, 29, .32); border-left: 4px solid #c0281d;
  border-radius: 16px; box-shadow: 0 14px 32px rgba(192, 40, 29, .13);
  display: flex; gap: 16px; margin-top: 14px; padding: 16px 18px;
}
.net-profit-guard-icon { align-items: center; background: linear-gradient(135deg, #e23b30, #b0231b); border-radius: 50%; box-shadow: 0 6px 14px rgba(176,35,27,.3); color: white; display: inline-flex; flex-shrink: 0; font-weight: 900; height: 42px; justify-content: center; width: 42px; }
.net-profit-guard-copy { display: grid; flex: 1; gap: 3px; min-width: 0; }
.net-profit-guard-copy strong { color: #8f1f17; font-size: .98rem; }
.net-profit-guard-copy span { color: #9a3a33; font-size: .88rem; line-height: 1.45; }

.pdf-preview, .previous-projects { gap: 16px; margin-top: 22px; padding: 20px 22px; }
.pdf-preview-header, .previous-projects-header { align-items: end; display: flex; gap: 16px; justify-content: space-between; }
.previous-projects-header { border-bottom: 1px solid var(--border); padding-bottom: 14px; }
.pdf-preview-title, .previous-projects-title { color: var(--green-950); font-family: "Segoe UI", Tahoma, sans-serif; line-height: 1.1; margin: 6px 0 0; text-transform: uppercase; }
.pdf-preview-title { font-size: 1.55rem; }
.previous-projects-title { font-size: 1.45rem; }
.pdf-preview-meta { align-items: center; display: flex; gap: 12px; }
.pdf-preview-link { color: var(--green-800); font-weight: 700; text-decoration: none; }
.pdf-preview-link:hover { text-decoration: underline; }
.pdf-preview-shell {
  background: linear-gradient(180deg, rgba(232,236,240,.96), rgba(246,248,250,.98));
  border: 1px solid var(--border); border-radius: 18px; box-shadow: var(--shadow-soft);
  min-height: 860px; overflow: hidden; position: relative;
}
.pdf-preview-frame { background: #d9dde3; border: 0; height: 1000px; width: 100%; }
#pdf-preview-frame { height: 860px; }

.email-draft {
  background: linear-gradient(180deg, #fff 0%, rgba(246,250,244,.55) 100%);
  border: 1px solid var(--border); border-radius: 20px; display: grid; gap: 14px;
  margin-top: 20px; padding: 22px;
}
.email-draft-header { align-items: flex-end; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin-bottom: 2px; }
.email-draft-title { color: var(--green-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; margin: 6px 0 0; }
.email-draft-reset { align-self: center; background: rgba(255,255,255,.85); border: 1px solid var(--border); border-radius: 999px; color: var(--green-900); cursor: pointer; font-size: .82rem; font-weight: 600; padding: 8px 14px; }
.email-draft-reset:hover { background: var(--green-050); border-color: var(--border-strong); }
.email-draft-field { display: grid; gap: 6px; }
.email-draft-label { color: var(--ink-500); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.email-draft-input, .email-draft-textarea { background: #fff; border: 1px solid var(--border); border-radius: 12px; color: var(--ink-900); font: inherit; padding: 11px 14px; width: 100%; }
.email-draft-input:focus, .email-draft-textarea:focus { border-color: var(--green-700); box-shadow: 0 0 0 3px rgba(23,100,58,.16); outline: none; }
.email-draft-textarea { font-family: inherit; line-height: 1.55; min-height: 420px; resize: vertical; }
.email-recipient-header { align-items: center; display: flex; justify-content: space-between; }
.email-recipient-list { display: grid; gap: 8px; }
.email-recipient-row { align-items: center; display: flex; gap: 8px; }
.email-recipient-row .email-draft-input { flex: 1; }
.email-recipient-add, .email-recipient-remove { background: transparent; border: 0; color: var(--green-800); font-size: .82rem; font-weight: 700; padding: 5px 0; }
.email-recipient-remove { color: #a22f27; padding: 5px 8px; }
.email-draft-attachment { align-items: center; background: var(--green-050); border: 1px dashed var(--border-strong); border-radius: 12px; color: var(--green-900); display: inline-flex; gap: 8px; margin: 2px 0 0; max-width: 100%; padding: 10px 14px; width: fit-content; }
.email-draft-attachment-hint { color: var(--ink-500); font-weight: 500; }
.email-draft-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; justify-content: flex-end; margin-top: 4px; }
.email-draft-actions .pdf-email-status { flex: 1 1 auto; text-align: left; }
.pdf-email-status[data-kind="error"] { color: var(--danger); font-weight: 700; }
.pdf-email-status[data-kind="success"] { color: var(--green-700); font-weight: 700; }
.email-draft-actions .pdf-email-send { min-height: 46px; padding: 0 26px; }

.previous-projects-caption { color: var(--ink-500); font-size: .86rem; line-height: 1.5; margin: 0; max-width: 320px; text-align: right; }
.previous-projects-body { align-items: start; display: grid; gap: 18px; grid-template-columns: minmax(260px, .92fr) minmax(0, 1.08fr); }
.my-projects-body { display: grid; gap: 14px; }
.history-chart, .history-detail { display: grid; gap: 10px; }
.history-chart { align-content: start; }
.history-bar-row {
  align-items: center; background: rgba(255,255,255,.9); border: 1px solid var(--border);
  border-radius: 14px; color: var(--ink-700); display: grid; gap: 10px;
  grid-template-columns: minmax(100px,1fr) minmax(110px,1.7fr) auto; padding: 10px 12px; width: 100%;
}
.history-bar-row:hover { border-color: #d4ad8b; box-shadow: 0 10px 18px rgba(75,31,20,.1); transform: translateY(-1px); }
.history-bar-row.is-active { background: linear-gradient(180deg, rgba(247,248,249,.94), rgba(255,250,244,.98)); border-color: rgba(163,79,44,.42); box-shadow: inset 0 0 0 1px rgba(163,79,44,.16), 0 12px 20px rgba(75,31,20,.1); }
.history-bar-label { font-size: .88rem; font-weight: 600; text-align: left; }
.history-bar-track { background: rgba(163,79,44,.09); border-radius: 999px; height: 10px; overflow: hidden; position: relative; }
.history-bar-fill { background: linear-gradient(90deg, var(--green-700), var(--green-800)); border-radius: inherit; display: block; height: 100%; min-width: 0; }
.history-detail { background: linear-gradient(180deg, rgba(247,248,249,.9), rgba(255,255,255,.98)); border: 1px solid var(--border); border-radius: 16px; min-height: 100%; padding: 14px 16px; }
.history-detail-heading { align-items: start; border-bottom: 1px solid var(--border); display: flex; gap: 12px; justify-content: space-between; padding-bottom: 12px; }
.history-detail-heading span, .history-detail-heading strong { display: block; }
.history-detail-heading span { color: #8f4b35; font-size: .72rem; font-weight: 700; letter-spacing: .14em; margin-bottom: 4px; text-transform: uppercase; }
.history-detail-heading strong { color: var(--green-950); font-size: 1.05rem; }
.history-detail-heading b { color: var(--green-900); font-size: .82rem; }
.history-table-wrap { border: 1px solid rgba(225,216,207,.95); border-radius: 14px; max-height: 420px; overflow: auto; }
.history-table { border-collapse: collapse; font-size: .85rem; width: 100%; }
.history-table th { background: linear-gradient(180deg, #f4f5f6, #eceff1); border-bottom: 1px solid rgba(225,216,207,.95); color: #704131; font-size: .7rem; letter-spacing: .06em; padding: 10px 12px; position: sticky; text-align: left; text-transform: uppercase; top: 0; }
.history-table td { border-bottom: 1px solid rgba(225,216,207,.9); color: var(--ink-700); padding: 11px 12px; vertical-align: top; }
.history-table td:first-child strong, .history-table td:first-child small { display: block; }
.history-table td:first-child small { color: var(--ink-500); margin-top: 3px; }
.history-table a { color: var(--green-800); font-weight: 700; text-decoration: none; }
.history-table a:hover { text-decoration: underline; }
.history-muted { color: var(--ink-500); }
.history-table .load-project-button { display: inline-flex; margin-top: 7px; }

.feedback-fab { align-items: center; background: linear-gradient(135deg, var(--turf), #174f32); border: 0; border-radius: 999px; bottom: 22px; box-shadow: 0 16px 34px rgba(11, 42, 61, .25); color: #fff; display: inline-flex; font-weight: 800; gap: 8px; min-height: 50px; padding: 0 18px; position: fixed; right: 22px; z-index: 45; }
.feedback-fab:hover { transform: translateY(-1px); }
.feedback-panel { background: #fff; border: 1px solid var(--line); border-radius: 18px; bottom: 84px; box-shadow: 0 26px 60px rgba(11, 42, 61, .24); max-height: calc(100vh - 115px); overflow: auto; padding: 20px; position: fixed; right: 22px; width: min(370px, calc(100vw - 28px)); z-index: 46; }
.feedback-panel-heading { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.feedback-panel-heading h2 { font: 700 23px/1.1 Bahnschrift, sans-serif; margin: 3px 0 16px; }
.feedback-stars { border: 0; display: flex; gap: 7px; margin: 0; padding: 0; }
.feedback-stars legend { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; margin-bottom: 8px; text-transform: uppercase; }
.feedback-stars label { cursor: pointer; position: relative; }
.feedback-stars input { inset: 0; opacity: 0; position: absolute; }
.feedback-stars label > span { align-items: center; background: #f3f6f4; border: 1px solid var(--line); border-radius: 9px; color: #99a9a0; display: flex; font-size: 19px; height: 40px; justify-content: center; width: 48px; }
.feedback-stars input:checked + span, .feedback-stars label:has(input:checked) ~ label > span { border-color: #d1ad55; }
.feedback-stars input:checked + span { background: #fff3ca; color: #bb7d0d; }
.feedback-stars small { display: none; }
.feedback-message { color: var(--ink); display: flex; font-size: 12px; font-weight: 800; justify-content: space-between; margin: 16px 0 7px; }
.feedback-message span { color: var(--muted); font-weight: 500; }
#feedback-message { border: 1px solid var(--line); border-radius: 10px; min-height: 105px; padding: 11px; resize: vertical; width: 100%; }
.feedback-panel-actions { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin-top: 12px; }
.feedback-panel-actions .primary-button { min-height: 42px; padding: 0 16px; }
#feedback-status { color: var(--turf); font-size: 11px; }
#feedback-status[data-kind="error"] { color: var(--danger); }
.feedback-history-list { border-top: 1px solid var(--line); margin-top: 16px; }
.feedback-history-item { border-bottom: 1px solid var(--line); display: grid; gap: 5px; padding: 13px 2px; }
.feedback-history-item header { align-items: center; display: flex; gap: 10px; justify-content: space-between; }
.feedback-history-item strong { font-size: 12px; }
.feedback-history-item time { color: var(--muted); font-size: 9px; }
.feedback-history-item p { color: var(--ink-700); font-size: 12px; margin: 0; white-space: pre-wrap; }
.feedback-rating { color: #bb7d0d; letter-spacing: .05em; }

[hidden] { display: none !important; }

.crm-record-create {
  background: linear-gradient(180deg, rgba(246, 250, 247, .98), rgba(255, 255, 255, .98));
  border: 1px solid #cbd8cc;
  border-left: 4px solid var(--green-700);
  border-radius: 12px;
  padding: 12px;
}
.crm-record-create-row {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
}
.crm-record-create-row .secondary-button { min-height: 42px; white-space: nowrap; }
.crm-record-requirement { color: #825a15; display: block; font-size: 10px; font-weight: 750; margin-top: 8px; }
.crm-record-create .crm-confirm-box { margin-top: 10px; }
.crm-record-create .crm-confirm-actions .secondary-button { background: rgba(255, 255, 255, .92); }

@media (max-width: 1240px) {
  .workspace { grid-template-columns: 70px minmax(500px, 1fr) minmax(340px, 420px); }
  .step-rail a { font-size: 0; }
  .step-rail a span { font-size: 9px; }
  .integration-status span { font-size: 0; padding: 8px; }
  .integration-status span::before { height: 7px; width: 7px; }
  .line-header { display: none; }
  .line-row { grid-template-columns: 1fr 70px 70px 95px 90px 95px 32px; }
  .workspace-tab-arrow { display: none; }
  .proposal-workspace { grid-template-columns: minmax(300px, 380px) minmax(470px, 1fr); }
}

@media (max-width: 700px) {
  .crm-record-create-row { grid-template-columns: 1fr; }
  .crm-record-create-row .secondary-button { width: 100%; }
  .crm-record-create .crm-confirm-box { align-items: stretch; flex-direction: column; }
  .crm-record-create .crm-confirm-actions { width: 100%; }
  .crm-record-create .crm-confirm-actions > * { flex: 1; }
}

@media (max-width: 980px) {
  .workspace { grid-template-columns: 1fr; max-width: 820px; padding-top: 30px; }
  .step-rail { display: none; }
  .preview-column { grid-row: 2; }
  .preview-card { position: static; }
  .document-window { height: 620px; }
  .integration-status { display: none; }
  .signed-in-user { display: none; }
  .app-main { padding-top: 28px; }
  .form-shell { padding: 28px; }
  .form-shell-header { grid-template-columns: 1fr; }
  .form-shell-meta { justify-items: start; }
  .form-shell-meta > p { text-align: left; }
  .proposal-manifest { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proposal-manifest > div:nth-child(2) { border-right: 0; }
  .proposal-manifest > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, .14); }
  .proposal-workspace { grid-template-columns: 1fr; }
  .proposal-workspace .preview-card { position: static; }
}

@media (max-width: 680px) {
  .site-header { min-height: 65px; padding: 9px 14px; }
  .brand img { height: 34px; width: 72px; }
  .brand strong { font-size: 14px; }
  .brand small { font-size: 8px; }
  .workspace { padding: 24px 12px 60px; }
  .page-intro h1 { font-size: 38px; }
  .page-intro > p:last-child { font-size: 14px; }
  .form-card { border-radius: 14px; padding: 18px 14px; }
  .card-heading { grid-template-columns: 36px 1fr; }
  .card-heading .card-badge { display: none; }
  .step-number { height: 33px; width: 33px; }
  .card-heading h2 { font-size: 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .assumption-bar { align-items: flex-start; flex-direction: column; }
  .formula-note { margin-left: 0; }
  .line-row { gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .line-product { grid-column: 1 / -1; }
  .remove-line { grid-column: 2; grid-row: 1; justify-self: end; }
  .line-taxable { grid-column: 1 / -1; }
  .expense-row { grid-template-columns: 1fr 110px 32px; }
  .submit-row { align-items: stretch; flex-direction: column; }
  .primary-button { width: 100%; }
  .preview-heading { padding: 20px; }
  .total-panel { padding-inline: 20px; }
  .document-window { height: 520px; }
  .metric-row { padding-inline: 18px; }
  .history-item { grid-template-columns: 88px 1fr; }
  .history-item a { grid-column: 2; }
  .history-actions { grid-column: 2; justify-content: flex-start; }
  .app-main { padding: 14px 10px 55px; }
  .form-shell { border-radius: 15px; padding: 17px 12px; }
  .form-shell-header { gap: 18px; margin-bottom: 18px; padding: 8px 4px 20px; }
  .form-shell-title { font-size: 31px; }
  .form-shell-subtitle { font-size: 13px; }
  .form-shell-meta > p { display: none; }
  .workspace-tabs { gap: 8px; padding: 7px; }
  .workspace-tab { flex: 1; min-width: 0; padding: 11px 10px; }
  .tab-intro { align-items: start; flex-direction: column; gap: 9px; }
  .tab-intro h2 { font-size: 27px; }
  .tab-intro > p { text-align: left; }
  .panel-actions { align-items: stretch; flex-direction: column; }
  .create-actions { flex-direction: column-reverse; }
  .proposal-manifest { grid-template-columns: 1fr; }
  .proposal-manifest > div { border-bottom: 1px solid rgba(255, 255, 255, .14); border-right: 0; }
  .proposal-manifest > div:last-child { border-bottom: 0; }
  .quote-confirm-actions { flex-direction: column; }
  .proposal-workspace { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media (max-width: 980px) {
  .proposal-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .previous-projects-body { grid-template-columns: 1fr; }
  .pdf-preview-frame { height: 820px; }
}

@media (max-width: 680px) {
  .proposal-settings-grid { grid-template-columns: 1fr; }
  .proposal-create-row { align-items: stretch; flex-direction: column; }
  .proposal-create-row .form-status { order: 0; }
  .proposal-preview-status { float: none; margin: 0 0 8px; }
  .crm-confirm-box, .pdf-preview-header, .previous-projects-header { align-items: stretch; flex-direction: column; }
  .crm-confirm-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .previous-projects-caption { text-align: left; }
  .pdf-preview-frame { height: 680px; }
  .email-draft { padding: 18px; }
  .email-draft-actions .pdf-email-send { width: 100%; }
  .email-recipient-row { align-items: stretch; flex-direction: column; }
  .history-bar-row { grid-template-columns: minmax(90px, 1fr) minmax(80px, 1.2fr) auto; }
  .feedback-fab { bottom: 14px; right: 14px; }
  .feedback-fab span:last-child { display: none; }
  .feedback-panel { bottom: 74px; right: 14px; }
}

/* Shared estimator shell: intentionally identical to Turf Maintenance. */
:root {
  --green-950: #04150d;
  --green-900: #082416;
  --green-800: #0d3b24;
  --green-700: #17643a;
  --green-100: #dcecdf;
  --green-050: #f4fbf5;
  --gold-500: #f2c94c;
  --gold-300: #ffe08a;
  --goal-post: #f4c430;
  --ink-900: #14211a;
  --ink-700: #34493c;
  --ink-500: #6b7d70;
  --surface: #ffffff;
  --surface-soft: #f7fbf7;
  --surface-tint: #ecf4ee;
  --border: #cbd9cf;
  --border-strong: #94aa9b;
  --shadow-soft: 0 10px 28px rgba(4, 21, 13, 0.1);
  --shadow-card: 0 24px 58px rgba(4, 21, 13, 0.18);
  --radius-sm: 8px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 14px;
}

html { background: #0d3b24; }

body {
  min-height: 100vh;
  color: var(--ink-900);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.1), transparent 20%, rgba(0, 0, 0, 0.22) 100%),
    radial-gradient(circle at 50% 42%, rgba(140, 255, 98, 0.16), transparent 38%),
    url("../img/header-turf.jpg"),
    url("../img/grass-texture.svg"),
    linear-gradient(180deg, #105719 0%, #22831f 46%, #176716 74%, #0b3d12 100%);
  background-size: auto, auto, 558px 240px, 640px 360px, auto;
  background-repeat: no-repeat, no-repeat, repeat, repeat, no-repeat;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.16), transparent 18%, transparent 74%, rgba(0, 0, 0, 0.22)),
    radial-gradient(circle at 48% 18%, rgba(185, 255, 124, 0.12), transparent 28%);
  pointer-events: none;
  z-index: -1;
}

.hero {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(4, 21, 13, 0.08), rgba(4, 21, 13, 0.34)),
    url("../img/grass-photo.jpg") center / cover repeat;
  color: #fff;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(4, 21, 13, 0.02), rgba(4, 21, 13, 0.1));
  pointer-events: none;
}

.hero-glow {
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 999px;
  filter: blur(28px);
  opacity: 0.18;
  pointer-events: none;
}

.hero-glow-left { top: -160px; left: -90px; background: #fff; }
.hero-glow-right { right: -120px; top: -100px; background: #f2c94c; display: none; }

.hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1180px;
  margin: 0 auto;
  padding: 108px 16px 138px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: 28px;
  align-items: end;
}

.hero-copy { max-width: 760px; }
.hero-topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.hero-kicker, .hero-panel-kicker, .card-label { margin: 0; font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hero-kicker { color: rgba(255,255,255,.72); }

.hero-user {
  position: absolute;
  top: 20px;
  right: 22px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.hero-user-copy { display: grid; gap: 2px; text-align: right; }
.hero-user-copy strong, .hero-user-copy span { display: block; }
.hero-user-label { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); }

.hero-login-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  background: linear-gradient(180deg, #fff 0%, #eef8ef 100%);
  color: var(--green-900);
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 14px 28px rgba(75,31,20,.2);
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.hero-login-link:hover { transform: translateY(-1px); box-shadow: 0 18px 30px rgba(75,31,20,.26); filter: saturate(1.03); }
.hero-login-link-secondary { min-height: 40px; padding: 0 14px; background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.18); box-shadow: none; }

.hero-brand { display: flex; align-items: center; gap: 18px; }
.hero-logo { width: 68px; height: 68px; object-fit: contain; flex-shrink: 0; padding: 10px; border-radius: 22px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); box-shadow: 0 16px 28px rgba(0,0,0,.16); }
.hero-brand-copy { min-width: 0; }
.hero-title-row { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.hero-title { margin: 0; font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; font-size: 2.85rem; line-height: 1.02; letter-spacing: 0; color: #fff; text-transform: uppercase; text-shadow: 0 4px 18px rgba(4,21,13,.4); }
.hero-title-truck {
  display: inline-flex;
  width: 106px;
  height: 46px;
  overflow: hidden;
  flex: 0 0 auto;
}
.hero-title-truck img {
  width: 118px;
  height: auto;
  max-width: none;
  align-self: flex-start;
  transform: translate(-6px, -7px);
  filter: grayscale(1) invert(1) contrast(1.35) drop-shadow(0 4px 6px rgba(0,0,0,.3));
}
.hero-sub { margin: 22px 0 0; max-width: 680px; font-size: 1.05rem; line-height: 1.75; color: rgba(255,255,255,.84); }
.hero-tags { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px; }
.hero-tag { display: inline-flex; align-items: center; padding: 9px 14px; border-radius: 8px; border: 1px solid rgba(255,255,255,.18); background: rgba(4,21,13,.24); color: #fff; font-size: .84rem; font-weight: 600; }
.hero-tag::before { background: #a8b7bf; border-radius: 50%; content: ""; height: 6px; margin-right: 7px; width: 6px; }
.hero-tag[data-status="ready"]::before { background: #74dc91; }
.hero-tag[data-status="mock"]::before { background: var(--gold-300); }

.hero-panel { align-self: stretch; padding: 18px 18px 16px; border-radius: 8px; background: linear-gradient(180deg, rgba(4,21,13,.88), rgba(6,37,22,.9)), repeating-linear-gradient(90deg, rgba(255,255,255,.1) 0 1px, transparent 1px 48px); border: 1px solid rgba(255,255,255,.22); box-shadow: 0 20px 40px rgba(0,0,0,.16); backdrop-filter: blur(10px); }
.hero-panel-kicker { margin-bottom: 10px; text-align: center; color: var(--gold-300); }
.hero-panel-step { display: grid; grid-template-columns: 42px 1fr; gap: 10px; align-items: center; padding: 10px 0; color: rgba(255,255,255,.9); font-size: .95rem; line-height: 1.45; }
.hero-panel-step + .hero-panel-step { border-top: 1px solid rgba(255,255,255,.12); }
.hero-step-number { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 6px; background: #07170f; border: 1px solid rgba(255,255,255,.14); color: var(--gold-300); font-size: .8rem; font-weight: 700; letter-spacing: .08em; }
.hero-rule { position: relative; z-index: 1; height: 4px; background: repeating-linear-gradient(90deg, #fff 0 72px, var(--gold-500) 72px 86px, #fff 86px 158px); }

.hero-inner-simple {
  grid-template-columns: 1fr;
  padding-top: 92px;
  padding-bottom: 112px;
}
.hero-inner-simple .hero-copy { max-width: none; }

.shell { max-width: 1180px; margin: -84px auto 0; padding: 0 16px 56px; position: relative; z-index: 2; }
.form-shell { background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(246,252,247,.95)), radial-gradient(circle at 18% 8%, rgba(128,224,118,.12), transparent 26%); border: 1px solid rgba(255,255,255,.72); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); max-width: none; padding: 32px; }
.form-shell::before { content: none; }

.auth-card { max-width: 760px; margin: 0 auto; padding: 40px 32px 36px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: linear-gradient(105deg, rgba(255,255,255,.46), transparent 36%), repeating-linear-gradient(90deg, rgba(163,79,44,.035) 0 1px, transparent 1px 86px), linear-gradient(180deg, rgba(255,250,244,.98) 0%, #fff 100%); box-shadow: var(--shadow-card); text-align: center; }
.auth-card .section-kicker { display: inline-block; }
.auth-card-title { margin: 8px 0 0; font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; font-size: 2.2rem; line-height: 1.08; color: var(--green-950); }
.auth-card-actions { margin-top: 32px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.ms-login-btn { display: inline-flex; align-items: center; gap: 14px; min-height: 64px; padding: 0 36px; border-radius: 8px; background: linear-gradient(135deg, var(--green-800) 0%, var(--green-900) 100%); color: #fff; font-size: 1.1rem; font-weight: 700; text-decoration: none; box-shadow: 0 22px 40px rgba(75,31,20,.3), 0 2px 0 rgba(255,255,255,.1) inset; }
.ms-login-btn:hover { transform: translateY(-2px); box-shadow: 0 28px 48px rgba(75,31,20,.34), 0 2px 0 rgba(255,255,255,.12) inset; }
.ms-login-logo { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: #fff; border-radius: 8px; padding: 5px; box-shadow: 0 2px 6px rgba(0,0,0,.12); }
.ms-login-logo svg { width: 100%; height: 100%; display: block; }
.ms-login-hint { margin: 0; font-size: .88rem; color: var(--ink-500); }

.form-shell-header { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 28px; align-items: end; padding-bottom: 28px; margin-bottom: 28px; border-bottom: 4px solid var(--green-900); }
.section-kicker { margin-bottom: 10px; color: var(--green-700); }
.form-shell-title { margin: 0; font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; font-size: 2.35rem; line-height: 1.05; letter-spacing: 0; color: var(--green-950); text-transform: uppercase; }
.form-shell-meta { display: grid; gap: 12px; justify-items: end; align-content: start; }
.field-legend { display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 8px; background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,.74) 38%, rgba(255,255,255,.5) 48%, transparent 62%), linear-gradient(180deg, #f7faf8 0%, #e5eee7 100%); border: 1px solid #d71920; color: var(--ink-700); box-shadow: 0 1px 0 rgba(255,255,255,.88) inset, 0 8px 16px rgba(192,40,29,.08); font-size: .84rem; font-weight: 600; white-space: nowrap; }
.legend-sample { width: 14px; height: 14px; border-radius: 4px; background: linear-gradient(135deg, rgba(255,255,255,.78), rgba(190,199,207,.48) 48%, transparent 68%), #d8dde2; border: 1px solid #c0281d; box-shadow: inset 0 0 0 1px rgba(255,255,255,.42), 0 0 0 2px rgba(192,40,29,.08); }

.workspace-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(236,244,238,.9)); box-shadow: 0 8px 20px rgba(4,21,13,.08); }
.workspace-tab { appearance: none; min-width: 150px; border: 1px solid rgba(45,91,62,.22); border-radius: 10px; padding: 12px 22px; background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,251,248,.96)); color: var(--ink-700); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; box-shadow: inset 0 0 0 1px rgba(255,255,255,.62), 0 4px 10px rgba(4,21,13,.05); }
.workspace-tab:hover { border-color: rgba(23,100,58,.42); background: linear-gradient(180deg, rgba(244,251,245,.98), rgba(255,255,255,.98)); box-shadow: 0 8px 16px rgba(4,21,13,.08); transform: translateY(-1px); }
.workspace-tab.is-active { border-color: rgba(4,21,13,.2); background: linear-gradient(135deg, var(--green-800), var(--green-900)); color: #fff; box-shadow: 0 10px 20px rgba(4,21,13,.18); }
.workspace-tab-arrow { top: 66%; z-index: 20; width: 104px; min-height: 86px; padding: 11px 9px; border: 1px solid rgba(23,100,58,.2); border-radius: 22px; background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(244,251,245,.9)); box-shadow: 0 14px 30px rgba(4,21,13,.16), inset 0 0 0 1px rgba(255,255,255,.76); }
.workspace-tab-arrow-left { left: max(14px, calc(50% - 720px)); }
.workspace-tab-arrow-right { right: max(14px, calc(50% - 720px)); }
.workspace-tab-arrow-icon { width: 22px; height: 22px; border-top: 3px solid var(--green-800); border-right: 3px solid var(--green-800); }
.workspace-tab-arrow-label { color: var(--green-900); font-size: .66rem; font-weight: 900; }

.card { display: grid; gap: 18px; padding: 24px; border-radius: var(--radius-md); background: linear-gradient(115deg, rgba(255,255,255,.62) 0%, transparent 32%), linear-gradient(90deg, var(--green-700) 0 5px, transparent 5px), radial-gradient(circle at 16% 12%, rgba(122,216,106,.1), transparent 24%), linear-gradient(180deg, rgba(247,251,247,.96) 0%, rgba(255,255,255,.98) 100%); border: 1px solid var(--border); box-shadow: var(--shadow-soft); }
.card-label { color: var(--green-700); }

@media (max-width: 980px) {
  .hero-inner { grid-template-columns: 1fr; padding-top: 44px; padding-bottom: 120px; }
  .hero-topbar { flex-direction: column; align-items: flex-start; }
  .hero-user { position: static; margin: 14px 16px 0; justify-content: space-between; }
  .hero-user-copy { text-align: left; }
  .hero-panel { max-width: 620px; }
  .form-shell-header { grid-template-columns: 1fr; align-items: start; }
  .form-shell-meta { justify-items: start; }
}

@media (max-width: 720px) {
  .hero-inner { padding: 34px 12px 106px; gap: 22px; }
  .hero-brand { align-items: flex-start; gap: 14px; }
  .hero-logo { width: 66px; height: 66px; }
  .hero-title { font-size: 2.1rem; line-height: 1.06; }
  .hero-title-row { gap: 9px; }
  .hero-title-truck { width: 84px; height: 38px; }
  .hero-title-truck img { width: 95px; transform: translate(-6px, -6px); }
  .hero-sub { font-size: .97rem; line-height: 1.65; }
  .hero-tags { gap: 8px; }
  .hero-tag { font-size: .8rem; }
  .shell { margin-top: -70px; padding: 0 10px 42px; }
  .form-shell, .auth-card { padding: 22px 16px; border-radius: 8px; }
  .form-shell-title { font-size: 1.8rem; }
  .form-shell-header { gap: 16px; padding-bottom: 22px; margin-bottom: 22px; }
  .workspace-tabs { display: grid; grid-template-columns: 1fr; }
  .workspace-tab-arrow { width: 84px; min-height: 72px; padding: 9px 7px; border-radius: 18px; }
  .workspace-tab-arrow-icon { width: 18px; height: 18px; }
  .workspace-tab-arrow-label { font-size: .58rem; }
  .hero-history-button { display: none; }
}

/* Compact managed field groups used by Sales and Proposal. */
.compact-section-stack {
  display: grid;
  gap: 12px;
}

.compact-field-section {
  display: grid;
  gap: 12px;
  padding: 14px 16px 16px;
  border: 1px solid #d6e1d9;
  border-radius: 10px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .9) inset;
}

.compact-field-section-managed {
  border-color: #b9d3c0;
  background: linear-gradient(90deg, rgba(23, 100, 58, .055), rgba(255, 255, 255, .84) 42%);
  box-shadow: inset 4px 0 0 var(--green-700), inset 0 1px 0 rgba(255, 255, 255, .94);
}

.compact-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 9px;
  border-bottom: 1px solid #e1e9e3;
}

.compact-section-heading > div {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.compact-section-heading h4 {
  margin: 0;
  color: var(--green-950);
  font-size: .94rem;
  line-height: 1.2;
}

.compact-section-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 6px;
  background: var(--green-900);
  color: #fff;
  font-size: .68rem;
  font-weight: 900;
}

.compact-section-note {
  color: var(--ink-500);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
}

.compact-section-note-managed {
  padding: 5px 8px;
  border-radius: 6px;
  background: var(--green-100);
  color: var(--green-900);
}

.required-mark { color: #c0281d; font-weight: 900; }

.compact-grid {
  display: grid;
  gap: 10px 12px;
  align-items: start;
}

.compact-grid-four,
.compact-grid-contact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

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

.compact-span-2 { grid-column: span 2; }

.compact-field-section .field { gap: 5px; }
.compact-field-section .field label {
  font-size: .68rem;
  letter-spacing: .025em;
}
.compact-field-section .field input,
.compact-field-section .field select,
.compact-field-section .field textarea {
  min-height: 42px;
  padding: 9px 11px;
  border-radius: 8px;
}
.compact-field-section .field textarea {
  height: 56px;
  min-height: 56px;
}
.compact-field-section .search-input > span { top: 12px; }
.compact-field-section .search-input input { padding-left: 39px; }
.compact-inline-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 12px;
  min-height: 16px;
}
.compact-inline-meta small { margin: 0; }

@media (max-width: 1000px) {
  .compact-grid-four,
  .compact-grid-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .compact-field-section { padding: 13px; }
  .compact-section-heading { align-items: flex-start; }
  .compact-section-note { white-space: normal; text-align: right; }
  .compact-grid-four,
  .compact-grid-contact,
  .compact-grid-two { grid-template-columns: 1fr; }
  .compact-span-2 { grid-column: auto; }
}

/* Direct Ship currency-paper theme. */
:root {
  --green-950: #172d23;
  --green-900: #213c2f;
  --green-800: #2f4d3c;
  --green-700: #526b55;
  --green-100: #d7ddc6;
  --green-050: #f1f2df;
  --gold-500: #b9b083;
  --gold-300: #ddd6aa;
  --ink-900: #1f3328;
  --ink-700: #3f5345;
  --ink-500: #6d796c;
  --surface: #f7f5e7;
  --surface-soft: #efefdc;
  --surface-tint: #e2e5cf;
  --border: #bec6ad;
  --border-strong: #8e9d84;
  --shadow-soft: 0 10px 28px rgba(31, 51, 40, .12);
  --shadow-card: 0 24px 58px rgba(31, 51, 40, .2);
}

html { background: #819079; }

body {
  background-color: #c9cfb7;
  background-image:
    linear-gradient(180deg, rgba(247,245,226,.28), transparent 24%, rgba(31,51,40,.12) 100%),
    radial-gradient(ellipse at 48% 12%, rgba(241,242,220,.82), transparent 46%),
    repeating-linear-gradient(28deg, rgba(47,77,60,.045) 0 1px, transparent 1px 8px),
    repeating-linear-gradient(-28deg, rgba(255,255,241,.12) 0 1px, transparent 1px 10px),
    linear-gradient(180deg, #dce0c8 0%, #c2cbb2 54%, #9daa91 100%);
  background-size: auto, auto, 18px 18px, 22px 22px, auto;
  background-repeat: no-repeat, no-repeat, repeat, repeat, no-repeat;
}

body::before {
  background:
    repeating-radial-gradient(ellipse at 50% 20%, transparent 0 12px, rgba(38,67,51,.035) 13px 14px, transparent 15px 25px),
    linear-gradient(180deg, rgba(255,255,241,.18), transparent 24%, transparent 76%, rgba(31,51,40,.1));
}

.hero {
  background:
    radial-gradient(ellipse at 18% 28%, rgba(222,225,192,.18), transparent 33%),
    repeating-linear-gradient(28deg, rgba(232,233,204,.045) 0 1px, transparent 1px 9px),
    repeating-linear-gradient(-28deg, rgba(4,20,13,.08) 0 1px, transparent 1px 11px),
    linear-gradient(118deg, #1b382b 0%, #35533f 52%, #68765f 100%);
}

.hero::before {
  background:
    linear-gradient(90deg, rgba(15,39,28,.16), transparent 48%, rgba(233,233,205,.06)),
    repeating-radial-gradient(ellipse at 72% 54%, transparent 0 16px, rgba(228,229,201,.035) 17px 18px, transparent 19px 30px);
}

.hero-glow-left { background: #e5e5c9; opacity: .13; }
.hero-title { color: #f6f4dc; }
.hero-kicker { color: rgba(242,241,215,.75); }
.hero-user { background: rgba(226,229,205,.12); border-color: rgba(242,241,215,.2); }
.hero-rule { background: repeating-linear-gradient(90deg, #e5e6ce 0 72px, #7e8d72 72px 86px, #e5e6ce 86px 158px); }

.form-shell,
.auth-card {
  background:
    linear-gradient(105deg, rgba(255,255,244,.48), transparent 34%),
    repeating-linear-gradient(90deg, rgba(47,77,60,.028) 0 1px, transparent 1px 84px),
    linear-gradient(180deg, rgba(247,246,229,.97), rgba(237,239,216,.98));
  border-color: rgba(222,225,199,.9);
}

.workspace-tabs {
  background: linear-gradient(180deg, rgba(246,245,228,.94), rgba(220,225,199,.94));
}
.workspace-tab {
  background: linear-gradient(180deg, rgba(251,249,234,.98), rgba(233,235,215,.98));
}
.workspace-tab:hover {
  background: linear-gradient(180deg, #f7f7e6, #e4e8d1);
}
.workspace-tab.is-active {
  background: linear-gradient(135deg, #385846, #203a2e);
}
.workspace-tab-arrow {
  background: linear-gradient(180deg, rgba(247,246,230,.96), rgba(221,226,202,.93));
}

.card {
  background:
    linear-gradient(90deg, var(--green-700) 0 5px, transparent 5px),
    repeating-linear-gradient(25deg, rgba(50,77,61,.022) 0 1px, transparent 1px 12px),
    linear-gradient(180deg, rgba(245,245,229,.98), rgba(251,249,237,.99));
}

.compact-field-section {
  border-color: #c9cfb8;
  background: rgba(250,248,232,.78);
}
.compact-field-section-managed {
  border-color: #aab79e;
  background: linear-gradient(90deg, rgba(82,107,85,.085), rgba(250,248,232,.88) 42%);
}
.compact-section-heading { border-color: #d9ddc8; }
.compact-section-note-managed { background: #d6ddc6; }

.field input,
.field select,
.field textarea,
.assumption-bar input,
.line-row input,
.line-row select,
.expense-row input {
  background: #fbfaed;
  border-color: #bcc5b1;
}

.assumption-bar { background: #e7ead7; }
.feedback-fab { background: linear-gradient(135deg, #516a55, #2d4939); }
