
@media print { .job-planning-details { display: none !important; } }:root {
  color-scheme: light;
  --ink: #171717;
  --muted: #66635d;
  --paper: #fffdfa;
  --canvas: #f3efe6;
  --line: #ded7ca;
  --gold: #c79d28;
  --gold-dark: #775c0a;
  --green: #205f47;
  --red: #982f2a;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--canvas); color: var(--ink); line-height: 1.5; }
a { color: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible, textarea:focus-visible { outline: 3px solid #1769aa; outline-offset: 3px; }
.skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 30; padding: .75rem 1rem; background: white; color: var(--green); }
.skip-link:focus { top: .5rem; }
.site-header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1rem max(1rem, calc((100% - 70rem) / 2)); background: var(--paper); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: .7rem; font-weight: 800; text-decoration: none; min-width: 0; }
.brand-mark { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: .75rem; color: #e8c65c; background: #171717; }
.signed-in { color: var(--muted); font-size: .9rem; text-align: right; }
.account-controls { display: flex; gap: .7rem; align-items: center; justify-content: flex-end; }
.account-controls form { margin: 0; }
.account-menu { position: relative; flex: 0 0 auto; }
.account-menu > summary { padding: .6rem .8rem; min-height: 2.75rem; border: 1px solid var(--line); border-radius: .65rem; font-weight: 750; cursor: pointer; }
.account-menu[open] > summary { background: #e6f3ed; border-color: var(--green); }
.account-menu-content { position: absolute; z-index: 20; top: calc(100% + .5rem); right: 0; display: grid; gap: .35rem; width: min(19rem, calc(100vw - 2rem)); padding: .8rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--paper); box-shadow: 0 10px 30px rgb(52 43 23 / 16%); }
.account-menu-content .signed-in { max-width: none; padding: .5rem; text-align: left; overflow-wrap: anywhere; }
.account-menu-content .account-link { display: flex; align-items: center; min-height: 2.75rem; padding: .5rem; border-radius: .4rem; }
.account-menu-content .account-link:hover { background: #e6f3ed; }
.account-menu-content form { margin: .35rem 0 0; }
.account-menu-content button { width: 100%; min-height: 2.75rem; }
.account-link { color: var(--green); font-size: .85rem; font-weight: 800; text-underline-offset: .2em; }
.logout-button { padding: .55rem .75rem; border: 1px solid var(--line); border-radius: .55rem; color: var(--ink); background: var(--paper); font: inherit; font-size: .85rem; font-weight: 750; cursor: pointer; }
.staging-banner { padding: .55rem 1rem; color: #493900; background: #fff0af; text-align: center; font-weight: 750; }
.page-shell { width: min(70rem, calc(100% - 2rem)); margin: 2rem auto 4rem; }
.page-heading { margin-bottom: 1.25rem; }
.page-heading h1 { margin: .1rem 0 .35rem; font-size: clamp(2rem, 7vw, 3.5rem); line-height: 1.05; }
.page-heading p { margin: 0; color: var(--muted); }
.eyebrow { color: var(--gold-dark) !important; font-size: .78rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.filters { display: flex; gap: .5rem; overflow-x: auto; padding: .25rem 0 1.25rem; }
.filter-link { flex: 0 0 auto; padding: .7rem 1rem; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); text-decoration: none; font-weight: 750; }
.filter-link.active { color: white; background: var(--ink); border-color: var(--ink); }
.document-group-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 0 0 1rem; }
.document-group-nav a { display: grid; align-content: center; min-height: 3.5rem; padding: .6rem 1rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--paper); text-decoration: none; font-weight: 800; }
.document-group-nav a:hover { border-color: var(--green); }
.document-group-nav span { color: var(--muted); font-weight: 500; font-size: .8rem; }
.workspace-document-groups { display: grid; gap: 2rem; }
.workspace-document-group { min-width: 0; scroll-margin-top: 1rem; }
.workspace-group-heading { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: .1rem .5rem; padding: 1rem; margin-bottom: .5rem; border-block: 1px solid var(--line); background: #f5f6f6; }
.workspace-group-heading h2 { margin: 0; font-size: 1.35rem; }
.workspace-group-heading span, .workspace-group-heading p { margin: 0; color: var(--muted); font-size: .85rem; }
.workspace-group-heading p { grid-column: 1 / -1; }
.workspace-group-empty { color: var(--muted); padding: .75rem 1rem; }
@media (min-width: 60rem) { .workspace-document-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.section-navigation { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.35rem; }
.section-link, .section-navigation > a { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; padding: .6rem .9rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--paper); text-decoration: none; font-weight: 800; text-align: center; }
.section-link.active { color: white; background: var(--green); border-color: var(--green); }
.page-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0 0 1.2rem; }
.page-actions:empty { display: none; }
.page-actions .button { justify-content: center; align-items: center; text-align: center; }
.dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); gap: 1rem; }
.dashboard-card { min-width: 0; padding: clamp(1rem, 4vw, 1.4rem); border: 1px solid var(--line); border-radius: 1.2rem; background: var(--paper); box-shadow: 0 10px 30px rgb(52 43 23 / 6%); }
.dashboard-count { margin: 0; color: var(--green); font-size: clamp(2.2rem, 8vw, 3.4rem); font-weight: 900; line-height: 1; }
.dashboard-card h2 { margin: .75rem 0 .3rem; font-size: 1.15rem; }
.dashboard-card p:last-child, .dashboard-note { margin: 0; color: var(--muted); }
.dashboard-card > p:not(.dashboard-count) { color: var(--muted); }
.dashboard-card .detail-link { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: .5rem; }
.dashboard-note { margin-top: 1rem; }
.calendar-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 1.2rem; background: var(--paper); box-shadow: 0 10px 30px rgb(52 43 23 / 6%); }
#calendar-view { scroll-margin-top: 1rem; }
.calendar-toolbar { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; padding: 1rem; border-bottom: 1px solid var(--line); }
.calendar-toolbar > :last-child { justify-self: end; }
.calendar-month-controls { display: flex; gap: .7rem; align-items: center; }
.calendar-month-controls h2 { min-width: 12rem; margin: 0; text-align: center; }
.calendar-arrow { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid var(--line); border-radius: .65rem; text-decoration: none; font-size: 1.25rem; font-weight: 900; }
.calendar-events-link { display: inline-flex; min-height: 2.75rem; padding: .45rem .25rem; align-items: center; color: var(--green); font-weight: 800; text-underline-offset: .2em; }
.calendar-toolbar-actions { display: flex; min-width: 0; gap: .75rem; align-items: center; justify-content: flex-end; flex-wrap: wrap; justify-self: end; }
.calendar-view-switch { display: inline-flex; padding: .2rem; border: 1px solid var(--line); border-radius: .7rem; background: #f5f1e8; }
.calendar-view-option { display: inline-flex; min-width: 4rem; min-height: 2.75rem; padding: .45rem .7rem; align-items: center; justify-content: center; border-radius: .5rem; text-decoration: none; font-weight: 800; }
.calendar-view-option.active { color: white; background: var(--green); }
.calendar-grid-scroll { min-width: 0; }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-weekdays span { padding: .6rem .35rem; color: var(--muted); background: #f5f1e8; border-right: 1px solid var(--line); text-align: center; font-size: .72rem; font-weight: 850; }
.calendar-grid { margin: 0; padding: 0; list-style: none; }
.calendar-day { min-width: 0; min-height: 8.75rem; padding: .45rem; border-top: 1px solid var(--line); border-right: 1px solid var(--line); background: white; }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.outside-month { color: #625f59; background: #faf8f3; }
.calendar-day.today { box-shadow: inset 0 0 0 2px var(--gold); }
.calendar-day.has-conflict { background: #fff8df; }
.calendar-day.today.has-conflict { box-shadow: inset 0 0 0 2px var(--gold), inset 0 -5px 0 var(--red); }
.calendar-day-heading { display: flex; gap: .25rem; align-items: center; justify-content: space-between; min-height: 1.55rem; margin-bottom: .25rem; font-size: .75rem; font-weight: 850; }
.calendar-date-label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.calendar-conflict { padding: .1rem .35rem; border-radius: 999px; color: white; background: var(--red); font-size: .58rem; white-space: nowrap; }
.calendar-day-events { display: grid; gap: .28rem; }
.calendar-event { display: block; min-width: 0; padding: .35rem .4rem; overflow: hidden; border-left: 3px solid var(--green); border-radius: .45rem; color: #17392b; background: #e7f2ec; text-decoration: none; font-size: .68rem; line-height: 1.25; }
a.calendar-event { cursor: pointer; }
.calendar-event-time { display: block; font-weight: 850; }
.calendar-event-title { display: -webkit-box; overflow: hidden; font-weight: 750; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.calendar-event-status { display: block; margin-top: .15rem; font-size: .55rem; font-weight: 900; letter-spacing: .035em; text-transform: uppercase; }
.calendar-event.pending-quote { border-left-color: var(--gold-dark); color: #654b08; background: #fff3cc; }
.calendar-event.quote-expired { border-left-color: #9d7c76; color: #74554f; background: #f5efed; }
.calendar-event.quote-declined { border-left-color: var(--red); color: #762621; background: #fbe9e7; }
.calendar-event.cancelled { border-left-color: #777; color: #595959; background: #efefef; text-decoration: line-through; }
.calendar-day-jump { display: none; }
.calendar-view-list .calendar-weekdays { display: none; }
.calendar-view-list .calendar-grid { grid-template-columns: 1fr; }
.calendar-view-list .calendar-day { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: .65rem; min-height: 0; padding: .75rem; border-right: 0; }
.calendar-view-list .calendar-day.empty-day { min-height: 2.75rem; }
.calendar-view-list .calendar-day.empty-day .calendar-day-events { display: none; }
.calendar-view-list .calendar-day-heading { display: block; margin: 0; }
.calendar-view-list .calendar-day-number { display: none; }
.calendar-view-list .calendar-date-label { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; }
.calendar-view-list .calendar-conflict { display: inline-flex; margin-top: .35rem; }
.calendar-view-list .calendar-event { min-height: 2.75rem; padding: .45rem .55rem; font-size: .78rem; }
.calendar-view-list .calendar-event-time { display: inline; margin-right: .25rem; }
.calendar-view-list .calendar-event-title { display: inline; }
.calendar-view-list .calendar-event-status { font-size: .62rem; }
.calendar-warning, .calendar-empty { margin: 0 0 1rem; padding: .8rem 1rem; border-radius: .7rem; background: #fff3cc; }
.calendar-empty { color: var(--muted); background: var(--paper); border: 1px solid var(--line); }
.event-list { display: grid; gap: 1rem; }
.event-card, .detail-section, .empty-state { padding: clamp(1rem, 4vw, 1.5rem); border: 1px solid var(--line); border-radius: 1.2rem; background: var(--paper); box-shadow: 0 10px 30px rgb(52 43 23 / 6%); }
.lead-read-only-note { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid #d8c784; border-radius: .8rem; color: #59480f; background: #fff6d9; }
.lead-search { display: grid; grid-template-columns: minmax(14rem, 2fr) minmax(10rem, 1fr) minmax(10rem, 1fr) auto auto; gap: .75rem; align-items: end; margin-bottom: 1.25rem; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); }
.lead-search label { display: grid; min-width: 0; gap: .35rem; font-weight: 800; }
.lead-search label span { font-size: .78rem; }
.lead-search input, .lead-search select { min-width: 0; width: 100%; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .65rem; color: var(--ink); background: white; font: inherit; }
.lead-search button { min-height: 2.75rem; padding: .65rem 1rem; border: 1px solid var(--green); border-radius: .65rem; color: white; background: var(--green); font: inherit; font-weight: 850; cursor: pointer; }
.lead-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr)); gap: 1rem; }
.lead-card { min-width: 0; padding: clamp(1rem, 4vw, 1.4rem); border: 1px solid var(--line); border-radius: 1.2rem; background: var(--paper); box-shadow: 0 10px 30px rgb(52 43 23 / 6%); }
.lead-card.archived { background: #f8f6f1; }
.lead-card-heading { display: flex; min-width: 0; gap: 1rem; align-items: flex-start; justify-content: space-between; }
.lead-card-heading > div { min-width: 0; }
.lead-card h2 { margin: .15rem 0 0; overflow-wrap: anywhere; font-size: 1.35rem; }
.lead-details { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1rem; margin: 1rem 0; }
.lead-details dd { overflow-wrap: anywhere; }
.lead-request { margin: 1rem 0; padding: .8rem 1rem; border-left: 3px solid var(--gold); border-radius: 0 .65rem .65rem 0; background: #faf7ef; overflow-wrap: anywhere; }
.lead-card-footer { display: flex; gap: .75rem; align-items: flex-start; justify-content: space-between; color: var(--muted); font-size: .88rem; }
.lead-card-footer strong { color: var(--gold-dark); }
.lead-detail-link { display: inline-flex; min-height: 2.75rem; margin-top: .65rem; align-items: center; }
.lead-activity-list { display: grid; gap: .75rem; }
.lead-activity-card { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: .85rem; background: white; }
.lead-activity-card h3, .lead-activity-card p { margin: 0; overflow-wrap: anywhere; }
.lead-activity-card p + p { margin-top: .35rem; }
.lead-activity-heading { display: flex; min-width: 0; gap: .75rem; align-items: flex-start; justify-content: space-between; }
.lead-activity-heading h3 { min-width: 0; }
.lead-activity-heading time { flex: 0 0 auto; color: var(--muted); font-size: .82rem; }
.quote-read-only-note { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid #d8c784; border-radius: .8rem; color: #59480f; background: #fff6d9; }
.quote-search { display: grid; grid-template-columns: minmax(14rem, 2fr) minmax(10rem, 1fr) minmax(10rem, 1fr) auto auto; gap: .75rem; align-items: end; margin-bottom: 1.25rem; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); }
.quote-search label { display: grid; min-width: 0; gap: .35rem; font-weight: 800; }
.quote-search label span { font-size: .78rem; }
.quote-search input, .quote-search select { min-width: 0; width: 100%; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .65rem; color: var(--ink); background: white; font: inherit; }
.quote-search button { min-height: 2.75rem; padding: .65rem 1rem; border: 1px solid var(--green); border-radius: .65rem; color: white; background: var(--green); font: inherit; font-weight: 850; cursor: pointer; }
.quote-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(23rem, 100%), 1fr)); gap: 1rem; }
.quote-card-link { display: block; min-width: 0; color: inherit; text-decoration: none; border-radius: 1.2rem; }
.quote-card-link:focus-visible { outline: 3px solid var(--gold-dark); outline-offset: 3px; }
.quote-card-link:hover .quote-card { border-color: var(--green); box-shadow: 0 14px 34px rgb(52 43 23 / 12%); }
.quote-card { min-width: 0; padding: clamp(1rem, 4vw, 1.4rem); border: 1px solid var(--line); border-radius: 1.2rem; background: var(--paper); box-shadow: 0 10px 30px rgb(52 43 23 / 6%); }
.quote-card.archived { background: #f8f6f1; }
.quote-card-heading { display: flex; min-width: 0; gap: 1rem; align-items: flex-start; justify-content: space-between; }
.quote-card-heading > div { min-width: 0; }
.quote-card h2 { margin: .15rem 0 0; overflow-wrap: anywhere; font-size: 1.35rem; }
.quote-event-summary { margin: .6rem 0 1rem; color: var(--muted); overflow-wrap: anywhere; }
.quote-amount-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1rem; margin: 0; }
.quote-amount-grid dd { font-weight: 750; }
.quote-card-footer { margin: 1rem 0 0; color: var(--muted); font-size: .82rem; }
.quote-detail-callout { display: inline-flex; min-height: 2.75rem; margin-top: .55rem; align-items: center; color: var(--green); font-weight: 850; text-decoration: underline; text-underline-offset: .2em; }
.quote-archived-status { margin-left: .4rem; }
.quote-sms-subsection { min-width: 0; margin-top: 1.25rem; }
.quote-sms-subsection h3 { margin: 0 0 .55rem; font-size: 1.05rem; }
.quote-sms-preview { margin: .65rem 0 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: .85rem; background: #faf8f2; overflow-wrap: anywhere; }
.quote-sms-prepare { margin: 1rem 0 .45rem; }
.quote-sms-prepare button { width: min(100%, 25rem); min-height: 2.75rem; padding: .75rem 1rem; border: 1px solid var(--green); border-radius: .65rem; color: white; background: var(--green); font: inherit; font-weight: 850; cursor: pointer; white-space: normal; }
.quote-card td, .quote-card th, .detail-section td, .detail-section th { overflow-wrap: anywhere; }
.quote-item-list { display: grid; gap: .85rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.quote-item-card { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: .9rem; background: #faf8f2; }
.quote-item-card h3 { margin: 0; overflow-wrap: anywhere; font-size: 1.05rem; }
.quote-item-category { margin: .3rem 0 0; color: var(--gold-dark); font-size: .8rem; font-weight: 800; }
.quote-item-description { margin: .35rem 0 0; color: var(--muted); overflow-wrap: anywhere; }
.quote-item-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem 1rem; margin: 1rem 0 0; }
.quote-item-summary > div { min-width: 0; }
.quote-item-summary dd { overflow-wrap: break-word; word-break: normal; }
.quote-item-quantity dd { font-weight: 750; font-variant-numeric: tabular-nums; }
.quote-item-unit dd, .quote-item-total dd { white-space: nowrap; font-variant-numeric: tabular-nums; }
.quote-item-total dd { font-size: 1.15rem; font-weight: 850; }
.quote-payment-schedule-list { display: grid; gap: .85rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.quote-payment-schedule-card { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: .9rem; background: #faf8f2; }
.quote-payment-schedule-details { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr) minmax(7rem, .9fr); gap: .85rem 1rem; margin: 0; }
.quote-payment-schedule-details > div { min-width: 0; }
.quote-payment-schedule-details dd { overflow-wrap: break-word; word-break: normal; }
.quote-payment-status { display: inline-flex; max-width: 100%; padding: .3rem .6rem; border-radius: 999px; color: #6a5315; background: #fff3cc; font-size: .8rem; font-weight: 850; line-height: 1.2; text-align: center; }
.quote-payment-status.paid { color: var(--green); background: #e6f3ed; }
.quote-payment-status.attention { color: var(--red); background: #fbe9e7; }
.quote-payment-amount dd { white-space: nowrap; font-size: 1.15rem; font-weight: 850; font-variant-numeric: tabular-nums; }
.quote-payment-paid { grid-column: span 2; }
.client-search { display: grid; grid-template-columns: minmax(12rem, 2fr) minmax(10rem, 1fr) auto auto; gap: .75rem; align-items: end; margin-bottom: 1.25rem; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); }
.client-search label { display: grid; min-width: 0; gap: .35rem; font-weight: 800; }
.client-search label span { font-size: .78rem; }
.client-search input, .client-search select { min-width: 0; width: 100%; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .65rem; color: var(--ink); background: white; font: inherit; }
.client-search button { min-height: 2.75rem; padding: .65rem 1rem; border: 1px solid var(--green); border-radius: .65rem; color: white; background: var(--green); font: inherit; font-weight: 850; cursor: pointer; }
.client-clear-link { display: inline-flex; min-height: 2.75rem; align-items: center; color: var(--green); font-weight: 800; text-underline-offset: .2em; }
.client-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr)); gap: 1rem; }
.client-editor { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)); gap: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); }
.client-editor label { display: grid; min-width: 0; gap: .4rem; font-weight: 750; }
.client-editor input, .client-editor textarea, .client-editor select { min-width: 0; width: 100%; padding: .75rem; border: 1px solid var(--line); border-radius: .6rem; font: inherit; background: white; color: var(--ink); }
.client-editor-wide { grid-column: 1 / -1; }
.quote-draft-line { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); gap: 1rem; }
.client-editor fieldset { min-width: 0; border: 1px solid var(--line); border-radius: .6rem; }
.client-editor label.event-assignment { display: flex; align-items: center; gap: .65rem; min-height: 2.75rem; }
.client-editor .event-assignment input[type="checkbox"] { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; padding: 0; margin: 0; }
.client-editor-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.client-editor-actions > a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.quote-send-form, .quote-send-summary, .quote-send-result { max-width: 46rem; }
.quote-send-form { display: grid; gap: 1rem; }
.quote-send-summary, .quote-send-result { overflow-wrap: anywhere; }
.quote-send-methods { display: grid; gap: .75rem; min-width: 0; padding: 0; border: 0; margin: 0; }
.quote-send-methods legend { padding: 0 0 .75rem; font-size: 1.1rem; font-weight: 800; }
.quote-send-option { min-width: 0; border: 1px solid var(--line); border-radius: .8rem; background: var(--paper); }
.quote-send-option-body > input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--green); }
.quote-send-option-body { display: grid; grid-template-columns: 1.25rem minmax(0,1fr); gap: .85rem; align-items: start; padding: 1rem; min-width: 0; overflow-wrap: anywhere; cursor: pointer; }
.quote-send-option-body strong, .quote-send-option-body span { display: block; }
.quote-send-option-body strong { font-size: 1.05rem; }
.quote-send-option-body span, .quote-send-option-body small { color: var(--muted); margin-top: .25rem; }
.quote-send-option:focus-within { outline: 3px solid #1769aa; outline-offset: 2px; }
.quote-send-option:has(input[name="method"]:checked) { border-color: var(--green); background: #edf6f1; }
.quote-send-option:has(input:disabled) { opacity: .65; }
.quote-send-option:has(input:disabled) .quote-send-option-body { cursor: default; }
.quote-send-consent { display: grid; gap: .85rem; min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--paper); overflow-wrap: anywhere; }
.quote-send-consent p { margin: 0; }
.quote-send-consent h3 { margin: 0; }
.quote-send-consent summary { padding: .45rem 0; cursor: pointer; font-weight: 700; }
.quote-send-consent details[open] summary { margin-bottom: .5rem; }
.quote-send-consent label { display: grid; gap: .4rem; font-weight: 700; min-width: 0; }
.quote-send-consent input, .quote-send-consent select, .quote-send-result input { width: 100%; min-width: 0; min-height: 2.75rem; padding: .7rem; border: 1px solid var(--line); border-radius: .6rem; background: white; color: var(--ink); font: inherit; }
.quote-send-consent label:has(input[type="checkbox"]) { display: flex; align-items: flex-start; gap: .7rem; font-weight: 600; }
.quote-send-consent input[type="checkbox"] { width: 1.25rem; min-width: 1.25rem; min-height: 1.25rem; height: 1.25rem; padding: 0; margin: .2rem 0 0; accent-color: var(--green); }
.quote-send-form > button, .quote-send-result button { min-height: 3rem; padding: .85rem 1.2rem; border: 0; border-radius: .7rem; background: var(--green); color: white; font: inherit; font-weight: 800; cursor: pointer; }
.quote-send-form [data-quote-send-submit]:not([data-quote-send-submit="default"]) { display: none; }
@supports selector(:has(*)) {
  .quote-send-form:has(input[name="method"]:checked) [data-quote-send-submit="default"] { display: none; }
  .quote-send-form:has(input[name="method"][value="text"]:checked) [data-quote-send-submit="text"],
  .quote-send-form:has(input[name="method"][value="email"]:checked) [data-quote-send-submit="email"],
  .quote-send-form:has(input[name="method"][value="manual"]:checked) [data-quote-send-submit="manual"] { display: inline; }
  .quote-send-form:not(:has(input[name="method"][value="text"]:checked)) .quote-send-consent { display: none; }
}
[data-quote-editor] [data-customer-pickup-label] { display: none; }
@supports selector(:has(*)) {
  [data-quote-editor]:has(select[name="serviceType"] option[value="Pickup"]:checked) [data-quote-field="arrivalTime"],
  [data-quote-editor]:has(select[name="serviceType"] option[value="Pickup"]:checked) [data-service-start-label] { display: none; }
  [data-quote-editor]:has(select[name="serviceType"] option[value="Pickup"]:checked) [data-customer-pickup-label] { display: inline; }
  [data-quote-editor]:not(:has(select[name="eventType"] option[data-event-type="other"]:checked)) [data-quote-field="eventTypeOther"],
  [data-quote-editor]:not(:has(select[name="eventType"] option[data-event-type="wedding"]:checked)) [data-quote-field="brideName"],
  [data-quote-editor]:not(:has(select[name="eventType"] option[data-event-type="wedding"]:checked)) [data-quote-field="groomName"],
  [data-quote-editor]:not(:has(select[name="serviceType"] option[value="Full Service"]:checked)) [data-quote-field="serviceEnd"],
  [data-quote-editor]:not(:has(select[name="serviceType"] option[value="Drop Off"]:checked)) [data-quote-field="dropOffHandling"],
  [data-quote-editor]:not(:has(select[name="serviceType"] option[value="Drop Off"]:checked)) [data-quote-field="returnPickupTime"],
  [data-quote-editor]:not(:has(select[name="dropOffHandling"] option[value="Return Pickup"]:checked)) [data-quote-field="returnPickupTime"] { display: none; }
}
.client-editor button { min-height: 2.75rem; font: inherit; font-weight: 800; background: var(--green); color: white; cursor: pointer; }
.client-editor button.secondary { color: var(--green); background: var(--paper); border-color: var(--line); }
.form-success-notice { padding: .85rem 1rem; border: 1px solid #a2c3b2; border-radius: .75rem; background: #e6f3ed; color: var(--green); font-weight: 700; }
.client-editor textarea:focus-visible { outline: 3px solid #1769aa; outline-offset: 3px; }
.client-edit-error { padding: 1rem; border: 2px solid #912b25; border-radius: .6rem; background: #fff1ef; color: #71231e; overflow-wrap: anywhere; }
.client-card { min-width: 0; padding: clamp(1rem, 4vw, 1.4rem); border: 1px solid var(--line); border-radius: 1.2rem; background: var(--paper); box-shadow: 0 10px 30px rgb(52 43 23 / 6%); }
.client-card.archived { background: #f8f6f1; }
.client-card-heading, .client-history-heading { display: flex; min-width: 0; gap: 1rem; align-items: flex-start; justify-content: space-between; }
.client-card-heading > div, .client-history-heading > h3 { min-width: 0; }
.client-card h2 { margin: .15rem 0 0; overflow-wrap: anywhere; font-size: 1.35rem; }
.client-organization { margin: .25rem 0 0; color: var(--muted); overflow-wrap: anywhere; }
.client-contact-list { display: grid; gap: .65rem; margin: 1rem 0; }
.client-history-summary { margin: 0 0 1rem; color: var(--muted); }
.client-history-list { display: grid; gap: .75rem; margin-top: 1rem; }
.client-history-card { padding: 1rem; border: 1px solid var(--line); border-radius: .85rem; background: white; }
.client-history-card h3 { margin: 0; overflow-wrap: anywhere; font-size: 1rem; }
.client-history-card p { margin: .5rem 0; color: var(--muted); overflow-wrap: anywhere; }
#client-history { scroll-margin-top: 1rem; }
.event-card-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.event-card h2 { margin: .2rem 0 1rem; font-size: 1.35rem; }
.status { display: inline-flex; padding: .35rem .65rem; border-radius: 999px; color: var(--green); background: #e6f3ed; font-size: .8rem; font-weight: 800; }
.status.cancelled { color: var(--red); background: #fbe9e7; }
.summary-grid, .detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: .8rem 1.25rem; margin: 0 0 1.1rem; }
dt { color: var(--muted); font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
dd { margin: .15rem 0 0; overflow-wrap: anywhere; }
.detail-link, .back-link { color: var(--green); font-weight: 800; text-underline-offset: .2em; }
.pagination { margin-top: 1.2rem; }
.button { display: inline-flex; padding: .75rem 1rem; border: 1px solid var(--ink); border-radius: .65rem; text-decoration: none; font-weight: 800; }
.button.secondary { background: var(--paper); }
.button.primary, .primary-action { color: white; background: var(--green); border: 1px solid var(--green); }
.admin-disclosure { min-width: 0; }
.admin-disclosure > summary { min-height: 2.75rem; padding: .65rem .25rem; color: var(--green); font-weight: 800; cursor: pointer; }
.admin-disclosure-content { padding-top: .85rem; }
.security-card.admin-disclosure { width: 100%; margin: 0 0 1rem; padding: .75rem 1rem; }
.employee-admin-page .page-heading h1 { overflow-wrap: anywhere; }
.employee-admin-page .employee-directory { display: grid; gap: 0; padding: 0; margin: 0 0 1.5rem; list-style: none; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); overflow: hidden; }
.employee-admin-page .employee-directory > li + li { border-top: 1px solid var(--line); }
.employee-admin-page .employee-list-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .65rem; min-height: 5rem; padding: 1rem; color: var(--ink); text-decoration: none; }
.employee-admin-page .employee-list-row:hover { background: #f5f5f2; }
.employee-admin-page .employee-list-row:focus-visible { outline: 3px solid var(--green); outline-offset: -3px; background: #f5f5f2; }
.employee-admin-page .employee-row-info { display: grid; gap: .25rem; min-width: 0; overflow-wrap: anywhere; }
.employee-admin-page .employee-row-info strong { font-size: 1.05rem; }
.employee-admin-page .employee-row-info > span { color: var(--muted); font-size: .88rem; }
.employee-admin-page .employee-row-status { max-width: 7rem; padding: .3rem .6rem; border-radius: .5rem; background: #f1f1ee; font-size: .78rem; font-weight: 750; text-align: center; }
.employee-admin-page .employee-row-status-active { color: #1d6048; background: #e7f3ed; }
.employee-admin-page .employee-row-status-pending { color: #775318; background: #fff2d5; }
.employee-admin-page .employee-row-status-review { color: #943c31; background: #fbe9e5; }
.employee-admin-page .employee-row-chevron { color: var(--muted); font-size: 1.6rem; }
.employee-admin-page .employee-account-actions { margin-top: 1.5rem; border-top: 1px solid var(--line); padding-top: .5rem; }
.employee-admin-page .employee-save-notice { padding: 1rem; border: 1px solid #b2d6c5; border-radius: .75rem; background: #e7f3ed; color: #1d6048; }
.employee-admin-page .detail-grid dd { overflow-wrap: anywhere; }
.form-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.form-actions form { margin: 0; }
.form-actions button, .primary-action, .secondary-button { min-height: 2.75rem; padding: .7rem 1rem; border-radius: .65rem; font: inherit; font-weight: 750; cursor: pointer; }
.secondary-button { color: var(--green); background: var(--paper); border: 1px solid var(--line); }
.back-link { display: inline-flex; min-height: 2.75rem; margin-bottom: 1.25rem; align-items: center; }
.detail-heading .status { margin-top: .65rem; }
.detail-section { margin-top: 1rem; }
.detail-section h2 { margin-top: 0; }
.client-contact-editable { display: block; text-decoration: none; }
.client-contact-editable:hover { border-color: var(--green); }
.preserve-lines { white-space: pre-wrap; overflow-wrap: anywhere; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .75rem .55rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: .75rem; text-transform: uppercase; }
.subtext { display: block; color: var(--muted); font-size: .85rem; }
.muted { color: var(--muted); }
.empty-state { text-align: center; }
.login-shell { min-height: calc(100vh - 2.7rem); display: grid; place-items: center; padding: 1rem; }
.login-card { width: min(31rem, 100%); padding: clamp(1.3rem, 5vw, 2rem); border: 1px solid var(--line); border-radius: 1.25rem; background: var(--paper); box-shadow: 0 20px 50px rgb(52 43 23 / 10%); }
.login-brand { margin-bottom: 2rem; }
.login-card h1 { margin: .2rem 0 .5rem; font-size: clamp(2rem, 8vw, 3rem); }
.google-button { display: flex; align-items: center; justify-content: center; gap: .7rem; width: 100%; margin-top: 1.4rem; padding: .9rem 1rem; border: 1px solid var(--ink); border-radius: .7rem; color: white; background: var(--ink); text-decoration: none; font-weight: 800; }
.google-button span { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; color: #1a73e8; background: white; }
.login-error { padding: .8rem; border-radius: .65rem; color: var(--red); background: #fbe9e7; font-weight: 700; }
.login-success { padding: .8rem; border-radius: .65rem; color: var(--green); background: #e6f3ed; font-weight: 700; }
.login-divider { display: flex; align-items: center; gap: .7rem; margin: 1.5rem 0 .7rem; color: var(--muted); font-size: .8rem; font-weight: 750; }
.login-divider::before, .login-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.auth-form { display: grid; gap: .85rem; }
.auth-form label { display: grid; gap: .35rem; font-weight: 750; }
.auth-form input, .auth-form select { width: 100%; padding: .8rem .85rem; border: 1px solid var(--line); border-radius: .65rem; background: white; color: var(--ink); font: inherit; }
.auth-form .employee-work-permissions { min-width: 0; margin-top: .75rem; padding: 1rem; border: 1px solid var(--line); border-radius: .65rem; display: grid; gap: .75rem; }
.auth-form .employee-work-permissions label { display: flex; align-items: center; gap: .65rem; min-height: 2.75rem; font-weight: 600; }
.auth-form .employee-work-permissions input[type="checkbox"] { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; padding: 0; margin: 0; }
.auth-form summary { cursor: pointer; font-weight: 750; padding: .65rem 0; }
.auth-form button { width: 100%; padding: .9rem 1rem; border: 0; border-radius: .7rem; color: white; background: var(--green); font: inherit; font-weight: 850; cursor: pointer; }
.security-card { width: min(38rem, calc(100% - 2rem)); margin: 2rem auto 4rem; padding: clamp(1.2rem, 5vw, 2rem); border: 1px solid var(--line); border-radius: 1.2rem; background: var(--paper); box-shadow: 0 10px 30px rgb(52 43 23 / 6%); }
.security-card h1 { margin: .2rem 0 .5rem; font-size: clamp(2rem, 7vw, 3rem); }
@media (max-width: 40rem) {
  .site-header { align-items: center; padding: .75rem 1rem; gap: .65rem; }
  .brand { font-size: .9rem; gap: .5rem; }
  .brand-mark { flex: 0 0 auto; width: 2.25rem; height: 2.25rem; }
  .signed-in { max-width: 10rem; }
  .account-controls { align-items: flex-end; flex-direction: column; }
  .page-shell { width: min(100% - 1rem, 70rem); margin-top: 1rem; }
  .event-card-heading { align-items: flex-start; }
  .summary-grid, .detail-grid { grid-template-columns: 1fr 1fr; }
  .section-navigation { display: grid; grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr)); gap: .4rem; padding-bottom: .2rem; }
  .section-navigation > a { min-width: 0; min-height: 2.75rem; padding: .55rem .25rem; font-size: .82rem; overflow-wrap: anywhere; }
  .page-actions { gap: .5rem; }
  .page-actions > .button { flex: 1 1 10rem; }
  .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .dashboard-card { padding: .85rem; }
  .dashboard-card h2 { font-size: 1rem; }
  .dashboard-card > p:not(.dashboard-count), .dashboard-card .detail-link { font-size: .85rem; }
  .client-search, .lead-search, .quote-search { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; padding: .85rem; }
  .client-search > label:first-child, .lead-search > label:first-child, .quote-search > label:first-child { grid-column: 1 / -1; }
  .client-search > label:only-of-type ~ button { grid-column: 1 / -1; }
  .client-search input, .lead-search input, .quote-search input, .client-search select, .lead-search select, .quote-search select { font-size: 1rem; }
  .client-editor-actions { gap: .65rem; }
  .client-editor-actions > .button, .client-editor-actions > button { width: 100%; justify-content: center; }
  .client-editor-actions > a { justify-content: center; width: 100%; }
  .form-actions { flex-direction: column; }
  .form-actions button { width: 100%; }
  .page-shell > h1 { font-size: clamp(1.8rem, 7vw, 2.5rem); line-height: 1.15; overflow-wrap: anywhere; }
  .client-search button, .lead-search button, .quote-search button, .client-clear-link { width: 100%; justify-content: center; }
  .lead-details { grid-template-columns: 1fr; }
  .lead-card-footer { flex-direction: column; }
  .lead-activity-heading { flex-direction: column; }
  .quote-card-heading { flex-direction: column; }
  .quote-amount-grid { grid-template-columns: 1fr; }
  .quote-item-summary { grid-template-columns: 1fr 1fr; }
  .quote-item-total { grid-column: 1 / -1; }
  .quote-payment-schedule-details { grid-template-columns: 1fr 1fr; }
  .quote-payment-paid { grid-column: 1 / -1; }
  .calendar-toolbar { grid-template-columns: 1fr; gap: .75rem; }
  .calendar-toolbar > :last-child { justify-self: stretch; }
  .calendar-toolbar-actions { flex-wrap: wrap; justify-content: space-between; }
  .calendar-month-controls { grid-column: auto; justify-content: space-between; }
  .calendar-month-controls h2 { min-width: 0; font-size: 1.15rem; }
  .calendar-view-list .calendar-day { grid-template-columns: 7.5rem minmax(0, 1fr); }
  .calendar-view-month { border-radius: .8rem; }
  .calendar-view-month .calendar-grid-scroll { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
  .calendar-view-month .calendar-weekdays, .calendar-view-month .calendar-grid { min-width: 20rem; }
  .calendar-view-month .calendar-weekdays span { padding: .45rem .1rem; font-size: .62rem; }
  .calendar-view-month .calendar-day { position: relative; min-height: 3rem; padding: .2rem; }
  .calendar-view-month .calendar-day.empty-day { min-height: 3rem; }
  .calendar-view-month .calendar-day-heading { min-height: 100%; margin: 0; align-items: center; justify-content: center; font-size: .7rem; }
  .calendar-view-month .calendar-day.has-events .calendar-day-heading { visibility: hidden; }
  .calendar-view-month .calendar-day-events { display: none; }
  .calendar-view-month .calendar-day-jump { position: absolute; inset: 0; display: flex; min-width: 100%; min-height: 100%; padding: .2rem; align-items: center; justify-content: center; flex-direction: column; gap: .15rem; border-radius: .25rem; text-decoration: none; }
  .calendar-view-month .calendar-day-jump:focus-visible { outline-offset: -3px; }
  .calendar-day-jump-number { font-size: .7rem; font-weight: 850; line-height: 1; }
  .calendar-day-count { display: inline-grid; min-width: 1.3rem; min-height: 1.3rem; padding: .05rem .2rem; place-items: center; border-radius: 999px; color: white; background: var(--green); font-size: .62rem; font-weight: 900; line-height: 1; }
  .calendar-day-count.conflict { background: var(--red); }
}
@media (max-width: 23rem) {
  .quote-item-summary { grid-template-columns: 1fr; }
  .quote-item-total { grid-column: auto; }
  .quote-payment-schedule-details { grid-template-columns: 1fr; }
  .quote-payment-paid { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }


.invoice-document { max-width: 64rem; margin-inline: auto; overflow-wrap: anywhere; }
.invoice-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: start; }
.invoice-heading h1 { margin-bottom: .4rem; }
.invoice-reference { color: #5b605d; font-size: .9rem; overflow-wrap: anywhere; }
.invoice-status { display: inline-flex; align-items: center; gap: .4rem; border-radius: 999px; padding: .45rem .8rem; font-weight: 800; line-height: 1.35; }
.invoice-status-pending { color: #634a0d; background: #fff3cb; }
.invoice-status-failed, .invoice-status-review { color: #8d1d20; background: #ffeaeb; }
.invoice-status-balance { color: #234f70; background: #e5f1fb; }
.invoice-status-paid { color: #155741; background: #e2f4eb; }
.invoice-status-quote { color: #4d5350; background: #eef0ed; }
.invoice-payment-callout { padding: 1.2rem; margin: 1.5rem 0; border: 2px solid currentColor; border-radius: 1rem; }
.invoice-payment-callout h2 { font-size: 1.35rem; margin: 0 0 .6rem; }
.invoice-payment-callout p:last-child { margin-bottom: 0; }
.invoice-summary, .invoice-line-totals { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.invoice-summary { margin: 1.5rem 0; padding: 1.25rem; border: 1px solid #d9d7cc; border-radius: 1rem; background: white; }
.invoice-summary dt, .invoice-line-totals dt { font-size: .9rem; color: #535a55; }
.invoice-summary dd, .invoice-line-totals dd { margin: .35rem 0 0; font-variant-numeric: tabular-nums; }
.invoice-summary dd { font-size: clamp(1.2rem, 4.8vw, 1.8rem); font-weight: 800; }
.invoice-lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.invoice-line { border: 1px solid #deddd5; border-radius: .8rem; padding: 1rem; min-width: 0; break-inside: avoid; }
.invoice-line h3 { margin: 0 0 .65rem; font-size: 1.1rem; }
.invoice-line p { margin: .4rem 0; }
.invoice-line-totals { margin-bottom: 0; }
.invoice-text { white-space: pre-wrap; }
.invoice-print-hint { font-size: .9rem; color: #5b605d; }
@media (max-width: 480px) {
  .invoice-summary { grid-template-columns: 1fr; gap: .8rem; padding: 1rem; }
  .invoice-summary > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
  .invoice-summary dd { margin-top: 0; text-align: right; }
  .invoice-document .page-actions { display: grid; grid-template-columns: 1fr; }
  .invoice-document .page-actions a { white-space: normal; text-align: center; }
  .invoice-line-totals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .invoice-line-totals > div:last-child { grid-column: 1 / -1; border-top: 1px solid #deddd5; padding-top: .7rem; }
}
@media print {
  body:has(.invoice-document) { background: white; color: black; }
  body:has(.invoice-document) .site-header, body:has(.invoice-document) .staging-banner,
  body:has(.invoice-document) .skip-link, .invoice-document .invoice-no-print { display: none !important; }
  .invoice-document { max-width: none; padding: 0; }
  .invoice-document .detail-section, .invoice-document .invoice-summary { box-shadow: none; border: 1px solid #bbb; }
  .invoice-document .detail-section { margin: 1rem 0; padding: 1rem; }
  .invoice-document h2, .invoice-document h3 { break-after: avoid; }
  .invoice-document .invoice-summary, .invoice-document .invoice-payment-callout { break-inside: avoid; }
  .invoice-document a { color: black; text-decoration: none; }
}

.event-workspace-nav {display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0;}
.event-document-status {margin:1rem 0; display:flex; flex-wrap:wrap; gap:.6rem; align-items:center;}
.event-document-status strong {font-size:1.1rem;}
.event-document-actions {display:flex; flex-wrap:wrap; gap:.8rem; margin:1rem 0;}

.portal-mobile-nav { display: none; }
.portal-more-groups { display: grid; gap: 1.25rem; }
.portal-more-group { background: var(--paper); border: 1px solid var(--line); border-radius: 1rem; overflow: hidden; }
.portal-more-group h2 { font-size: 1rem; margin: 0; padding: 1rem; color: var(--muted); }
.portal-more-group a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.25rem; padding: .85rem 1rem; text-decoration: none; border-top: 1px solid var(--line); font-weight: 700; }
.portal-more-group a::after { content: '›'; font-size: 1.5rem; line-height: 1; color: var(--muted); }
.portal-more-account { margin-top: 1.5rem; }
.portal-more-account button { min-height: 2.75rem; }
@media (max-width: 40rem) {
  body:has([data-portal-header]) { padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px)); }
  body:has([data-portal-header]) { scroll-padding-bottom: calc(6rem + env(safe-area-inset-bottom, 0px)); }
  .portal-mobile-nav { position: fixed; z-index: 45; inset: auto 0 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); padding: .35rem max(.35rem, env(safe-area-inset-right, 0px)) calc(.3rem + env(safe-area-inset-bottom, 0px)) max(.35rem, env(safe-area-inset-left, 0px)); border-top: 1px solid var(--line); background: var(--paper); box-shadow: 0 -3px 14px rgb(0 0 0 / 5%); }
  .portal-mobile-tab { display: grid; justify-items: center; text-align: center; align-content: center; gap: .2rem; min-width: 0; min-height: 3.4rem; padding: .35rem .2rem; color: var(--muted); text-decoration: none; border-radius: .65rem; font-size: .72rem; line-height: 1.1; font-weight: 650; }
  .portal-mobile-tab svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .portal-mobile-tab[aria-current="page"] { color: var(--green); background: #e9f3ef; font-weight: 850; }
  .portal-mobile-tab:focus-visible { outline-offset: -3px; }
  .portal-mobile-ready .section-navigation[aria-label="Catering operations"] { display: none; }
  .portal-keyboard-open .portal-mobile-nav { display: none; }
}
@media print {
  .portal-mobile-nav { display: none !important; }
  body:has([data-portal-header]) { padding-bottom: 0; }
}


.portal-mobile-only { display: none; }
.page-titlebar { display: contents; }
.mobile-row-link { color: inherit; text-decoration: none; }
.mobile-row-link:hover { text-decoration: underline; }
.portal-more-icon { display: inline-flex; flex: 0 0 auto; }
.portal-more-icon svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.portal-more-label { flex: 1; }
.portal-more-profile { display: flex; align-items: center; gap: .75rem; padding: 1rem; margin: 1.5rem 0; border-radius: .75rem; background: #f5f6f7; text-decoration: none; }
.portal-more-profile > span:nth-child(2) { flex: 1; min-width: 0; }
.portal-more-profile strong, .portal-more-profile small { display: block; overflow-wrap: anywhere; }
.portal-more-profile small { margin-top: .15rem; color: var(--muted); }
.portal-more-avatar { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .45rem; background: #e9ecee; color: #171a1d; font-weight: 750; }
@media screen and (max-width: 40rem) {
  body:has([data-portal-header]) {
    --paper: #ffffff;
    --canvas: #ffffff;
    --line: #e1e4e7;
    --muted: #5e646a;
    --ink: #171a1d;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
  }
  [data-portal-header] { min-height: 3.5rem; padding: .45rem 1rem; gap: .5rem; }
  [data-portal-header] .brand { font-size: .9rem; font-weight: 700; letter-spacing: -.02em; }
  [data-portal-header] .brand-mark { width: 1.9rem; height: 1.9rem; border-radius: .45rem; font-size: .7rem; }
  [data-portal-header] .account-menu > summary { border: 0; padding: .6rem .3rem .6rem .65rem; font-size: .82rem; }
  body:has([data-portal-header]) .staging-banner { padding: .18rem 1rem; font-size: .7rem; font-weight: 650; line-height: 1.5; }
  body:has([data-portal-header]) .page-shell { width: calc(100% - 2rem); margin-top: 1.1rem; }
  body:has([data-portal-header]) .page-heading h1,
  body:has([data-portal-header]) .page-shell > h1 { font-size: 1.75rem; font-weight: 750; letter-spacing: -.045em; line-height: 1.15; overflow-wrap: anywhere; }
  body:has([data-portal-header]) .page-heading p { font-size: .88rem; line-height: 1.5; }
  body:has([data-portal-header]) .page-heading .eyebrow { font-size: .67rem; letter-spacing: .07em; }
  body:has([data-portal-header]) .page-titlebar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem 1rem; align-items: center; margin-bottom: 1rem; }
  body:has([data-portal-header]) .page-titlebar .page-heading { grid-column: 1; grid-row: 1; min-width: 0; margin: 0; }
  body:has([data-portal-header]) .page-titlebar .page-heading h1 { margin: 0; }
  body:has([data-portal-header]) .page-titlebar .page-heading p { display: none; }
  body:has([data-portal-header]) .page-titlebar .page-actions { display: contents; }
  body:has([data-portal-header]) .page-titlebar .page-actions > a { min-height: 2.75rem; padding: .55rem .75rem; font-size: .85rem; font-weight: 700; }
  body:has([data-portal-header]) .page-titlebar .page-actions > a:first-child { grid-column: 2; grid-row: 1; color: white; background: var(--green); border-color: var(--green); border-radius: .5rem; }
  body:has([data-portal-header]) .page-titlebar .page-actions > a:not(:first-child) { grid-column: 1 / -1; justify-self: start; padding: .25rem 0; color: var(--green); border: 0; background: transparent; text-decoration: underline; }
  body:has([data-portal-header]) .section-navigation:not([aria-label="Catering operations"]) { display: flex; flex-wrap: nowrap; gap: .25rem; overflow-x: auto; padding-bottom: .5rem; margin-bottom: .65rem; scrollbar-width: thin; }
  body:has([data-portal-header]) .section-navigation:not([aria-label="Catering operations"]) > a { flex: 0 0 auto; padding: .5rem .65rem; border: 0; background: transparent; white-space: nowrap; font-weight: 650; }
  body:has([data-portal-header]) .event-workspace-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: .5rem 0 .85rem; padding: .2rem; border: 1px solid var(--line); border-radius: .6rem; background: #e9ecee; }
  body:has([data-portal-header]) .event-workspace-nav .filter-link { min-width: 0; display: flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: .45rem .25rem; border: 0; border-radius: .4rem; background: transparent; font-size: .85rem; font-weight: 650; text-align: center; }
  body:has([data-portal-header]) .event-workspace-nav .filter-link.active { color: var(--ink); background: white; box-shadow: 0 1px 3px #00000018; }
  body:has([data-portal-header]) .filters { gap: 1.15rem; margin: 0 -1rem; padding: 0 1rem; border-bottom: 1px solid var(--line); background: white; }
  body:has([data-portal-header]) .filters .filter-link { display: inline-flex; align-items: center; min-height: 3rem; padding: .55rem 0; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: var(--muted); font-size: .85rem; font-weight: 650; }
  body:has([data-portal-header]) .filters .filter-link.active { border-bottom-color: var(--green); color: var(--green); }
  body:has([data-portal-header]) :is(.client-search, .lead-search, .quote-search) { gap: .65rem; padding: 0; margin: 0 0 1rem; border: 0; border-radius: 0; background: transparent; }
  body:has([data-portal-header]) :is(.client-search, .lead-search, .quote-search) label { gap: .25rem; font-weight: 600; }
  body:has([data-portal-header]) :is(.client-search, .lead-search, .quote-search) label span { font-size: .72rem; color: var(--muted); }
  body:has([data-portal-header]) input[type="search"] { border-color: #e1e4e7; background: #e9ecee; border-radius: .6rem; }
  body:has([data-portal-header]) :is(.event-list, .client-list, .lead-list, .quote-list) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin-inline: -1rem; border-top: 1px solid var(--line); background: white; }
  body:has([data-portal-header]) .filters + .event-list { border-top: 0; }
  body:has([data-portal-header]) :is(.event-card, .client-card, .lead-card, .quote-card) { position: relative; min-width: 0; padding: 1rem; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; background: white; }
  body:has([data-portal-header]) :is(.event-card, .client-card, .lead-card, .quote-card).archived { background: #f5f6f7; }
  body:has([data-portal-header]) :is(.event-card, .client-card, .lead-card, .quote-card) h2 { margin: .15rem 0 .4rem; font-size: 1.05rem; font-weight: 700; line-height: 1.35; letter-spacing: -.02em; }
  body:has([data-portal-header]) :is(.event-card, .client-card, .lead-card, .quote-card) .eyebrow { margin: 0 0 .15rem; color: var(--muted) !important; font-size: .74rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
  body:has([data-portal-header]) :is(.event-card-heading, .client-card-heading, .lead-card-heading, .quote-card-heading) { flex-direction: row; gap: .75rem; }
  body:has([data-portal-header]) :is(.event-card-heading, .client-card-heading, .lead-card-heading, .quote-card-heading) > div { min-width: 0; flex: 1; }
  body:has([data-portal-header]) .status { flex: 0 1 auto; max-width: 45%; padding: .25rem .5rem; font-size: .68rem; line-height: 1.4; border-radius: .35rem; }
  body:has([data-portal-header]) .compact-mobile-row .desktop-record-details { display: none; }
  body:has([data-portal-header]) .compact-mobile-row .portal-mobile-only { display: block; }
  body:has([data-portal-header]) .compact-mobile-row .mobile-row-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
  body:has([data-portal-header]) .compact-mobile-row .mobile-row-link:focus-visible::after { outline: 3px solid #1769aa; outline-offset: -3px; }
  body:has([data-portal-header]) .compact-mobile-row .mobile-row-link:hover { text-decoration: none; }
  body:has([data-portal-header]) :is(.mobile-event-summary, .mobile-client-meta, .mobile-lead-summary) { margin: .4rem 0; color: var(--muted); font-size: .82rem; line-height: 1.5; }
  body:has([data-portal-header]) :is(.mobile-event-summary, .mobile-lead-summary) p { margin: .2rem 0; }
  body:has([data-portal-header]) .mobile-doc-amounts,
  body:has([data-portal-header]) .compact-mobile-row .mobile-doc-amounts { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: .65rem 0 .15rem; font-size: .82rem; color: var(--muted); }
  body:has([data-portal-header]) .mobile-doc-amounts > span { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .25rem; }
  body:has([data-portal-header]) .mobile-doc-amounts strong { font-size: 1.15rem; color: var(--ink); font-variant-numeric: tabular-nums; }
  body:has([data-portal-header]) .mobile-doc-amounts p { margin: .2rem 0; }
  body:has([data-portal-header]) .event-document-status { gap: .45rem; margin: .5rem 0; }
  body:has([data-portal-header]) .event-document-status strong { font-size: .82rem; font-weight: 650; }
  body:has([data-portal-header]) .invoice-status { max-width: 100%; font-size: .76rem; padding: .35rem .6rem; border-radius: .4rem; }
  body:has([data-portal-header]) .event-document-actions { gap: .75rem; margin: .4rem 0 -.35rem; }
  body:has([data-portal-header]) .event-document-actions a { position: relative; z-index: 2; display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .8rem; font-weight: 650; }
  body:has([data-portal-header]) .compact-mobile-row > .detail-link,
  body:has([data-portal-header]) .compact-mobile-row > .lead-detail-link { display: none; }
  body:has([data-portal-header]) .client-card .eyebrow { display: none; }
  body:has([data-portal-header]) .client-organization { font-size: .8rem; }
  body:has([data-portal-header]) .client-contact-list { gap: .1rem; margin: .35rem 0; font-size: .85rem; color: var(--muted); }
  body:has([data-portal-header]) .compact-mobile-row .client-contact-list dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  body:has([data-portal-header]) .compact-mobile-row .client-contact-list dd { margin: 0; }
  body:has([data-portal-header]) .quote-card-link { border-radius: 0; }
  body:has([data-portal-header]) .quote-card-link:hover .quote-card { box-shadow: none; background: #fafbfc; }
  body:has([data-portal-header]) .quote-event-summary { font-size: .82rem; margin: .3rem 0 .65rem; }
  body:has([data-portal-header]) .quote-list-hint { padding: 0; border: 0; background: transparent; font-size: .78rem; line-height: 1.5; color: var(--muted); }
  body:has([data-portal-header]) .quote-detail-callout { min-height: 2rem; margin: .15rem 0 0; font-size: .8rem; }
  body:has([data-portal-header]) .lead-card-footer { flex-direction: row; flex-wrap: wrap; gap: .4rem; font-size: .78rem; }
  body:has([data-portal-header]) :is(.detail-section, .dashboard-card, .client-editor, .calendar-panel, .security-card, .invoice-summary) { border-radius: .65rem; box-shadow: none; }
  body:has([data-portal-header]) .detail-section { padding: 1rem; }
  body:has([data-portal-header]) .detail-section h2 { font-size: 1.15rem; letter-spacing: -.025em; margin-bottom: 1rem; }
  body:has([data-portal-header]) dt { font-size: .7rem; text-transform: none; font-weight: 600; letter-spacing: 0; }
  body:has([data-portal-header]) dd { font-size: .92rem; }
  body:has([data-portal-header]) .back-link { margin-bottom: .75rem; font-size: .85rem; font-weight: 650; }
  body:has([data-portal-header]) .client-editor { padding: 1rem; gap: 1rem; }
  body:has([data-portal-header]) .client-editor label { font-size: .82rem; font-weight: 650; }
  body:has([data-portal-header]) :is(.client-editor, .auth-form) :is(input, textarea, select) { font-size: 1rem; min-height: 2.75rem; scroll-margin-block: 5rem; }
  body:has([data-portal-header]) .client-editor :is(input[type="checkbox"], input[type="radio"]),
  body:has([data-portal-header]) .auth-form :is(input[type="checkbox"], input[type="radio"]) { min-height: 1.25rem; }
  body:has([data-portal-header]) .dashboard-card h2 { font-size: .9rem; }
  body:has([data-portal-header]) .dashboard-count { font-size: 2.25rem; }
  body:has([data-portal-header]) .invoice-payment-callout { margin: 1rem 0; padding: 1rem; border-width: 1px; border-radius: .65rem; }
  body:has([data-portal-header]) .invoice-payment-callout h2 { font-size: 1.1rem; }
  body:has([data-portal-header]) .invoice-payment-callout p { font-size: .88rem; }
  body:has([data-portal-header]) .invoice-reference { font-size: .75rem; }
  body:has([data-portal-header]) .portal-mobile-tab[aria-current="page"] { color: var(--ink); background: #f0f1f2; font-weight: 700; }
  body:has([data-portal-header]) .portal-more-groups { gap: 1rem; }
  body:has([data-portal-header]) .portal-more-group { border: 0; border-radius: 0; }
  body:has([data-portal-header]) .portal-more-group h2 { padding: .7rem 0; font-size: .75rem; font-weight: 600; }
  body:has([data-portal-header]) .portal-more-group:first-child h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); padding: 0; white-space: nowrap; }
  body:has([data-portal-header]) .portal-more-group a { min-height: 3.5rem; padding: .85rem .15rem; border-top: 0; border-bottom: 1px solid var(--line); font-size: 1rem; font-weight: 600; }
  body:has([data-portal-header]) .portal-more-group a::after { content: none; }
  body:has([data-portal-header]) .portal-more-profile { margin: 1.5rem 0; }
  body:has([data-portal-header]) .portal-more-profile > span:last-child { font-size: .78rem; color: var(--muted); }
  body:has([data-portal-header]) .portal-more-account { scroll-margin-top: 1rem; }
}


.quote-conversation{min-width:0;scroll-margin-top:1rem}.quote-conversation h2{margin-bottom:.7rem}.quote-conversation-intro{color:var(--muted,#68645d)}
.quote-message-list{display:grid;gap:1rem;list-style:none;margin:1.2rem 0;padding:0}.quote-message{min-width:0;max-width:94%;padding:1rem;border:1px solid var(--line,#ddd4c6);border-radius:1rem;background:#fff}
.quote-message-staff{justify-self:end;background:#eef6f1}.quote-message-customer{justify-self:start}.quote-message-meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:baseline;font-size:.85rem;color:var(--muted,#68645d)}.quote-message-meta strong{color:var(--ink,#171717)}
.quote-message-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:.65rem 0 0}.quote-message-status{margin:.6rem 0 0;font-size:.85rem;color:var(--muted,#68645d)}
.quote-message-compose{display:grid;gap:.8rem;margin-top:1.2rem}.quote-message-compose label{display:grid;gap:.45rem;font-weight:700}.quote-message-compose textarea{display:block;width:100%;min-height:8rem;resize:vertical;padding:.85rem;border:1px solid var(--line,#ddd4c6);border-radius:.7rem;background:#fff;color:var(--ink,#171717);font:inherit;font-size:16px}.quote-message-compose textarea:focus-visible{outline:3px solid #1769aa;outline-offset:2px}
.quote-message-actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}.quote-message-actions button,.quote-message-actions .button{min-height:48px;padding:.75rem 1.1rem;font:inherit;font-weight:800;border:1px solid var(--green,#1f6a50);border-radius:.7rem;background:var(--green,#1f6a50);color:#fff;cursor:pointer}.quote-message-actions .secondary{background:#fff;color:var(--green,#1f6a50)}.quote-message-actions button:disabled{opacity:.65;cursor:wait}
.quote-message-progress{min-height:1.6em;margin:.6rem 0;color:var(--ink,#171717)}.quote-message-inbox{list-style:none;padding:0;display:grid;gap:.8rem}.quote-message-inbox a{display:grid;gap:.45rem;padding:1rem;border:1px solid var(--line,#ddd4c6);border-radius:1rem;color:inherit;text-decoration:none;background:#fff;overflow-wrap:anywhere}.quote-message-inbox a:focus-visible{outline:3px solid #1769aa}.quote-message-inbox time{font-size:.9rem;color:var(--muted,#68645d)}.quote-message-needs-reply{font-weight:800;color:#8d1d20}.quote-conversation-page{max-width:52rem;margin-inline:auto}
@media(max-width:40rem){.quote-message{max-width:100%;padding:.85rem}.quote-message-actions{display:grid;grid-template-columns:1fr}.quote-message-actions>*{width:100%;text-align:center}.quote-message-compose{padding-bottom:env(safe-area-inset-bottom,0px)}}
@media print{.quote-conversation,.quote-conversation-link{display:none!important}}

