/* BraCo color tokens. Layout and business behavior live in the existing files. */
:root,[data-theme='dark'] {
  color-scheme:dark;
  --bg-app:#121417;--bg-surface:#1b1f24;--bg-surface-elevated:#242a31;--bg-subtle:#2d343c;
  --text-primary:#F1F3F5;--text-secondary:#C3C9D1;--text-muted:#A9B1BB;
  --border-subtle:#3A424C;--border-control:#6B7581;
  --brand-primary:#7FA6CF;--brand-primary-light:#A9C3E0;--brand-primary-dark:#2A5480;--brand-red:#DD8595;
  --brand-accent:#C9AB74;--on-gold:#1B1F24;
  --status-success:#8CCBA4;--status-warning:#D8B878;--status-danger:#DD8595;--status-info:#92ACB9;
  --status-success-bg:#1F3328;--status-warning-bg:#322B1C;--status-danger-bg:#342329;--status-info-bg:#22303B;
  --button-primary:#2A5480;--button-primary-hover:#336494;--button-primary-pressed:#224569;--button-secondary:var(--bg-surface-elevated);--button-text:#FFFFFF;
  --selected-bg:#22364B;--selection-text:#DBE6F2;--shadow-color:#00000040;--logo-paper:#FFFFFF;
}
[data-theme='light'] {
  color-scheme:light;
  --bg-app:#F3F4F6;--bg-surface:#FFFFFF;--bg-surface-elevated:#F6F7F9;--bg-subtle:#ECEEF1;
  --text-primary:#1D2733;--text-secondary:#4B5563;--text-muted:#5B6472;--border-subtle:#D9DDE3;--border-control:#7A8492;
  --brand-primary:#142E48;--brand-primary-light:#3D6A94;--brand-primary-dark:#142E48;--brand-red:#9B354B;
  --brand-accent:#B49560;--on-gold:#142E48;
  --button-primary:#142E48;--button-primary-hover:#1C3D5F;--button-primary-pressed:#0F2238;--button-text:#FFFFFF;
  --status-success:#2F6B47;--status-warning:#7A5A12;--status-danger:#9B354B;--status-info:#2F5878;
  --status-success-bg:#E3F1E8;--status-warning-bg:#F6EEDB;--status-danger-bg:#F3E2E5;--status-info-bg:#E4ECF3;
  --selected-bg:#E8EDF3;--selection-text:#142E48;--shadow-color:#14274812;
}
:root,[data-theme] {
  --bg:var(--bg-app);--surface:var(--bg-surface);--surface-2:var(--bg-surface-elevated);--surface-3:var(--bg-surface);--surface-4:var(--bg-subtle);
  --text:var(--text-primary);--dark:var(--text-primary);--text-label:var(--text-secondary);--border:var(--border-subtle);--border-soft:var(--border-subtle);--border-soft-2:var(--border-control);
  --input-bg:var(--bg-surface-elevated);--input-border:var(--border-control);--tab-bg:var(--bg-surface-elevated);--shadow:var(--shadow-color);
  --olive:var(--brand-primary);--maroon:var(--status-danger);--terracotta:var(--brand-primary);--accent-soft:var(--selected-bg);
  --nav:var(--bg-app);--nav-text:var(--text-secondary);--nav-active:var(--selected-bg);--nav-active-text:var(--selection-text);--on-accent:var(--button-text);--focus:var(--brand-primary-light);
  --metric-green:var(--bg-surface);--metric-blue:var(--bg-surface);--metric-sand:var(--bg-surface);--metric-rose:var(--bg-surface);
}
body,.login-page{background:var(--bg-app);color:var(--text-primary)}
h1,h2,h3,h4,.header h1,.nav-brand,.nav-footer strong{color:var(--text-primary)}
p,.muted,.footnote,.nav-label,.nav-brand span,.nav-footer{color:var(--text-secondary)}
.section,.history-item,.summary,.login-page .card,.job-cost-metric{background:var(--bg-surface);border-color:var(--border-subtle)}
button,.login-page button{background:var(--button-primary);color:var(--button-text)}
button:hover,.login-page button:hover{background:var(--button-primary-hover);box-shadow:none;filter:none}
button:active{background:var(--button-primary-pressed)}
button.secondary,.theme-toggle,#logoutBtn{background:var(--button-secondary);color:var(--text-primary);border-color:var(--border-subtle)}
button.secondary:hover,.theme-toggle:hover,#logoutBtn:hover{background:var(--bg-subtle)}
button:disabled{background:var(--bg-subtle);color:var(--text-muted);opacity:1;cursor:not-allowed}
.history-item button[onclick*='delete']{background:var(--bg-surface-elevated)!important;color:var(--status-danger)!important;border-color:var(--border-subtle)}
.history-item button[onclick*='delete']:hover{background:var(--status-danger-bg)!important}
input,select,textarea,.login-page input{background:var(--input-bg);color:var(--text-primary);border-color:var(--border-control)}
option{background:var(--bg-surface-elevated);color:var(--text-primary)}
input::placeholder,textarea::placeholder{color:var(--text-muted)}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:var(--focus)}
.tabs{background:var(--bg-app);border-color:var(--border-subtle)}
.tab-btn,.tab-btn:disabled{background:transparent;color:var(--text-secondary)}
.tab-btn:hover{background:var(--bg-surface-elevated)}
.tab-btn.active{background:var(--selected-bg);color:var(--selection-text);box-shadow:inset 3px 0 0 var(--brand-accent);font-weight:650}
@media(max-width:700px){.tab-btn.active{background:transparent;color:var(--selection-text);box-shadow:inset 0 2px 0 var(--brand-accent)}}
#dashboardCards .dash-card,#dashboardCards .dash-card:nth-child(n),#expenseOverview .dash-card{background:var(--bg-surface)!important;border:1px solid var(--border-subtle)!important;border-top:3px solid var(--brand-accent)!important}
#dashboardCards .dash-card:nth-child(n){border-top-color:var(--brand-accent)!important}
.dash-card>div{color:var(--text-secondary)!important}.dash-card>div:nth-child(2),#exp_month_total{color:var(--text-primary)!important}
.status-paid,.quote-accepted,.quote-converted,[data-theme=dark] .status-paid{background:var(--status-success-bg);color:var(--status-success)}
.status-unpaid,[data-theme=dark] .status-unpaid{background:var(--status-warning-bg);color:var(--status-warning)}
.status-sent,.quote-sent,[data-theme=dark] .status-sent{background:var(--status-info-bg);color:var(--status-info)}
.quote-declined,.error{background:var(--status-danger-bg);color:var(--status-danger)}
.quote-untracked,.quote-draft,.workflow-badge{background:var(--bg-surface-elevated);color:var(--text-secondary)}
.workflow-badge.quote-sent{background:var(--status-info-bg);color:var(--status-info)}
.workflow-badge.quote-accepted,.workflow-badge.quote-converted{background:var(--status-success-bg);color:var(--status-success)}
.workflow-badge.quote-declined{background:var(--status-danger-bg);color:var(--status-danger)}
.quote-steps button,.quote-steps button:hover{background:transparent;color:var(--text-secondary)}
.quote-steps button[aria-current=step]{background:var(--selected-bg);color:var(--selection-text)}
.cal-day,.job-date,.badge,.policy-note,.total-box,.script-box{background:var(--bg-surface-elevated);color:var(--text-secondary)}
.cal-today,.cal-selected{background:var(--selected-bg);color:var(--text-primary)}
.cal-day.cal-selected .cal-more{color:var(--selection-text)}
.svc-quote,.svc-pw,.svc-memo{background:var(--status-info)}.svc-lawn,.svc-land{background:var(--status-success)}.svc-junk,.svc-handyman,.svc-other{background:var(--text-muted)}.svc-task{background:var(--status-warning)}.svc-meeting{background:var(--brand-primary)}
.cal-kind-task{color:var(--status-warning)}.cal-kind-meeting{color:var(--brand-primary-light)}
.appt-item.appt-completed{border-left-color:var(--status-success)}.appt-item.appt-cancelled{border-left-color:var(--border-control)}
.job-cost-metric.negative strong{color:var(--status-danger)}
.login-page .card h1{color:var(--text-primary)}.login-page .error{color:var(--status-danger)}
.preview-banner{background:var(--bg-app);color:var(--text-muted);border-color:var(--border-subtle)}
.header img,.login-page .card img{background:var(--logo-paper)}
dialog{background:var(--bg-surface)!important;color:var(--text-primary)}dialog::backdrop{background:var(--shadow-color)}

[data-theme='light']{--olive:var(--brand-primary-dark);--focus:var(--brand-primary-dark)}
[data-theme='light'] .cal-kind-meeting,[data-theme='light'] .kind-meeting{color:var(--brand-primary-dark)}
button.dash-card{display:flex;flex-direction:column;align-items:flex-start;width:100%;font-weight:400;text-align:left;cursor:pointer;color:inherit}
button.dash-card:hover{filter:none;box-shadow:inset 0 0 0 2px var(--brand-accent)}
#dashboardCards .dash-open,.attention-row .dash-open,.job-row .dash-open{margin-top:10px;font-size:11px!important;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--brand-primary)!important}
button.job-row,button.attention-row{width:100%;background:transparent;color:var(--text);font-weight:400;text-align:left;border:0;box-shadow:none;cursor:pointer}
button.job-row:hover,button.attention-row:hover{filter:none;box-shadow:none;background:var(--bg-surface-elevated)}
button.dash-section-link{background:transparent;color:var(--text);border:0;box-shadow:none;padding:0;min-height:0;font-size:18px;font-weight:650;text-align:left;cursor:pointer}
button.dash-section-link:hover{filter:none;box-shadow:none;background:transparent;text-decoration:underline}
button.empty-state{width:100%;background:transparent;color:var(--text-muted);font-weight:400;box-shadow:none;cursor:pointer}
button.empty-state:hover{filter:none;box-shadow:none;background:var(--bg-surface-elevated)}
#dashboardTab>#staleQuotes.section{margin-top:24px;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:13px}
/* Plain links (e.g. Call / Email on the crew list) use the theme instead of browser blue. */
a{color:var(--brand-primary)}

/* Quote / invoice preview: solid navy top bar, clear of the iPhone status bar
   and Dynamic Island, above the dimmed backdrop, always visible. */
dialog.doc-preview{width:960px;max-width:96vw;height:94vh;max-height:94vh;padding:0;border:0;border-radius:10px;background:#e9edf1!important;display:flex;flex-direction:column;overflow:hidden}
dialog.doc-preview:not([open]){display:none}
dialog.doc-preview::backdrop{background:rgba(10,22,36,.6);-webkit-backdrop-filter:none;backdrop-filter:none}
.doc-preview .doc-preview-bar{position:sticky;top:0;z-index:10;flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));background:#142e48!important;color:#fff!important;opacity:1!important;filter:none!important;-webkit-backdrop-filter:none;backdrop-filter:none}
.doc-preview .doc-preview-bar strong{color:#fff}
.doc-preview .doc-preview-bar>div{display:flex;gap:8px}
.doc-preview .doc-preview-bar button{min-height:44px;padding:0 14px;border-radius:10px;font-weight:700;opacity:1;filter:none;box-shadow:none}
.doc-preview .doc-preview-print{background:#b49560!important;color:#142e48!important;border:0!important}
.doc-preview .doc-preview-print:disabled{opacity:.75}
.doc-preview .doc-preview-close{background:#fff!important;color:#142e48!important;border:0!important}
.doc-preview .doc-preview-frame{flex:1 1 auto;width:100%;min-height:0;border:0;display:block;background:#fff}
@media (max-width:700px){dialog.doc-preview{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:none;margin:0;inset:0;border-radius:0}}

.doc-preview .doc-preview-status{flex:0 0 auto;margin:0;padding:8px 14px;background:#f6efe2;color:#142e48;border-bottom:2px solid #b49560;font-weight:600;font-size:14px}
.doc-preview .doc-preview-status[data-kind=error]{background:#fbecea;border-bottom-color:#c0392b;color:#7d2533}
.doc-preview .doc-preview-hint{flex:0 0 auto;margin:0;padding:8px 14px;background:#f6efe2;color:#142e48;border-bottom:2px solid #b49560;font-weight:600;font-size:14px}
.ws-quote-tag{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid #b49560}
.ws-quote-tag-attached{background:#142e48;color:#fff}
.ws-quote-tag-linked{background:rgba(180,149,96,.15);color:var(--text-primary,#142e48)}
.ws-open-quote{margin:12px 0}
.ws-toast-error{background:#7d2533!important;color:#fff!important}
/* Dashboard pipeline row (v42): set apart from the cards with a soft navy tint and a thin gold outline. */
:root,[data-theme='dark']{--pipe-bg:linear-gradient(160deg,#1a2a3c 0%,#22364b 100%);--pipe-line:#c9ab7466;--pipe-alert:linear-gradient(160deg,#2a2a22 0%,#33301f 100%)}
[data-theme='light']{--pipe-bg:linear-gradient(160deg,#eef2f7 0%,#f6f3ec 100%);--pipe-line:#b4956080;--pipe-alert:linear-gradient(160deg,#f6efdf 0%,#f9f4e8 100%)}
.pipeline-row{grid-column:1/-1;width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
#dashboardCards .pipe-tile{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:92px;padding:14px 14px!important;margin:0;border:1px solid var(--pipe-line)!important;border-radius:14px;background:var(--pipe-bg)!important;color:var(--text-primary)!important;text-align:left;font:inherit;font-weight:400;cursor:pointer;box-shadow:none;filter:none}
#dashboardCards .pipe-tile:hover{box-shadow:inset 0 0 0 1px var(--brand-accent)}
#dashboardCards .pipe-tile:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
.pipe-num{font-size:1.6em;font-weight:700;line-height:1.1;color:var(--text-primary);white-space:nowrap}
.pipe-label{font-size:.78em;font-weight:700;letter-spacing:.02em;color:var(--text-primary)}
.pipe-sub{font-size:.76em;color:var(--text-secondary);line-height:1.3}
.pipe-paid{font-size:.74em;color:var(--status-success);line-height:1.3}
#dashboardCards .pipe-tile.pipe-alert{background:var(--pipe-alert)!important;border-color:var(--brand-accent)!important}
#dashboardCards .pipe-tile.pipe-alert .pipe-num{color:var(--status-warning)}
@media (max-width:600px){
  .pipeline-row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -16px;padding:2px 16px 6px;scroll-padding-left:16px}
  .pipeline-row::-webkit-scrollbar{display:none}
  #dashboardCards .pipe-tile{flex:0 0 130px;width:130px;scroll-snap-align:start}
  #dashboardCards .pipe-tile[data-pipe="unpaid"]{flex-basis:150px;width:150px}
}

/* "PDF ready" box (doc-pdf.js offerShare): shown when the phone needs one more tap to open the share sheet. */
dialog.pdf-ready{max-width:360px;width:calc(100vw - 32px);border:0;border-top:5px solid #b49560;border-radius:14px;padding:18px;background:#fff;color:#142e48;box-shadow:0 12px 40px rgba(20,46,72,.35)}
dialog.pdf-ready::backdrop{background:rgba(20,46,72,.55)}
dialog.pdf-ready strong{display:block;font-size:18px;margin-bottom:6px}
dialog.pdf-ready p{margin:0 0 14px;font-size:15px;line-height:1.4}
dialog.pdf-ready div{display:flex;flex-wrap:wrap;gap:8px}
dialog.pdf-ready button{min-height:44px;padding:0 16px;border-radius:10px;font-weight:700;font-size:15px}
dialog.pdf-ready .pdf-ready-go{background:#142e48;color:#fff;border:0;flex:1 1 100%}
dialog.pdf-ready .pdf-ready-alt{background:#fff;color:#142e48;border:1px solid #b49560;flex:1 1 0}
