/* ==========================================================================
   sweep — Design System
   Inspired by impossible-bureau.com · etch.co · builtbybuffalo.com
   Brutalist editorial: razor borders, electric lime accent, Space Grotesk
   ========================================================================== */

/* --------------------------------------------------------------------------
   Custom properties
   -------------------------------------------------------------------------- */
:root {
  --black:        #0C0C0C;
  --white:        #FAFAF8;
  --lime:         #CAFF00;
  --lime-dark:    #A8D800;
  --gray-100:     #F0F0EC;
  --gray-200:     #E0E0DA;
  --gray-400:     #ADADAA;
  --gray-600:     #6B6B68;
  --border:       1px solid #0C0C0C;
  --border-light: 1px solid #E0E0DA;
  --radius:       2px;
  --transition:   0.18s cubic-bezier(0.4, 0, 0.2, 1);
  --font-display: 'Space Grotesk', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;
  --nav-height:   3.5rem;
}

/* --------------------------------------------------------------------------
   Reset / base
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: var(--font-body);
  background: var(--white);
  color: var(--black);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}

/* Temporary private-preview access gate. Remove with the matching index markup
   and backend private-access module when the public launch is ready. */
body.private-access-locked { overflow:hidden; }
.private-access-overlay { position:fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center; padding:1.25rem; background:var(--black); }
.private-access-overlay.is-hidden { display:none; }
.private-access-card { width:min(100%,330px); display:flex; flex-direction:column; gap:.7rem; text-align:center; }
.private-access-logo { align-self:center; margin-bottom:.7rem; padding:.15em .22em; background:var(--white); color:var(--black); font:700 clamp(3rem,12vw,4.5rem)/1 var(--font-display); letter-spacing:-.065em; }
.private-access-logo span { color:var(--black); text-decoration:underline; text-decoration-color:var(--lime); text-decoration-thickness:.14em; text-underline-offset:.1em; }
.private-access-card .input { height:46px; border-color:var(--white); text-align:center; }
.private-access-card .btn { width:100%; min-height:44px; }
.private-access-message { min-height:1.1rem; color:var(--gray-300); font-size:.72rem; }
.private-access-message.is-error { color:#FCA5A5; }

/* Dashboard page: lock body scroll — only .dash-scroll-area scrolls */
body[data-page="dashboard"] {
  overflow: hidden;
  height: 100vh;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

.cookie-consent-layer { position:fixed;inset:0;z-index:12000;background:rgba(12,12,12,.55);display:flex;align-items:flex-end;justify-content:center;padding:1rem; }
.cookie-consent-card { width:min(100%,760px);background:var(--white);border:var(--border);box-shadow:8px 8px 0 var(--black);padding:1.25rem;display:grid;gap:.85rem; }
.cookie-consent-card h2 { font:700 1.35rem/1.2 var(--font-display);margin:.2rem 0; }
.cookie-consent-card p { color:var(--gray-600);font-size:.84rem; }
.cookie-choice { display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:var(--border-light);padding-top:.7rem;cursor:pointer; }
.cookie-choice div { display:flex;flex-direction:column;gap:.1rem; }.cookie-choice strong{font:.78rem var(--font-display);text-transform:uppercase;letter-spacing:.06em}.cookie-choice span{font-size:.75rem;color:var(--gray-600)}
.cookie-choice input { width:20px;height:20px;accent-color:var(--black); }.cookie-always{font-weight:700!important;color:var(--black)!important}.cookie-actions{display:flex;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}.cookie-policy-link{text-align:right}.cookie-policy-link a{text-decoration:underline}
.legal-page { max-width:900px;padding:4rem 1rem 6rem }.legal-intro{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:1.25rem}.legal-version{font-size:.75rem;color:var(--gray-600)}
.legal-content{display:grid;gap:1.5rem}.legal-content h2{font:700 1rem var(--font-display);margin-bottom:.45rem}.legal-content p{color:#30302e;font-size:.92rem;line-height:1.75}.cookie-table-wrap{overflow:auto}.cookie-table{width:100%;border-collapse:collapse;font-size:.8rem}.cookie-table th,.cookie-table td{text-align:left;padding:.75rem;border-bottom:var(--border-light);vertical-align:top}.cookie-table th{font:700 .68rem var(--font-display);text-transform:uppercase;letter-spacing:.08em}.cookie-table small{display:block;color:var(--gray-600)}.cookie-category{font:700 .65rem var(--font-display);text-transform:uppercase;background:var(--gray-100);padding:.2rem .4rem}
.legal-modal-open{overflow:hidden}.legal-modal-layer{position:fixed;inset:0;z-index:12500;background:rgba(12,12,12,.68);display:flex;align-items:center;justify-content:center;padding:1rem}.legal-modal{width:min(100%,900px);height:min(88vh,850px);min-height:0;background:var(--white);border:var(--border);box-shadow:8px 8px 0 var(--black);display:flex;flex-direction:column}.legal-modal-header{position:relative;z-index:2;display:flex;flex:0 0 auto;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.15rem 1.25rem;border-bottom:var(--border);background:var(--white)}.legal-modal-header h1{font:700 1.35rem/1.2 var(--font-display);margin:.15rem 0}.legal-modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:1.25rem;flex:1 1 auto}.legal-modal-footer{position:relative;z-index:2;display:flex;flex:0 0 auto;justify-content:flex-end;padding:.85rem 1.25rem;border-top:var(--border);background:var(--gray-100)}.legal-modal-cookie-table{margin-top:1.5rem}.legal-modal-close{width:auto;min-width:76px;min-height:44px;flex:0 0 auto;gap:.45rem;padding:.45rem .65rem;font:700 .7rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.05em}
@media(max-width:600px){.cookie-actions .btn{width:100%}.legal-intro{align-items:start;flex-direction:column}.cookie-table{min-width:650px}}
@media(max-width:600px){.legal-modal-layer{height:100vh;height:100dvh;padding:0;align-items:stretch;overflow:hidden}.legal-modal{width:100vw;height:100vh;height:100dvh;max-height:100dvh;border:0;box-shadow:none}.legal-modal-header{padding:calc(.85rem + env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .85rem max(1rem,env(safe-area-inset-left))}.legal-modal-body{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.legal-modal-footer{padding:.75rem max(1rem,env(safe-area-inset-right)) calc(.75rem + env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.legal-modal-footer .btn{width:100%;min-height:44px}}

/* --------------------------------------------------------------------------
   Typography
   -------------------------------------------------------------------------- */
.font-display { font-family: var(--font-display); }

.display-hero {
  font-family: var(--font-display);
  font-size: clamp(2.67rem, 7.12vw, 6.675rem);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.display-md {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.5vw, 3rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.025em;
}

.display-sm {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.label {
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gray-600);
}

.label-dark {
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--black);
}

/* --------------------------------------------------------------------------
   Layout helpers
   -------------------------------------------------------------------------- */
.container {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 3rem);
}

.section { padding-block: clamp(4rem, 8vw, 7rem); }
.section-sm { padding-block: clamp(2rem, 4vw, 3.5rem); }

.ruled {
  border-top: var(--border);
}

/* --------------------------------------------------------------------------
   Navigation
   -------------------------------------------------------------------------- */
.service-status-banner {
  background: var(--black);
  color: var(--white);
  border-bottom: 1px solid var(--lime);
}

.service-status-banner-inner {
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding-block: .55rem;
  text-align: center;
}

.service-status-banner strong {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  flex: 0 0 auto;
  color: var(--lime);
  font: 700 .7rem/1 var(--font-display);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.service-status-banner p { font-size: .75rem; line-height: 1.45; }

.service-status-dot {
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 3px rgba(202, 255, 0, .16);
}

@media (max-width: 700px) {
  .service-status-banner-inner { align-items: flex-start; flex-direction: column; gap: .35rem; text-align: left; }
}

.nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white);
  border-bottom: var(--border);
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-height);
}

.nav-logo {
  font-family: var(--font-display);
  font-size: 1.6875rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.nav-logo span {
  color: var(--black);
  text-decoration: underline;
  text-decoration-color: var(--lime);
  text-decoration-thickness: .14em;
  text-underline-offset: .1em;
}

body[data-page="dashboard"] .dashboard-nav-inner {
  max-width: none;
  padding-left: 45px;
  padding-right: 45px;
}

.dashboard-nav-brand,
.dashboard-nav-actions {
  display: flex;
  align-items: center;
}

.dashboard-nav-brand { gap: .75rem; }
.dashboard-nav-actions { min-width: 0; gap: .5rem; }
.dashboard-nav-actions .nav-user-menu { min-width: 0; }
.dashboard-nav-actions #nav-user-name {
  max-width: clamp(5rem, 14vw, 11rem);
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Authenticated Sweep search and command palette */
.sweep-search { position:relative; flex:1 1 34rem; max-width:42rem; min-width:12rem; margin-inline:clamp(1rem,4vw,4rem); }
.sweep-search[hidden] { display:none; }
.sweep-search-field { display:flex; align-items:center; gap:.55rem; height:2.55rem; padding:0 .75rem; border:var(--border); background:var(--white); box-shadow:3px 3px 0 var(--gray-300); }
.sweep-search-field:focus-within { box-shadow:4px 4px 0 var(--gray-400); }
.sweep-search-field input { min-width:0; flex:1; border:0; outline:0; background:transparent; color:var(--black); font:500 .78rem var(--font-body); }
.sweep-search-field kbd { border:var(--border-light); background:var(--gray-100); padding:.18rem .35rem; color:var(--gray-500); font:600 .58rem var(--font-display); }
.sweep-search-mic { display:grid; place-items:center; width:1.8rem; height:1.8rem; border:0; border-radius:50%; background:transparent; cursor:pointer; }
.sweep-search-mic:hover,.sweep-search-mic.is-listening { background:var(--lime); }
.sweep-search-panel { position:absolute; z-index:145; top:100%; right:0; left:0; border:var(--border); background:var(--white); box-shadow:6px 6px 0 var(--gray-400); }
.sweep-search-panel[hidden] { display:none; }
.sweep-search-panel header { display:flex; justify-content:space-between; gap:1rem; padding:.85rem 1rem; border-bottom:var(--border); }
.sweep-search-panel header p { margin:.2rem 0 0; color:var(--gray-600); font-size:.7rem; }
.sweep-search-panel header button { border:0; background:transparent; color:var(--gray-600); font-size:1.25rem; cursor:pointer; }
.sweep-search-results { max-height:min(27rem,58vh); overflow:auto; }
.sweep-search-results.has-overflow { max-height:min(var(--sweep-five-results-height),58vh); overflow-y:auto; scrollbar-gutter:stable; }
.sweep-search-result { display:grid; grid-template-columns:2.1rem minmax(0,1fr) auto; align-items:center; gap:.7rem; width:100%; padding:.8rem 1rem; border:0; border-bottom:var(--border-light); background:var(--white); text-align:left; cursor:pointer; }
.sweep-search-result:hover,.sweep-search-result:focus-visible,.sweep-search-result.is-active { outline:0; background:var(--gray-100); box-shadow:inset 3px 0 var(--lime-dark); }
.sweep-search-result-icon { display:grid; place-items:center; width:2.1rem; height:2.1rem; border:var(--border-light); background:var(--lime); font-weight:800; }
.sweep-search-result strong,.sweep-search-result span { display:block; }
.sweep-search-result strong { font:700 .76rem var(--font-display); }
.sweep-search-result span { margin-top:.15rem; color:var(--gray-600); font-size:.68rem; }
.sweep-search-result em { color:var(--gray-500); font:600 .62rem var(--font-display); font-style:normal; }
.sweep-search-empty { padding:2rem 1rem; color:var(--gray-600); text-align:center; font-size:.78rem; }
.sweep-search-panel footer { padding:.55rem 1rem; border-top:var(--border); background:var(--gray-100); color:var(--gray-500); font:600 .58rem var(--font-display); text-transform:uppercase; letter-spacing:.05em; }
.sweep-search-preview { padding:1rem; }
.sweep-search-preview h3 { font:700 .85rem var(--font-display); }
.sweep-search-preview p { margin:.5rem 0 1rem; color:var(--gray-600); font-size:.75rem; line-height:1.5; }
.sweep-search-preview-actions { display:flex; justify-content:flex-end; gap:.5rem; }

@media(max-width:760px) {
  .sweep-search { flex:0 0 2.5rem; min-width:2.5rem; margin-inline:auto .25rem; }
  .sweep-search-field { width:2.5rem; padding:0; justify-content:center; box-shadow:none; }
  .sweep-search-field input { position:absolute; width:1px; height:1px; opacity:0; }
  .sweep-search-field kbd,.sweep-search-mic { display:none!important; }
  .sweep-search:focus-within .sweep-search-panel,
  .sweep-search-panel {
    position:fixed;
    top:var(--nav-height);
    right:0;
    bottom:auto;
    left:0;
  }
  .sweep-search-panel {
    display:flex;
    height:auto;
    max-height:calc(100dvh - var(--nav-height));
    flex-direction:column;
    box-shadow:none;
  }
  .sweep-search-panel header { position:relative; flex:0 0 auto; padding:4rem 1rem .85rem; }
  .sweep-search-panel header button { position:absolute; top:1.35rem; right:1rem; }
  .sweep-search-results { min-height:0; max-height:none; flex:0 1 auto; }
  .sweep-search-results.has-overflow { max-height:min(var(--sweep-five-results-height),calc(100dvh - var(--nav-height) - 8rem)); }
  .sweep-search-preview { flex:1 1 auto; overflow-y:auto; }
  .sweep-search-panel footer { flex:0 0 auto; }
  .sweep-search.is-open .sweep-search-field input { position:fixed; z-index:146; top:calc(var(--nav-height) + .75rem); right:3.5rem; left:.75rem; width:auto; height:2.4rem; padding:.6rem .75rem; border:var(--border); background:var(--white); opacity:1; }
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 2rem;
  list-style: none;
}

.nav-links a {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--gray-600);
  transition: color var(--transition);
}

.nav-links a:hover { color: var(--black); }

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.6em 1.25em;
  border: var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  transition: background var(--transition), color var(--transition), transform var(--transition);
  white-space: nowrap;
  line-height: 1;
}

.btn:active { transform: translateY(1px); }

.btn-primary {
  background: var(--black);
  color: var(--white);
  border-color: var(--black);
}
.btn-primary:hover { background: #2a2a2a; }

.btn-lime {
  background: var(--lime);
  color: var(--black);
  border-color: var(--lime);
}
.btn-lime:hover { background: var(--lime-dark); border-color: var(--lime-dark); }

.btn-outline {
  background: transparent;
  color: var(--black);
  border-color: var(--black);
}
.btn-outline:hover { background: var(--black); color: var(--white); }
.btn-outline.active-view { background: var(--black); color: var(--white); }

/* OAuth provider buttons */
.oauth-btn {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.55em 1em;
  border: var(--border-light);
  border-radius: var(--radius);
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--black);
  text-decoration: none;
  transition: border-color 0.2s ease;
}
.oauth-btn:hover { border-color: var(--black); }
.oauth-btn[aria-disabled="true"] {
  pointer-events: none;
  cursor: wait;
  opacity: 0.55;
}
.oauth-btn.is-loading { border-color: var(--gray-200); }
.oauth-options-status {
  margin: 0 0 0.5rem;
  color: var(--gray-600);
  font-size: 0.75rem;
}

/* View toggle segmented control */
.view-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  padding: 0.35em 0.75em;
  border: none;
  border-radius: 1px;
  background: transparent;
  color: var(--gray-600);
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
  white-space: nowrap;
  line-height: 1;
}
.view-toggle-btn:hover { color: var(--black); }
.view-toggle-btn.active-view {
  background: var(--black);
  color: var(--white);
}

.btn-ghost {
  background: transparent;
  color: var(--gray-600);
  border-color: transparent;
  padding-inline: 0.5em;
}
.btn-ghost:hover { color: var(--black); background: var(--gray-100); border-color: var(--gray-200); }

.btn-lg {
  font-size: 0.9375rem;
  padding: 0.75em 1.75em;
}

.btn-sm {
  font-size: 0.6875rem;
  padding: 0.45em 0.9em;
}

/* --------------------------------------------------------------------------
   Form elements
   -------------------------------------------------------------------------- */
.field { display: flex; flex-direction: column; gap: 0.4rem; }

.field-label {
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-600);
}

.input {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 400;
  color: var(--black);
  background: var(--white);
  border: var(--border);
  border-radius: var(--radius);
  padding: 0.65em 0.9em;
  width: 100%;
  transition: border-color var(--transition), box-shadow var(--transition);
  outline: none;
}

.input::placeholder { color: var(--gray-400); }

.input:focus {
  border-color: var(--black);
  box-shadow: 0 0 0 3px rgba(202, 255, 0, 0.35);
}

.input-lg {
  font-size: 1.125rem;
  padding: 0.85em 1.1em;
  letter-spacing: 0.02em;
}

select.input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230C0C0C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.9em center; padding-right: 2.5em; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Address autocomplete deliberately mirrors the black/lime custom selects. */
.address-autocomplete {
  position: relative;
  width: 100%;
}

.address-autocomplete.is-searching::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 0.8rem;
  width: 0.85rem;
  height: 0.85rem;
  margin-top: -0.425rem;
  border: 2px solid var(--gray-200);
  border-top-color: var(--black);
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
  pointer-events: none;
}

.address-autocomplete-list {
  position: absolute;
  top: calc(100% + 3px);
  left: 0;
  width: 100%;
  min-width: min(320px, 100%);
  max-height: 280px;
  overflow-y: auto;
  font-family: var(--font-display);
  background: var(--black);
  border: var(--border);
  border-radius: var(--radius);
  z-index: 80;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.14s, transform 0.14s;
  box-shadow: 0 8px 24px rgba(0,0,0,0.22);
}

.address-autocomplete-list[hidden] { display: none; }
.address-autocomplete-list.is-open { opacity: 1; transform: translateY(0); }

.address-autocomplete-option {
  padding: 0.7rem 0.9rem;
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.4;
  color: rgba(255,255,255,0.72);
  cursor: pointer;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: background 0.1s, color 0.1s;
}

.address-autocomplete-option:hover,
.address-autocomplete-option.is-active {
  background: rgba(202,255,0,0.1);
  color: var(--lime);
}

.address-autocomplete-option.is-active {
  box-shadow: inset 3px 0 0 var(--lime);
}

.address-autocomplete-message,
.address-autocomplete-hint {
  padding: 0.7rem 0.9rem;
  font-family: var(--font-display);
  font-size: 0.75rem;
  line-height: 1.4;
  color: rgba(255,255,255,0.58);
}

.address-autocomplete-message.is-loading { color: var(--lime); }
.address-autocomplete-hint {
  color: rgba(255,255,255,0.38);
  border-top: 1px solid rgba(255,255,255,0.08);
}

@media (max-width: 640px) {
  .address-autocomplete-list { min-width: 100%; max-height: 240px; }
}

/* --------------------------------------------------------------------------
   4-Step Wizard
   -------------------------------------------------------------------------- */
.wizard {
  border: var(--border);
  background: var(--gray-100);
  overflow: hidden;
}

.wizard-header {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: var(--border);
}

.wizard-tab {
  display: flex;
  flex-direction: column;
  padding: 1rem 1.25rem;
  border-right: var(--border);
  cursor: default;
  transition: background var(--transition);
}

.wizard-tab:last-child { border-right: none; }

.wizard-tab .step-num {
  font-family: var(--font-display);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gray-400);
  margin-bottom: 0.2rem;
  transition: color var(--transition);
}

.wizard-tab .step-title {
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--gray-400);
  transition: color var(--transition);
}

.wizard-tab.active { background: var(--black); }
.wizard-tab.active .step-num { color: var(--lime); }
.wizard-tab.active .step-title { color: var(--white); }

.wizard-tab.done { background: var(--gray-100); cursor: pointer; }
.wizard-tab.done:hover { background: var(--gray-200); }
.wizard-tab.done .step-num { color: var(--lime-dark); }
.wizard-tab.done .step-title { color: var(--black); }

.wizard-body { padding: clamp(1.5rem, 4vw, 2.5rem); }

.wizard-location-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr);
  gap: 1rem;
}

.wizard-contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 1rem;
}

.wizard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-top: var(--border);
  background: var(--gray-100);
}

.wizard-success {
  position: relative;
  min-height: 420px;
  padding: clamp(2rem, 7vw, 4rem);
  background: var(--lime);
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 1rem;
  overflow: hidden;
}

.wizard-success::after {
  content: '';
  position: absolute;
  width: 260px;
  height: 260px;
  right: -90px;
  top: -90px;
  border: 2px solid rgba(12, 12, 12, 0.16);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(12, 12, 12, 0.05), 0 0 0 68px rgba(12, 12, 12, 0.035);
  pointer-events: none;
}

.wizard-success-icon,
.wizard-success > div,
.wizard-success > button {
  position: relative;
  z-index: 1;
}

.wizard-success h2 {
  margin: 0.3rem 0 0.75rem;
  max-width: 580px;
  font-size: clamp(1.7rem, 5vw, 2.6rem);
}

.wizard-success p {
  max-width: 570px;
  color: rgba(12, 12, 12, 0.72);
  line-height: 1.6;
}

.wizard-success-email {
  margin-top: 0.5rem;
  color: var(--black) !important;
  font-family: var(--font-display);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.wizard-success-reset-note {
  font-size: 0.75rem;
  color: rgba(12, 12, 12, 0.58);
}

.wizard-success-progress {
  position: absolute !important;
  inset: auto 0 0;
  height: 5px;
  background: rgba(12, 12, 12, 0.15);
}

.wizard-success-progress span {
  display: block;
  height: 100%;
  background: var(--black);
  transform-origin: left;
  animation: wizardSuccessCountdown 8s linear forwards;
}

@keyframes wizardSuccessCountdown {
  from { transform: scaleX(1); }
  to { transform: scaleX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .wizard-success-progress span { animation: none; }
}

/* Category grid */
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 0.75rem;
}

.category-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.85rem;
  border: var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  background: var(--gray-100);
  transition: background var(--transition), border-color var(--transition);
  user-select: none;
}

.category-card:hover { background: var(--gray-200); }
.category-card:focus-visible { outline: 3px solid var(--lime-dark); outline-offset: 2px; }

.category-card.selected {
  background: var(--black);
  border-color: var(--black);
}

.category-card.selected .cat-icon { color: var(--lime); }
.category-card.selected .cat-name { color: var(--white); }
.category-card.selection-locked::after {
  content: 'Items selected';
  color: var(--lime);
  font: 700 0.58rem/1 var(--font-display);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.cat-icon {
  color: var(--gray-600);
  transition: color var(--transition);
}

.cat-name {
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--black);
  transition: color var(--transition);
}

/* --------------------------------------------------------------------------
   Cards
   -------------------------------------------------------------------------- */
.card {
  border: var(--border);
  border-radius: var(--radius);
  background: var(--gray-100);
  overflow: hidden;
}

.card-header {
  padding: 1rem 1.25rem;
  border-bottom: var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.card-body { padding: 1.25rem; }

.card-footer {
  padding: 0.85rem 1.25rem;
  border-top: var(--border);
  background: var(--gray-100);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* --------------------------------------------------------------------------
   Badges / status pills
   -------------------------------------------------------------------------- */
.badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-display);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.25em 0.6em;
  border-radius: 1px;
  border: 1px solid transparent;
}

.badge-open    { background: #E8FFB3; color: #3A6000; border-color: #AADF00; }
.badge-pending { background: #FFF3CD; color: #7A5300; border-color: #FFC107; }
.badge-approved{ background: var(--lime); color: var(--black); border-color: var(--lime-dark); }
.badge-completed { background: #D1FAE5; color: #065F46; border-color: #34D399; }
.badge-cancelled { background: var(--gray-100); color: var(--gray-600); border-color: var(--gray-200); }
.badge-accepted  { background: var(--lime); color: var(--black); border-color: var(--lime-dark); }
.badge-rejected  { background: #FEE2E2; color: #991B1B; border-color: #FCA5A5; }
.badge-withdrawn { background: #F3F4F6; color: #4B5563; border-color: #9CA3AF; }
.badge-archived { background: #F5F3FF; color: #5B21B6; border-color: #C4B5FD; }

/* Browse marketplace: closed jobs (awarded/completed/cancelled) are shown but dimmed */
.job-card { transition: box-shadow 0.15s, opacity 0.15s; }
.job-card:hover { box-shadow: 4px 4px 0 var(--gray-400); }
.job-card--closed { opacity: 0.62; }
.job-card--closed:hover { opacity: 0.85; }
.job-card--closed .btn[disabled] { pointer-events: none; }

/* --------------------------------------------------------------------------
   Modal
   -------------------------------------------------------------------------- */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(12, 12, 12, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 200;
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition);
}

.modal-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.modal {
  background: var(--gray-100);
  border: var(--border);
  border-radius: var(--radius);
  width: 100%;
  max-width: 440px;
  transform: translateY(12px);
  transition: transform var(--transition);
}

.modal-backdrop.open .modal { transform: translateY(0); }

.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.25rem;
  border-bottom: var(--border);
}

.modal-body { padding: 1.5rem 1.25rem; }

#bid-modal.bid-modal-revision .modal {
  display: flex;
  flex-direction: column;
  max-height: min(760px, calc(100dvh - 3rem));
  overflow: hidden;
}

#bid-modal.bid-modal-revision .modal-header { flex: 0 0 auto; }
#bid-modal.bid-modal-revision .modal-body {
  min-height: 0;
  overflow-y: auto;
  scrollbar-gutter: stable;
  transition: padding-bottom 0.18s ease;
}
#bid-modal.bid-reason-dropdown-open .modal-body { padding-bottom: 5rem; }

.bid-reason-select,
.bid-reason-select .custom-select-trigger { width: 100%; }
.bid-reason-select .custom-select-trigger { min-width: 0; }
.bid-reason-select .custom-select-dropdown {
  width: 100%;
  max-width: none;
  max-height: 240px;
  overflow-y: auto;
}

@media (max-height: 700px), (max-width: 600px) {
  #bid-modal.bid-modal-revision .modal { max-height: calc(100dvh - 2rem); }
}

.modal-close {
  width: 1.75rem;
  height: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: var(--border);
  border-radius: var(--radius);
  background: none;
  cursor: pointer;
  color: var(--black);
  transition: background var(--transition);
}
.modal-close:hover { background: var(--gray-100); }

/* Branded email verification and password reset dialog. */
.verification-backdrop { z-index:240; }
.verification-modal {
  position:relative;
  max-width:460px;
  overflow:hidden;
  background:var(--white);
  box-shadow:8px 8px 0 rgba(202,255,0,.9);
}
.verification-accent { height:5px; background:var(--lime); border-bottom:var(--border); }
.verification-header { align-items:flex-start; background:var(--black); color:var(--white); }
.verification-header .modal-close { border-color:rgba(255,255,255,.45); color:var(--white); }
.verification-header .modal-close:hover { background:rgba(255,255,255,.12); }
.verification-logo { display:inline-block; margin-bottom:.8rem; padding:.18em .26em; background:var(--white); color:var(--black); font-size:1.125rem; }
.verification-header h2 { color:var(--white); font-size:1.35rem; }
.verification-form { display:flex; flex-direction:column; gap:1rem; }
.verification-form > p:first-child { color:var(--gray-600); font-size:.875rem; line-height:1.55; }
.verification-form > p:first-child strong { color:var(--black); overflow-wrap:anywhere; }
.verification-code-input {
  min-height:58px;
  padding:.65rem .8rem;
  border:2px solid var(--black);
  background:var(--gray-100);
  font:700 1.5rem/1 var(--font-display);
  letter-spacing:.32em;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
.verification-code-input::placeholder { color:var(--gray-400); opacity:.65; }
.verification-code-input[aria-invalid="true"] { border-color:#B91C1C; box-shadow:0 0 0 3px rgba(185,28,28,.12); }
.verification-hint { display:block; margin-top:.35rem; color:var(--gray-600); font-size:.7rem; }
.verification-resend { margin-top:.45rem; padding-inline:0; }
.verification-error { min-height:1.15rem; color:#B91C1C; font:600 .75rem/1.4 var(--font-display); }
.verification-actions { display:flex; justify-content:flex-end; gap:.65rem; padding-top:.25rem; }
.verification-actions .btn { min-height:42px; }

/* Contractor compliance and specialist authorisation. */
.contractor-verification-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1rem 1.5rem;
  margin-bottom:1.25rem;
  padding:1.25rem;
  border:var(--border);
  background:var(--white);
  box-shadow:4px 4px 0 var(--gray-200);
}
.contractor-verification-card.is-verified { border-left:6px solid var(--lime); }
.contractor-verification-card.is-pending { border-left:6px solid #F59E0B; }
.contractor-verification-card.compliance-suspended,
.contractor-verification-card.compliance-overdue { border-left-color:#B91C1C; }
.contractor-verification-card.compliance-override { border-left-color:#2563EB; }
.contractor-verification-card h2 { margin:.35rem 0 .25rem; font:700 1.1rem/1.2 var(--font-display); }
.contractor-verification-card p { max-width:680px; color:var(--gray-600); font-size:.8rem; line-height:1.55; }
.contractor-verification-status {
  align-self:start;
  padding:.45rem .65rem;
  border:1px solid currentColor;
  font:700 .68rem var(--font-display);
  text-transform:uppercase;
  letter-spacing:.05em;
  white-space:nowrap;
}
.is-verified .contractor-verification-status { background:var(--lime); color:var(--black); }
.is-pending .contractor-verification-status { background:#FEF3C7; color:#92400E; }
.compliance-suspended .contractor-verification-status,
.compliance-overdue .contractor-verification-status { background:#FEE2E2; color:#991B1B; }
.compliance-override .contractor-verification-status { background:#DBEAFE; color:#1E40AF; }
.contractor-compliance-issues { margin:.7rem 0 0 1rem; color:#7C2D12; font-size:.78rem; line-height:1.6; }
.contractor-compliance-deadline { margin-top:.6rem; color:var(--black)!important; }
.contractor-verified-list { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:.45rem; padding-top:.85rem; border-top:var(--border-light); }
.contractor-verified-list strong { width:100%; font:700 .72rem var(--font-display); }
.contractor-verified-list span { padding:.3rem .5rem; background:#F7FEE7; border:1px solid #86B91C; font-size:.7rem; }
.browse-onboarding-notice {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.85rem;
  margin:0 0 1rem;
  padding:1rem;
  border:var(--border);
  border-left:6px solid #F59E0B;
  background:#FFFBEB;
  box-shadow:4px 4px 0 var(--gray-200);
}
.browse-onboarding-notice-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:2rem;
  height:2rem;
  border-radius:50%;
  background:var(--black);
  color:var(--lime);
  font:700 1rem/1 var(--font-display);
}
.browse-onboarding-notice-copy h2 { margin:0 0 .2rem; font:700 .95rem/1.3 var(--font-display); }
.browse-onboarding-notice-copy p { margin:0; max-width:760px; color:var(--gray-600); font-size:.78rem; line-height:1.55; }
.contractor-specialisms { margin:0; padding:.9rem; border:var(--border-light); background:var(--gray-100); }
.contractor-specialisms > p { margin:.25rem 0 .75rem; color:var(--gray-600); font-size:.72rem; }
.contractor-specialism-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
.contractor-specialism-grid label { display:flex; align-items:flex-start; gap:.45rem; padding:.55rem; border:1px solid var(--gray-300); background:var(--white); font-size:.75rem; line-height:1.35; cursor:pointer; }
.contractor-specialism-grid input[type="checkbox"] { width:20px; height:20px; flex:0 0 20px; margin:0; accent-color:var(--lime-dark); cursor:pointer; }
.contractor-specialism-grid input[type="checkbox"]:disabled { cursor:not-allowed; opacity:.45; }
.contractor-specialism-grid small { margin-left:auto; color:#4D7C0F; font:700 .6rem var(--font-display); text-transform:uppercase; }
.fee-label-with-help { display:inline-flex; align-items:center; gap:.35rem; }
.fee-help { position:relative; display:inline-flex; }
.fee-help-trigger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.15rem;
  height:1.15rem;
  padding:0;
  border:1px solid var(--gray-500);
  border-radius:50%;
  background:var(--white);
  color:var(--black);
  font:700 .68rem/1 var(--font-display);
  cursor:help;
}
.fee-help-trigger:hover,.fee-help-trigger:focus-visible { border-color:var(--black); background:var(--lime); outline:2px solid var(--black); outline-offset:2px; }
.fee-help-tooltip {
  position:absolute;
  z-index:20;
  left:50%;
  bottom:calc(100% + .55rem);
  width:min(250px,72vw);
  padding:.65rem .7rem;
  border:1px solid var(--black);
  background:var(--black);
  color:var(--white);
  box-shadow:3px 3px 0 var(--lime);
  font:500 .7rem/1.45 var(--font-body);
  transform:translate(-50%,4px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity var(--transition),transform var(--transition),visibility 0s linear .15s;
}
.fee-help:hover .fee-help-tooltip,.fee-help:focus-within .fee-help-tooltip { opacity:1; visibility:visible; transform:translate(-50%,0); transition:opacity var(--transition),transform var(--transition); }
.compliance-chip { display:inline-flex; width:max-content; padding:.28rem .45rem; border:1px solid currentColor; font:700 .62rem var(--font-display); letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.compliance-chip.is-compliant { background:var(--lime); color:var(--black); }
.compliance-chip.is-action_required { background:#FEF3C7; color:#92400E; }
.compliance-chip.is-overdue,.compliance-chip.is-suspended { background:#FEE2E2; color:#991B1B; }
.compliance-chip.is-override { background:#DBEAFE; color:#1E40AF; }
.compliance-table-note { display:block; margin-top:.25rem; color:var(--gray-500); font-size:.65rem; }
.compliance-summary { display:flex; flex-direction:column; gap:.65rem; padding:.8rem; border:1px solid var(--gray-300); background:var(--gray-100); }
.compliance-summary>div { display:flex; align-items:center; justify-content:space-between; gap:.6rem; flex-wrap:wrap; }
.compliance-summary strong { font:700 .74rem var(--font-display); }
.compliance-summary ul { margin:0 0 0 1rem; font-size:.75rem; line-height:1.55; }
.compliance-summary p { margin:0; color:var(--gray-600); font-size:.7rem; }
.compliance-admin-actions { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; padding-top:.75rem; border-top:var(--border-light); }
.compliance-admin-actions>div { display:grid; grid-template-columns:minmax(0,1fr) 72px; gap:.45rem; }
.compliance-admin-actions>div>.field-label { grid-column:1/-1; }
.compliance-admin-actions>div>.btn { grid-column:1/-1; justify-content:center; }
.compliance-admin-actions>.btn { grid-column:1/-1; justify-content:center; }

@media (max-width:480px) {
  .verification-backdrop { padding:.75rem; align-items:flex-end; }
  .verification-modal { max-width:none; box-shadow:4px 4px 0 var(--lime); }
  .verification-header, .verification-form { padding-inline:1rem; }
  .verification-actions { flex-direction:column-reverse; }
  .verification-actions .btn { width:100%; justify-content:center; }
  .contractor-verification-card { grid-template-columns:1fr; padding:1rem; }
  .contractor-verification-status { justify-self:start; }
  .browse-onboarding-notice { grid-template-columns:auto minmax(0,1fr); }
  .browse-onboarding-notice .btn { grid-column:1/-1; width:100%; justify-content:center; }
  .contractor-specialism-grid { grid-template-columns:1fr; }
  .compliance-admin-actions { grid-template-columns:1fr; }
}

/* --------------------------------------------------------------------------
   Dashboard sidebar
   -------------------------------------------------------------------------- */
.dashboard-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  height: calc(100vh - var(--nav-height));
  overflow: hidden;
}

@media (max-width: 768px) {
  .dashboard-layout { grid-template-columns: 1fr; }
}

.sidebar {
  border-right: var(--border);
  display: flex;
  flex-direction: column;
  padding: 1.5rem 0;
  background: var(--white);
  height: 100%;
  overflow-y: auto;
  position: sticky;
  top: 0;
}

@media (max-width: 768px) {
  body[data-page="admin"] .sidebar { display:none;position:fixed;inset:var(--nav-height) auto 0 0;width:min(86vw,320px);height:auto;z-index:150;box-shadow:12px 0 28px rgba(0,0,0,.2) }
  body[data-page="admin"] .sidebar.open { display:flex }
  body[data-page="admin"] .dash-main { width:100%;min-width:0 }
}

.sidebar-user {
  padding: 0 1.25rem 1.5rem;
  border-bottom: var(--border);
  margin-bottom: 1rem;
}

.sidebar-user-name {
  font-family: var(--font-display);
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.sidebar-user-type {
  font-size: 0.75rem;
  color: var(--gray-600);
  margin-top: 0.1rem;
}

.sidebar-nav {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  padding: 0 0.75rem;
  flex: 1;
}

.sidebar-nav a {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.625rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--gray-600);
  border-radius: var(--radius);
  transition: background var(--transition), color var(--transition);
}

.sidebar-nav a:hover { background: var(--gray-100); color: var(--black); }
.sidebar-nav a.active { background: var(--black); color: var(--lime); }
.sidebar-nav a.active svg { color: var(--lime); }
.sidebar-nav a.contractor-nav-locked { color:var(--gray-500); }
.sidebar-nav a.contractor-nav-locked.active { color:var(--lime); }
.sidebar-nav a.contractor-nav-locked svg { opacity:.55; }
.contractor-nav-lock-badge {
  margin-left:auto;
  padding:.16rem .34rem;
  border:1px solid #92400E;
  border-radius:2px;
  background:#FEF3C7;
  color:#92400E;
  font:700 .52rem/1 var(--font-display);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.sidebar-nav a.contractor-nav-locked.active .contractor-nav-lock-badge { border-color:var(--lime); background:transparent; color:var(--lime); }
.sidebar-nav .nav-subpage a{margin-left:1.35rem;padding-left:.7rem;font-size:.75rem;border-left:1px solid var(--gray-200);border-radius:0 var(--radius) var(--radius) 0}
.sidebar-nav .sidebar-section-divider {
  height: 1px;
  margin: 0.5rem 0;
  padding: 0;
  background: var(--gray-200);
  list-style: none;
}


.sidebar-footer {
  padding: 1.25rem 1rem 0;
  border-top: var(--border);
  margin-top: auto;
}

/* --------------------------------------------------------------------------
   Dashboard main content
   -------------------------------------------------------------------------- */
.dash-right {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden; /* scroll is handled by .dash-scroll-area */
}

/* Scrollable region below the AI bar */
.dash-scroll-area {
  flex: 1;
  overflow-y: auto;
  min-height: 0; /* required for flex children to shrink */
}

.dash-main {
  background: var(--gray-100);
  height: 100%;
  min-width: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

#dash-content {
  flex: 1;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.dash-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  gap: 1rem;
  flex-wrap: wrap;
}

.stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.stat-card {
  background: var(--gray-100);
  border: var(--border);
  border-radius: var(--radius);
  padding: 1.1rem 1.25rem;
}

.stat-value {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  margin-bottom: 0.3rem;
  white-space: nowrap;   /* keep values (incl. £ earnings) on one line so labels stay aligned */
}

.stat-label {
  font-size: 0.75rem;
  color: var(--gray-600);
}

/* --------------------------------------------------------------------------
   Job / Bid list items
   -------------------------------------------------------------------------- */
.list-card {
  background: var(--gray-100);
  border: var(--border);
  border-radius: var(--radius);
  margin-bottom: 0.625rem;
  transition: border-color var(--transition);
}

.list-card:hover { border-color: var(--black); }

.list-card-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
}

.list-card-actions {
  display: flex;
  gap: 0.5rem;
  padding: 0.625rem 1.25rem;
  border-top: var(--border-light);
  background: var(--gray-100);
}

/* --------------------------------------------------------------------------
   Toast notification
   -------------------------------------------------------------------------- */
#toast-container {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 300;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
}

.toast {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: var(--black);
  color: var(--white);
  border-radius: var(--radius);
  font-size: 0.8125rem;
  font-weight: 500;
  max-width: 320px;
  pointer-events: auto;
  animation: toastIn 0.2s ease forwards;
}

.toast.success { border-left: 3px solid var(--lime); }
.toast.error   { border-left: 3px solid #FF4D4D; }
.toast.info    { border-left: 3px solid #60A5FA; }

@keyframes toastIn {
  from { opacity: 0; transform: translateX(16px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* --------------------------------------------------------------------------
   Section: How it works
   -------------------------------------------------------------------------- */
.how-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  border-top: var(--border);
  border-left: var(--border);
}

.how-item {
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-right: var(--border);
  border-bottom: var(--border);
}

.how-num {
  font-family: var(--font-display);
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.05em;
  color: var(--gray-200);
  margin-bottom: 0.75rem;
}

/* --------------------------------------------------------------------------
   CTA band
   -------------------------------------------------------------------------- */
.cta-band {
  background: var(--lime);
  border-top: var(--border);
  border-bottom: var(--border);
  padding: clamp(2.5rem, 5vw, 4rem) 0;
}

/* --------------------------------------------------------------------------
   Footer (legacy single-line)
   -------------------------------------------------------------------------- */
.footer {
  border-top: var(--border);
  padding: 2rem 0;
}

.footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}

/* --------------------------------------------------------------------------
   Site-wide footer — Apple-style link columns
   -------------------------------------------------------------------------- */
.site-footer {
  background: var(--gray-100);
  border-top: var(--border-light);
  font-family: var(--font-body);
  flex-shrink: 0;
}

.site-footer-links {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem 2rem;
  padding: 2rem 2.5rem 1.5rem;
}

/* When used inside a .container (index page), remove horizontal padding */
.container .site-footer-links,
.container .site-footer-bottom {
  padding-left: 0;
  padding-right: 0;
}

.site-footer-heading {
  font-family: var(--font-display);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--black);
  margin-bottom: 0.625rem;
}

.site-footer-col ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.site-footer-col ul li a {
  font-size: 0.8125rem;
  color: var(--gray-600);
  transition: color var(--transition);
  line-height: 1.4;
}

.site-footer-col ul li a:hover { color: var(--black); }

.site-footer-bottom {
  border-top: var(--border-light);
  padding: 0.875rem 2.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.site-footer-bottom p {
  font-size: 0.75rem;
  color: var(--gray-400);
}

.site-footer-bottom-links {
  display: flex;
  gap: 1.25rem;
}

.site-footer-bottom-links a {
  font-size: 0.75rem;
  color: var(--gray-400);
  transition: color var(--transition);
}

.site-footer-bottom-links a:hover { color: var(--black); }

@media (max-width: 768px) {
  .site-footer-links { grid-template-columns: repeat(2, 1fr); padding: 1.5rem; }
  .site-footer-bottom { padding: 0.875rem 1.5rem; flex-direction: column; align-items: flex-start; }
}

/* --------------------------------------------------------------------------
   Utility
   -------------------------------------------------------------------------- */
.text-muted  { color: var(--gray-600); }
.text-lime   { color: var(--lime-dark); }
.bg-lime     { background: var(--lime); }
.bg-black    { background: var(--black); color: var(--white); }
.bg-gray     { background: var(--gray-100); }
.border-b    { border-bottom: var(--border); }
.gap-sm      { gap: 0.5rem; }
.flex-center { display: flex; align-items: center; }
.flex-between{ display: flex; align-items: center; justify-content: space-between; }

.spinner {
  width: 1.125rem;
  height: 1.125rem;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  display: inline-block;
}

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

.hidden { display: none !important; }

/* --------------------------------------------------------------------------
   Tab bar — status filter
   -------------------------------------------------------------------------- */
.tab-bar {
  display: flex;
  border: var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 1.25rem;
  background: var(--white);
  overflow-x: auto;
  scrollbar-width: none;
}
.tab-bar::-webkit-scrollbar { display: none; }

.tab {
  flex: none;
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.55em 0.85em;
  border: none;
  border-right: var(--border);
  background: transparent;
  color: var(--gray-600);
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 0.35em;
}
.tab:last-child { border-right: none; }
.tab:hover { background: var(--gray-100); color: var(--black); }
.tab.active { background: var(--black); color: var(--white); }

.tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35em;
  height: 1.35em;
  padding: 0 0.3em;
  border-radius: 20px;
  font-size: 0.75em;
  background: var(--gray-200);
  color: var(--black);
}
.tab.active .tab-count { background: rgba(255,255,255,0.18); color: var(--white); }

/* --------------------------------------------------------------------------
   Detail slide panel
   -------------------------------------------------------------------------- */
.detail-overlay {
  position: fixed;
  inset: 0;
  background: rgba(12,12,12,0.5);
  z-index: 180;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s;
}
.detail-overlay.open { opacity: 1; pointer-events: auto; }

.detail-panel {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(780px, 100vw);
  background: var(--white);
  border-left: var(--border);
  z-index: 190;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}
.detail-panel.open { transform: translateX(0); }

.detail-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.5rem;
  border-bottom: var(--border);
  background: var(--white);
  flex-shrink: 0;
}

.detail-panel-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  background: var(--gray-100);
}

.detail-section { display: flex; flex-direction: column; gap: 0.75rem; }

/* Admin Insights uses the same contained right drawer as other admin details. */
.insights-overlay {
  position: fixed;
  inset: 0;
  background: rgba(12,12,12,0.45);
  z-index: 180;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s;
}
.insights-overlay.open { opacity: 1; pointer-events: auto; }
.insights-panel {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  left: auto;
  width: min(780px, 100vw);
  background: var(--white);
  z-index: 190;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
  border-left: var(--border);
}
.insights-panel.open { transform: translateX(0); }
.insights-panel-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.4rem;
  border-bottom: var(--border);
  background: var(--white);
  flex-shrink: 0;
}
.insights-panel-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem 1.4rem 2rem;
  background: var(--gray-100);
}
.insight-code {
  margin: 0;
  padding: 1rem;
  overflow: auto;
  border-radius: var(--radius);
  background: #111827;
  color: #D1FAE5;
  font: 0.75rem/1.55 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  white-space: pre-wrap;
  word-break: break-word;
}
@media (max-width: 768px) {
  .insights-panel { left: 0; width: 100vw; }
}

/* Verified employee support workspace. */
.support-workspace-overlay {
  position: fixed; inset: var(--nav-height) 0 0 220px;
  background: rgba(12,12,12,0.48); z-index: 200;
  opacity: 0; pointer-events: none; transition: opacity 0.22s;
}
.support-workspace-overlay.open { opacity: 1; pointer-events: auto; }
.support-workspace-panel {
  position: fixed; inset: var(--nav-height) 0 0 220px;
  z-index: 210; background: var(--white); display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform 0.25s cubic-bezier(0.4,0,0.2,1);
  overflow: hidden; border-left: var(--border);
}
.support-workspace-panel.open { transform: translateX(0); }
.support-workspace-body { flex: 1; overflow-y: auto; padding: 1.25rem 1.4rem 2rem; background: var(--gray-100); }
.support-security-banner { background:#ECFCCB; border:1px solid #A3E635; border-radius:var(--radius); padding:0.75rem 0.9rem; font-size:0.75rem; color:#365314; }
.support-page-heading{align-items:flex-start}.support-page-heading .label{margin-bottom:.3rem}.support-page-heading p{margin-top:.35rem;color:var(--gray-600);font-size:.82rem}.support-security-overview{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding:.9rem 1rem}.support-security-overview strong{flex:0 0 auto;font:700 .75rem var(--font-display);text-transform:uppercase;letter-spacing:.06em}.support-security-overview span{line-height:1.5}
.support-flow-steps{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:1rem;border:var(--border);background:var(--white)}.support-flow-step{position:relative;display:flex;align-items:center;justify-content:center;gap:.55rem;padding:.75rem;border-right:var(--border-light);color:var(--gray-400)}.support-flow-step:last-child{border-right:0}.support-flow-step span{display:grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;font:700 .65rem var(--font-display)}.support-flow-step strong{font:700 .7rem var(--font-display);text-transform:uppercase;letter-spacing:.07em}.support-flow-step.is-active{background:var(--black);color:var(--white)}.support-flow-step.is-active span{border-color:var(--lime);background:var(--lime);color:var(--black)}.support-flow-step.is-complete{background:#F7FEE7;color:#3F6212}.support-flow-step.is-complete span{border-color:var(--lime-dark);background:var(--lime);color:var(--black)}
.support-active-sessions{margin-bottom:1rem}.support-saved-card{overflow:hidden;background:var(--white)}.support-saved-card summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;cursor:pointer;list-style:none}.support-saved-card summary::-webkit-details-marker{display:none}.support-saved-card summary>div{display:flex;align-items:center;gap:.7rem}.support-saved-card summary small{color:var(--gray-500);font-size:.7rem}.support-saved-card summary>span{font:700 .65rem var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--gray-500)}.support-saved-list{border-top:var(--border-light)}.support-saved-row{display:grid;grid-template-columns:34px minmax(180px,1fr) auto auto auto;align-items:center;gap:.65rem;padding:.65rem 1rem;border-bottom:var(--border-light)}.support-saved-row:last-child{border-bottom:0}.support-saved-avatar,.support-result-avatar,.support-selected-avatar{display:grid;place-items:center;border-radius:50%;background:var(--black);color:var(--lime);font:700 .78rem var(--font-display)}.support-saved-avatar{width:34px;height:34px}.support-saved-row>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.support-saved-row strong{font:700 .78rem var(--font-display)}.support-saved-row>div:nth-child(2)>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-500);font-size:.68rem}
.support-auth-layout{display:grid;grid-template-columns:minmax(290px,.72fr) minmax(430px,1.28fr);gap:1rem;align-items:start}.support-auth-layout>.card{background:var(--white);overflow:visible}.support-find-card .card-header,.support-verification-card>.card-header{align-items:flex-start}.support-verification-card>.card-header{gap:1rem}.support-factor-count{flex:0 0 auto;padding:.28rem .5rem;border:1px solid var(--gray-300);background:var(--gray-100);font:700 .6rem var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--gray-600)}
.support-search-box{position:relative}.support-search-box svg{position:absolute;left:.8rem;top:50%;z-index:1;transform:translateY(-50%);color:var(--gray-500);pointer-events:none}.support-search-box .input{padding-left:2.35rem}.support-search-hint{margin-top:.45rem;color:var(--gray-500);font-size:.68rem;line-height:1.45}.support-search-results{margin-top:.75rem;border:var(--border-light);background:var(--white);max-height:510px;overflow:auto}.support-search-result{display:grid;width:100%;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.7rem;border:0;border-bottom:var(--border-light);background:transparent;text-align:left;cursor:pointer}.support-search-result:last-child{border-bottom:0}.support-search-result:hover,.support-search-result:focus-visible{background:#F7FEE7;outline:0;box-shadow:inset 3px 0 var(--lime-dark)}.support-result-avatar{width:36px;height:36px}.support-search-result>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.support-search-result strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 .78rem var(--font-display)}.support-search-result small{margin-top:.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-500);font-size:.65rem}.support-search-result i{grid-column:3;font-style:normal;color:#991B1B;font:700 .58rem var(--font-display);text-transform:uppercase}.support-search-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:90px;color:var(--gray-500);font-size:.75rem}.support-empty-state{display:flex;min-height:130px;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:1rem;text-align:center;color:var(--gray-500)}.support-empty-state strong{color:var(--black);font:700 .82rem var(--font-display)}.support-empty-state span{max-width:310px;font-size:.7rem;line-height:1.5}.support-empty-large{min-height:420px}.support-empty-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:.35rem;border-radius:50%;background:var(--gray-100);color:var(--gray-400);font:700 1rem var(--font-display)}
.support-role-chip{display:inline-flex;padding:.25rem .45rem;border:1px solid;font:700 .57rem var(--font-display);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.support-role-chip.is-residential{background:#EFF6FF;border-color:#93C5FD;color:#1E40AF}.support-role-chip.is-business{background:#F5F3FF;border-color:#C4B5FD;color:#5B21B6}.support-role-chip.is-contractor{background:#F7FEE7;border-color:#A3E635;color:#3F6212}
.support-selected-account{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:.7rem;padding:.75rem;margin-bottom:1rem;border:var(--border-light);background:var(--gray-100)}.support-selected-avatar{width:42px;height:42px;font-size:.9rem}.support-selected-account>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.support-selected-account>div:nth-child(2) strong{font:700 .85rem var(--font-display)}.support-selected-account>div:nth-child(2) span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-500);font-size:.68rem}
.support-form-section{padding:1rem 0;border-top:var(--border-light)}.support-form-section:first-of-type{border-top:0;padding-top:0}.support-form-section>div:first-child{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:.7rem}.support-form-section>div:first-child>div{min-width:0}.support-form-section>div:first-child strong{font:700 .78rem var(--font-display)}.support-form-section>div:first-child p{margin-top:.12rem;color:var(--gray-500);font-size:.68rem;line-height:1.45}.support-section-number{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:var(--black);color:var(--lime);font:700 .6rem var(--font-display)}.support-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.support-method-card,.support-factor-card{position:relative;display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:.22rem;padding:.75rem;border:1px solid var(--gray-300);background:var(--white);text-align:left;cursor:pointer}.support-method-card:hover:not(:disabled),.support-factor-card:hover:not(:disabled){border-color:var(--lime-dark);background:#F7FEE7}.support-method-card.is-selected,.support-factor-card.is-selected{border-color:var(--black);background:#F7FEE7;box-shadow:inset 3px 0 var(--lime-dark)}.support-method-card:disabled,.support-factor-card:disabled{background:var(--gray-100);cursor:not-allowed;opacity:.55}.support-method-card strong,.support-factor-card strong{padding-right:1.2rem;font:700 .72rem var(--font-display)}.support-method-card small,.support-factor-card small{color:var(--gray-500);font-size:.62rem;line-height:1.4}.support-method-check,.support-factor-check{position:absolute;top:.55rem;right:.55rem;display:grid;place-items:center;width:17px;height:17px;border:1px solid var(--gray-300);border-radius:50%;color:transparent;font:700 .55rem var(--font-display)}.support-method-card.is-selected .support-method-check,.support-factor-card.is-selected .support-factor-check{border-color:var(--lime-dark);background:var(--lime);color:var(--black)}.support-factor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.support-form-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:var(--border-light)}.support-form-footer>span{max-width:360px;color:var(--gray-500);font-size:.67rem;line-height:1.5}.support-form-footer>span strong{color:var(--black)}
.support-verification-summary{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem;margin-bottom:1rem;border:1px solid #A3E635;background:#F7FEE7}.support-verification-shield{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:var(--lime);color:var(--black);font:700 .8rem var(--font-display)}.support-verification-summary strong{font:700 .78rem var(--font-display)}.support-verification-summary p{margin-top:.2rem;color:#4D7C0F;font-size:.66rem;line-height:1.45}.support-code-section{margin-bottom:1rem;padding:1rem;border:var(--border);background:var(--gray-100)}.support-code-section .input{width:min(240px,100%);margin-top:.4rem;text-align:center;font:700 1.35rem var(--font-display);letter-spacing:.3em;font-variant-numeric:tabular-nums}.support-answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.support-answer-grid label{display:flex;flex-direction:column;gap:.35rem}.support-answer-grid label>span:not(.field-label){color:var(--gray-500);font-size:.62rem;line-height:1.4}.support-verify-result{margin-bottom:.65rem}
.support-lock { min-height:60vh; display:flex; align-items:center; justify-content:center; padding:2rem; }
.support-lock-card { width:min(560px,100%); background:var(--white); border:var(--border); border-top:4px solid var(--lime); border-radius:var(--radius); padding:1.5rem; }
.support-tabbar { display:flex; gap:0.35rem; overflow-x:auto; padding-bottom:0.65rem; margin-bottom:0.85rem; border-bottom:var(--border-light); }
.support-tab { border:0; background:transparent; padding:0.45rem 0.7rem; font:700 0.68rem var(--font-display); letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; white-space:nowrap; color:var(--gray-500); }
.support-tab.active { background:var(--black); color:var(--white); border-radius:20px; }
.support-section { display:none; }
.support-section.active { display:block; }
.support-kv { display:grid; grid-template-columns:160px minmax(0,1fr); gap:0.55rem 0.9rem; font-size:0.8125rem; }
.support-kv dt { color:var(--gray-500); }
.support-kv dd { margin:0; color:var(--black); word-break:break-word; }
@media (max-width:900px) {
  .support-workspace-overlay,.support-workspace-panel { left:0; }
  .support-kv { grid-template-columns:1fr; gap:0.15rem; }
  .support-kv dd { margin-bottom:0.55rem; }
  .support-auth-layout { grid-template-columns:1fr; }
  .support-saved-row { grid-template-columns:34px minmax(0,1fr) auto; }
  .support-saved-row>.support-role-chip { display:none; }
  .support-saved-row>.btn { grid-column:2/-1; justify-self:start; }
}
@media (max-width:600px) {
  .support-security-overview { flex-direction:column; }
  .support-flow-step { padding:.65rem .3rem; }
  .support-flow-step strong { font-size:.58rem; }
  .support-flow-step span { width:20px; height:20px; }
  .support-saved-card summary>div { align-items:flex-start; flex-direction:column; gap:.2rem; }
  .support-method-grid,.support-factor-grid,.support-answer-grid { grid-template-columns:1fr; }
  .support-selected-account { grid-template-columns:42px minmax(0,1fr); }
  .support-selected-account>.support-role-chip,.support-selected-account>.badge { grid-column:2; justify-self:start; }
  .support-form-footer { align-items:stretch; flex-direction:column; }
  .support-form-footer .btn { width:100%; justify-content:center; }
}

.detail-section-title {
  font-family: var(--font-display);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gray-600);
  padding-bottom: 0.5rem;
  border-bottom: var(--border-light);
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 0.75rem;
}

.detail-field { display: flex; flex-direction: column; gap: 0.2rem; }

.detail-field-label {
  font-family: var(--font-display);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray-400);
}

.detail-field-value {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--black);
}

/* --------------------------------------------------------------------------
   Status timeline
   -------------------------------------------------------------------------- */
.timeline {
  display: flex;
  flex-direction: column;
  position: relative;
  padding-left: 0.125rem;
}
.timeline::before {
  content: '';
  position: absolute;
  left: 0.6875rem;
  top: 1.1rem;
  bottom: 1.1rem;
  width: 1px;
  background: var(--gray-200);
  z-index: 0;
}
.timeline-item {
  display: flex;
  gap: 1rem;
  padding: 0.45rem 0;
  position: relative;
  z-index: 1;
}
.timeline-dot {
  width: 1.375rem;
  height: 1.375rem;
  border-radius: 50%;
  border: 2px solid var(--gray-200);
  background: var(--white);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.timeline-dot.done { background: var(--lime); border-color: var(--lime-dark); }
.timeline-dot.active { background: var(--black); border-color: var(--black); }
.timeline-dot.done svg, .timeline-dot.active svg { display: block; }
.timeline-content { padding-top: 0.1rem; }
.timeline-label { font-family: var(--font-display); font-size: 0.8125rem; font-weight: 600; color: var(--black); }
.timeline-date { font-size: 0.75rem; color: var(--gray-400); margin-top: 0.1rem; }

/* --------------------------------------------------------------------------
   Map containers
   -------------------------------------------------------------------------- */
.map-wrap { border: var(--border); border-radius: var(--radius); overflow: hidden; isolation: isolate; }
.map-container { position:relative; width: 100%; height: 260px; background: var(--gray-200); isolation: isolate; }
.map-overview-container { position:relative; width: 100%; height: 430px; background: var(--gray-200); isolation: isolate; }
.map-address-overlay { position:absolute; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:1.25rem; background:rgba(12,12,12,.72); backdrop-filter:blur(3px); }
.map-address-overlay-card { width:min(100%,430px); padding:1.35rem; border:var(--border); background:var(--white); text-align:center; box-shadow:0 12px 35px rgba(0,0,0,.28); }
.map-address-overlay-icon { display:flex; align-items:center; justify-content:center; width:42px; height:42px; margin:0 auto .7rem; border:var(--border); border-radius:50%; background:var(--black); color:var(--lime); font:700 1.25rem var(--font-display); }
.map-address-overlay-card strong { display:block; font:700 1.05rem var(--font-display); }
.map-address-overlay-card p { margin:.4rem auto .9rem; max-width:340px; color:var(--gray-600); font-size:.8rem; line-height:1.5; }
.contractor-page-lock { min-height:clamp(430px,65vh,720px); display:flex; align-items:center; justify-content:center; padding:1.25rem; border:var(--border); background:rgba(12,12,12,.72); backdrop-filter:blur(3px); }
.contractor-page-lock-card { width:min(100%,500px); }
.contractor-page-lock-card p { max-width:410px; }
.contractor-page-lock-actions { display:flex; justify-content:center; gap:.55rem; flex-wrap:wrap; }

/* --------------------------------------------------------------------------
   Contractor job planner
   -------------------------------------------------------------------------- */
.planner-header { align-items:flex-end; }
.planner-subtitle { max-width:620px; margin-top:.35rem; color:var(--gray-600); font-size:.875rem; }
.planner-header-actions, .planner-live-controls { display:flex; gap:.5rem; flex-wrap:wrap; }
.planner-route-selector { display:flex; flex-direction:column; gap:.2rem; min-width:220px; }
.planner-route-selector span { font-family:var(--font-display); font-size:.65rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gray-600); }
.planner-route-selector .input { height:38px; padding:.45rem 2rem .45rem .7rem; font-size:.78rem; background-color:var(--white); }
.planner-header-actions .btn:disabled, .planner-live-controls .btn:disabled, .planner-replacement .btn:disabled { opacity:.42; cursor:not-allowed; pointer-events:none; background:var(--gray-100); border-color:var(--gray-300); color:var(--gray-500); }
.planner-alert { display:flex; gap:.75rem; align-items:flex-start; margin-bottom:1.25rem; padding:.8rem 1rem; background:var(--lime); border:var(--border); border-radius:var(--radius); font-size:.8125rem; }
.planner-alert-icon { display:flex; align-items:center; justify-content:center; width:1.25rem; height:1.25rem; border-radius:50%; background:var(--black); color:var(--lime); font-family:var(--font-display); font-weight:700; flex-shrink:0; }
.planner-alert strong { display:block; font-family:var(--font-display); font-size:.8rem; margin-bottom:.1rem; }
.planner-stats { grid-template-columns:repeat(3,1fr); }
.planner-layout { display:grid; grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr); gap:1rem; align-items:start; }
.planner-route-panel { min-width:0; }
.planner-map-panel { min-width:0; position:sticky; top:1rem; }
.planner-section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:.7rem; }
.planner-section-note { color:var(--gray-500); font-size:.75rem; margin-top:.15rem; }
.planner-stop { display:flex; gap:.65rem; padding:.68rem .75rem; background:var(--white); border:var(--border); border-bottom:0; }
.planner-stop[draggable="true"] { cursor:grab; }
.planner-stop.is-dragging { opacity:.55; cursor:grabbing; }
.planner-stop.is-attention { background:#FFF7ED; }
.planner-stop:first-child { border-radius:var(--radius) var(--radius) 0 0; }
.planner-stop:last-child { border-bottom:var(--border); border-radius:0 0 var(--radius) var(--radius); }
.planner-stop-number { width:1.45rem; height:1.45rem; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--black); color:var(--lime); font-family:var(--font-display); font-size:.68rem; font-weight:700; flex-shrink:0; }
.planner-stop-main { min-width:0; flex:1; }
.planner-stop-top { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.planner-source { font-size:.65rem; color:var(--gray-500); text-transform:uppercase; letter-spacing:.06em; font-family:var(--font-display); }
.planner-stop-status { font-size:.65rem; color:var(--gray-600); text-transform:uppercase; letter-spacing:.06em; font-family:var(--font-display); }
.planner-stop-time { margin-left:auto; font-family:var(--font-display); font-weight:700; font-size:.8rem; }
.planner-stop h3 { font-family:var(--font-display); font-size:.88rem; font-weight:600; margin-top:.18rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.planner-stop p { color:var(--gray-600); font-size:.7rem; line-height:1.35; }
.planner-stop-actions { display:flex; gap:.28rem; margin-top:.42rem; flex-wrap:wrap; }
.planner-stop-actions .btn { font-size:.63rem; padding:.24rem .42rem; }
.planner-map-wrap { background:var(--white); }
.planner-map-toolbar { display:flex; justify-content:space-between; align-items:center; padding:.7rem .85rem; border-bottom:var(--border); }
.planner-map-toolbar > span:last-child { font-size:.7rem; color:var(--gray-600); }
.planner-map-wrap .map-overview-container { height:clamp(560px, calc(100vh - 250px), 760px); }
.planner-map-empty-overlay { position:absolute; inset:0; z-index:500; display:flex; align-items:center; justify-content:center; padding:1rem; background:rgba(240,240,236,.78); pointer-events:none; }
.planner-map-empty-overlay > div { display:flex; flex-direction:column; gap:.25rem; max-width:280px; padding:1rem 1.25rem; background:var(--white); border:var(--border); border-radius:var(--radius); box-shadow:var(--shadow); text-align:center; }
.planner-map-empty-overlay strong { font-family:var(--font-display); font-size:.95rem; }
.planner-map-empty-overlay span { color:var(--gray-600); font-size:.75rem; line-height:1.4; }
.planner-legend { display:flex; gap:1rem; padding:.55rem 0; color:var(--gray-600); font-size:.7rem; }
.legend-dot { display:inline-block; width:.5rem; height:.5rem; border-radius:50%; margin-right:.25rem; background:var(--black); }
.legend-dot.high { background:var(--lime-dark); border:1px solid var(--black); }.legend-dot.current { background:#60A5FA; }
.planner-replacement { display:flex; justify-content:space-between; gap:.75rem; align-items:center; margin-top:.75rem; padding:.65rem .75rem; background:var(--gray-100); border:var(--border-light); }
.planner-replacement.is-disabled > div { opacity:.5; }
.planner-replacement p { font-size:.75rem; color:var(--gray-600); margin-top:.15rem; }
.planner-empty { display:flex; flex-direction:column; gap:.2rem; padding:2rem 1rem; text-align:center; background:var(--white); border:var(--border); color:var(--gray-600); font-size:.8rem; }
.planner-empty strong { color:var(--black); font-family:var(--font-display); font-size:.95rem; }
.planner-available { margin-top:1rem; }
.planner-candidate, .planner-candidate-empty { display:flex; align-items:center; justify-content:space-between; gap:.65rem; padding:.62rem .75rem; background:var(--white); border:var(--border-light); border-top:0; font-size:.72rem; }
.planner-candidate:first-of-type, .planner-candidate-empty { border-top:var(--border-light); margin-top:.55rem; }
.planner-candidate strong { display:block; font-family:var(--font-display); font-size:.82rem; }
.planner-candidate span { display:block; color:var(--gray-600); margin-top:.1rem; }
.planner-candidate-empty { color:var(--gray-500); justify-content:center; }
.planner-settings { margin-top:1rem; }
.planner-settings-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; align-items:end; }
.planner-settings-grid .btn { justify-self:start; }
.planner-vehicle-modal { max-width:620px; box-shadow:8px 8px 0 var(--black); }
.planner-route-note { display:flex; flex-direction:column; gap:.18rem; padding:.68rem .8rem; background:#FFF7ED; border:1px solid #FED7AA; border-radius:var(--radius); color:#7C2D12; font-size:.74rem; line-height:1.4; }
.planner-route-note strong { font-family:var(--font-display); color:#9A3412; font-size:.8rem; }
.planner-route-table-card{background:var(--white);overflow:hidden}
.planner-table-toolbar{display:flex;align-items:center;gap:.55rem;padding:.75rem 1rem;border-bottom:var(--border-light);background:var(--gray-100);flex-wrap:wrap}
.planner-table-toolbar #planner-add-btn{margin-left:auto}
.planner-table-scroll{max-height:620px;overflow:auto;scrollbar-gutter:stable}.planner-route-table{min-width:1280px}.planner-table-scroll thead{position:sticky;top:0;z-index:3}.planner-route-table th,.planner-route-table td{border-bottom:var(--border-light)}
.planner-route-row[draggable="true"]{cursor:grab}.planner-route-row.is-dragging{opacity:.55}.planner-route-row.is-attention td{background:#FFF7ED}.planner-route-row:hover td,.planner-candidate-row:hover td{background:var(--gray-100)}
.planner-row-actions{display:flex;gap:.3rem;align-items:center;white-space:nowrap}.planner-available-rows:not([hidden]) tr:first-child td{border-top:2px solid var(--lime-dark)}.planner-candidate-row td{background:#F7FEE7}
.planner-table-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-top:var(--border-light);font-size:.75rem;color:var(--gray-500)}
.planner-map-page .map-overview-container{height:clamp(520px,65vh,780px)}
.planner-current-job-card{margin:.75rem 0 1rem;background:var(--white)}.planner-current-job-grid{display:grid;grid-template-columns:2fr 1.5fr repeat(4,1fr);gap:1rem;margin-bottom:1rem}.planner-current-job-grid>div{display:flex;flex-direction:column;gap:.25rem;min-width:0}.planner-current-job-grid strong{font:700 .85rem var(--font-display);text-transform:capitalize}.planner-current-job-grid span:not(.field-label){font-size:.72rem;color:var(--gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planner-time-actions, .planner-reason-actions { display:flex; flex-wrap:wrap; gap:.45rem; }
.planner-reason-chip { border:var(--border); border-radius:999px; background:var(--white); color:var(--black); padding:.45rem .7rem; font-family:var(--font-display); font-size:.72rem; font-weight:700; letter-spacing:-.01em; cursor:pointer; transition:background var(--transition), color var(--transition), border-color var(--transition); }
.planner-reason-chip.active, .planner-reason-chip:hover { background:var(--black); color:var(--lime); border-color:var(--black); }

@media (max-width:1180px) { .planner-layout { grid-template-columns:minmax(300px,.85fr) minmax(430px,1.15fr); } .planner-map-wrap .map-overview-container { height:clamp(500px, calc(100vh - 260px), 680px); } }
@media (max-width:900px) { .planner-layout { grid-template-columns:1fr; } .planner-map-panel { position:static; order:-1; } .planner-map-wrap .map-overview-container { height:58vh; min-height:430px; } }
@media (max-width:600px) { .planner-header, .planner-section-head { align-items:flex-start; flex-direction:column; } .planner-stats { grid-template-columns:repeat(2,1fr); } .planner-settings-grid { grid-template-columns:1fr; } .planner-replacement { align-items:flex-start; flex-direction:column; } .planner-map-wrap .map-overview-container { height:62vh; min-height:360px; } }
@media(max-width:900px){.planner-current-job-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.planner-table-toolbar>*{width:100%;margin-left:0!important}.planner-table-footer{align-items:flex-start;flex-direction:column}.planner-current-job-grid{grid-template-columns:1fr}}

/* --------------------------------------------------------------------------
   Photo grid
   -------------------------------------------------------------------------- */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
  gap: 0.5rem;
}
.photo-thumb {
  aspect-ratio: 1;
  border: var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--gray-200);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color var(--transition);
  font-size: 0.7rem;
  color: var(--gray-400);
  text-align: center;
  flex-direction: column;
  gap: 0.2rem;
}
.photo-thumb:hover { border-color: var(--black); }

/* --------------------------------------------------------------------------
   Live collector tracker banner
   -------------------------------------------------------------------------- */
.tracker-banner {
  background: var(--lime);
  border: var(--border);
  border-radius: var(--radius);
  padding: 0.875rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.tracker-dot {
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  background: var(--black);
  flex-shrink: 0;
  animation: trackerPulse 1.5s ease infinite;
}
@keyframes trackerPulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.35; transform: scale(1.5); }
}

/* --------------------------------------------------------------------------
   Bid rows inside detail panel
   -------------------------------------------------------------------------- */
.bid-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.875rem 0;
  border-bottom: var(--border-light);
}
.bid-row:last-child { border-bottom: none; padding-bottom: 0; }

/* --------------------------------------------------------------------------
   Contractor accepted job highlight
   -------------------------------------------------------------------------- */
.accepted-job-card {
  border: 2px solid var(--lime);
  border-radius: var(--radius);
  background: var(--gray-100);
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   Google Sign-In & auth helpers
   -------------------------------------------------------------------------- */
.btn-google {
  background: var(--white);
  color: var(--black);
  border: var(--border);
  justify-content: center;
  width: 100%;
  gap: 0.6rem;
}
.btn-google:hover { background: var(--gray-100); }

.auth-divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--gray-400);
  font-size: 0.75rem;
  margin: 0.5rem 0;
}
.auth-divider::before, .auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--gray-200);
}

.test-creds-hint {
  background: var(--gray-100);
  border: var(--border-light);
  border-radius: var(--radius);
  padding: 0.75rem 1rem;
  font-size: 0.75rem;
  color: var(--gray-600);
  line-height: 1.6;
}
.test-creds-hint strong { color: var(--black); font-weight: 600; }
.test-creds-hint code {
  font-family: monospace;
  background: var(--gray-200);
  padding: 0.1em 0.35em;
  border-radius: 2px;
  font-size: 0.8125rem;
  color: var(--black);
}

/* --------------------------------------------------------------------------
   Mobile sidebar toggle (nav)
   -------------------------------------------------------------------------- */
.sidebar-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: var(--border);
  border-radius: var(--radius);
  background: none;
  cursor: pointer;
  color: var(--black);
}
@media (max-width: 768px) {
  .sidebar-toggle { display: flex; }
}

/* --------------------------------------------------------------------------
   Nav user menu / dropdown
   -------------------------------------------------------------------------- */
.nav-user-menu { position: relative; }

.nav-user-btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3rem 0.625rem 0.3rem 0.3rem;
  border: var(--border);
  border-radius: var(--radius);
  background: var(--white);
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--black);
  transition: background var(--transition), border-color var(--transition);
  white-space: nowrap;
  line-height: 1;
}
.nav-user-btn:hover { background: var(--gray-100); }
.nav-user-btn[aria-expanded="true"] { background: var(--black); color: var(--white); }
.nav-user-btn[aria-expanded="true"] .nav-user-chevron { transform: rotate(180deg); }

.nav-user-avatar {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--lime);
  color: var(--black);
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nav-user-chevron { transition: transform var(--transition); flex-shrink: 0; }

.nav-sub-badge {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 0.2em 0.55em;
  border-radius: 20px;
  line-height: 1;
  flex-shrink: 0;
}
.nav-sub-badge-free     { background: var(--gray-200); color: var(--gray-600); }
.nav-sub-badge-standard { background: var(--black);    color: var(--white); }
.nav-sub-badge-premium  { background: var(--lime);     color: var(--black); }
.nav-user-btn[aria-expanded="true"] .nav-sub-badge-free     { background: rgba(255,255,255,0.15); color: rgba(255,255,255,0.7); }
.nav-user-btn[aria-expanded="true"] .nav-sub-badge-standard { background: rgba(255,255,255,0.9);  color: var(--black); }
.nav-user-btn[aria-expanded="true"] .nav-sub-badge-premium  { background: var(--lime);            color: var(--black); }

.nav-user-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 220px;
  background: var(--white);
  border: var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  z-index: 500;
  box-shadow: 6px 6px 0 var(--gray-400);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity 0.14s, transform 0.14s;
}
.nav-user-dropdown.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.nav-user-dd-header {
  padding: 0.85rem 1rem;
  border-bottom: var(--border);
}
.nav-user-dd-name {
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--black);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nav-user-dd-email {
  font-size: 0.6875rem;
  color: var(--gray-600);
  margin-top: 0.1rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nav-user-dd-item {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  width: 100%;
  padding: 0.7rem 1rem;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--black);
  text-align: left;
  transition: background 0.1s, color 0.1s;
}
.nav-user-dd-item:hover { background: var(--lime); color: var(--black); }
.nav-user-dd-item svg { flex-shrink: 0; }

.nav-user-dd-divider { height: 1px; background: var(--gray-200); margin: 0.2rem 0; }

.nav-user-dd-danger { color: #991B1B; }
.nav-user-dd-danger:hover { background: #FEE2E2; color: #7F1D1D; }

/* --------------------------------------------------------------------------
   Account type badge (sidebar)
   -------------------------------------------------------------------------- */
.acct-type-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  font-family: var(--font-display);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.2em 0.55em;
  border-radius: 20px;
  margin-top: 0.35rem;
}
.acct-type-chip.residential { background: #E8FFB3; color: #3A6000; }
.acct-type-chip.business    { background: #DBEAFE; color: #1E3A8A; }
.acct-type-chip.contractor  { background: var(--lime); color: var(--black); }

/* --------------------------------------------------------------------------
   Post Job form
   -------------------------------------------------------------------------- */
.post-job-section { display: flex; flex-direction: column; }

.post-job-step {
  display: flex;
  gap: 1.25rem;
  padding: 1.75rem 1.5rem;
  border-bottom: var(--border);
}
.post-job-step:last-child { border-bottom: none; }

.post-job-step .step-num {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--black);
  color: var(--lime);
  font-family: var(--font-display);
  font-size: 0.875rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 0.15rem;
}
.post-job-step .step-num.optional { background: var(--gray-200); color: var(--gray-600); }

.step-body { flex: 1; min-width: 0; }

.step-title {
  font-family: var(--font-display);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin-bottom: 0.2rem;
  color: var(--black);
}
.step-subtitle { font-size: 0.75rem; color: var(--gray-600); margin-bottom: 1rem; line-height: 1.5; }

/* Category card grid (compact, post-job) */
.cat-grid-sm {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 0.5rem;
}
.cat-card-sm {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  padding: 0.75rem;
  border: var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  background: var(--white);
  transition: all var(--transition);
  user-select: none;
}
.cat-card-sm:hover { background: var(--gray-100); border-color: var(--black); }
.cat-card-sm.selected { background: var(--black); border-color: var(--black); color: var(--white); }
.cat-card-sm .cat-icon { color: var(--gray-600); transition: color var(--transition); }
.cat-card-sm.selected .cat-icon { color: var(--lime); }
.cat-card-sm .cat-label-sm {
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--black);
  transition: color var(--transition);
}
.cat-card-sm.selected .cat-label-sm { color: var(--white); }
.cat-card-sm.selection-locked::after {
  content: 'Items selected';
  color: var(--lime);
  font: 700 0.58rem/1 var(--font-display);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Photo drop zone */
.photo-drop-zone {
  border: 2px dashed var(--gray-200);
  border-radius: var(--radius);
  padding: 2rem 1rem;
  text-align: center;
  cursor: pointer;
  transition: all var(--transition);
  background: var(--white);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
}
.photo-drop-zone:hover,
.photo-drop-zone.drag-over {
  border-color: var(--black);
  background: var(--gray-100);
}
.photo-drop-zone svg { color: var(--gray-400); }

.photo-preview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.photo-preview-item {
  aspect-ratio: 1;
  border: var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  position: relative;
}
.photo-preview-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-preview-remove {
  position: absolute;
  top: 0.2rem;
  right: 0.2rem;
  width: 1.375rem;
  height: 1.375rem;
  background: var(--black);
  color: var(--white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 0.625rem;
  border: none;
  line-height: 1;
  font-weight: 700;
}

/* GPS button & display */
.btn-gps {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.55em 1em;
  border: var(--border);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--black);
  cursor: pointer;
  transition: all var(--transition);
  white-space: nowrap;
}
.btn-gps:hover { background: var(--gray-100); }
.btn-gps:disabled { opacity: 0.6; cursor: not-allowed; }
.btn-gps.captured { background: var(--lime); border-color: var(--lime-dark); }

.gps-display {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4em 0.75em;
  background: var(--lime);
  border: 1px solid var(--lime-dark);
  border-radius: var(--radius);
  font-family: monospace;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--black);
}

/* Toggle switch */
.toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.875rem 1rem;
  background: var(--white);
  border: var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  transition: border-color var(--transition);
}
.toggle-row:hover { border-color: var(--black); }

.toggle-switch {
  width: 2.75rem;
  height: 1.5rem;
  border-radius: 20px;
  background: var(--gray-200);
  border: var(--border);
  position: relative;
  flex-shrink: 0;
  transition: background var(--transition), border-color var(--transition);
}
.toggle-switch::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 50%;
  background: var(--white);
  border: 1px solid var(--gray-400);
  transition: transform 0.2s, border-color 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.toggle-switch.on { background: var(--lime); border-color: var(--lime-dark); }
.toggle-switch.on::after { transform: translateX(1.25rem); border-color: var(--lime-dark); }

/* Review summary card */
.review-card {
  background: var(--black);
  color: var(--white);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.review-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0.45rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  gap: 1rem;
  font-size: 0.8125rem;
}
.review-row:last-child { border-bottom: none; padding-bottom: 0; }
.review-label { color: rgba(255,255,255,0.45); flex-shrink: 0; }
.review-value { font-weight: 500; text-align: right; }

/* Urgency badge colours */
.urgency-flexible { color: var(--gray-600); }
.urgency-this_week { color: #7A5300; }
.urgency-urgent { color: #CC0000; font-weight: 600; }

@media (max-width: 640px) {
  .post-job-step { flex-direction: column; gap: 0.75rem; padding: 1.25rem 1rem; }
  .cat-grid-sm { grid-template-columns: repeat(2, 1fr); }

  /* Mobile quick-post: capture the essentials first; the full editor remains
     unchanged on desktop and when editing an existing job. */
  .mobile-job-intro { display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;padding:.7rem .8rem;background:var(--black);color:var(--white);border-left:4px solid var(--lime); }
  .mobile-job-intro strong { color:var(--lime);font:700 .72rem var(--font-display);letter-spacing:.08em;text-transform:uppercase; }
  .mobile-job-intro span { font-size:.7rem;color:var(--gray-300); }
  .post-job-mobile-quick > .card { border:0;margin-left:-.75rem;margin-right:-.75rem;margin-bottom:.75rem!important; }
  .post-job-mobile-quick .post-job-section { gap:.55rem;background:var(--gray-100); }
  .post-job-mobile-quick .post-job-step { padding:1rem;background:var(--white);border:var(--border);gap:.45rem; }
  .post-job-mobile-quick .post-job-step .step-num { display:none; }
  .post-job-mobile-quick .step-title { font-size:1rem; }
  .post-job-mobile-quick .step-subtitle { margin-bottom:.7rem;line-height:1.35; }
  .post-job-mobile-quick .mobile-job-advanced,
  .post-job-mobile-quick .pj-title-field,
  .post-job-mobile-quick .pj-review-section,
  .post-job-mobile-quick .pj-volume-field { display:none!important; }
  .post-job-mobile-quick .pj-step-category { order:1; }
  .post-job-mobile-quick .pj-step-description { order:2; }
  .post-job-mobile-quick .pj-step-photos { order:3; }
  .post-job-mobile-quick .pj-step-location { order:4; }
  .post-job-mobile-quick .pj-step-timing { order:5; }
  .post-job-mobile-quick .cat-grid-sm { display:grid;grid-auto-flow:column;grid-auto-columns:118px;grid-template-columns:none;overflow-x:auto;gap:.45rem;padding:.1rem .05rem .55rem;scroll-snap-type:x mandatory;scrollbar-width:thin; }
  .post-job-mobile-quick .cat-card-sm { min-height:84px;padding:.65rem;scroll-snap-align:start; }
  .post-job-mobile-quick #pj-desc { min-height:105px;max-height:180px; }
  .post-job-mobile-quick .photo-drop-zone { min-height:112px;padding:1rem;border-color:var(--gray-400);background:#FAFAF7; }
  .post-job-mobile-quick .photo-drop-zone svg { color:var(--lime-dark); }
  .post-job-mobile-quick .photo-preview-grid { grid-template-columns:repeat(4,1fr); }
  .post-job-mobile-quick .pj-location-fields { grid-template-columns:1fr!important; }
  .post-job-mobile-quick .pj-timing-grid { grid-template-columns:1fr 1fr!important;gap:.55rem!important; }
  .mobile-volume-options { display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;margin-bottom:.8rem; }
  .mobile-volume-options button { min-width:0;padding:.65rem .2rem;border:var(--border-light);background:var(--white);color:var(--black);cursor:pointer; }
  .mobile-volume-options button.selected { border-color:var(--black);background:var(--lime);box-shadow:inset 0 0 0 1px var(--black); }
  .mobile-volume-options strong,.mobile-volume-options span { display:block; }
  .mobile-volume-options strong { font:700 .68rem var(--font-display); }
  .mobile-volume-options span { margin-top:.15rem;font-size:.58rem;color:var(--gray-600); }
  .post-job-mobile-quick .pj-submit-area { position:sticky;z-index:25;bottom:0;margin:0 -.75rem;padding:.7rem .75rem calc(.7rem + env(safe-area-inset-bottom));background:rgba(250,250,248,.96);border-top:var(--border);box-shadow:0 -8px 18px rgba(12,12,12,.08);backdrop-filter:blur(8px); }
  .post-job-mobile-quick .pj-submit-actions { display:grid!important;grid-template-columns:1fr auto!important;gap:.5rem!important; }
  .post-job-mobile-quick .pj-submit-actions #pj-submit { grid-column:1/-1;width:100%;justify-content:center;min-height:48px; }
  .post-job-mobile-quick .pj-submit-actions #pj-draft { font-size:.68rem; }
  .post-job-mobile-quick .pj-submit-note { display:none; }
}

/* Self-contained schematic map used when the local service has no Leaflet/tiles. */
.offline-map { position:relative; width:100%; height:100%; min-height:180px; overflow:hidden; background:#ECECE6; }
.offline-map > svg { position:absolute; inset:0; width:100%; height:100%; }
.offline-map-grid { fill:none; stroke:#D7D7CF; stroke-width:.35; }
.offline-map-route { fill:none; stroke:#0C0C0C; stroke-width:1.3; stroke-dasharray:2 1; vector-effect:non-scaling-stroke; }
.offline-map-pin { position:absolute; transform:translate(-50%,-50%); width:32px; height:32px; border:2px solid #0C0C0C; border-radius:50%; display:flex; align-items:center; justify-content:center; font:700 11px/1 var(--font-display); cursor:pointer; z-index:2; }
.offline-map-label { position:absolute; right:.5rem; bottom:.4rem; padding:.15rem .4rem; background:rgba(250,250,248,.88); color:var(--gray-600); font-size:.65rem; z-index:3; }

/* Dependency-free geographic map. OSM tiles sit over a visible offline UK
   basemap, so a blocked tile host never leaves an empty rectangle. */
.service-map { position:relative; width:100%; height:100%; min-height:180px; overflow:hidden; background:#DDEBF0; isolation:isolate; }
.service-map-offline { position:absolute; inset:0; overflow:hidden; background:linear-gradient(145deg,#DDEBF0,#C9E0E8); }
.service-map-offline::before { content:""; position:absolute; left:39%; top:8%; width:24%; height:82%; background:#D8DFC5; border:2px solid #AEB99B; clip-path:polygon(48% 0,62% 7%,57% 17%,69% 25%,61% 34%,73% 44%,63% 52%,70% 63%,56% 72%,50% 88%,34% 100%,27% 88%,34% 76%,24% 65%,34% 55%,25% 46%,36% 35%,31% 24%,42% 15%); transform:rotate(-8deg); }
.service-map-offline::after { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(74,112,127,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(74,112,127,.1) 1px,transparent 1px); background-size:64px 64px; }
.service-map-offline span { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:rgba(49,73,48,.25); font:700 1.2rem var(--font-display); letter-spacing:.18em; }
.service-map-tiles,.service-map-markers,.service-map-routes { position:absolute; inset:0; }
.service-map-tile { position:absolute; width:256px; height:256px; max-width:none; user-select:none; -webkit-user-drag:none; }
.service-map-routes { z-index:2; width:100%; height:100%; pointer-events:none; }
.service-map-routes polyline { fill:none; stroke:#0C0C0C; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; opacity:.8; vector-effect:non-scaling-stroke; }
.service-map-routes .service-map-area { fill:#CAFF00; fill-opacity:.22; stroke:#0C0C0C; stroke-width:3; vector-effect:non-scaling-stroke; }
.service-map-markers { z-index:3; pointer-events:none; }
.service-map-pin { position:absolute; transform:translate(-50%,-50%); width:34px; height:34px; padding:0; border:2px solid; border-radius:50%; display:flex; align-items:center; justify-content:center; font:700 11px/1 var(--font-display); box-shadow:0 2px 8px rgba(0,0,0,.35); cursor:pointer; pointer-events:auto; }
.service-map-controls { position:absolute; z-index:4; top:.65rem; left:.65rem; display:flex; flex-direction:column; border:1px solid rgba(12,12,12,.5); border-radius:4px; overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.service-map-controls button { width:32px; height:32px; padding:0; border:0; border-bottom:1px solid var(--gray-300); background:var(--white); color:var(--black); font:600 1.2rem/1 var(--font-display); cursor:pointer; }
.service-map-controls button:last-child { border-bottom:0; }
.service-map-controls button:hover { background:var(--lime); }
.service-map-attribution { position:absolute; z-index:4; right:0; bottom:0; padding:.18rem .38rem; background:rgba(255,255,255,.88); color:#335; font-size:.62rem; text-decoration:none; }

.job-specific-items { margin-top:1.5rem; padding-top:.25rem; }
.waste-breakdown { display:flex; flex-direction:column; }
.waste-breakdown-item { display:flex; gap:.65rem; align-items:flex-start; padding:.7rem .75rem; background:var(--white); border:var(--border-light); margin-bottom:-1px; }
.waste-breakdown-item code { font-weight:700; white-space:nowrap; color:var(--black); }
.waste-breakdown-item > div { flex:1; min-width:0; }
.waste-breakdown-item strong { display:block; font:600 .8rem/1.35 var(--font-display); }
.waste-breakdown-item span:not(.badge) { display:block; margin-top:.15rem; color:var(--gray-500); font-size:.7rem; line-height:1.35; }
.waste-breakdown-empty { padding:.8rem; color:var(--gray-500); background:var(--white); border:var(--border-light); font-size:.8rem; }
.support-contact-card { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.15rem; margin-bottom:1rem; background:var(--black); color:var(--white); border-radius:var(--radius); }
.support-contact-card p { color:rgba(255,255,255,.65); font-size:.8rem; margin:.2rem 0 0; }

/* --------------------------------------------------------------------------
   Custom select / dropdown
   -------------------------------------------------------------------------- */
.custom-select { position: relative; flex-shrink: 0; }

.custom-select-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.625rem;
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  padding: calc(0.65em + 1.125px) 0.9em;
  border: var(--border);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--black);
  cursor: pointer;
  min-width: 168px;
  text-align: left;
  white-space: nowrap;
  transition: background var(--transition), border-color var(--transition), color var(--transition);
  line-height: 1.4;
}
.custom-select-trigger:hover { background: var(--gray-100); }
.custom-select-trigger.is-open { background: var(--black); color: var(--white); border-color: var(--black); }
.custom-select-trigger.is-open .cs-chevron { color: var(--lime); transform: rotate(180deg); }
.custom-select-trigger.has-value { border-color: var(--black); }

/* Compact controls used together in the Waste Notes filter toolbar. */
.wtn-toolbar-control { height: 31px; }
.custom-select-trigger.wtn-toolbar-control { padding-top: 0; padding-bottom: 0; }

/* My Jobs uses the same compact search/filter toolbar dimensions. */
.jobs-toolbar-control { height: 31px; }
.custom-select-trigger.jobs-toolbar-control { padding-top: 0; padding-bottom: 0; }
.invoice-select-box { width: 1.15rem; height: 1.15rem; margin-top: 0.15rem; accent-color: var(--lime-dark); cursor: pointer; flex-shrink: 0; }
.wtn-select-box { width: 1.3rem; height: 1.3rem; margin: 0.05rem 0 0; accent-color: var(--lime-dark); cursor: pointer; flex-shrink: 0; }
[data-invoice-export] { height: 31px; }
.payment-history-card,.payment-refund-card { overflow:hidden; background:var(--white); }
.payment-history-card-header { gap:1rem; }
.payment-history-help { margin-top:.3rem; color:var(--gray-500); font-size:.8rem; }
.payment-history-summary { color:var(--gray-500); font:600 .72rem var(--font-display); white-space:nowrap; }
.payment-history-toolbar { display:flex; align-items:center; gap:.65rem; padding:.75rem 1rem; border-bottom:var(--border-light); background:var(--gray-100); flex-wrap:wrap; }
.payment-history-search { position:relative; flex:1; min-width:220px; max-width:390px; }
.payment-history-search svg { position:absolute; left:.7rem; top:50%; transform:translateY(-50%); color:var(--gray-400); pointer-events:none; }
.payment-history-search .input { width:100%; padding:.55em .875em .55em 2.1rem; font:500 .8125rem var(--font-display); }
.payment-export-actions { display:flex; align-items:center; gap:.4rem; margin-left:auto; flex-wrap:wrap; }
.payment-history-table-wrap { max-height:620px; overflow:auto; scrollbar-gutter:stable; }
.payment-history-table-wrap thead { position:sticky; top:0; z-index:2; }
.payment-history-table,.payment-refund-table { min-width:980px; width:100%; }
.payment-history-table th,.payment-history-table td,.payment-refund-table th,.payment-refund-table td { border-bottom:var(--border-light); }
.payment-history-table td,.payment-refund-table td { padding-top:.85rem; padding-bottom:.85rem; }
.payment-history-table tbody tr { transition:background var(--transition); }
.payment-history-table tbody tr:hover,.payment-refund-table tbody tr:hover { background:#FAFAF7; }
.payment-row-select { width:1.15rem; height:1.15rem; accent-color:var(--lime-dark); cursor:pointer; }
.payment-date { display:flex; flex-direction:column; gap:.15rem; white-space:nowrap; }
.payment-date strong { color:var(--black); font:600 .76rem var(--font-display); }
.payment-date span { color:var(--gray-500); font-size:.68rem; }
.payment-kind { display:inline-flex; padding:.3rem .5rem; border:1px solid var(--gray-300); background:var(--gray-100); color:var(--black); font:600 .68rem var(--font-display); white-space:nowrap; }
.payment-status { display:inline-flex; min-width:72px; justify-content:center; padding:.35em .65em; border:1px solid currentColor; font:700 .625rem/1 var(--font-display); letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.payment-status.paid,.payment-status.approved,.payment-status.completed { background:#DCFCE7; color:#166534; }
.payment-status.pending,.payment-status.requested,.payment-status.contractor_approved { background:#FEF3C7; color:#92400E; }
.payment-status.failed,.payment-status.rejected,.payment-status.contractor_refused { background:#FEE2E2; color:#991B1B; }
.payment-status.refunded { background:#DBEAFE; color:#1E40AF; }
.payment-status.expired,.payment-status.cancelled { background:var(--gray-100); color:var(--gray-600); }
.payment-amount { color:var(--black); font:700 .9rem var(--font-display); white-space:nowrap; }
.payment-description { display:block; max-width:300px; color:var(--black); font-size:.76rem; line-height:1.4; }
.payment-plan { display:block; margin-top:.2rem; color:var(--gray-500); font-size:.65rem; text-transform:capitalize; }
.payment-reference { display:block; max-width:200px; padding:.22rem .38rem; overflow:hidden; border:1px solid var(--gray-200); background:var(--gray-100); color:var(--gray-600); font:600 .65rem ui-monospace,SFMono-Regular,Menlo,monospace; text-overflow:ellipsis; white-space:nowrap; }
.payment-job-reference { display:block; color:var(--gray-500); font:700 .65rem var(--font-display); letter-spacing:.05em; }
.payment-refund-actions { display:flex; align-items:center; gap:.4rem; white-space:nowrap; }
.payment-history-empty { display:flex; min-height:180px; padding:2.5rem; flex-direction:column; align-items:center; justify-content:center; gap:.3rem; color:var(--gray-500); text-align:center; }
.payment-history-empty strong { color:var(--black); font:700 .9rem var(--font-display); }
.payment-history-empty span { font-size:.75rem; }
.payment-refund-table td.payment-history-empty { display:table-cell; min-height:0; }
@media(max-width:720px){.payment-history-toolbar>*{width:100%;max-width:none}.payment-export-actions{margin-left:0}.payment-export-actions .btn{flex:1;justify-content:center}.payment-history-card-header{align-items:flex-start;flex-direction:column}.payment-history-table-wrap{max-height:none}}

.cs-label { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.cs-chevron {
  color: var(--gray-400);
  flex-shrink: 0;
  transition: transform var(--transition), color var(--transition);
}

.custom-select-dropdown {
  position: absolute;
  top: calc(100% + 3px);
  left: 0;
  min-width: 100%;
  width: max-content;
  max-width: 260px;
  background: var(--black);
  border: var(--border);
  border-radius: var(--radius);
  z-index: 60;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity 0.14s, transform 0.14s;
  box-shadow: 0 8px 24px rgba(0,0,0,0.22);
}
.custom-select-dropdown.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.cs-option {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.55em 0.9em;
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(255,255,255,0.65);
  cursor: pointer;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  transition: background 0.1s, color 0.1s;
  white-space: nowrap;
  user-select: none;
}
.cs-option:last-child { border-bottom: none; }
.cs-option:hover { background: rgba(202,255,0,0.1); color: var(--lime); }
.cs-option.is-selected { background: var(--lime); color: var(--black); font-weight: 700; }
.cs-option.is-selected:hover { background: var(--lime-dark); }

.cs-option svg { flex-shrink: 0; }

/* Administrator forms use the same accessible dropdown treatment as Browse
   Jobs and payment filters while retaining the native select for FormData. */
.admin-custom-select{width:100%;min-width:0;flex-shrink:1}
.admin-custom-select .custom-select-trigger{width:100%;min-width:0;min-height:42px;justify-content:space-between;text-align:left}
.admin-custom-select .custom-select-dropdown{width:100%;max-width:none;max-height:280px;overflow-y:auto}
.admin-custom-select .cs-option{width:100%;border-left:0;border-right:0;border-top:0;background:transparent;text-align:left}
.admin-custom-select .cs-option.is-selected{background:var(--lime);color:var(--black);font-weight:700}
.admin-custom-select .cs-option.is-selected:hover{background:var(--lime-dark);color:var(--black)}
.admin-custom-select .cs-option:disabled{opacity:.45;cursor:not-allowed}
.admin-native-select{position:absolute!important;left:0;bottom:0;width:1px!important;height:1px!important;min-width:0!important;opacity:0;pointer-events:none;padding:0!important;border:0!important}
.quote-policy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;align-items:end}
.quote-policy-grid>.field{display:grid;grid-template-rows:minmax(2.35rem,auto) 42px;gap:.35rem;min-width:0;margin:0}
.quote-policy-grid>.field>.field-label{align-self:end;margin:0}
.quote-policy-grid .input{width:100%;height:42px;min-width:0}
.quote-policy-grid .admin-field-span-2{grid-column:span 2}
.quote-policy-summary{display:flex;min-height:220px;flex-direction:column}
.quote-policy-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:1rem;min-height:132px;align-items:start;padding-top:1.75rem;padding-bottom:2rem}
.quote-policy-summary-grid>div{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.quote-policy-summary-grid strong{font-family:var(--font-display);font-size:.95rem;overflow-wrap:anywhere}
.admin-settings-modal{max-width:900px;max-height:calc(100vh - 2rem);overflow-y:auto}
.admin-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:var(--border)}
.quote-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:1.25rem;margin-bottom:1.25rem;align-items:stretch}
.quote-config-grid>.card{display:flex;min-height:780px;flex-direction:column}
.quote-config-grid>.card>.card-body{display:flex;flex:1;flex-direction:column;padding-bottom:0}
.quote-config-table-scroll{min-height:320px;max-height:320px;margin-top:auto;overflow:auto;scrollbar-gutter:stable}
.quote-config-table-scroll thead{position:sticky;top:0;z-index:2}
.quote-config-table{width:100%}
.quote-config-table th,.quote-config-table td{height:54px;border-bottom:var(--border-light)}
.quote-config-grid .admin-pagination{margin-right:-1.25rem;margin-left:-1.25rem;border-right:0;border-bottom:0;border-left:0;border-radius:0}
.quote-two-column-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}
.quote-table-header{gap:1rem;flex-wrap:wrap}
.quote-table-header .input{width:min(100%,320px)}
.quote-finance-subpage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.quote-finance-subpage-head p{max-width:800px;line-height:1.55}
.quote-finance-table-card{background:var(--white);overflow:hidden}
#quote-calculations-card .admin-wtn-table-scroll,#refund-reconciliation-card .admin-wtn-table-scroll,#contractor-payouts-card .admin-wtn-table-scroll{height:460px;min-height:460px;max-height:460px}
.quote-finance-table{width:100%;min-width:1050px}
.refund-finance-table{width:100%;min-width:1100px}
.contractor-payout-table{width:100%;min-width:1240px}
.quote-finance-table-card .admin-table th{height:48px}
.quote-finance-table-card .admin-table td{height:68px}
.quote-finance-table-card .admin-table th,.quote-finance-table-card .admin-table td{border-bottom:var(--border-light)}
.quote-refund-actions{display:flex;align-items:center;gap:.4rem;white-space:nowrap}
.admin-clickable-row{cursor:pointer}
.admin-clickable-row:focus{outline:2px solid var(--lime-dark);outline-offset:-2px}
.quote-detail-total{background:var(--black);color:var(--white);padding:1.1rem;border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.quote-detail-total span{font-family:var(--font-display);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-300)}
.quote-detail-total strong{font-family:var(--font-display);font-size:1.55rem;color:var(--lime)}
.quote-detail-heading{margin:1.35rem 0 .5rem}
.quote-detail-list{border:var(--border-light);border-radius:var(--radius);overflow:hidden;background:var(--white)}
.quote-detail-row{display:grid;grid-template-columns:minmax(120px,42%) 1fr;gap:.75rem;padding:.65rem .75rem;border-bottom:var(--border-light);font-size:.8125rem;overflow-wrap:anywhere}
.quote-detail-row:last-child{border-bottom:0}.quote-detail-row>span{color:var(--gray-500)}
.admin-filter-card{background:var(--white);border:var(--border-light);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem}
.stats-grid.service-insights-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));width:100%;min-width:0;overflow:visible;border:0;gap:.75rem;background:transparent;box-sizing:border-box}
.stats-grid.service-insights-stats .stat-cell{min-width:0;border:var(--border);border-radius:var(--radius);box-sizing:border-box}
.insights-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem;align-items:end}
.insights-filter-grid>div{display:flex;flex-direction:column;gap:.45rem;min-width:0}
.insights-filter-grid .input{min-width:0;height:42px}
.insights-search-field{grid-column:span 2;min-width:0}
#insight-reset{align-self:end;white-space:nowrap}
.insights-results-card{background:var(--white);overflow:hidden}
.insights-table-scroll{max-height:620px;overflow:auto;scrollbar-gutter:stable}
.insights-results-table{width:100%;min-width:1080px}
.insights-results-table thead{position:sticky;top:0;z-index:2}
.insights-results-table td{line-height:1.4}
.insights-action-cell{max-width:360px}
.insights-action-cell strong{display:block;font-family:var(--font-display);font-weight:650}
.insights-action-cell span{display:block;color:var(--gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.15rem}
.insight-level-badge{display:inline-flex;border:1px solid currentColor;border-radius:2px;padding:.25em .65em;font:700 .625rem var(--font-display);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.insight-level-badge.critical,.insight-level-badge.error{background:#FEE2E2;color:#991B1B}
.insight-level-badge.warning{background:#FEF3C7;color:#92400E}
.insight-level-badge.info{background:#DBEAFE;color:#1E40AF}
.insight-level-badge.debug{background:var(--gray-100);color:var(--gray-600)}
.insights-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-top:var(--border);font-size:.75rem;color:var(--gray-500);flex-wrap:wrap}
.insights-pagination>div{display:flex;align-items:center;gap:.5rem}
.admin-wtn-card{background:var(--white);overflow:hidden}
.admin-wtn-card-header{gap:1rem;flex-wrap:wrap}
.admin-wtn-search-wrap{position:relative;width:min(100%,390px);margin-left:auto}
.admin-wtn-search-wrap svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none}
.admin-wtn-search-wrap .input{width:100%;padding-left:2.2rem}
.admin-wtn-toolbar{display:flex;align-items:center;gap:.65rem;padding:.75rem 1rem;border-bottom:var(--border-light);background:var(--gray-100);flex-wrap:wrap}
.admin-wtn-toolbar .admin-custom-select{width:auto;min-width:170px}
.admin-wtn-toolbar .btn:last-child{margin-left:auto}
.admin-wtn-table-scroll{max-height:620px;overflow:auto;scrollbar-gutter:stable}
.admin-wtn-table-scroll thead{position:sticky;top:0;z-index:2}
.admin-wtn-card .admin-table th,.admin-wtn-card .admin-table td{border-bottom:var(--border-light)}
.admin-wtn-card .admin-wtn-pagination{border:0;border-top:var(--border-light);border-radius:0}
.admin-res-table{min-width:1080px}
.admin-res-table .resolution-status-badge{min-width:84px;justify-content:center;padding:.35em .7em;border:1px solid currentColor;border-radius:2px;line-height:1;white-space:nowrap}
.admin-jobs-table{min-width:980px}
.admin-job-status{display:inline-flex;min-width:76px;justify-content:center;padding:.35em .7em;border:1px solid currentColor;border-radius:2px;font:700 .625rem/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.admin-job-status.pending{background:#FEF3C7;color:#92400E}.admin-job-status.open{background:#DBEAFE;color:#1E40AF}.admin-job-status.approved{background:#EDE9FE;color:#5B21B6}.admin-job-status.completed{background:#DCFCE7;color:#166534}.admin-job-status.cancelled{background:var(--gray-100);color:var(--gray-600)}
.my-jobs-table-card{background:var(--white);overflow:hidden}
.my-jobs-card-header{gap:1rem;flex-wrap:wrap}.my-jobs-help{font-size:.8125rem;color:var(--gray-500);margin-top:.3rem}
.my-jobs-search-wrap{position:relative;width:min(100%,390px);margin-left:auto}.my-jobs-search-wrap svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none}.my-jobs-search-wrap .input{width:100%;padding-left:2.2rem;padding-right:2rem}
.my-jobs-table-toolbar{display:flex;align-items:center;gap:.65rem;padding:.75rem 1rem;border-bottom:var(--border-light);background:var(--gray-100);flex-wrap:wrap}
.my-jobs-tabs{margin:0;border:0;border-bottom:var(--border-light);border-radius:0}.my-jobs-tabs .tab{border-right:var(--border-light)}
.my-jobs-table-scroll{max-height:620px;overflow:auto;scrollbar-gutter:stable}.my-jobs-table-scroll thead{position:sticky;top:0;z-index:2}.my-jobs-table{min-width:1080px}.my-jobs-table th,.my-jobs-table td{border-bottom:var(--border-light)}
.my-jobs-table-card .my-jobs-pagination{border:0;border-top:var(--border-light);border-radius:0}
.my-jobs-clickable-row{cursor:pointer}.my-jobs-clickable-row:focus{outline:2px solid var(--lime-dark);outline-offset:-2px}
.my-job-status{display:inline-flex;min-width:76px;justify-content:center;padding:.35em .7em;border:1px solid currentColor;border-radius:2px;font:700 .625rem/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.my-job-status.pending{background:#FEF3C7;color:#92400E}.my-job-status.open{background:#DBEAFE;color:#1E40AF}.my-job-status.approved{background:#EDE9FE;color:#5B21B6}.my-job-status.accepted,.my-job-status.completed{background:#DCFCE7;color:#166534}.my-job-status.rejected,.my-job-status.withdrawn{background:#FEE2E2;color:#991B1B}.my-job-status.archived,.my-job-status.cancelled{background:var(--gray-100);color:var(--gray-600)}
.my-quotes-table{min-width:1220px}.my-quotes-row-actions{display:flex;gap:.4rem;align-items:center;white-space:nowrap}.my-quotes-table tr.is-accepted-quote td:first-child{box-shadow:inset 3px 0 0 var(--lime-dark)}.quote-withdraw-btn{color:#B91C1C;border-color:#FCA5A5}
.waste-notes-table{min-width:1260px}.waste-notes-row-actions{display:flex;gap:.4rem;align-items:center;white-space:nowrap}.waste-notes-table .wtn-select-box{width:1.15rem;height:1.15rem;margin:0}.my-job-status.draft{background:#FEF3C7;color:#92400E}.my-job-status.issued{background:#DCFCE7;color:#166534}.my-job-status.submitted{background:#E0E7FF;color:#3730A3}.my-job-status.failed{background:#FEE2E2;color:#991B1B}
.invoices-table{min-width:1280px}.invoices-row-actions{display:flex;gap:.4rem;align-items:center;white-space:nowrap}.invoices-table .invoice-select-box{width:1.15rem;height:1.15rem;margin:0}.my-job-status.finalized{background:#E0E7FF;color:#3730A3}.my-job-status.paid{background:#DCFCE7;color:#166534}
.overview-active-card,.overview-overdue-card{margin-bottom:1.25rem;overflow:hidden}.overview-active-table-scroll{max-height:620px;overflow:auto;scrollbar-gutter:stable}.overview-active-table-scroll thead{position:sticky;top:0;z-index:2}.overview-active-table{min-width:900px}.overview-active-table th,.overview-active-table td{border-bottom:var(--border-light)}.overview-active-table td{padding-top:.9rem;padding-bottom:.9rem}.overview-row-limit{font-size:.75rem;color:var(--gray-600);white-space:nowrap}.overview-view-cell{text-align:right;white-space:nowrap;font:600 .75rem var(--font-display)}.overview-active-card .my-jobs-pagination{background:var(--white)}.overview-overdue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.overview-overdue-grid>div{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem;border-right:var(--border-light)}.overview-overdue-grid>div:last-child{border-right:0}.overview-overdue-grid span{font:600 .6875rem/1.3 var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--gray-500)}.overview-overdue-grid strong{font:700 1.35rem/1.1 var(--font-display);letter-spacing:-.03em}.overview-overdue-grid strong.is-overdue{color:#B91C1C}
.browse-header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.browse-watched-card,.browse-alert-matches-card{margin-bottom:1rem}.browse-watched-table{min-width:1040px}.browse-alert-matches-table{min-width:1180px}.browse-watched-table th,.browse-watched-table td,.browse-alert-matches-table th,.browse-alert-matches-table td{border-bottom:var(--border-light)}.browse-unwatch-btn{white-space:nowrap}.browse-watched-card .my-jobs-pagination,.browse-alert-matches-card .my-jobs-pagination{background:var(--white)}.browse-alert-match-date strong,.browse-alert-match-date span{display:block;white-space:nowrap}.browse-alert-match-date strong{font:650 .78rem var(--font-display)}.browse-alert-match-date span{margin-top:.2rem;color:var(--gray-500);font-size:.7rem}.browse-alert-match-reason{min-width:280px;max-width:420px;color:var(--gray-600);font-size:.76rem;line-height:1.45}
@media(max-width:720px){.my-jobs-search-wrap{width:100%;margin-left:0}.my-jobs-table-toolbar>*{width:100%}.my-jobs-tabs{overflow-x:auto}}
@media(max-width:720px){.browse-header-actions{width:100%;justify-content:flex-start}.overview-row-limit{width:100%}.overview-overdue-grid{grid-template-columns:1fr}.overview-overdue-grid>div{border-right:0;border-bottom:var(--border-light)}.overview-overdue-grid>div:last-child{border-bottom:0}.overview-overdue-card .card-header{align-items:flex-start;flex-direction:column}}
.ledger-filter-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(170px,220px) minmax(210px,260px) auto;gap:.85rem;align-items:end}
.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border:var(--border);border-top:0;border-radius:0 0 var(--radius) var(--radius);font-size:.75rem;color:var(--gray-500);flex-wrap:wrap}
.admin-pagination>div{display:flex;align-items:center;gap:.5rem}
.admin-empty-cell{padding:2rem!important;text-align:center;color:var(--gray-500)!important}
.admin-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.admin-page-heading h1{margin:.25rem 0 .35rem}.admin-page-heading p{line-height:1.5}
.admin-heading-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
.admin-count{font-family:var(--font-display);font-size:.8125rem;color:var(--gray-600)}
.admin-help-text{font-size:.8125rem;color:var(--gray-500);margin-top:.3rem}
.admin-filter-section{margin-bottom:1.25rem;background:var(--white)}
.admin-filter-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(190px,260px);gap:.85rem;align-items:end}
.admin-filter-grid label,.admin-panel-form label{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.admin-table-card{background:var(--white)}.admin-table-scroll{overflow:auto}
.pending-registration-card{margin-bottom:1.5rem;overflow:hidden;border-top:4px solid var(--lime)}
.pending-registration-header{align-items:flex-start;background:linear-gradient(90deg,#FBFFF0 0%,var(--white) 58%)}
.pending-registration-header>div:first-child{max-width:760px}
.pending-registration-summary{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:.2rem .45rem;flex:0 0 auto;padding:.55rem .75rem;border:var(--border-light);border-radius:var(--radius);background:var(--white)}
.pending-registration-summary strong{font:700 1.3rem/1 var(--font-display)}
.pending-registration-summary span{font:600 .625rem var(--font-display);letter-spacing:.07em;text-transform:uppercase;color:var(--gray-500)}
.pending-registration-table{min-width:920px;table-layout:fixed}
.pending-registration-table th:nth-child(1){width:24%}.pending-registration-table th:nth-child(2){width:24%}.pending-registration-table th:nth-child(3){width:17%}.pending-registration-table th:nth-child(4){width:17%}.pending-registration-table th:nth-child(5){width:18%}
.pending-registration-table td{padding-block:.9rem}
.pending-registration-date{display:flex;flex-direction:column;align-items:flex-start;gap:.18rem}
.pending-registration-person>strong,.pending-registration-person>span,.pending-registration-person>small{display:block}.pending-registration-person>strong{font:700 .875rem var(--font-display)}.pending-registration-person>span{margin-top:.18rem;color:var(--gray-600);overflow-wrap:anywhere}.pending-registration-person>small{margin-top:.18rem}.pending-registration-person>small,.pending-registration-date small{color:var(--gray-500);font-size:.68rem}
.pending-registration-date>strong{font:600 .78rem var(--font-display)}.pending-registration-date>span{color:var(--gray-500);font-size:.72rem}
.pending-stage-badge{display:inline-flex;max-width:100%;white-space:normal;line-height:1.35;text-align:left}
.pending-registration-action{text-align:right;white-space:nowrap}.pending-registration-action .btn{min-width:120px;justify-content:center}
.pending-registration-pagination{border:0;border-top:var(--border-light);border-radius:0;background:var(--gray-100)}
.admin-panel-form{display:flex;flex-direction:column;gap:1rem}
.admin-panel-section{display:flex;flex-direction:column;gap:.75rem;background:var(--white);border:var(--border-light);border-radius:var(--radius);padding:1rem}
.admin-danger-zone{background:#FFF7F7;border-color:#FECACA}
.admin-readonly-note{padding:.75rem;background:var(--gray-100);border-radius:var(--radius);font-size:.8125rem;line-height:1.55;overflow-wrap:anywhere}
.admin-mini-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.admin-mini-stats>div{border:var(--border-light);border-radius:var(--radius);padding:.7rem;display:flex;flex-direction:column;gap:.2rem}
.admin-mini-stats strong{font:700 1.15rem var(--font-display)}.admin-mini-stats span{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-500)}
.admin-document-row{display:flex;flex-direction:column;gap:.15rem;padding:.6rem 0;border-bottom:var(--border-light);font-size:.8rem}.admin-document-row:last-child{border-bottom:0}.admin-document-row span{color:var(--gray-500);overflow-wrap:anywhere}
.admin-verification-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.admin-verification-heading span{font-size:.72rem;color:var(--gray-500)}.admin-verification-grid{display:grid;gap:.55rem;margin-top:.75rem}.admin-verification-row{padding:.7rem;border:var(--border-light);border-left:3px solid var(--gray-300);border-radius:var(--radius);background:var(--white)}.admin-verification-row.is-verified,.admin-verification-row.is-not_required{border-left-color:#65A30D}.admin-verification-row.is-mismatch,.admin-verification-row.is-rejected,.admin-verification-row.is-expired{border-left-color:#DC2626}.admin-verification-row.is-manual_review,.admin-verification-row.is-pending{border-left-color:#D97706}.admin-verification-result{display:flex;align-items:center;gap:.5rem}.admin-verification-row p{margin:.4rem 0 .25rem;font-size:.78rem;color:var(--gray-700)}.admin-verification-row small{display:block;color:var(--gray-500);overflow-wrap:anywhere}.admin-verification-row>a{display:inline-block;margin-top:.35rem;font-size:.72rem;text-decoration:underline}.verification-status{padding:.2rem .38rem;border-radius:999px;background:var(--gray-200);font:700 .58rem var(--font-display);letter-spacing:.04em;text-transform:uppercase}.verification-status.is-verified,.verification-status.is-not_required{background:#DCFCE7;color:#166534}.verification-status.is-mismatch,.verification-status.is-rejected,.verification-status.is-expired{background:#FEE2E2;color:#991B1B}.verification-status.is-manual_review,.verification-status.is-pending{background:#FEF3C7;color:#92400E}.verification-status.is-unavailable,.verification-status.is-not_configured{background:#E5E7EB;color:#374151}.verification-review-actions{display:flex;gap:.4rem;align-items:center;margin-top:.55rem;flex-wrap:wrap}.verification-review-actions .input{width:auto;min-width:135px;padding:.35rem .5rem;font-size:.72rem}
.admin-warning-note{padding:.7rem;background:#FEF3C7;color:#78350F;border-radius:var(--radius);font-size:.8rem}
.admin-check-row{flex-direction:row!important;align-items:center}.admin-check-row input{accent-color:var(--lime-dark)}
.search-services-intro{margin:.3rem 0 0;font-size:.75rem}.search-services-body{display:flex;flex-direction:column;gap:1rem}.search-settings-filter{max-width:480px}.search-service-controls{display:grid;gap:.75rem}.search-service-control{border:var(--border-light);border-radius:var(--radius);background:var(--white);overflow:hidden}.search-service-control>summary{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:1rem;padding:.9rem 1rem;background:var(--gray-100);cursor:pointer}.search-service-control>summary::marker{color:var(--gray-500)}.search-service-summary-copy{display:flex;flex-direction:column;gap:.18rem}.search-service-summary-copy strong{font:700 .875rem var(--font-display)}.search-service-summary-copy small{color:var(--gray-500);font-size:.7rem}.search-service-count{color:var(--gray-600);font:650 .7rem var(--font-display);white-space:nowrap}.search-service-toggle{font-size:.75rem;font-weight:650;white-space:nowrap;cursor:pointer}.search-service-features{display:flex;flex-direction:column;padding:.35rem 1rem .7rem}.search-service-actions{display:flex;justify-content:flex-end;gap:.25rem;padding:.25rem 0}.search-feature-control{display:grid!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:.7rem!important;padding:.7rem 0;border-top:var(--border-light);cursor:pointer}.search-feature-control>input{width:17px;height:17px;margin-top:.08rem;accent-color:var(--lime-dark)}.search-feature-control>span{display:flex;flex-direction:column;gap:.2rem}.search-feature-control strong{font:650 .8rem var(--font-display)}.search-feature-control small{color:var(--gray-500);font-size:.7rem}.search-feature-meta{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;color:var(--gray-500);font-size:.62rem;text-transform:capitalize}.search-feature-meta code{padding:.12rem .3rem;border-radius:3px;background:var(--gray-100);color:var(--gray-700);text-transform:none}.search-feature-meta b{padding:.12rem .35rem;border-radius:999px;background:#FEF3C7;color:#92400E;font:700 .58rem var(--font-display);letter-spacing:.03em;text-transform:uppercase}.search-service-control.is-disabled .search-service-features{opacity:.55}@media(max-width:760px){.search-service-control>summary{grid-template-columns:1fr}.search-service-count{white-space:normal}.search-service-toggle{justify-self:start}}
.billing-clear-settings{min-width:0;margin:0;padding:1rem;border:var(--border-light);border-radius:var(--radius);background:var(--gray-100)}
.billing-clear-settings>.label-dark{margin-bottom:.8rem}
.billing-clear-settings-options{display:flex;gap:1rem 1.4rem;flex-wrap:wrap}
.billing-clear-settings-options label{display:flex;align-items:center;gap:.65rem;font:400 .8125rem var(--font-body);color:var(--gray-600);cursor:pointer}
.billing-clear-settings-options input[type="checkbox"]{width:20px;height:20px;flex:0 0 20px;margin:0;accent-color:var(--lime-dark);cursor:pointer}
.ledger-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;margin-bottom:1.25rem}
.ledger-summary-card{border:var(--border);border-radius:var(--radius);background:var(--white);padding:1rem;display:flex;flex-direction:column;gap:.25rem}
.ledger-summary-card strong{font:700 1.55rem var(--font-display);color:var(--black)}.ledger-summary-card span{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--gray-500);font-weight:600}
.developer-refresh-bar{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;background:var(--white);border:var(--border-light);border-radius:var(--radius);padding:.7rem 1rem;margin-bottom:1rem}
.developer-refresh-bar .admin-help-text{margin:0 0 0 auto}
.developer-trace-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.developer-trace-heading>div{min-width:0}.developer-trace-heading span{display:block;margin-top:.25rem;color:var(--gray-500);font-size:.7rem}.developer-full-trace{max-height:none;min-height:280px;margin:0;white-space:pre;overflow:auto;tab-size:4}
@media(max-width:720px){.quote-policy-grid{grid-template-columns:1fr}.quote-policy-grid .admin-field-span-2{grid-column:span 1}.quote-two-column-form{grid-template-columns:1fr}.quote-two-column-form .btn{grid-column:1!important}.insights-filter-grid{grid-template-columns:1fr}.insights-search-field{grid-column:span 1}.ledger-filter-grid{grid-template-columns:1fr}.stats-grid.service-insights-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-pagination{align-items:flex-start;flex-direction:column}.admin-wtn-search-wrap{width:100%;margin-left:0}.admin-wtn-toolbar>*{width:100%!important;margin-left:0!important}}
@media(max-width:720px){.admin-page-heading{flex-direction:column}.admin-heading-actions{justify-content:flex-start}.admin-filter-grid{grid-template-columns:1fr}.ledger-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.pending-registration-card{margin-bottom:1.25rem}.pending-registration-header{gap:.75rem}.pending-registration-summary{grid-template-columns:auto 1fr}.pending-registration-pagination{align-items:flex-start}.pending-registration-action{text-align:left}}

/* --------------------------------------------------------------------------
   Admin role badge
   -------------------------------------------------------------------------- */
.acct-type-chip.admin {
  background: #FEE2E2;
  color: #7F1D1D;
}

/* --------------------------------------------------------------------------
   Resolution Centre
   -------------------------------------------------------------------------- */
.resolution-type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 0.5rem;
}
.resolution-type-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  padding: 0.875rem;
  border: var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  background: var(--white);
  transition: all var(--transition);
  user-select: none;
}
.resolution-type-card:hover { background: var(--gray-100); }
.resolution-type-card.selected { background: var(--black); color: var(--white); }
.resolution-type-card svg { color: var(--gray-600); transition: color var(--transition); }
.resolution-type-card.selected svg { color: var(--lime); }
.resolution-type-label {
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 600;
}

.resolution-card {
  border: var(--border);
  border-radius: var(--radius);
  background: var(--white);
  overflow: hidden;
  transition: border-color var(--transition);
}
.resolution-card:hover { border-color: var(--black); }

.resolution-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: var(--border-light);
}
.resolution-card-body {
  padding: 0.875rem 1rem;
  font-size: 0.8125rem;
  color: var(--gray-600);
  line-height: 1.55;
}
.resolution-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-top: var(--border-light);
  background: var(--gray-100);
}

.resolution-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  font-family: var(--font-display);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.25em 0.6em;
  border-radius: 20px;
}
.resolution-status-badge.open       { background: #FEF3C7; color: #78350F; }
.resolution-status-badge.in_review  { background: #DBEAFE; color: #1E3A8A; }
.resolution-status-badge.escalated  { background: #EDE9FE; color: #5B21B6; }
.resolution-status-badge.resolved   { background: #D1FAE5; color: #065F46; }
.resolution-status-badge.closed     { background: var(--gray-200); color: var(--gray-600); }

/* Resolution Centre — enhanced layout */
.resolution-table-card { overflow:hidden; background:var(--white); }
.resolution-table-card-header { gap:1rem; flex-wrap:wrap; }
.resolution-table-card-header .my-jobs-search-wrap { width:min(100%,390px); }
.resolution-table-card-header #res-search-clear-x { display:none; position:absolute; right:.55rem; top:50%; transform:translateY(-50%); border:0; background:transparent; color:var(--gray-400); cursor:pointer; line-height:1; padding:.15rem; }
.resolution-table-toolbar { display:flex; align-items:center; gap:.65rem; padding:.75rem 1rem; border-bottom:var(--border-light); background:var(--gray-100); flex-wrap:wrap; }
.resolution-table-toolbar .custom-select { min-width:180px; }
.resolution-table-toolbar #res-perpage-select { min-width:150px; }
.resolution-result-count { margin-left:auto; color:var(--gray-500); font:500 .75rem var(--font-display); white-space:nowrap; }
.resolution-table-scroll { overflow-x:auto; scrollbar-gutter:stable; }
.resolution-table-scroll thead { position:sticky; top:0; z-index:2; }
.resolution-table { min-width:1040px; }
.resolution-table th, .resolution-table td { border-bottom:var(--border-light); }
.resolution-table td { padding-top:1rem; padding-bottom:1rem; vertical-align:middle; }
.resolution-table-row { cursor:pointer; transition:background var(--transition); }
.resolution-table-row:hover { background:var(--gray-100); }
.resolution-table-row:focus { outline:2px solid var(--lime-dark); outline-offset:-2px; }
.resolution-table .resolution-status-badge { min-width:84px; justify-content:center; padding:.35em .7em; border:1px solid currentColor; border-radius:2px; line-height:1; white-space:nowrap; }
.resolution-escalated-label { display:block; margin-top:.35rem; color:#7C3AED; font:700 .6rem var(--font-display); text-transform:uppercase; letter-spacing:.05em; }
.resolution-table .insights-action-cell { min-width:300px; max-width:430px; }
.resolution-table td:nth-child(4) { min-width:180px; max-width:280px; }
.resolution-table-date strong, .resolution-table-date span { display:block; white-space:nowrap; }
.resolution-table-date strong { font:650 .78rem var(--font-display); }
.resolution-table-date span { margin-top:.2rem; color:var(--gray-500); font-size:.7rem; }
.resolution-table-action { font:700 .68rem var(--font-display); text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.resolution-table-detail-row[hidden] { display:none; }
.resolution-table-detail-row > td { padding:0; background:var(--gray-100); }
.resolution-table-detail-panel { display:flex; flex-direction:column; gap:.75rem; padding:1rem 1.25rem 1.2rem; border-left:3px solid var(--lime-dark); }
.resolution-table-card .resolution-pagination { border:0; border-top:var(--border-light); border-radius:0; }
.res-stats-row {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.res-stat-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  padding: 0.875rem 1.5rem;
  background: var(--white);
  border: var(--border);
  border-radius: var(--radius);
  min-width: 90px;
}
.res-stat-chip.accent-amber { border-left: 3px solid #F59E0B; }
.res-stat-chip.accent-blue  { border-left: 3px solid #3B82F6; }
.res-stat-chip.accent-green { border-left: 3px solid #10B981; }
.res-stat-val {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1;
}
.res-stat-lab {
  font-family: var(--font-display);
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gray-500);
  font-weight: 600;
}

.res-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem;
  background: var(--white);
  border: var(--border);
  border-radius: var(--radius);
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}
.res-status-tabs {
  display: flex;
  gap: 0.2rem;
  flex-wrap: wrap;
}
.res-status-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.7rem;
  border: 1px solid transparent;
  border-radius: 20px;
  background: transparent;
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition);
  color: var(--gray-600);
  font-family: var(--font-body);
}
.res-status-tab:hover { background: var(--gray-100); color: var(--black); }
.res-status-tab.active { background: var(--black); color: var(--white); }
.res-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 0.3em;
  border-radius: 20px;
  font-size: 0.7rem;
  font-weight: 700;
  background: rgba(255,255,255,0.25);
}
.res-status-tab:not(.active) .res-tab-count { background: var(--gray-200); color: var(--gray-600); }

/* list-card expand — resolution items */
.list-card.expanded .res-expand-icon { transform: rotate(180deg); }
.list-card.expanded .res-card-expand-body { display: flex; }
.list-card.expanded .list-card-actions .res-expand-hint::after { content: '↑'; }

/* resolution note add form */
.res-add-note-form { border-top: var(--border-light); padding-top: 0.75rem; }

/* admin resolution card (arc) */
.arc-card { transition: box-shadow 0.15s; }
.arc-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.07); }
.arc-header:hover { background: var(--gray-100); }
.arc-body { display: none; border-top: var(--border-light); }
.arc-card.arc-open .arc-body { display: block; }
.arc-chevron { transition: transform 0.2s; color: var(--gray-400); }
.arc-card.arc-open .arc-chevron { transform: rotate(180deg); }

.resolution-card { cursor: default; }
.res-card-head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
  cursor: pointer;
  transition: background var(--transition);
}
.res-card-head:hover { background: var(--gray-100); }
.res-card-status-bar {
  width: 3px;
  border-radius: 2px;
  flex-shrink: 0;
  align-self: stretch;
  min-height: 36px;
}
.res-type-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15em 0.55em;
  border-radius: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.res-expand-icon {
  color: var(--gray-400);
  transition: transform var(--transition);
  margin-top: 0.25rem;
}
.resolution-card.expanded .res-expand-icon { transform: rotate(180deg); }
.res-card-expand-body {
  display: none;
  border-top: var(--border-light);
  padding: 1rem;
  flex-direction: column;
  gap: 0.75rem;
}
.resolution-card.expanded .res-card-expand-body { display: flex; }
.res-card-desc {
  font-size: 0.8125rem;
  color: var(--gray-600);
  line-height: 1.6;
}
.res-admin-note {
  padding: 0.75rem 1rem;
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  border-radius: var(--radius);
  color: #1E40AF;
  line-height: 1.5;
}
.res-card-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.5rem;
  border-top: var(--border-light);
  flex-wrap: wrap;
}
.res-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 3rem;
  color: var(--gray-400);
  text-align: center;
  font-size: 0.875rem;
  background: var(--white);
  border: var(--border);
  border-radius: var(--radius);
}

@media (max-width:720px) {
  .resolution-table-card-header .my-jobs-search-wrap { width:100%; margin-left:0; }
  .resolution-table-toolbar .custom-select { width:100%; }
  .resolution-result-count { width:100%; margin-left:0; }
}

.res-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(12,12,12,0.5);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
}
.res-modal-overlay.open { opacity: 1; pointer-events: auto; }
.res-modal-wrap {
  position: fixed;
  inset: 0;
  z-index: 201;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  pointer-events: none;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.2s, transform 0.2s;
}
.res-modal-wrap.open { opacity: 1; transform: none; pointer-events: auto; }
.res-modal {
  background: var(--white);
  border: var(--border);
  border-radius: var(--radius);
  box-shadow: 8px 8px 0 var(--black);
  width: 100%;
  max-width: 520px;
  max-height: 90vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.res-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1.25rem 1.25rem 1rem;
  border-bottom: var(--border-light);
  flex-shrink: 0;
}
.res-modal-body {
  padding: 1.25rem;
  overflow-y: auto;
  flex: 1;
}

/* --------------------------------------------------------------------------
   Admin dashboard
   -------------------------------------------------------------------------- */
/* Hairlines come from the cells themselves (as in .tab-bar), not from a black
   grid background showing through the gaps — empty tracks used to render as a
   solid black block at the end of the strip. */
.stats-grid {
  display: flex;
  flex-wrap: wrap;
  border: var(--border);
  border-right: none;      /* right edge supplied by each row's last cell */
  border-bottom: none;     /* bottom edge supplied by the last row's cells */
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
}
.stat-cell {
  flex: 1 1 160px;
  background: var(--white);
  padding: 1.25rem 1rem;
  border-right: var(--border);
  border-bottom: var(--border);
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.stat-cell-value {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--black);
}
.stat-cell-label {
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gray-600);
}
.stat-cell.accent { background: var(--lime); }
.stat-cell.accent .stat-cell-value,
.stat-cell.accent .stat-cell-label { color: var(--black); }

.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.admin-table th {
  font-family: var(--font-display);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray-600);
  padding: 0.6rem 0.75rem;
  text-align: left;
  border-bottom: var(--border);
  background: var(--gray-100);
  white-space: nowrap;
}
.admin-table td {
  padding: 0.7rem 0.75rem;
  border-bottom: var(--border-light);
  color: var(--black);
  vertical-align: middle;
}
.admin-table tr:last-child td { border-bottom: none; }
.admin-table tr:hover td { background: var(--gray-100); }

.admin-table-wrap {
  border: var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

/* Fleet management */
.fleet-page-header{align-items:flex-end}.fleet-header-actions{display:flex;gap:.65rem;flex-wrap:wrap}.fleet-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.1rem}.fleet-metric{padding:1.1rem 1.2rem}.fleet-metric strong{display:block;font-family:var(--font-display);font-size:2rem;line-height:1;margin:.65rem 0 .4rem}.fleet-metric p{font-size:.78rem;color:var(--gray-500);margin:0}.fleet-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--gray-300);margin-bottom:1rem;overflow-x:auto}.fleet-tabs button{appearance:none;border:0;background:none;padding:.75rem 1rem;font:600 .8rem var(--font-body);color:var(--gray-500);white-space:nowrap;border-bottom:2px solid transparent}.fleet-tabs button:hover{color:var(--black)}.fleet-tabs button.active{color:var(--black);border-bottom-color:var(--black)}.fleet-tabs button span{display:inline-flex;min-width:1.25rem;height:1.25rem;align-items:center;justify-content:center;background:var(--gray-200);border-radius:1rem;font-size:.67rem;margin-left:.3rem}.fleet-card-header{min-height:66px}.fleet-table{min-width:980px}.fleet-table th,.fleet-table td{border-bottom:var(--border-light)}.fleet-table td{height:68px}.fleet-table tbody tr{cursor:pointer}.fleet-table td strong,.fleet-table td small{display:block}.fleet-table td small{font-size:.7rem;color:var(--gray-500);margin-top:.2rem}.fleet-registration{font-family:var(--font-display);letter-spacing:.07em}.fleet-attention{color:#9A3412;font-weight:600;font-size:.74rem}.fleet-clear{color:#287A3D;font-weight:600;font-size:.74rem}.fleet-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.35rem;min-height:150px;color:var(--gray-500)}.fleet-empty strong{font-family:var(--font-display);color:var(--black);font-size:.95rem}.fleet-empty span{font-size:.8rem;max-width:420px}.fleet-monitor-pane{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(270px,.75fr);gap:1rem}.fleet-map-card{overflow:hidden}.fleet-map{height:480px;background:var(--gray-200)}.fleet-monitor-list{overflow:hidden;align-self:start}.fleet-monitor-list>button{width:100%;display:flex;align-items:center;gap:.65rem;border:0;border-bottom:var(--border-light);background:var(--white);padding:.9rem 1rem;text-align:left}.fleet-monitor-list>button:hover{background:var(--gray-100)}.fleet-monitor-list>button>span:nth-child(2){flex:1;min-width:0}.fleet-monitor-list strong,.fleet-monitor-list small{display:block}.fleet-monitor-list strong{font:600 .78rem var(--font-body)}.fleet-monitor-list small{font-size:.69rem;color:var(--gray-500);margin-top:.15rem}.fleet-monitor-dot{width:8px;height:8px;border-radius:50%;background:#2E8B57;flex:none}.fleet-monitor-dot.attention{background:#F59E0B}.fleet-panel-form{display:flex;flex-direction:column;gap:1rem}.fleet-panel-form .field{display:flex;flex-direction:column;gap:.35rem}.fleet-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.fleet-panel-actions{position:sticky;bottom:-1.5rem;display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 0 .25rem;background:linear-gradient(transparent,var(--white) 16%);z-index:2}.fleet-reg-input{text-transform:uppercase;letter-spacing:.08em}.fleet-vehicle-summary{display:flex;align-items:center;gap:.9rem;padding:1rem;background:var(--black);color:var(--white);border-radius:var(--radius);margin-bottom:1rem}.fleet-vehicle-summary strong,.fleet-vehicle-summary span{display:block}.fleet-vehicle-summary strong{font-family:var(--font-display)}.fleet-vehicle-summary span{font-size:.74rem;color:var(--gray-400);margin-top:.18rem}.fleet-vehicle-mark{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--lime);color:var(--black);font:700 .78rem var(--font-display)}.fleet-warning{display:flex;flex-direction:column;gap:.2rem;padding:.85rem 1rem;background:#FFF7ED;border:1px solid #FED7AA;border-radius:var(--radius);color:#9A3412}.fleet-warning strong{font-size:.78rem}.fleet-warning span{font-size:.74rem}.fleet-dispatch-job{display:flex;flex-direction:column;padding:1rem;background:var(--gray-100);border:var(--border-light);border-radius:var(--radius)}.fleet-dispatch-job strong{font-family:var(--font-display)}.fleet-dispatch-job span{font-size:.74rem;color:var(--gray-500);margin-top:.2rem}.fleet-rank-row{display:grid;grid-template-columns:32px minmax(110px,.6fr) minmax(180px,1fr);gap:.65rem;align-items:center;padding:.75rem 0;border-bottom:var(--border-light)}.fleet-rank-row>span:nth-child(2) strong,.fleet-rank-row>span:nth-child(2) small{display:block}.fleet-rank-row>span:nth-child(2) strong{font-size:.77rem}.fleet-rank-row>span:nth-child(2) small{font-size:.66rem;color:var(--gray-500);margin-top:.12rem}.fleet-rank-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--black);border-radius:50%;font:700 .72rem var(--font-display)}.fleet-rank-row:first-of-type .fleet-rank-number{background:var(--lime)}.fleet-recommendations{display:flex;flex-direction:column}.fleet-recommendations>div{display:flex;gap:.65rem;padding:.65rem 0;border-bottom:var(--border-light)}.fleet-recommendations>div>span{display:flex;align-items:center;justify-content:center;background:var(--gray-200);width:24px;height:24px;border-radius:50%;font-weight:700;font-size:.66rem}.fleet-recommendations p{margin:0;flex:1}.fleet-recommendations strong,.fleet-recommendations small{display:block}.fleet-recommendations strong{font-size:.76rem}.fleet-recommendations small{font-size:.7rem;color:var(--gray-500);line-height:1.45;margin-top:.15rem}.fleet-panel-empty{min-height:260px}.fleet-my-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.fleet-work-card .card-body>strong{display:block;font:600 1rem var(--font-display)}.fleet-work-card .card-body>p{font-size:.76rem;color:var(--gray-500)}.fleet-work-vehicle{display:flex;flex-direction:column;padding:.75rem;background:var(--gray-100);border-radius:var(--radius);margin:1rem 0}.fleet-work-vehicle span{font:700 .95rem var(--font-display);letter-spacing:.06em}.fleet-work-vehicle small{font-size:.68rem;color:var(--gray-500)}.fleet-work-empty{grid-column:1/-1;min-height:250px}
@media(max-width:1000px){.fleet-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-monitor-pane{grid-template-columns:1fr}.fleet-my-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.fleet-page-header{align-items:flex-start}.fleet-header-actions,.fleet-header-actions .btn{width:100%}.fleet-metric-grid,.fleet-my-work-grid{grid-template-columns:1fr}.fleet-form-grid{grid-template-columns:1fr}.fleet-rank-row{grid-template-columns:32px 1fr}.fleet-rank-row select{grid-column:1/-1}.fleet-map{height:360px}}

/* Keep fleet panes mutually exclusive. Author display rules otherwise override
   the browser's built-in [hidden] rule on grid and card elements. */
[data-fleet-pane][hidden] { display:none !important; }
.fleet-tabs.radius-selector { width:max-content; max-width:100%; margin-bottom:1rem; padding:0; gap:.375rem; border:0; border-radius:0; background:transparent; overflow-x:auto; flex-wrap:nowrap; scrollbar-width:none; }
.fleet-tabs.radius-selector::-webkit-scrollbar { display:none; }
.fleet-tabs.radius-selector .radius-btn { min-width:96px; padding:.62rem .9rem; justify-content:center; border:var(--border); border-radius:var(--radius); background:var(--white); color:var(--black); font:600 .6875rem var(--font-display); letter-spacing:.08em; text-transform:uppercase; }
.fleet-tabs.radius-selector .radius-btn:hover { border-color:var(--black); background:var(--gray-100); color:var(--black); }
.fleet-tabs.radius-selector .radius-btn.active { border-color:var(--black); background:var(--black); color:var(--white); }
.fleet-monitoring-empty,.fleet-map-empty { display:flex; min-height:260px; padding:2rem; flex-direction:column; align-items:center; justify-content:center; gap:.4rem; color:var(--gray-500); text-align:center; }
.fleet-monitoring-empty { grid-column:1/-1; }
.fleet-monitoring-empty strong,.fleet-map-empty strong { color:var(--black); font:700 .9rem var(--font-display); }
.fleet-monitoring-empty>span:last-of-type,.fleet-map-empty>span:last-of-type { max-width:430px; font-size:.75rem; line-height:1.5; }
.fleet-monitoring-empty .btn { margin-top:.7rem; }
.fleet-empty-icon { display:grid; place-items:center; width:42px; height:42px; margin-bottom:.25rem; border-radius:50%; background:var(--gray-100); color:var(--gray-600); font:700 1rem var(--font-display); }

/* Fleet drawers follow the same section and action-bar rhythm as Team and
   other dashboard detail panels. */
.detail-panel-body.fleet-detail-body { padding:0; gap:0; background:var(--gray-100); }
.fleet-panel-loading { min-height:220px; gap:.55rem; color:var(--gray-500); font-size:.78rem; }
.fleet-detail-body .fleet-panel-form { width:100%; gap:0; }
.fleet-detail-body>.fleet-panel-form { min-height:100%; }
.fleet-detail-body>.fleet-register-panel { display:flex; min-height:100%; flex-direction:column; }
.fleet-detail-body .fleet-panel-form>.detail-section,
.fleet-detail-body>.detail-section,
.fleet-detail-body .fleet-register-panel>.detail-section { padding:1.25rem 1.5rem; gap:.9rem; border-bottom:var(--border-light); background:var(--white); }
.fleet-detail-body .detail-section-title { padding:0; border:0; color:var(--black); font-size:.6875rem; letter-spacing:.1em; }
.fleet-panel-copy { margin:.3rem 0 0; color:var(--gray-500); font-size:.8125rem; line-height:1.5; }
.fleet-detail-body .field-hint { display:block; margin-top:.05rem; color:var(--gray-500); font-size:.68rem; font-weight:400; line-height:1.4; }
.fleet-detail-body .input { width:100%; background-color:var(--white); }
.fleet-input-unit { position:relative; }
.fleet-input-unit .input { padding-right:3rem; }
.fleet-input-unit>span { position:absolute; top:50%; right:.8rem; transform:translateY(-50%); color:var(--gray-500); font:700 .625rem var(--font-display); text-transform:uppercase; pointer-events:none; }
.fleet-detail-body .fleet-option-card { display:flex; flex-direction:row; align-items:flex-start; gap:.7rem; padding:.75rem; border:var(--border-light); border-radius:var(--radius); background:var(--gray-100); cursor:pointer; }
.fleet-option-card input { width:1rem; height:1rem; margin-top:.12rem; accent-color:var(--lime-dark); flex:none; }
.fleet-option-card span,.fleet-option-card strong,.fleet-option-card small { display:block; }
.fleet-option-card strong { font:650 .8rem var(--font-display); }
.fleet-option-card small { margin-top:.18rem; color:var(--gray-500); font-size:.7rem; line-height:1.45; }
.fleet-detail-body .fleet-panel-actions { position:sticky; bottom:0; z-index:5; display:flex; justify-content:flex-end; gap:.5rem; margin-top:auto; padding:1rem 1.5rem; border-top:var(--border-light); background:var(--white); }
.fleet-detail-body [data-fleet-retire] { margin-right:auto; }
.fleet-detail-body>.fleet-vehicle-summary { margin:1.25rem 1.5rem 0; }
.fleet-detail-body>.fleet-warning { margin:1rem 1.5rem 0; }
.fleet-detail-body .fleet-dispatch-job { margin:1.25rem 1.5rem 0; }
.fleet-detail-body .fleet-rank-row { display:grid; grid-template-columns:32px minmax(110px,.6fr) minmax(180px,1fr); }
.fleet-detail-body .fleet-rank-row select { width:100%; }
.fleet-detail-body .fleet-panel-empty { min-height:320px; padding:2rem; }
.fleet-panel-list { overflow:hidden; border:var(--border-light); border-radius:var(--radius); background:var(--white); }
.fleet-panel-list-row { display:grid; width:100%; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:.75rem; padding:.8rem; border:0; border-bottom:var(--border-light); background:var(--white); color:var(--black); text-align:left; }
.fleet-panel-list-row:last-child { border-bottom:0; }
button.fleet-panel-list-row { cursor:pointer; }
button.fleet-panel-list-row:hover,button.fleet-panel-list-row:focus-visible { background:#F7FEE7; outline:0; box-shadow:inset 3px 0 var(--lime-dark); }
.fleet-panel-list-row>span:nth-child(2) { min-width:0; }
.fleet-panel-list-row strong,.fleet-panel-list-row small { display:block; }
.fleet-panel-list-row strong { overflow:hidden; color:var(--black); font:650 .8rem var(--font-display); text-overflow:ellipsis; white-space:nowrap; }
.fleet-panel-list-row small { margin-top:.18rem; overflow:hidden; color:var(--gray-500); font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.fleet-panel-list-icon { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; background:var(--black); color:var(--lime); font:700 .68rem var(--font-display); letter-spacing:.04em; }
.fleet-panel-list-count { color:var(--gray-500); font:600 .68rem var(--font-display); white-space:nowrap; }
.fleet-panel-empty-state { display:flex; min-height:220px; padding:2rem; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; color:var(--gray-500); text-align:center; }
.fleet-empty-add-button { display:grid; width:52px; height:52px; margin:0 0 .45rem; place-items:center; border:1px solid var(--black); border-radius:50%; background:var(--lime); color:var(--black); box-shadow:2px 2px 0 var(--black); font:700 1.35rem var(--font-display); cursor:pointer; transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease; }
.fleet-empty-add-button:hover { background:var(--lime-dark); transform:translate(-1px,-1px); box-shadow:3px 3px 0 var(--black); }
.fleet-empty-add-button:active { transform:translate(1px,1px); box-shadow:1px 1px 0 var(--black); }
.fleet-empty-add-button:focus-visible { outline:2px solid var(--black); outline-offset:3px; }
.fleet-empty-add-button span { line-height:1; transform:translateY(-1px); }
.fleet-panel-empty-state strong { color:var(--black); font:700 .875rem var(--font-display); }
.fleet-panel-empty-state>span:last-child { max-width:390px; font-size:.75rem; line-height:1.5; }
.fleet-table { min-width:1280px; }
.fleet-vin-input { text-transform:uppercase; letter-spacing:.06em; }
.fleet-vehicle-summary>.status-badge { margin:0 0 0 auto; color:var(--black); }
.fleet-telematics-state { display:inline-flex; align-items:center; gap:.3rem; color:var(--gray-500); font:700 .66rem var(--font-display); letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.fleet-telematics-state::before { width:7px; height:7px; border-radius:50%; background:var(--gray-400); content:""; }
.fleet-telematics-state.is-reporting::before { background:#2E8B57; box-shadow:0 0 0 3px rgba(46,139,87,.12); }
.fleet-telematics-state.is-verified::before { background:#65A30D; }
.fleet-telematics-state.is-not_verified::before { background:#D97706; }
.fleet-telematics-panel { display:flex; min-height:100%; flex-direction:column; }
.fleet-telematics-panel>.detail-section { padding:1.25rem 1.5rem; gap:.9rem; border-bottom:var(--border-light); background:var(--white); }
.fleet-telematics-panel>.fleet-panel-form { min-height:auto; }
.fleet-integration-list { display:grid; gap:.6rem; }
.fleet-integration-card { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.8rem; border:var(--border-light); background:var(--white); }
.fleet-integration-card strong,.fleet-integration-card small,.fleet-integration-error { display:block; }
.fleet-integration-card strong { font:700 .8rem var(--font-display); }
.fleet-integration-card small { margin-top:.15rem; color:var(--gray-500); font-size:.68rem; }
.fleet-integration-error { margin-top:.25rem; color:#B91C1C; font-size:.67rem; line-height:1.4; }
.fleet-integration-actions { display:flex; grid-column:2/-1; justify-content:flex-end; gap:.4rem; }
.fleet-connection-result { min-height:0; padding:0; font-size:.72rem; line-height:1.45; }
.fleet-connection-result:empty { display:none; }
.fleet-connection-result.is-success,.fleet-connection-result.is-error { display:flex; flex-direction:column; gap:.15rem; padding:.65rem .75rem; border:1px solid; }
.fleet-connection-result.is-success { border-color:#86C998; background:#F0FDF4; color:#166534; }
.fleet-connection-result.is-error { border-color:#FCA5A5; background:#FEF2F2; color:#991B1B; }
.fleet-hardware-section { background:#FBFCF8!important; }
.fleet-hardware-test-row { display:flex; align-items:center; gap:.75rem; }
.fleet-hardware-result { color:var(--gray-500); font-size:.7rem; line-height:1.4; }
.fleet-hardware-result.is-success { color:#166534; font-weight:600; }
.fleet-hardware-result.is-error { color:#B91C1C; font-weight:600; }
.fleet-hardware-empty,.fleet-removed-note { display:flex; flex-direction:column; gap:.2rem; padding:.8rem; border:var(--border-light); background:var(--gray-100); }
.fleet-hardware-empty strong,.fleet-removed-note strong { font:700 .78rem var(--font-display); }
.fleet-hardware-empty span,.fleet-removed-note span { color:var(--gray-500); font-size:.7rem; line-height:1.45; }
.fleet-removed-note { margin:1rem 1.5rem; border-color:#FED7AA; background:#FFF7ED; }
.fleet-detail-body [data-fleet-remove] { margin-right:auto; }
@media(max-width:640px){.fleet-detail-body .fleet-panel-form>.detail-section,.fleet-detail-body>.detail-section,.fleet-detail-body .fleet-register-panel>.detail-section{padding:1rem}.fleet-detail-body>.fleet-vehicle-summary{margin:1rem 1rem 0}.fleet-detail-body>.fleet-warning{margin:1rem 1rem 0}.fleet-detail-body .fleet-dispatch-job{margin:1rem 1rem 0}.fleet-detail-body .fleet-panel-actions{align-items:stretch;padding:.85rem 1rem;flex-wrap:wrap}.fleet-detail-body .fleet-panel-actions .btn{flex:1;justify-content:center}.fleet-detail-body [data-fleet-retire]{width:100%;margin-right:0;flex-basis:100%!important}.fleet-detail-body .fleet-rank-row{grid-template-columns:32px 1fr}.fleet-detail-body .fleet-rank-row select{grid-column:1/-1}.fleet-panel-list-row{grid-template-columns:34px minmax(0,1fr)}.fleet-panel-list-icon{width:34px;height:34px}.fleet-panel-list-row>.badge,.fleet-panel-list-count{grid-column:2;justify-self:start}}
@media(max-width:640px){.fleet-telematics-panel>.detail-section{padding:1rem}.fleet-integration-card{grid-template-columns:34px minmax(0,1fr)}.fleet-integration-card>.fleet-telematics-state{grid-column:2}.fleet-integration-actions{grid-column:1/-1}.fleet-hardware-test-row{align-items:stretch;flex-direction:column}.fleet-hardware-test-row .btn{align-self:flex-start}.fleet-detail-body [data-fleet-remove]{width:100%;margin-right:0;flex-basis:100%!important}.fleet-removed-note{margin:1rem}}
.fleet-live-summary,.fleet-insight-grid{display:grid;grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.fleet-monitor-pane>.fleet-map-card,.fleet-live-table-card,.fleet-alert-card{grid-column:1/-1}.fleet-live-table{min-width:1120px}.fleet-live-table td{height:76px}.fleet-alert-list{display:flex;flex-direction:column}.fleet-alert-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:var(--border-light);background:var(--white)}.fleet-alert-row:last-child{border-bottom:0}.fleet-alert-row.is-critical{box-shadow:inset 4px 0 #B91C1C}.fleet-alert-row.is-warning{box-shadow:inset 4px 0 #D97706}.fleet-alert-row strong,.fleet-alert-row small{display:block}.fleet-alert-row strong{font:650 .8rem var(--font-display)}.fleet-alert-row small{margin-top:.2rem;color:var(--gray-500);font-size:.7rem;line-height:1.4}.fleet-insight-grid{margin-bottom:1rem}.fleet-live-summary .fleet-metric strong,.fleet-insight-grid .fleet-metric strong{font-size:1.6rem}.fleet-monitor-pane .fleet-map{height:420px}.status-private_use{background:#F3E8FF;color:#6B21A8}.status-offline{background:var(--gray-100);color:var(--gray-600)}.status-travelling{background:#DCFCE7;color:#166534}.status-idling,.status-stopped{background:#FEF3C7;color:#92400E}.status-on_site{background:#DBEAFE;color:#1E40AF}.status-charging{background:#ECFCCB;color:#3F6212}
@media(max-width:1000px){.fleet-live-summary,.fleet-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.fleet-live-summary,.fleet-insight-grid{grid-template-columns:1fr}.fleet-alert-row{grid-template-columns:10px minmax(0,1fr)}.fleet-alert-row .btn,.fleet-alert-row .status-badge{grid-column:2;justify-self:start}}

/* --------------------------------------------------------------------------
   PIN display / caller authentication
   -------------------------------------------------------------------------- */
.pin-display {
  display: flex;
  gap: 0.625rem;
  justify-content: center;
  margin: 1.25rem 0;
}
.pin-digit {
  width: 3.25rem;
  height: 4rem;
  border: 2px solid var(--black);
  border-radius: var(--radius);
  background: var(--lime);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--black);
}
.pin-card {
  border: var(--border);
  border-radius: var(--radius);
  background: var(--white);
  padding: 1.5rem;
  text-align: center;
}
.pin-timer {
  font-family: var(--font-display);
  font-size: 0.75rem;
  color: var(--gray-600);
  margin-top: 0.35rem;
}
.pin-verified {
  background: var(--lime);
  border: 1px solid var(--lime-dark);
  border-radius: var(--radius);
  padding: 0.75rem 1rem;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--black);
}

/* --------------------------------------------------------------------------
   Radius selector (contractor browse jobs)
   -------------------------------------------------------------------------- */
.radius-selector {
  display: flex;
  gap: 0.375rem;
  flex-wrap: wrap;
}
.radius-btn {
  min-width: 48px;
  justify-content: center;
  border-radius: var(--radius);
}
.radius-btn.active { background: var(--black); color: var(--white); border-color: var(--black); }

/* --------------------------------------------------------------------------
   Reuse job banner
   -------------------------------------------------------------------------- */
.reuse-banner {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  border: 2px dashed var(--gray-200);
  border-radius: var(--radius);
  padding: 0.875rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.875rem;
  background: var(--gray-100);
  cursor: pointer;
  transition: border-color var(--transition), background var(--transition);
}
.reuse-banner:hover { border-color: var(--black); background: var(--white); }
.reuse-banner-icon {
  width: 2.25rem;
  height: 2.25rem;
  background: var(--black);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--lime);
}
.reuse-banner-text { flex: 1; min-width: 0; }
.reuse-banner-title {
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--black);
}
.reuse-banner-sub { font-size: 0.75rem; color: var(--gray-600); margin-top: 0.1rem; }

/* --------------------------------------------------------------------------
   Admin sidebar callout
   -------------------------------------------------------------------------- */
.admin-sidebar-label {
  font-family: var(--font-display);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray-400);
  padding: 0.75rem 1rem 0.35rem;
}

/* Urgent / alert count badge in sidebar */
.sidebar-alert {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 0.25rem;
  background: #CC0000;
  color: #fff;
  border-radius: 20px;
  font-size: 0.5625rem;
  font-weight: 700;
  font-family: var(--font-display);
  margin-left: auto;
}

/* --------------------------------------------------------------------------
   Account page (self-service profile)
   -------------------------------------------------------------------------- */
.acct-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 720px) {
  .acct-grid { grid-template-columns: 1fr; }
}

.acct-avatar {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--black);
  color: var(--lime);
  font-family: var(--font-display);
  font-size: 1.375rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Document list items */
.doc-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0;
  border-bottom: var(--border-light);
}
.doc-item:last-child { border-bottom: none; }
.doc-item-icon {
  width: 2rem;
  height: 2rem;
  background: var(--gray-100);
  border: var(--border-light);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--gray-600);
}
.doc-item-info { flex: 1; min-width: 0; }
.doc-item-name {
  font-size: 0.8125rem;
  font-weight: 600;
  font-family: var(--font-display);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.doc-item-meta { font-size: 0.6875rem; color: var(--gray-600); margin-top: 0.1rem; }

/* --------------------------------------------------------------------------
   Admin user management cards
   -------------------------------------------------------------------------- */
.user-card-row {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.875rem 1rem;
  cursor: pointer;
  transition: background var(--transition);
  user-select: none;
}
.user-card-row:hover { background: var(--gray-100); }

.user-card-body {
  display: none;
  border-top: var(--border-light);
  padding: 1.25rem 1rem;
  flex-direction: column;
  gap: 1rem;
  background: var(--gray-100);
}
.user-card-body.open { display: flex; }

.user-card-section {
  background: var(--white);
  border: var(--border-light);
  border-radius: var(--radius);
  padding: 1rem;
}
.user-card-section-title {
  font-family: var(--font-display);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-600);
  margin-bottom: 0.75rem;
}

.user-card-chevron {
  color: var(--gray-400);
  transition: transform var(--transition);
  flex-shrink: 0;
}
.user-card-chevron.open { transform: rotate(180deg); }

/* inactive badge for user cards */
.user-inactive-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  font-family: var(--font-display);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.2em 0.55em;
  border-radius: 20px;
  background: #FEE2E2;
  color: #7F1D1D;
}

/* --------------------------------------------------------------------------
   Job Messaging
   -------------------------------------------------------------------------- */

/* Thread container */
.msg-thread {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  max-height: 320px;
  overflow-y: auto;
  padding: 0.75rem;
  background: var(--gray-100);
  border: var(--border-light);
  border-radius: var(--radius);
  margin-bottom: 0.625rem;
  scroll-behavior: smooth;
}

/* Empty / loading state */
.msg-empty {
  font-family: var(--font-display);
  font-size: 0.8125rem;
  color: var(--gray-400);
  text-align: center;
  padding: 1rem 0;
}

/* Individual bubble */
.msg-bubble {
  display: flex;
  flex-direction: column;
  max-width: 78%;
  gap: 0.2rem;
}
.msg-bubble.mine  { align-self: flex-end; align-items: flex-end; }
.msg-bubble.theirs { align-self: flex-start; align-items: flex-start; }

.msg-sender {
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--gray-600);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.1rem;
}
.msg-time {
  font-size: 0.6563rem;
  color: var(--gray-400);
  margin-top: 0.15rem;
}

.msg-bubble-body {
  padding: 0.5rem 0.75rem;
  border-radius: 12px;
  font-size: 0.875rem;
  line-height: 1.5;
  word-break: break-word;
}
.msg-bubble.mine .msg-bubble-body {
  background: var(--black);
  color: var(--white);
  border-bottom-right-radius: 3px;
}
.msg-bubble.theirs .msg-bubble-body {
  background: var(--white);
  color: var(--black);
  border: var(--border-light);
  border-bottom-left-radius: 3px;
}

/* Compose bar */
.msg-compose {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}
.msg-input { flex: 1; }
.msg-send-btn { flex-shrink: 0; white-space: nowrap; align-self: stretch; height: auto; }

/* Unread pill in detail panel title */
.msg-unread-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.3rem;
  border-radius: 20px;
  background: #EF4444;
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.625rem;
  font-weight: 800;
}

/* Sidebar nav message badge */
.sidebar-msg-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 0.25rem;
  border-radius: 20px;
  background: #EF4444;
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.5625rem;
  font-weight: 800;
  margin-left: auto;
  flex-shrink: 0;
}

/* Nav button unread dot */
.nav-msg-dot {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #EF4444;
  border: 2px solid var(--white);
}
.nav-user-btn { position: relative; } /* ensure dot positions correctly */

.nav-notification-menu { position:relative; }
.nav-notification-btn { position:relative; display:grid; place-items:center; width:2.35rem; height:2.35rem; border:var(--border); border-radius:var(--radius); background:var(--white); color:var(--black); cursor:pointer; transition:background var(--transition),color var(--transition); }
.nav-notification-btn:hover,.nav-notification-btn[aria-expanded="true"] { background:var(--black); color:var(--lime); }
.nav-notification-count { position:absolute; top:-.35rem; right:-.35rem; display:grid; place-items:center; min-width:1.15rem; height:1.15rem; padding:0 .22rem; border:2px solid var(--white); border-radius:1rem; background:#EF4444; color:#fff; font:800 .55rem/1 var(--font-display); }
.nav-notification-panel { position:absolute; z-index:140; top:100%; right:0; width:min(25rem,calc(100vw - 2rem)); border:var(--border); background:var(--white); box-shadow:6px 6px 0 var(--gray-400); }
.nav-notification-panel[hidden] { display:none; }
.nav-notification-panel header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:.85rem 1rem; border-bottom:var(--border); }
.nav-notification-panel header p { margin:.2rem 0 0; color:var(--gray-600); font-size:.7rem; }
.nav-notification-close { border:0; background:transparent; color:var(--gray-600); font-size:1.25rem; line-height:1; cursor:pointer; }
.nav-notification-list { max-height:min(31rem,65vh); overflow-y:auto; }
.nav-notification-item { position:relative; display:grid; grid-template-columns:2rem minmax(0,1fr) auto; gap:.7rem; align-items:start; width:100%; padding:.8rem 1rem; border:0; border-bottom:var(--border-light); background:var(--white); text-align:left; cursor:pointer; }
.nav-notification-item:hover,.nav-notification-item:focus-visible { background:var(--gray-100); outline:none; }
.nav-notification-item.unread { background:#faffec; box-shadow:inset 3px 0 var(--lime-dark); }
.nav-notification-item .notification-kind { width:2rem; height:2rem; flex-basis:2rem; border-radius:2px; font-size:.78rem; }
.nav-notification-item-copy { min-width:0; }
.nav-notification-item-copy strong,.nav-notification-item-copy span,.nav-notification-item-copy time { display:block; }
.nav-notification-item-copy strong { overflow:hidden; font:700 .75rem/1.3 var(--font-display); text-overflow:ellipsis; white-space:nowrap; }
.nav-notification-item-copy span { display:-webkit-box; overflow:hidden; margin-top:.15rem; color:var(--gray-600); font-size:.7rem; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.nav-notification-item-copy time { margin-top:.25rem; color:var(--gray-400); font-size:.62rem; }
.nav-notification-unread { width:.5rem; height:.5rem; margin-top:.25rem; border-radius:50%; background:#EF4444; }
.nav-notification-clear-one { align-self:center; width:1.6rem; height:1.6rem; border:0; background:transparent; color:var(--gray-400); cursor:pointer; font-size:1rem; }
.nav-notification-clear-one:hover { color:var(--black); }
.nav-notification-empty { padding:2rem 1rem; color:var(--gray-600); text-align:center; font-size:.78rem; }
.nav-notification-actions { display:grid; grid-template-columns:repeat(3,1fr); border-top:var(--border); }
.nav-notification-actions button { border:0; border-right:var(--border-light); background:var(--gray-100); padding:.65rem .35rem; font:700 .62rem/1 var(--font-display); text-transform:uppercase; letter-spacing:.04em; cursor:pointer; }
.nav-notification-actions button:last-child { border-right:0; }
.nav-notification-actions button:hover:not(:disabled) { background:var(--lime); }
.nav-notification-actions button:disabled { color:var(--gray-400); cursor:not-allowed; }
.nav-notification-centre-link { width:100%; border:0; border-top:var(--border); background:var(--black); color:var(--white); padding:.78rem 1rem; text-align:left; font:700 .7rem/1 var(--font-display); text-transform:uppercase; letter-spacing:.05em; cursor:pointer; }
.nav-notification-centre-link:hover { color:var(--lime); }

@media(max-width:520px) {
  .nav-notification-panel { position:fixed; top:var(--nav-height); right:.75rem; left:.75rem; width:auto; }
  .nav-user-btn > #nav-user-name,.nav-user-btn > .nav-sub-badge { display:none!important; }
}

/* --------------------------------------------------------------------------
   Notification Centre
   -------------------------------------------------------------------------- */
.notification-header p { margin:.35rem 0 0; color:var(--gray-500); font-size:.875rem; }
.notification-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; flex-wrap:wrap; }
.notification-layout { display:flex; flex-direction:column; gap:1.25rem; }
.notification-feed-card, .notification-preferences { overflow:hidden; }
.notification-table-card { overflow:hidden; background:var(--white); }
.notification-table-card-header { gap:1rem; flex-wrap:wrap; }
.notification-table-card-header p { margin:.3rem 0 0; color:var(--gray-500); font-size:.8125rem; line-height:1.45; }
.notification-table-toolbar { display:flex; align-items:center; gap:.65rem; padding:.75rem 1rem; border-bottom:var(--border-light); background:var(--gray-100); flex-wrap:wrap; }
.notification-table-toolbar label { margin:0; }
.notification-table-toolbar .input { width:210px; min-height:38px; height:38px; padding:.55rem .7rem; background:var(--white); font-size:.75rem; font-weight:600; }
.notification-filter-select .custom-select-trigger { min-width:168px; }
.notification-filter-select .custom-select-dropdown { z-index:70; }
.notification-table-scroll { overflow-x:auto; scrollbar-gutter:stable; }
.notification-table-scroll thead { position:sticky; top:0; z-index:2; }
.notification-table-card .admin-table th, .notification-table-card .admin-table td { border-bottom:var(--border-light); }
.notification-table-card .admin-table th { background:var(--gray-100); }
.notification-feed-table { min-width:900px; }
.notification-alert-table { min-width:1180px; }
.notification-feed-table td, .notification-alert-table td { padding-top:1rem; padding-bottom:1rem; vertical-align:middle; }
.notification-table-row { cursor:pointer; transition:background var(--transition); }
.notification-table-row:hover { background:var(--gray-100); }
.notification-table-row.unread { background:#faffec; }
.notification-table-row.is-selected { background:var(--black); color:var(--white); box-shadow:inset 4px 0 var(--lime); }
.notification-table-row.is-selected .notification-table-detail span,.notification-table-row.is-selected .notification-received span { color:var(--gray-400); }
.notification-table-row:focus { outline:2px solid var(--lime-dark); outline-offset:-2px; }
.notification-centre-workspace { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr); min-height:clamp(406px,calc(78vh - 281px),593px); }
.notification-centre-workspace.details-hidden { grid-template-columns:minmax(0,1fr); }
.notification-centre-list { display:flex; min-width:0; min-height:0; flex-direction:column; border-right:var(--border); }
.notification-centre-workspace.details-hidden .notification-centre-list { border-right:0; }
.notification-centre-list .notification-table-scroll { flex:1 1 auto; min-height:0; }
.notification-centre-list .notification-feed-table { height:100%; }
.notification-centre-list .notification-feed-table tbody:has(.admin-empty-cell),
.notification-centre-list .notification-feed-table tbody:has(.admin-empty-cell) tr { height:100%; }
.notification-centre-list .notification-feed-table .admin-empty-cell { vertical-align:middle; text-align:center; }
.notification-centre-list .notification-pagination { flex:0 0 auto; }
.notification-detail-panel { display:flex; padding:1.25rem; background:var(--gray-100); }
.notification-detail-panel[hidden] { display:none; }
.notification-detail-empty { display:flex; min-height:280px; flex:1; flex-direction:column; align-items:center; justify-content:center; gap:.3rem; color:var(--gray-500); text-align:center; font-size:.8rem; }
.notification-detail-empty strong { color:var(--black); font:700 .85rem var(--font-display); }
.notification-detail-empty span { max-width:230px; line-height:1.5; }
.notification-detail-content { display:flex; width:100%; flex-direction:column; gap:1rem; }
.notification-detail-content h2 { font:700 1.15rem/1.25 var(--font-display); }
.notification-detail-content p { color:var(--gray-600); font-size:.84rem; line-height:1.65; white-space:pre-wrap; }
.notification-detail-meta { display:flex; flex-wrap:wrap; gap:.4rem; padding-bottom:.85rem; border-bottom:var(--border-light); }
.notification-detail-meta span { background:var(--white); border:var(--border-light); padding:.25rem .45rem; font:700 .62rem var(--font-display); text-transform:uppercase; }
.notification-detail-content .btn { align-self:flex-start; }
@media(max-width:900px){.notification-centre-workspace{grid-template-columns:1fr;min-height:406px}.notification-centre-list{border-right:0}.notification-detail-panel{min-height:203px;border-top:var(--border)}}
.notification-table-detail { min-width:280px; max-width:520px; }
.notification-table-detail strong, .notification-table-detail span { display:block; }
.notification-table-detail strong { font:700 .8125rem/1.35 var(--font-display); }
.notification-table-detail span { margin-top:.2rem; color:var(--gray-600); font-size:.78rem; line-height:1.4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.notification-read-status { display:inline-flex; min-width:66px; justify-content:center; padding:.35em .7em; border:1px solid currentColor; border-radius:2px; font:700 .625rem/1 var(--font-display); letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.notification-read-status.unread { background:#FEF3C7; color:#92400E; }
.notification-read-status.read { background:var(--gray-100); color:var(--gray-600); }
.notification-table-type { display:flex; align-items:center; gap:.55rem; min-width:145px; font-size:.78rem; white-space:nowrap; }
.notification-table-type .notification-kind { width:1.8rem; height:1.8rem; flex-basis:1.8rem; border-radius:7px; font-size:.75rem; font-style:normal; }
.notification-received strong, .notification-received span { display:block; white-space:nowrap; }
.notification-received strong { font:650 .78rem var(--font-display); }
.notification-received span { margin-top:.2rem; color:var(--gray-500); font-size:.72rem; }
.notification-row-action { font:700 .7rem var(--font-display); text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; }
.notification-detail-toggle { white-space:nowrap; }
.notification-table-empty { display:flex; min-height:220px; flex-direction:column; align-items:center; justify-content:center; gap:.3rem; padding:2rem; text-align:center; }
.notification-table-empty strong { color:var(--black); font:700 .9rem var(--font-display); }
.notification-table-empty span { max-width:390px; color:var(--gray-500); font-size:.76rem; line-height:1.5; }
.notification-alert-row.is-off { background:var(--gray-100); }
.notification-alert-row.is-silenced td:first-child { box-shadow:inset 3px 0 0 #D4A72C; }
.notification-alert-row .notification-alert-tags, .notification-alert-row .notification-alert-codes { margin-top:0; }
.notification-alert-row .notification-alert-tags { min-width:180px; max-width:300px; }
.notification-alert-row .notification-alert-codes > div { min-width:180px; max-width:340px; }
.notification-silenced-note { display:block; margin-top:.35rem; color:#78350F; font-size:.62rem; white-space:nowrap; }
.notification-silence-actions, .notification-row-actions { display:flex; align-items:center; gap:.4rem; white-space:nowrap; }
.notification-silence-actions { flex-wrap:wrap; min-width:235px; }
.notification-silence-actions .input { width:92px; min-height:32px; height:32px; padding:.35rem .4rem; font-size:.68rem; }
.notification-row-actions { min-width:120px; }
.notification-table-card .admin-empty-cell strong, .notification-table-card .admin-empty-cell span { display:block; }
.notification-table-card .admin-empty-cell span { margin-top:.25rem; }
.notification-section-head { padding:1.15rem 1.15rem .9rem; border-bottom:var(--border-light); }
.notification-section-head p { margin:.35rem 0 0; color:var(--gray-500); font-size:.75rem; line-height:1.45; }
.notification-toolbar { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; padding:.8rem 1rem; border-bottom:var(--border-light); background:var(--gray-100); }
.notification-toolbar label { margin:0; }
.notification-toolbar .input { min-height:38px; height:38px; padding:.55rem .7rem; font-size:.75rem; background:var(--white); }
.notification-search { flex:1 1 260px; }
.notification-search .input { width:100%; }
.notification-result-count { margin-left:auto; color:var(--gray-500); font-size:.72rem; white-space:nowrap; }
.notification-pagination { margin:0; padding:.8rem 1rem; border:0; border-top:var(--border-light); border-radius:0; }
.notification-tabs { display:flex; gap:.25rem; padding:.75rem 1rem; border-bottom:var(--border-light); }
.notification-tabs button { border:0; background:transparent; padding:.55rem .8rem; border-radius:8px; font-family:var(--font-display); font-size:.75rem; font-weight:700; cursor:pointer; color:var(--gray-500); }
.notification-tabs button.active { background:var(--black); color:var(--lime); }
.notification-tabs button span { display:inline-flex; align-items:center; justify-content:center; min-width:1.2rem; height:1.2rem; margin-left:.25rem; border-radius:20px; background:var(--gray-200); color:var(--black); font-size:.625rem; }
.notification-item { width:100%; display:flex; align-items:flex-start; gap:.85rem; padding:1rem; border:0; border-bottom:var(--border-light); background:var(--white); color:var(--black); text-align:left; cursor:pointer; transition:background var(--transition); }
.notification-item:hover { background:var(--gray-100); }
.notification-item.unread { background:#faffec; }
.notification-kind { display:inline-flex; align-items:center; justify-content:center; width:2.25rem; height:2.25rem; flex:0 0 2.25rem; border-radius:10px; background:var(--black); color:var(--lime); font-family:var(--font-display); font-size:1rem; font-weight:800; }
.notification-kind.kind-quote-accepted { background:var(--lime); color:var(--black); }
.notification-kind.kind-quote-rejected, .notification-kind.kind-resolution-message { background:var(--gray-200); color:var(--black); }
.notification-copy { display:flex; flex:1; min-width:0; flex-direction:column; gap:.2rem; }
.notification-copy strong { font-family:var(--font-display); font-size:.8125rem; }
.notification-copy > span { color:var(--gray-600); font-size:.8125rem; line-height:1.45; }
.notification-copy time { color:var(--gray-400); font-size:.6875rem; margin-top:.15rem; }
.notification-item > i { width:8px; height:8px; margin-top:.3rem; border-radius:50%; background:#EF4444; flex-shrink:0; }
.notification-empty { display:flex; flex-direction:column; align-items:center; padding:3rem 1rem; color:var(--gray-500); text-align:center; }
.notification-empty strong { font-family:var(--font-display); color:var(--black); margin-bottom:.25rem; }
.notification-preferences { padding:0; }
.notification-preferences-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin:0; padding:1.15rem 1.15rem .9rem; border-bottom:var(--border-light); }
.notification-preferences-head p { max-width:720px; margin:.35rem 0 0; color:var(--gray-500); font-size:.75rem; line-height:1.45; }
.notification-alert-toggle { display:flex; align-items:center; gap:.45rem; min-width:96px; padding:.55rem .7rem; border:1px solid var(--gray-300); border-radius:9px; background:var(--white); color:var(--gray-600); font-family:var(--font-display); font-size:.6875rem; font-weight:700; cursor:pointer; }
.notification-alert-toggle span { width:9px; height:9px; border-radius:50%; background:var(--gray-400); }
.notification-alert-toggle.on { border-color:var(--black); background:var(--black); color:var(--lime); }
.notification-alert-toggle.on span { background:var(--lime); }
.notification-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; margin-bottom:1rem; }
.notification-category { display:flex; min-height:76px; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:.4rem; padding:.65rem; border:1px solid var(--gray-300); border-radius:10px; background:var(--white); color:var(--black); text-align:left; cursor:pointer; }
.notification-category svg { width:18px; height:18px; }
.notification-category span { font-family:var(--font-display); font-size:.625rem; font-weight:700; line-height:1.25; }
.notification-category.selected { border:2px solid var(--black); padding:calc(.65rem - 1px); background:var(--lime); }
.notification-alert-manager { overflow:visible; }
.notification-preferences .waste-picker-columns { max-height:none; overflow:visible; }
.notification-preferences .waste-picker-selection-panel { overflow:visible; }
.notification-preferences .waste-picker-selected { max-height:none; overflow:visible; }
.notification-preferences .waste-picker-row { padding:.65rem; }
.notification-save { width:100%; justify-content:center; margin-top:1rem; }
.notification-alert-list { display:flex; flex-direction:column; gap:.75rem; padding:1rem; }
.notification-alert-card { border:var(--border-light); border-radius:var(--radius); padding:.9rem; background:var(--white); }
.notification-alert-card.is-off { background:var(--gray-100); opacity:.82; }
.notification-alert-card.is-silenced { border-color:#D4A72C; }
.notification-alert-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; }
.notification-alert-card-head > div { display:flex; min-width:0; flex-direction:column; gap:.25rem; }
.notification-alert-card-head strong { font:700 .85rem/1.3 var(--font-display); overflow-wrap:anywhere; }
.notification-alert-status { width:max-content; padding:.16rem .45rem; border-radius:20px; background:#E8F8C5; color:#365314; font:700 .6rem/1.4 var(--font-display); text-transform:uppercase; letter-spacing:.04em; }
.notification-alert-status.off { background:var(--gray-200); color:var(--gray-600); }
.notification-alert-status.silenced { background:#FEF3C7; color:#78350F; }
.notification-alert-tags { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.75rem; }
.notification-alert-tags span { padding:.25rem .5rem; border-radius:20px; background:var(--black); color:var(--lime); font:650 .62rem var(--font-display); }
.notification-alert-codes { margin-top:.75rem; }
.notification-alert-codes > span { display:block; margin-bottom:.35rem; color:var(--gray-500); font:700 .6rem var(--font-display); text-transform:uppercase; letter-spacing:.06em; }
.notification-alert-codes > div { display:flex; flex-wrap:wrap; gap:.35rem; width:100%; overflow:visible; }
.notification-alert-codes code { display:inline-block; padding:.25rem .42rem; border-radius:4px; background:var(--gray-200); color:var(--black); font-size:.7rem; font-weight:700; white-space:nowrap; }
.notification-alert-actions { display:flex; flex-wrap:wrap; align-items:flex-end; gap:.45rem; padding-top:.8rem; margin-top:.8rem; border-top:var(--border-light); }
.notification-silence-select { display:flex; flex-direction:column; gap:.2rem; margin-left:auto; }
.notification-silence-select > span { color:var(--gray-500); font:650 .58rem var(--font-display); text-transform:uppercase; }
.notification-silence-select .input { width:104px; min-height:32px; height:32px; padding:.35rem .45rem; font-size:.68rem; }
.notification-alert-delete { color:#9B1C1C; }
.notification-alert-empty { display:flex; flex-direction:column; align-items:center; padding:2.25rem 1rem; border:1px dashed var(--gray-300); border-radius:var(--radius); text-align:center; }
.notification-alert-empty strong { font:700 .8rem var(--font-display); }
.notification-alert-empty span { margin-top:.25rem; color:var(--gray-500); font-size:.72rem; }
.notification-category-label { margin:1rem 0 .45rem; }
.notification-alert-modal-open { overflow:hidden; }
.notification-alert-modal-backdrop { z-index:1200; padding:1.25rem; }
.notification-alert-modal-backdrop:not(.open) { visibility:hidden; }
.notification-alert-modal { display:flex; flex-direction:column; width:min(940px,100%); max-width:940px; max-height:calc(100dvh - 2.5rem); overflow:hidden; background:var(--white); box-shadow:8px 8px 0 rgba(12,12,12,.35); }
.notification-alert-modal-header { flex:0 0 auto; align-items:flex-start; background:var(--gray-100); }
.notification-alert-modal-header h2 { margin:.2rem 0 0; font-size:1.25rem; }
.notification-alert-modal-header p { max-width:650px; margin:.35rem 0 0; color:var(--gray-600); font-size:.76rem; line-height:1.45; }
.notification-alert-modal-body { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:1.25rem; }
.notification-alert-modal .notification-category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.notification-alert-modal .waste-code-picker { overflow:visible; }
.notification-alert-modal .waste-picker-selected { max-height:none; overflow:visible; }
.notification-alert-modal-footer { display:flex; flex:0 0 auto; justify-content:flex-end; gap:.6rem; padding:.9rem 1.25rem; border-top:var(--border); background:var(--gray-100); }
@media (max-width:560px) {
  .notification-header { align-items:flex-start; }
  .notification-header-actions { justify-content:flex-start; }
  .notification-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .notification-preferences-head { flex-direction:column; }
  .notification-table-card-header .my-jobs-search-wrap { width:100%; margin-left:0; }
  .notification-table-toolbar > label, .notification-table-toolbar .input { width:100%; }
  .notification-toolbar { align-items:stretch; }
  .notification-toolbar label, .notification-toolbar .input { width:100%; }
  .notification-result-count { margin-left:0; }
  .notification-pagination { align-items:flex-start; }
  .notification-alert-actions { align-items:stretch; }
  .notification-silence-select { margin-left:0; }
  .notification-alert-modal-backdrop { align-items:stretch; padding:0; }
  .notification-alert-modal { width:100vw; max-height:100dvh; border:0; border-radius:0; box-shadow:none; }
  .notification-alert-modal .notification-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .notification-alert-modal-footer .btn { flex:1; justify-content:center; }
}

/* --------------------------------------------------------------------------
   Subscription — plan cards & usage meter
   -------------------------------------------------------------------------- */

/* Current plan banner */
.sub-current-plan-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border: 2px solid var(--black);
  border-radius: var(--radius);
  background: var(--white);
  margin-bottom: 1rem;
}

/* Plan badge pill */
.sub-plan-badge {
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.25em 0.75em;
  border-radius: 20px;
  white-space: nowrap;
}
.sub-plan-badge.free     { background: var(--gray-200); color: var(--gray-600); }
.sub-plan-badge.standard { background: var(--black);    color: var(--lime); }
.sub-plan-badge.premium  { background: var(--lime);     color: var(--black); }

/* Usage meter */
.sub-usage-meter-wrap {
  padding: 1rem 1.25rem;
  background: var(--white);
  border: var(--border-light);
  border-radius: var(--radius);
  margin-bottom: 1.5rem;
}
.sub-usage-track {
  height: 6px;
  background: var(--gray-200);
  border-radius: 20px;
  overflow: hidden;
}
.sub-usage-fill {
  height: 100%;
  background: var(--black);
  border-radius: 20px;
  transition: width 0.5s ease;
}
.sub-usage-fill-warn   { background: #F59E0B; }
.sub-usage-fill-danger { background: #EF4444; }

/* Plan cards grid */
.sub-plans-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.25rem;
}
@media (max-width: 800px) {
  .sub-plans-grid { grid-template-columns: 1fr; }
}

.sub-plan-card {
  position: relative;
  border: var(--border-light);
  border-radius: var(--radius);
  background: var(--white);
  padding: 1.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.sub-plan-card:hover {
  border-color: var(--black);
  box-shadow: 3px 3px 0 var(--black);
}
.sub-plan-card-current {
  border: 2px solid var(--black);
}
.sub-plan-card-highlight {
  border: 2px solid var(--lime);
}
.sub-plan-card-highlight:hover {
  box-shadow: 3px 3px 0 var(--lime-dark);
}

.sub-plan-popular-tag {
  position: absolute;
  top: -0.6rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--lime);
  color: var(--black);
  font-family: var(--font-display);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.2em 0.75em;
  border-radius: 20px;
  white-space: nowrap;
}

.sub-plan-name {
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-600);
}
.sub-plan-price {
  font-family: var(--font-display);
  font-size: 2.25rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: var(--black);
  line-height: 1;
}
.sub-plan-period {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--gray-600);
}
.sub-plan-limit {
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--black);
  padding: 0.35rem 0;
  border-top: var(--border-light);
  border-bottom: var(--border-light);
}
.sub-plan-features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
}
.sub-plan-features li {
  font-size: 0.8125rem;
  color: var(--gray-600);
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
}
.sub-feat-check {
  color: var(--black);
  font-weight: 700;
  flex-shrink: 0;
}
.sub-plan-current-label {
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
  color: var(--gray-600);
  padding: 0.5em;
  border: var(--border-light);
  border-radius: var(--radius);
}
.sub-plan-btn { margin-top: auto; }

/* --------------------------------------------------------------------------
   Admin — subscription & auth code enhancements
   -------------------------------------------------------------------------- */

/* Auth code / OTP display — 6 digits */
.otp-display {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  margin: 1.25rem 0;
}
.otp-digit {
  width: 2.75rem;
  height: 3.5rem;
  border: 2px solid var(--black);
  border-radius: var(--radius);
  background: var(--lime);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--black);
}
.otp-timer-bar {
  height: 4px;
  background: var(--gray-200);
  border-radius: 20px;
  overflow: hidden;
  margin: 0.25rem 0 0.5rem;
}
.otp-timer-fill {
  height: 100%;
  background: var(--lime-dark);
  border-radius: 20px;
  transition: width 1s linear;
}
.otp-timer-fill.urgent { background: #EF4444; }

/* Factor verification rows */
.factor-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-radius: var(--radius);
}
.factor-row + .factor-row { margin-top: 0.5rem; }
.factor-prompt {
  flex: 1;
  font-size: 0.8125rem;
  color: var(--black);
}
.factor-answer {
  font-family: var(--font-display);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--black);
  background: var(--lime);
  padding: 0.15em 0.6em;
  border-radius: 2px;
}

/* Admin subscription table row badges */
.sub-status-badge {
  font-family: var(--font-display);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.2em 0.6em;
  border-radius: 20px;
  white-space: nowrap;
}
.sub-status-badge.active    { background: #D1FAE5; color: #065F46; }
.sub-status-badge.cancelled { background: #FEE2E2; color: #7F1D1D; }
.sub-status-badge.past_due  { background: #FEF3C7; color: #92400E; }

/* User stats mini grid */
.user-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}
.user-stat-chip {
  background: var(--gray-100);
  border: var(--border-light);
  border-radius: var(--radius);
  padding: 0.5rem 0.625rem;
  text-align: center;
}
.user-stat-chip-val {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--black);
}
.user-stat-chip-label {
  font-size: 0.625rem;
  color: var(--gray-600);
  margin-top: 0.1rem;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ==========================================================================
   AI Assistant — button, sliding bar, chat, voice
   ========================================================================== */

/* ── Nav trigger button ──────────────────────────────────────────────────── */
.ai-assistant-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  border: var(--border);
  background: var(--white);
  cursor: pointer;
  color: var(--black);
  transition: background var(--transition), border-color var(--transition), color var(--transition);
  flex-shrink: 0;
  position: relative;
}
.ai-assistant-btn:hover { background: var(--gray-100); }
.ai-assistant-btn.active {
  background: var(--black);
  color: var(--lime);
  border-color: var(--black);
}
/* Animated dot indicator */
.ai-btn-dot {
  position: absolute;
  top: 0.175rem;
  right: 0.175rem;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--lime);
  border: 2px solid var(--white);
  display: none;
  animation: aiDotPulse 2.5s ease infinite;
}
.ai-assistant-btn.active .ai-btn-dot {
  display: block;
  border-color: var(--black);
}
@keyframes aiDotPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%       { transform: scale(1.3); opacity: 0.7; }
}

/* ── Sliding bar container ───────────────────────────────────────────────── */
.ai-bar {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  /* Use transform to slide from top for snappier feel */
  transition:
    max-height 0.36s cubic-bezier(0.4, 0, 0.2, 1),
    opacity    0.22s ease;
  background: var(--black);
  border-bottom: 2px solid var(--lime);
  flex-shrink: 0; /* never compress — always full height when open */
  z-index: 10;
}
.ai-bar.open {
  max-height: 340px;
  opacity: 1;
}

.ai-bar-inner {
  display: grid;
  grid-template-columns: 2fr 3fr;
  height: 320px;
}

/* ── Left panel: stats + quick actions ──────────────────────────────────── */
.ai-bar-left {
  padding: 1.125rem 1.5rem 1rem;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  overflow: hidden;
}

.ai-bar-heading {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.ai-bar-heading-label {
  font-family: var(--font-display);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lime);
}
.ai-bar-heading-dot {
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: var(--lime);
  animation: aiPulseDot 2s ease infinite;
  flex-shrink: 0;
}
@keyframes aiPulseDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.35; transform: scale(1.4); }
}
.ai-bar-heading-shortcut {
  margin-left: auto;
  font-family: var(--font-display);
  font-size: 0.575rem;
  color: rgba(255, 255, 255, 0.2);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* Stats 2×2 grid */
.ai-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.4rem;
}
.ai-stat {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 3px;
  padding: 0.55rem 0.7rem;
}
.ai-stat-value {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: -0.04em;
  line-height: 1;
  margin-bottom: 0.175rem;
}
.ai-stat-value.ai-lime { color: var(--lime); }
.ai-stat-label {
  font-family: var(--font-display);
  font-size: 0.6rem;
  color: rgba(255, 255, 255, 0.35);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.3;
}

/* Quick-action chips */
.ai-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: auto;
}
.ai-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.275rem 0.6rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 20px;
  background: transparent;
  color: rgba(255, 255, 255, 0.6);
  font-family: var(--font-display);
  font-size: 0.6875rem;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.14s, color 0.14s, background 0.14s;
  white-space: nowrap;
  line-height: 1;
}
.ai-chip:hover {
  border-color: var(--lime);
  color: var(--lime);
  background: rgba(202, 255, 0, 0.05);
}
.ai-chip svg { flex-shrink: 0; }

/* ── Right panel: chat ───────────────────────────────────────────────────── */
.ai-bar-right {
  display: flex;
  flex-direction: column;
  height: 320px;
  overflow: hidden;
}

.ai-chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 0.875rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  scroll-behavior: smooth;
}
.ai-chat-messages::-webkit-scrollbar { width: 3px; }
.ai-chat-messages::-webkit-scrollbar-track { background: transparent; }
.ai-chat-messages::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.18); border-radius: 3px; }

/* Individual message row */
.ai-msg {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  max-width: 92%;
}
.ai-msg.ai-msg-user {
  align-self: flex-end;
  flex-direction: row-reverse;
}
.ai-msg-avatar {
  width: 1.375rem;
  height: 1.375rem;
  border-radius: 50%;
  background: rgba(202, 255, 0, 0.12);
  border: 1px solid rgba(202, 255, 0, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.5rem;
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--lime);
  letter-spacing: 0;
}
.ai-msg.ai-msg-user .ai-msg-avatar {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.65);
}
.ai-msg-bubble {
  padding: 0.45rem 0.7rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  max-width: 100%;
}
.ai-msg.ai-msg-assistant .ai-msg-bubble {
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 2px 5px 5px 5px;
}
.ai-msg.ai-msg-user .ai-msg-bubble {
  background: var(--lime);
  color: var(--black);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.8rem;
  border-radius: 5px 2px 5px 5px;
}

/* Typing indicator */
.ai-typing-row {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.ai-typing-dots {
  display: flex;
  gap: 0.2rem;
  padding: 0.45rem 0.65rem;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 2px 5px 5px 5px;
}
.ai-typing-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  animation: aiTypingBounce 1.2s ease infinite;
}
.ai-typing-dot:nth-child(2) { animation-delay: 0.18s; }
.ai-typing-dot:nth-child(3) { animation-delay: 0.36s; }
@keyframes aiTypingBounce {
  0%, 60%, 100% { transform: translateY(0);    opacity: 0.4; }
  30%            { transform: translateY(-4px); opacity: 1;   }
}

/* ── Chat input row ──────────────────────────────────────────────────────── */
.ai-chat-input-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.65rem 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(0, 0, 0, 0.25);
  flex-shrink: 0;
}
.ai-chat-input {
  flex: 1;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 20px;
  padding: 0.4rem 0.95rem;
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--white);
  outline: none;
  transition: border-color 0.15s, background 0.15s;
  min-width: 0;
}
.ai-chat-input::placeholder { color: rgba(255, 255, 255, 0.28); }
.ai-chat-input:focus {
  border-color: rgba(202, 255, 0, 0.45);
  background: rgba(255, 255, 255, 0.08);
}
.ai-chat-send-btn {
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 50%;
  background: var(--lime);
  color: var(--black);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.14s, transform 0.14s;
  flex-shrink: 0;
}
.ai-chat-send-btn:hover { background: var(--lime-dark); transform: scale(1.06); }
.ai-chat-send-btn:disabled {
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.3);
  cursor: not-allowed;
  transform: none;
}
/* Voice button (contractors only) */
.ai-voice-btn {
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.13);
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.14s, color 0.14s, border-color 0.14s;
  flex-shrink: 0;
}
.ai-voice-btn:hover { background: rgba(255,255,255,0.12); color: var(--white); }
.ai-voice-btn.ai-listening {
  background: rgba(255, 60, 60, 0.18);
  border-color: rgba(255, 60, 60, 0.45);
  color: #ff7b7b;
  animation: aiVoicePulse 0.9s ease infinite;
}
@keyframes aiVoicePulse {
  0%, 100% { box-shadow: 0 0 0 0   rgba(255, 60, 60, 0.3); }
  50%       { box-shadow: 0 0 0 5px rgba(255, 60, 60, 0);   }
}

/* ── Responsive — collapse to single column on mobile ───────────────────── */
@media (max-width: 900px) {
  .ai-bar-inner { grid-template-columns: 1fr; }
  .ai-bar-left  { display: none; }
  .ai-bar.open  { max-height: 260px; }
  .ai-bar-right { height: 240px; }
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 640px) {
  .category-grid { grid-template-columns: repeat(2, 1fr); }
  .wizard-location-grid { grid-template-columns: 1fr; }
  .wizard-tab .step-title { display: none; }
  .nav-links { display: none; }
  .footer-inner { flex-direction: column; align-items: flex-start; }
  .stat-cell { flex-basis: 40%; }   /* .stats-grid is flex — 2 cells per row */
  .resolution-type-grid { grid-template-columns: repeat(2, 1fr); }
  .user-stats-grid { grid-template-columns: repeat(2, 1fr); }
}
/* Official List of Waste item picker */
.waste-code-picker{width:100%;max-width:none;box-sizing:border-box;overflow:hidden;margin-top:1rem;border:var(--border-light);border-radius:var(--radius);padding:1rem;background:var(--white)}
.waste-code-picker[hidden]{display:none}
.waste-picker-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.75rem}
.waste-picker-help{font-size:.75rem;color:var(--gray-600);line-height:1.45}
.waste-picker-count{font-family:var(--font-display);font-size:.6875rem;font-weight:700;background:var(--black);color:var(--lime);padding:.2rem .55rem;border-radius:20px;white-space:nowrap}
.waste-picker-workspace{width:100%;min-width:0}
.waste-picker-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;align-items:stretch;width:100%;min-width:0}
.waste-picker-columns:not(.has-selection){grid-template-columns:1fr}
.waste-picker-browser,.waste-picker-selection-panel{width:100%;min-width:0;box-sizing:border-box}
.waste-picker-filters{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:.85rem;margin-bottom:.65rem;width:100%;min-width:0}
.waste-picker-filters .input{min-height:40px;font-size:.8125rem}
.waste-picker-hazard-select{width:100%;min-width:0}.waste-picker-filter-trigger{width:100%;height:40px;min-width:0;padding:.55rem .8rem}.waste-picker-filter-trigger:disabled{cursor:not-allowed;background:var(--gray-100);color:var(--gray-400);opacity:.72}.waste-picker-hazard-dropdown{width:100%;max-width:none}
.waste-picker-selection-panel{overflow:hidden;border:var(--border-light);border-radius:var(--radius);background:var(--gray-100);padding:.75rem}
.waste-picker-selection-panel[hidden]{display:none}
.waste-picker-panel-title{font:700 .72rem/1 var(--font-display);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.65rem}
.waste-picker-selected{display:flex;flex-direction:column;gap:.6rem;max-height:520px;overflow:auto;padding-right:.2rem}
.waste-picker-results{max-height:520px;overflow:auto;border:var(--border-light);border-radius:var(--radius);background:var(--gray-100)}
.waste-picker-results,.waste-picker-selected{scrollbar-width:thin;scrollbar-color:var(--black) var(--gray-200)}
.waste-picker-results::-webkit-scrollbar,.waste-picker-selected::-webkit-scrollbar{width:9px}
.waste-picker-results::-webkit-scrollbar-track,.waste-picker-selected::-webkit-scrollbar-track{background:var(--gray-200);border-radius:10px}
.waste-picker-results::-webkit-scrollbar-thumb,.waste-picker-selected::-webkit-scrollbar-thumb{background:var(--black);border:2px solid var(--gray-200);border-radius:10px}
.waste-picker-results::-webkit-scrollbar-thumb:hover,.waste-picker-selected::-webkit-scrollbar-thumb:hover{background:var(--lime-dark)}
.waste-picker-row{width:100%;border:0;border-bottom:var(--border-light);background:var(--white);display:flex;align-items:center;gap:.65rem;padding:.7rem .75rem;text-align:left;cursor:pointer;color:var(--black)}
.waste-picker-row:last-child{border-bottom:0}.waste-picker-row:hover,.waste-picker-row:focus-visible{background:#F7FEE7}.waste-picker-row.selected{background:#F3FBD6}
.waste-picker-check{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;padding:0;border-radius:50%;background:var(--black);color:var(--lime);line-height:1}
.waste-picker-check svg{display:block;width:18px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.waste-picker-check .waste-picker-tick{width:16px;height:16px}
.waste-picker-copy{flex:1;min-width:0}.waste-picker-copy strong{display:block;font:600 .8rem/1.35 var(--font-display)}.waste-picker-copy small{display:block;color:var(--gray-600);font-size:.68rem;margin-top:.15rem}
.waste-picker-row code{font-size:.72rem;font-weight:700;white-space:nowrap;background:var(--black);color:var(--lime);padding:.2rem .38rem;border-radius:3px}
.waste-picker-empty{padding:1rem;color:var(--gray-600);font-size:.78rem;text-align:center}.waste-picker-error{color:#9B1C1C}
.waste-selected-card{background:var(--white);border:var(--border-light);border-radius:var(--radius);padding:.75rem}
.waste-selected-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem;padding-bottom:.55rem;margin-bottom:.6rem;border-bottom:var(--border-light)}
.waste-selected-head strong{display:block;font:650 .82rem/1.3 var(--font-display)}
.waste-selected-head span{display:block;font-size:.68rem;color:var(--gray-500);margin-top:.15rem}
.waste-selected-remove{border:0;background:none;color:#9B1C1C;font:600 .7rem var(--font-display);cursor:pointer;padding:.15rem}
.funnel-selected-type{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:.7rem;align-items:center;background:var(--white);border:var(--border-light);border-radius:var(--radius);padding:.7rem}
.funnel-selected-type strong,.funnel-selected-type div>span{display:block}.funnel-selected-type strong{font:650 .78rem/1.3 var(--font-display)}.funnel-selected-type div>span{font-size:.66rem;color:var(--gray-500);margin-top:.12rem}
.funnel-details-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.funnel-details-intro .label{margin-bottom:.25rem}.funnel-details-intro p:last-child{max-width:650px;font-size:.8rem;line-height:1.5;color:var(--gray-600)}
.funnel-detail-toolbar{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:.75rem;margin-bottom:.75rem}.funnel-detail-toolbar .input,.funnel-detail-toolbar .custom-select-trigger{width:100%;height:40px;min-width:0}.funnel-detail-toolbar .custom-select-dropdown{width:100%;max-width:none}
.funnel-waste-details{display:flex;flex-direction:column;gap:.65rem;max-height:720px;overflow:auto;padding-right:.2rem;margin-bottom:1.15rem;scrollbar-width:thin;scrollbar-color:var(--black) var(--gray-200)}.funnel-detail-card{padding:.9rem}.funnel-detail-card .waste-selected-head{margin-bottom:.75rem}.funnel-item-number{font:700 .62rem/1 var(--font-display)!important;letter-spacing:.08em;text-transform:uppercase;color:var(--lime-dark)!important;margin:0 0 .28rem!important}.funnel-item-fields{display:block}.funnel-item-fields textarea{min-height:84px;resize:vertical}.funnel-item-fields .field-label{font-size:.65rem}.funnel-item-fields .input{font-size:.78rem;padding:.55rem .65rem}
.waste-selected-fields{display:grid;grid-template-columns:130px minmax(130px,.65fr) minmax(180px,1fr);gap:.6rem;align-items:end}
.waste-description-field{grid-column:1/-1}.waste-description-field textarea{resize:vertical;min-height:58px}
.waste-selected-fields .field-label{font-size:.62rem}.waste-selected-fields .input{min-height:38px;font-size:.78rem;padding:.55rem .65rem}
.quantity-control{height:38px;display:grid;grid-template-columns:34px minmax(45px,1fr) 34px;border:var(--border-light);border-radius:var(--radius);overflow:hidden;background:var(--white)}
.quantity-control button{border:0;background:var(--gray-100);font:700 1rem var(--font-display);cursor:pointer}.quantity-control button:hover{background:var(--lime)}
.quantity-control input{width:100%;min-width:0;border:0;border-left:var(--border-light);border-right:var(--border-light);text-align:center;font:700 .82rem var(--font-display);appearance:textfield}
.quantity-control input::-webkit-inner-spin-button{appearance:none}
@media(max-width:980px){.waste-picker-columns{grid-template-columns:1fr}.waste-picker-results{max-height:300px}.waste-picker-selected{max-height:none}}
@media(max-width:600px){.waste-picker-filters,.funnel-detail-toolbar{grid-template-columns:1fr}.waste-picker-row{align-items:flex-start;flex-wrap:wrap}.waste-picker-copy{flex-basis:calc(100% - 40px)}.waste-selected-fields{grid-template-columns:1fr 1fr}.waste-size-field,.waste-description-field{grid-column:1/-1}.funnel-details-intro{flex-direction:column}.funnel-item-fields{grid-template-columns:1fr}.funnel-item-fields .waste-description-field{grid-column:1/-1}}
.choice-toggle{display:inline-grid;grid-template-columns:1fr 1fr;border:var(--border);border-radius:var(--radius);overflow:hidden;background:var(--white)}
.choice-toggle button{min-width:130px;border:0;border-right:var(--border);padding:.62rem .9rem;background:var(--white);font:650 .78rem var(--font-display);cursor:pointer}.choice-toggle button:last-child{border-right:0}.choice-toggle button.is-active{background:var(--black);color:var(--lime)}
.collection-address-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1rem 0 .45rem}
.completion-modal{width:min(760px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}
.completion-section{padding:1rem 0;border-bottom:var(--border-light)}.completion-section:first-child{padding-top:0}.completion-section p{font-size:.78rem;color:var(--gray-600);margin:.25rem 0 .75rem}
.completion-photo-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100px;border:1.5px dashed var(--gray-300);border-radius:var(--radius);background:var(--gray-100);cursor:pointer;text-align:center}.completion-photo-drop:hover{border-color:var(--lime-dark);background:#F7FEE7}.completion-photo-drop input{display:none}.completion-photo-drop strong{font:700 .82rem var(--font-display)}.completion-photo-drop span{font-size:.7rem;color:var(--gray-500);margin-top:.2rem}
.signature-label-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.signature-pad{display:block;width:100%;height:145px;border:var(--border);border-radius:var(--radius);background:linear-gradient(to bottom,transparent 78%,var(--gray-200) 78%,var(--gray-200) 79%,transparent 79%),var(--white);touch-action:none;cursor:crosshair}
.is-disabled .signature-pad{opacity:.35;pointer-events:none}.availability-check{display:flex;gap:.65rem;align-items:flex-start;padding:.7rem;border:var(--border-light);border-radius:var(--radius);margin-bottom:.75rem;cursor:pointer}.availability-check input{margin-top:.2rem;accent-color:var(--lime-dark)}.availability-check strong,.availability-check small{display:block}.availability-check strong{font:650 .78rem var(--font-display)}.availability-check small{font-size:.7rem;color:var(--gray-500);margin-top:.15rem}
.saved-signature-card{display:grid;grid-template-columns:1fr 150px;gap:1rem;align-items:center;padding:.75rem;border:1px solid var(--lime-dark);border-radius:var(--radius);background:#F7FEE7;margin-bottom:.65rem}.saved-signature-card strong,.saved-signature-card span{display:block}.saved-signature-card strong{font:650 .78rem var(--font-display)}.saved-signature-card span{font-size:.7rem;color:var(--gray-600);margin-top:.2rem}.saved-signature-card img{width:100%;height:60px;object-fit:contain;background:var(--white);border:var(--border-light)}
.completion-actions{display:flex;justify-content:flex-end;gap:.6rem;padding-top:1rem}.signature-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.signature-evidence-grid>div{border:var(--border-light);border-radius:var(--radius);padding:.7rem;background:var(--white)}.signature-evidence-grid img{display:block;width:100%;height:90px;object-fit:contain;margin-top:.4rem}.signature-unavailable{height:90px;display:grid;place-items:center;color:var(--gray-500);font-size:.75rem;background:var(--gray-100);margin-top:.4rem}
.collection-mismatch-button,.mismatch-submit{background:#FFF7ED;border:1px solid #EA580C;color:#9A3412;font-family:var(--font-display);font-weight:700}.collection-mismatch-button:hover,.mismatch-submit:hover{background:#EA580C;color:var(--white)}
.collection-mismatch-alert{padding:1rem;border:1px solid #F59E0B;border-left:4px solid #EA580C;background:#FFFBEB}.collection-mismatch-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.collection-mismatch-heading strong,.collection-mismatch-heading span{display:block}.collection-mismatch-heading strong{font:700 .85rem/1.4 var(--font-display);color:#7C2D12}.collection-mismatch-heading>div>span{margin-top:.2rem;color:#9A3412;font-size:.68rem}.collection-mismatch-copy{margin-top:.8rem;padding-top:.7rem;border-top:1px solid #FED7AA}.collection-mismatch-copy>span{display:block;color:#9A3412;font:700 .62rem var(--font-display);letter-spacing:.06em;text-transform:uppercase}.collection-mismatch-copy p{margin:.25rem 0 0;color:#431407;font-size:.78rem;line-height:1.55;white-space:pre-wrap}.collection-mismatch-photos{margin-top:.8rem}.collection-mismatch-no-photos{margin:.7rem 0 0;color:#9A3412;font-size:.7rem}
.mismatch-modal{width:min(760px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}.mismatch-expected{padding:.85rem;border:var(--border-light);background:var(--gray-100)}.mismatch-expected p{margin:.25rem 0 0;color:var(--gray-700);font-size:.78rem;line-height:1.5}.mismatch-description-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.mismatch-description-head>div{flex:1}.mismatch-description-head p{margin:.25rem 0 .75rem}.mismatch-description-head .btn{flex:0 0 auto}.mismatch-ai-status,.mismatch-photo-help{margin:.4rem 0 0;color:var(--gray-500);font-size:.68rem;line-height:1.4}.mismatch-photo-actions{display:flex;gap:.5rem;flex-wrap:wrap}.mismatch-photo-actions input{display:none}.mismatch-photo-actions .btn{cursor:pointer}.mismatch-photo-actions+.photo-preview-grid{margin-top:.75rem}
@media(max-width:600px){.saved-signature-card,.signature-evidence-grid{grid-template-columns:1fr}.completion-actions{flex-direction:column-reverse}.completion-actions .btn{width:100%}}
@media(max-width:600px){.collection-mismatch-heading,.mismatch-description-head{flex-direction:column}.mismatch-description-head .btn,.mismatch-photo-actions,.mismatch-photo-actions .btn{width:100%}.mismatch-photo-actions .btn{justify-content:center}}
.signature-profile-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.5fr);gap:1rem}.saved-profile-signature{height:145px;border:var(--border-light);border-radius:var(--radius);margin-top:.35rem;background:var(--gray-100);padding:.5rem}.saved-profile-signature img{width:100%;height:100%;object-fit:contain}
@media(max-width:760px){.signature-profile-grid{grid-template-columns:1fr}}

/* --------------------------------------------------------------------------
   Responsive application shell and data presentation
   -------------------------------------------------------------------------- */
.sidebar-scrim { display:none; }
.responsive-table-region {
  max-width:100%;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  scrollbar-color:var(--black) var(--gray-200);
}
.responsive-table-region:focus-visible { outline:2px solid var(--lime-dark); outline-offset:-2px; }

@media (max-width:1024px) and (min-width:641px) {
  .responsive-table-region::before {
    content:"Swipe sideways to view all columns →";
    display:block;
    position:sticky;
    left:0;
    width:max-content;
    padding:.4rem .75rem;
    color:var(--gray-600);
    background:var(--gray-100);
    border-bottom:var(--border-light);
    font:600 .625rem var(--font-display);
    letter-spacing:.06em;
    text-transform:uppercase;
  }
}

@media (max-width:900px) {
  body[data-page="dashboard"], body[data-page="admin"] { height:100dvh; overflow:hidden; }
  body.sidebar-open { overscroll-behavior:none; }
  .dashboard-layout { grid-template-columns:1fr; height:calc(100dvh - var(--nav-height)); }
  .dash-right, .dash-main, .dash-scroll-area { width:100%; min-width:0; }
  body[data-page] .dashboard-layout > .sidebar {
    display:flex;
    position:fixed;
    inset:var(--nav-height) auto 0 0;
    width:min(86vw,320px);
    height:auto;
    z-index:160;
    transform:translateX(-102%);
    visibility:hidden;
    box-shadow:12px 0 28px rgba(0,0,0,.2);
    transition:transform var(--transition), visibility 0s linear .18s;
  }
  body[data-page] .dashboard-layout > .sidebar.open {
    transform:translateX(0);
    visibility:visible;
    transition:transform var(--transition), visibility 0s;
  }
  .sidebar-scrim {
    display:block;
    position:fixed;
    inset:var(--nav-height) 0 0;
    z-index:150;
    width:auto;
    height:auto;
    border:0;
    background:rgba(12,12,12,.46);
    opacity:0;
    visibility:hidden;
    cursor:pointer;
    transition:opacity var(--transition), visibility 0s linear .18s;
  }
  .sidebar-scrim.open { opacity:1; visibility:visible; transition:opacity var(--transition), visibility 0s; }
  .sidebar-toggle { display:flex; width:2.5rem; height:2.5rem; flex:0 0 2.5rem; }
  #dash-content { padding:clamp(.875rem,3.5vw,1.25rem); }
  .dash-header { margin-bottom:1rem; }
  .nav-inner { padding-inline:clamp(.75rem,3vw,1.25rem); }
  body[data-page="dashboard"] .dashboard-nav-inner {
    padding-inline:20px;
  }
  .dashboard-nav-actions { gap:clamp(.35rem,1.2vw,.5rem); }
  .nav-user-dropdown { max-width:calc(100vw - 1.5rem); }
  .detail-panel, .insights-panel { width:100vw; max-width:100vw; }
  .modal { max-height:calc(100dvh - 1.5rem); overflow-y:auto; }
}

@media (max-width:640px) {
  .container { padding-inline:1rem; }
  .nav-inner { gap:.5rem; }
  body[data-page="dashboard"] .nav-user-btn > #nav-user-name,
  body[data-page="dashboard"] .nav-sub-badge,
  body[data-page="admin"] #nav-user-name,
  body[data-page="admin"] #employee-role-badge { display:none!important; }
  body[data-page="admin"] .nav-inner > div:last-child { gap:.25rem!important; }
  body[data-page="admin"] #btn-logout { padding-inline:.65rem; }
  .ai-assistant-btn { width:2.5rem; height:2.5rem; }
  .responsive-table-region {
    max-height:none!important;
    overflow:visible!important;
    scrollbar-gutter:auto!important;
    background:transparent;
  }
  .responsive-table-region table[data-responsive-ready="true"] {
    display:block;
    width:100%!important;
    min-width:0!important;
    border-collapse:separate;
  }
  .responsive-table-region table[data-responsive-ready="true"] thead {
    position:absolute!important;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  .responsive-table-region table[data-responsive-ready="true"] tbody { display:block; }
  .responsive-table-region table[data-responsive-ready="true"] tbody + tbody { margin-top:.75rem; }
  .responsive-table-region table[data-responsive-ready="true"] tbody tr {
    display:grid;
    width:100%;
    margin-bottom:.75rem;
    border:var(--border);
    border-radius:var(--radius);
    background:var(--white);
    overflow:hidden;
  }
  .responsive-table-region table[data-responsive-ready="true"] tbody tr[hidden] { display:none; }
  .responsive-table-region table[data-responsive-ready="true"] tbody td {
    display:grid;
    grid-template-columns:minmax(88px,34%) minmax(0,1fr);
    align-items:start;
    gap:.65rem;
    width:100%!important;
    max-width:none!important;
    min-width:0;
    padding:.65rem .75rem!important;
    border:0!important;
    border-bottom:var(--border-light)!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
    text-align:left!important;
  }
  .responsive-table-region table[data-responsive-ready="true"] tbody td:last-child { border-bottom:0!important; }
  .responsive-table-region table[data-responsive-ready="true"] tbody td::before {
    content:attr(data-label);
    color:var(--gray-500);
    font:700 .625rem/1.4 var(--font-display);
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .responsive-table-region table[data-responsive-ready="true"] tbody td[colspan] {
    display:block;
    text-align:center!important;
  }
  .responsive-table-region table[data-responsive-ready="true"] tbody td[colspan]::before { content:none; }
  .responsive-table-region .my-quotes-row-actions,
  .responsive-table-region .waste-notes-row-actions,
  .responsive-table-region .invoices-row-actions { flex-wrap:wrap; white-space:normal; }
  .responsive-table-region td .btn { min-height:2.5rem; }
  .stats-row, .ledger-summary-grid, .stats-grid.service-insights-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .card-header { align-items:flex-start; flex-wrap:wrap; }
  .wizard-footer { align-items:stretch; flex-direction:column; gap:.75rem; }
  .wizard-footer .btn { width:100%; justify-content:center; min-height:2.75rem; }
  .choice-toggle { display:grid; width:100%; }
  .choice-toggle button { min-width:0; }
  #dash-content [style*="display:grid"][style*="grid-template-columns"],
  .detail-panel [style*="display:grid"][style*="grid-template-columns"],
  .insights-panel [style*="display:grid"][style*="grid-template-columns"],
  .modal [style*="display:grid"][style*="grid-template-columns"],
  #receipt-modal-overlay [style*="display:grid"][style*="grid-template-columns"] {
    grid-template-columns:1fr!important;
  }
  #dash-content .input, .modal .input { min-width:0; max-width:100%; }
  .detail-panel-header, .detail-panel-body, .insights-panel-header, .insights-panel-body { padding-inline:1rem; }
  .wizard-tab { padding:.75rem .4rem; }
  body[data-page="index"] .nav .btn { padding-inline:.7rem; font-size:.6875rem; }
}

@media (max-width:380px) {
  .nav-logo { font-size:1rem; }
  body[data-page="admin"] #btn-logout { font-size:.6875rem; }
  .stats-row, .ledger-summary-grid, .stats-grid.service-insights-stats { grid-template-columns:1fr; }
}

/* Administrator email workspace */
.email-subtitle{font-size:.8rem;color:var(--gray-600);margin-top:.35rem}.email-header-actions{display:flex;gap:.55rem}.email-health{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border:1px solid;margin-bottom:1rem;background:var(--white)}.email-health>div{display:flex;flex-direction:column;gap:.2rem}.email-health strong{font:700 .82rem var(--font-display)}.email-health span{font-size:.72rem;color:var(--gray-600)}.email-health.is-healthy{border-color:#86B91C}.email-health.is-warning{border-color:#F59E0B;background:#FFFBEB}.email-compose{margin-bottom:1rem}.email-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.email-span{grid-column:1/-1}.email-code{font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.email-form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.email-form-actions span{font-size:.7rem;color:var(--gray-600)}.email-tabs{display:flex;align-items:center;border:var(--border);background:var(--white);margin-bottom:.7rem;overflow:hidden}.email-tabs>button{border:0;border-right:var(--border-light);background:transparent;padding:.7rem 1rem;font:700 .7rem var(--font-display);text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.email-tabs>button.active{background:var(--black);color:var(--lime)}.email-search{margin-left:auto;padding:.35rem;width:min(340px,40%)}.email-search .input{height:34px}.email-layout{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(430px,1.2fr);gap:.8rem;min-height:620px;margin-bottom:1rem}.email-list,.email-detail{overflow:hidden}.email-list{max-height:720px;overflow-y:auto}.email-loading,.email-empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;text-align:center;color:var(--gray-500);padding:1rem}.email-empty strong{color:var(--black);font:700 .9rem var(--font-display)}.email-empty span{font-size:.75rem}.email-row{width:100%;display:flex;flex-direction:column;gap:.26rem;padding:.8rem;border:0;border-bottom:var(--border-light);background:var(--white);text-align:left;cursor:pointer}.email-row:hover,.email-row.active{background:#F7FEE7}.email-row.active{box-shadow:inset 3px 0 var(--lime-dark)}.email-row-top{display:flex;justify-content:space-between;gap:.7rem}.email-row-top strong{font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.email-row-top time{font-size:.62rem;color:var(--gray-500);white-space:nowrap}.email-row-subject{font:700 .78rem var(--font-display)}.email-row-preview{font-size:.68rem;color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.email-row-meta{display:flex;gap:.35rem;margin-top:.2rem}.email-row-meta i{font-style:normal;font-size:.58rem;padding:.12rem .35rem;background:var(--gray-100);border-radius:10px}.email-row-meta .is-unassigned{background:#FEF3C7;color:#92400E}.email-direction.received{background:#DBEAFE;color:#1E40AF}.email-direction.sent{background:#DCFCE7;color:#166534}.email-detail{padding:1rem}.email-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:var(--border-light);padding-bottom:.8rem}.email-detail-head h2{font:700 1.05rem var(--font-display);margin-top:.25rem}.email-detail-head time{font-size:.65rem;color:var(--gray-500)}.email-addresses{display:grid;grid-template-columns:42px 1fr;gap:.25rem .5rem;font-size:.7rem;padding:.7rem 0}.email-addresses dt{font-weight:700}.email-addresses dd{overflow-wrap:anywhere}.email-body-frame{width:100%;height:330px;border:var(--border-light);background:#fff}.email-link-panel{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.7rem;padding:.7rem;background:var(--gray-100);border:var(--border-light)}.email-link-panel>div{grid-column:1/-1;display:flex;flex-direction:column}.email-link-panel strong{font:.75rem var(--font-display)}.email-link-panel span{font-size:.68rem;color:var(--gray-600)}.email-template-workspace{margin-top:1rem}.email-template-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.email-template-toolbar select{max-width:320px}.email-template-toolbar span{font-size:.65rem;color:var(--gray-600);line-height:1.8}.email-template-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.email-template-grid .field{margin-bottom:.6rem}.email-template-preview{width:100%;height:620px;border:var(--border-light);background:#fff}.email-checkbox{display:flex;align-items:center;gap:.35rem;font-size:.75rem;margin:.5rem 0 .8rem}@media(max-width:980px){.email-layout,.email-template-grid{grid-template-columns:1fr}.email-list{max-height:420px}.email-form-grid{grid-template-columns:1fr}.email-span{grid-column:auto}}@media(max-width:600px){.email-header-actions,.email-health,.email-form-actions,.email-template-toolbar{align-items:stretch;flex-direction:column}.email-tabs{flex-wrap:wrap}.email-search{width:100%;margin:0}.email-link-panel{grid-template-columns:1fr}}
.email-template-help{font-size:.68rem;color:var(--gray-500);margin-top:.2rem}.email-template-manager{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:700px}.email-template-browser{border-right:var(--border-light);background:var(--gray-100)}.email-template-search{padding:.65rem;border-bottom:var(--border-light)}.email-template-item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem;border:0;border-bottom:var(--border-light);background:transparent;text-align:left;cursor:pointer}.email-template-item:hover{background:var(--white)}.email-template-item.active{background:var(--black);color:var(--white);box-shadow:inset 3px 0 var(--lime)}.email-template-item-top{width:100%;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.email-template-item strong{font:700 .75rem var(--font-display)}.email-template-item i{font-style:normal;font-size:.55rem;text-transform:uppercase;background:var(--lime);color:var(--black);padding:.12rem .3rem}.email-template-item>span:not(.email-template-item-top){font:600 .62rem ui-monospace,SFMono-Regular,monospace;color:var(--gray-500)}.email-template-item.active>span:not(.email-template-item-top){color:var(--gray-300)}.email-template-item small{font-size:.58rem}.email-template-item small.is-active{color:#4D7C0F}.email-template-item small.is-inactive{color:#B45309}.email-template-item.active small{color:var(--lime)}.email-template-editor{padding:1rem;min-width:0}.email-template-editor-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:var(--border-light)}.email-template-editor-head h2{font:700 1.05rem var(--font-display);margin-top:.2rem}.email-template-editor-head>div:last-child{display:flex;gap:.4rem}.email-merge-fields{display:flex;flex-wrap:wrap;gap:.3rem;padding:.55rem;background:var(--gray-100);border:var(--border-light);margin-bottom:.6rem}.email-merge-fields strong{width:100%;font:700 .65rem var(--font-display);text-transform:uppercase}.email-merge-fields button{border:1px solid var(--gray-300);background:var(--white);font:600 .6rem ui-monospace,SFMono-Regular,monospace;padding:.2rem .35rem;cursor:pointer}.email-merge-fields button:hover{border-color:var(--lime-dark);background:#F7FEE7}.email-template-grid .field small{display:block;font-size:.62rem;color:var(--gray-500);margin-top:.25rem}.email-template-savebar{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.email-template-savebar .email-checkbox{margin:0}@media(max-width:1100px){.email-template-manager{grid-template-columns:210px minmax(0,1fr)}.email-template-grid{grid-template-columns:1fr}.email-template-preview{height:460px}}@media(max-width:760px){.email-template-manager{grid-template-columns:1fr}.email-template-browser{border-right:0;border-bottom:var(--border-light);max-height:300px;overflow:auto}.email-template-editor-head,.email-template-savebar{align-items:stretch;flex-direction:column}}
.email-primary-tabs{display:grid;grid-template-columns:repeat(3,1fr);border:var(--border);background:var(--white);margin-bottom:.75rem}.email-primary-tabs button{border:0;border-right:var(--border);background:var(--white);padding:.8rem 1rem;font:700 .76rem var(--font-display);letter-spacing:.07em;text-transform:uppercase;cursor:pointer}.email-primary-tabs button:last-child{border-right:0}.email-primary-tabs button:hover{background:var(--gray-100)}.email-primary-tabs button.active{background:var(--black);color:var(--lime)}.email-main-panel{display:none;height:clamp(580px,calc(100vh - 315px),880px);min-height:0;overflow:hidden}.email-main-panel.active{display:flex;flex-direction:column}.email-panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:var(--border);border-bottom:0;background:var(--white)}.email-panel-toolbar p{font-size:.68rem;color:var(--gray-500);margin-top:.15rem}.email-main-panel .email-tabs{margin-bottom:.6rem;flex-shrink:0}.email-main-panel .email-layout{flex:1;min-height:0;margin-bottom:0}.email-main-panel .email-list,.email-main-panel .email-detail{height:100%;max-height:none;overflow-y:auto}.email-main-panel[data-email-panel="compose"]{overflow-y:auto;padding:.75rem;background:var(--gray-100);border:var(--border)}.email-main-panel[data-email-panel="compose"] .email-panel-toolbar{border:0;border-bottom:var(--border-light);margin:-.75rem -.75rem .75rem}.email-main-panel .email-compose{width:min(100%,1050px);margin:0 auto}.email-main-panel[data-email-panel="templates"]{overflow:hidden}.email-main-panel .email-template-workspace{display:flex;flex-direction:column;height:100%;margin:0;min-height:0}.email-main-panel .email-template-manager{flex:1;min-height:0;overflow:hidden}.email-main-panel .email-template-browser,.email-main-panel .email-template-editor{overflow-y:auto}.email-custom-select{width:100%;flex-shrink:1}.email-custom-select .custom-select-trigger{width:100%;min-height:42px}.email-custom-select .custom-select-dropdown{width:100%;max-width:none;max-height:300px;overflow-y:auto}.email-custom-select .cs-option{width:100%;border-left:0;border-right:0;border-top:0;background:transparent;text-align:left}.email-custom-select .cs-option.is-selected{background:var(--lime);color:var(--black)}.email-custom-select .cs-option span{display:flex;flex-direction:column}.email-custom-select .cs-option small{font-size:.62rem;color:inherit;opacity:.7}.email-option-check{display:none!important;width:16px}.email-multiselect-dropdown .cs-option.is-selected .email-option-check{display:inline-flex!important}.email-user-dropdown{max-height:240px!important}.email-link-panel .email-custom-select{min-width:0}@media(max-width:760px){.email-main-panel{height:calc(100vh - 280px);min-height:520px}.email-primary-tabs button{padding:.65rem .4rem;font-size:.65rem}.email-panel-toolbar{align-items:flex-start}.email-main-panel .email-layout{grid-template-columns:1fr}.email-main-panel .email-detail{display:none}.email-main-panel .email-template-manager{overflow-y:auto}.email-main-panel .email-template-browser,.email-main-panel .email-template-editor{overflow:visible}}

/* Inline email composer and visual editor */
.email-primary-tabs{grid-template-columns:repeat(2,1fr)}
.email-main-panel[data-email-panel="mailbox"]{overflow:hidden}
.email-main-panel[data-email-panel="mailbox"] .email-layout{flex:1}
.email-main-panel[data-email-panel="compose"]{height:auto;min-height:0;max-height:none;overflow:visible;padding:.75rem;background:var(--gray-100);border:var(--border)}
.email-main-panel[data-email-panel="compose"] .email-panel-toolbar{margin:-.75rem -.75rem .75rem}
.email-main-panel[data-email-panel="compose"] .email-compose{width:min(100%,1100px);margin:0 auto}
.email-reply-context{display:flex;flex-direction:column;gap:.2rem;width:min(100%,1100px);margin:0 auto .75rem;padding:.7rem .85rem;border:1px solid var(--lime-dark);background:#F7FEE7}.email-reply-context[hidden]{display:none}.email-reply-context strong{font:700 .76rem var(--font-display)}.email-reply-context span{font-size:.68rem;color:var(--gray-600)}
.email-detail-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.email-custom-select.is-disabled{opacity:.65}.email-custom-select.is-disabled .custom-select-trigger{cursor:not-allowed}
.email-rich-editor-shell{overflow:hidden;border:var(--border);background:var(--white);transition:border-color .15s,box-shadow .15s}
.email-rich-editor-shell:focus-within{border-color:var(--black);box-shadow:0 0 0 2px rgba(202,255,0,.45)}
.email-rich-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;padding:.45rem;background:var(--gray-100);border-bottom:var(--border-light)}
.email-rich-tool{min-width:34px;height:32px;padding:0 .6rem;border:var(--border-light);background:var(--white);color:var(--black);font:700 .7rem var(--font-display);cursor:pointer}
.email-rich-tool:hover,.email-rich-tool:focus-visible{border-color:var(--black);background:var(--lime);outline:0}
.email-rich-separator{width:1px;height:22px;margin:0 .15rem;background:var(--gray-300)}
.email-rich-editor{min-height:240px;padding:.9rem;font:400 .86rem/1.65 var(--font-body);color:var(--black);outline:0;overflow-wrap:anywhere}
.email-rich-editor:empty::before{content:attr(data-placeholder);color:var(--gray-500);pointer-events:none}
.email-rich-editor p{margin:0 0 .7rem}.email-rich-editor ul,.email-rich-editor ol{padding-left:1.5rem;margin:.4rem 0 .8rem}.email-rich-editor a{color:var(--black);text-decoration:underline;text-decoration-color:var(--lime-dark);text-decoration-thickness:2px}
@media(max-width:760px){.email-main-panel[data-email-panel="mailbox"] .email-layout{flex-basis:420px}.email-rich-toolbar{align-items:stretch}.email-rich-tool{flex:1 1 auto}.email-rich-separator{display:none}.email-rich-editor{min-height:210px}}
.email-refresh-controls{display:flex;align-items:center;justify-content:flex-end;gap:1rem;min-width:0}.email-auto-refresh-group{display:flex;align-items:center;gap:.15rem;min-width:0;overflow-x:auto;scrollbar-width:thin}.email-auto-refresh-group>span{flex:0 0 auto;margin-right:.25rem;font:700 .67rem var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--black)}.email-refresh-option{flex:0 0 auto;min-width:42px;padding:.48rem .65rem;border:0;border-radius:2px;background:transparent;color:var(--gray-600);font:700 .66rem var(--font-display);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.email-refresh-option:hover{background:var(--gray-100);color:var(--black)}.email-refresh-option.is-active{background:var(--lime);color:var(--black)}.email-refresh-option:focus-visible{outline:2px solid var(--black);outline-offset:2px}.email-refresh-controls #email-sync{flex:0 0 auto}@media(max-width:1050px){.email-panel-toolbar{align-items:flex-start;flex-direction:column}.email-refresh-controls{width:100%;justify-content:space-between}}@media(max-width:600px){.email-refresh-controls{align-items:stretch;flex-direction:column}.email-auto-refresh-group{padding-bottom:.2rem}.email-refresh-controls #email-sync{align-self:flex-start}}
.email-main-panel .email-tabs{overflow:visible;flex-wrap:wrap}.email-history-filter{display:none;min-width:240px;padding:.35rem}.email-history-filter.is-visible{display:block}.email-history-filter .custom-select-trigger{min-height:34px;height:34px}.email-history-filter .custom-select-dropdown{min-width:320px}.email-tabs:has(.email-history-filter.is-visible) .email-search{margin-left:0}@media(max-width:850px){.email-history-filter.is-visible{width:calc(100% - 1rem)}.email-history-filter .custom-select-dropdown{min-width:100%}.email-search{width:100%;margin-left:0}}

/* Council collection classification and recurring schedules */
.private-job-modal-open {
  overflow: hidden;
}
.private-job-modal-layer {
  align-items: center;
  background: rgba(12, 12, 12, 0.68);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1.25rem;
  position: fixed;
  z-index: 12000;
}
.private-job-modal {
  background: var(--gray-100);
  border: var(--border);
  box-shadow: 8px 8px 0 var(--black);
  max-height: calc(100vh - 2.5rem);
  max-width: 1220px;
  overflow: hidden;
  width: 100%;
}
.private-job-modal-scroll {
  max-height: calc(100vh - 2.5rem);
  overflow-y: auto;
  padding: 1.25rem;
}
.private-job-modal-header {
  background: var(--gray-100);
  border-bottom: var(--border-light);
  margin: -1.25rem -1.25rem 1.25rem;
  padding: 1.1rem 1.25rem;
  position: sticky;
  top: -1.25rem;
  z-index: 4;
}
.private-job-modal-actions {
  align-items: center;
  background: var(--gray-100);
  border-top: var(--border-light);
  bottom: -1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0 -1.25rem -1.25rem;
  padding: 1rem 1.25rem;
  position: sticky;
  z-index: 4;
}
.private-description-label-row { align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.35rem; }
.private-description-label-row .field-label { margin:0; }
.private-auto-complete-controls { align-items:center;display:flex;gap:.4rem; }
.private-auto-complete { align-items:center;background:var(--white);border:var(--border);border-radius:999px;color:var(--gray-600);cursor:pointer;display:inline-flex;font:700 .66rem/1 var(--font-display);gap:.45rem;padding:.35rem .4rem .35rem .65rem; }
.private-auto-complete:hover,.private-auto-complete:focus-visible { border-color:var(--black);outline:0; }
.private-auto-complete.is-on { background:#f7fee7;border-color:var(--lime-dark);color:var(--black); }
.private-auto-complete-state { background:var(--gray-200);border-radius:999px;min-width:27px;padding:.2rem .35rem;text-align:center; }
.private-auto-complete.is-on .private-auto-complete-state { background:var(--black);color:var(--lime); }
.private-auto-complete-info { align-items:center;background:var(--white);border:1px solid var(--gray-400);border-radius:50%;color:var(--gray-600);cursor:help;display:inline-flex;font:700 .66rem/1 var(--font-display);height:19px;justify-content:center;position:relative;width:19px; }
.private-auto-complete-tooltip { background:var(--black);bottom:calc(100% + 8px);color:var(--white);font:500 .7rem/1.45 var(--font-body);opacity:0;padding:.65rem .75rem;pointer-events:none;position:absolute;right:0;transform:translateY(4px);transition:opacity .14s,transform .14s;width:270px;z-index:20; }
.private-auto-complete-info:hover .private-auto-complete-tooltip,.private-auto-complete-info:focus .private-auto-complete-tooltip { opacity:1;transform:translateY(0); }
.private-auto-complete-status { align-items:center;color:var(--gray-500);display:flex;font-size:.68rem;gap:.4rem;line-height:1.4;margin-top:.4rem;min-height:1em; }
.private-auto-complete-status .spinner { height:12px;width:12px; }
.private-service-select,.private-service-select .custom-select-trigger,.private-service-select .custom-select-dropdown { width:100%;max-width:none; }
.private-service-select .custom-select-trigger { min-height:42px; }
.collection-map-editor { background:var(--white);border:var(--border-light);margin-top:1rem;padding:1rem; }
.collection-map-head,.collection-map-toolbar { align-items:flex-start;display:flex;gap:.75rem;justify-content:space-between; }
.collection-map-head p,.collection-map-toolbar span { color:var(--gray-600);display:block;font-size:.75rem;line-height:1.45;margin-top:.2rem; }
.collection-map-actions { display:flex;flex-shrink:0;gap:.45rem; }
.collection-map-canvas { background:#DDEBF0;border:var(--border);cursor:grab;height:360px;margin-top:.8rem;position:relative;z-index:1; }
.collection-map-canvas .collection-editor-map { touch-action:none; }
.collection-map-canvas .collection-editor-map.is-panning { cursor:grabbing; }
.collection-map-canvas.is-placing { cursor:crosshair; }
.collection-editor-map { cursor:inherit; }
.collection-editor-pin { background:var(--lime);border-color:var(--black);color:var(--black);touch-action:none; }
.collection-editor-pin.is-dragging { box-shadow:0 0 0 4px rgba(202,255,0,.45);cursor:grabbing; }
.service-map-routes .service-map-area.is-drawing { stroke-dasharray:7 6; }
.collection-map-pin { align-items:center;background:var(--lime);border:2px solid var(--black);border-radius:50%;box-shadow:0 2px 7px rgba(0,0,0,.35);color:var(--black);display:flex;font:700 .75rem var(--font-display);height:34px;justify-content:center;width:34px; }
.collection-map-toolbar { align-items:center;background:var(--gray-100);border:var(--border-light);margin-top:.75rem;padding:.7rem; }
.collection-map-toolbar>div { flex:1; }
.collection-map-toolbar strong { font:700 .75rem var(--font-display);text-transform:uppercase; }
.collection-map-hint,.collection-map-validation { color:var(--gray-600);font-size:.72rem;line-height:1.45;margin-top:.55rem; }
.collection-map-validation.is-error { color:#B91C1C;font-weight:600; }
.collection-map-validation.is-valid { color:#4D7C0F;font-weight:600; }
.collection-point-list { display:grid;gap:.65rem;margin-top:.75rem; }
.collection-point-empty,.collection-map-unavailable { color:var(--gray-500);font-size:.78rem;padding:1rem;text-align:center; }
.collection-map-unavailable { align-items:center;display:flex;height:100%;justify-content:center; }
.collection-point-row { align-items:end;background:var(--gray-100);border:var(--border-light);display:grid;gap:.6rem;grid-template-columns:34px minmax(170px,1fr) 100px minmax(190px,1.35fr) 130px;padding:.7rem; }
.collection-point-number { align-items:center;align-self:center;background:var(--black);border-radius:50%;color:var(--lime);display:flex;font:700 .75rem var(--font-display);height:30px;justify-content:center;width:30px; }
.collection-point-coordinates { align-items:center;display:flex;gap:.5rem;grid-column:2/-1;justify-content:space-between; }
.collection-point-coordinates span { color:var(--gray-500);font:.68rem ui-monospace,monospace; }
.job-collection-points { display:grid;gap:.4rem;margin-bottom:.75rem; }
.job-collection-points>div { background:var(--white);border:var(--border-light);padding:.6rem .7rem; }
.job-collection-points strong { display:block;font:700 .78rem var(--font-display); }
.job-collection-points span { color:var(--gray-600);display:block;font-size:.72rem;margin-top:.15rem; }
@media(max-width:640px) {
  .collection-map-head,.collection-map-toolbar { align-items:stretch;flex-direction:column; }
  .collection-map-actions { flex-wrap:wrap;width:100%; }
  .collection-map-actions .btn { flex:1 1 120px; }
  .collection-map-canvas { height:300px; }
  .collection-point-row { grid-template-columns:34px minmax(0,1fr) 90px; }
  .collection-point-address { grid-column:2/-1; }
  .collection-point-coordinates { grid-column:1/-1; }
}
.council-service-panel,
.recurrence-card {
  background: var(--gray-100);
  border: var(--border-light);
  padding: 1rem;
}
.council-service-heading {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 0.9rem;
}
.council-service-heading p {
  color: var(--gray-600);
  font-size: 0.75rem;
  line-height: 1.5;
  margin-top: 0.25rem;
  max-width: 720px;
}
.council-service-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 0.5rem;
}
.assisted-toggle-button {
  gap: 0.45rem;
}
.assisted-toggle-button.is-on {
  background: var(--lime);
  border-color: var(--lime-dark);
  color: var(--black);
}
.assisted-toggle-state {
  background: var(--gray-200);
  border: 1px solid var(--gray-400);
  min-width: 30px;
  padding: 0.12rem 0.3rem;
  text-align: center;
}
.assisted-toggle-button.is-on .assisted-toggle-state {
  background: var(--black);
  border-color: var(--black);
  color: var(--lime);
}
.council-service-grid,
.recurrence-fields {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.recurrence-fixed {
  align-items: center;
  background: var(--white);
  border: var(--border-light);
  display: flex;
  gap: 0.65rem;
  min-height: 42px;
  padding: 0.65rem 0.75rem;
}
.service-checkbox {
  accent-color: var(--lime-dark);
  cursor: pointer;
  flex: 0 0 22px;
  height: 22px;
  margin: 0;
  width: 22px;
}
.recurrence-toggle-row:has(.service-checkbox:checked) {
  background: #f7fee7;
  border-color: var(--lime-dark);
}
.recurrence-fixed {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.recurrence-fixed strong {
  font: 700 0.75rem var(--font-display);
}
.council-service-note {
  color: var(--gray-600);
  font-size: 0.7rem;
  line-height: 1.5;
  margin-top: 0.75rem;
}
.recurrence-toggle-row {
  margin: 0;
}
.recurrence-toggle-row div {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.recurrence-toggle-row strong {
  font: 700 0.82rem var(--font-display);
}
.recurrence-toggle-row span {
  color: var(--gray-600);
  font-size: 0.7rem;
}
.recurrence-fields {
  border-top: var(--border-light);
  margin-top: 0.8rem;
  padding-top: 0.8rem;
}
.recurrence-fields[hidden] {
  display: none;
}
.series-marker {
  background: #f7fee7;
  border: 1px solid var(--lime-dark);
  color: #3a6000;
  display: inline-block;
  font: 700 0.58rem var(--font-display);
  letter-spacing: 0.06em;
  margin-top: 0.3rem;
  padding: 0.15rem 0.35rem;
  text-transform: uppercase;
}
.private-collection-location {
  background: var(--gray-100);
  border: var(--border-light);
  margin-top: 1rem;
  padding: 1rem;
}
.private-collection-location-head {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 0.9rem;
}
.private-collection-location-head p {
  color: var(--gray-600);
  font-size: 0.75rem;
  line-height: 1.5;
  margin-top: 0.25rem;
}
.same-address-button.is-active {
  background: var(--lime);
  border-color: var(--lime-dark);
  color: var(--black);
}
.private-collection-fields {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: minmax(0, 1.5fr) minmax(180px, 0.5fr);
}
.private-collection-location.is-synced .private-collection-fields .input {
  background: #f7fee7;
  border-color: var(--lime-dark);
  color: var(--gray-700);
}
.private-location-sync-status {
  color: #3a6000;
  font-size: 0.68rem;
  font-weight: 600;
  margin-top: 0.55rem;
  min-height: 1em;
}
.private-waste-favourites{background:#fbfcf8;border:var(--border-light);margin-bottom:.875rem;padding:.85rem}.private-waste-favourites-head{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.65rem}.private-waste-favourites-head p{color:var(--gray-600);font-size:.72rem;line-height:1.45;margin:.2rem 0 0}.private-waste-favourites-head>span{color:var(--gray-500);font:700 .6rem var(--font-display);letter-spacing:.08em;text-transform:uppercase}.private-waste-favourite-list{display:flex;flex-wrap:wrap;gap:.45rem}.private-waste-favourite{align-items:center;background:var(--white);border:var(--border);border-radius:999px;cursor:pointer;display:flex;gap:.45rem;padding:.45rem .7rem}.private-waste-favourite strong{font:650 .72rem var(--font-display)}.private-waste-favourite code{color:var(--gray-500);font-size:.62rem}.private-waste-favourite:hover{border-color:var(--gray-500)}.private-waste-favourite.selected{background:var(--lime);border-color:var(--lime-dark)}.private-waste-favourite.selected code{color:#315400}
.job-version-list{display:flex;flex-direction:column;gap:.45rem}.job-version-card{align-items:center;background:var(--white);border:var(--border-light);cursor:pointer;display:grid;gap:.75rem;grid-template-columns:auto 1fr auto;padding:.75rem;text-align:left;width:100%}.job-version-card:hover,.job-version-card.is-viewing{border-color:var(--lime-dark);background:#fbffe9}.job-version-number{align-items:center;background:var(--black);border-radius:50%;color:var(--lime);display:flex;font:700 .65rem var(--font-display);height:30px;justify-content:center;width:30px}.job-version-card strong,.job-version-card small{display:block}.job-version-card strong{font:700 .78rem var(--font-display)}.job-version-card small{color:var(--gray-500);font-size:.68rem;line-height:1.4;margin-top:.15rem}.mismatch-quote-intro{background:#f7fee7;border-left:4px solid var(--lime-dark);color:var(--gray-700);font-size:.78rem;line-height:1.5;margin:0;padding:.7rem}.mismatch-quote-grid{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.mismatch-quote-categories{border:0;margin:0;padding:0}.mismatch-quote-categories label{align-items:center;border:var(--border-light);display:inline-flex;font-size:.7rem;gap:.3rem;margin:.25rem .25rem 0 0;padding:.35rem .5rem}.mismatch-quote-categories input{accent-color:var(--lime-dark)}.mismatch-modal .field small{color:var(--gray-500);display:block;font-size:.68rem;margin-top:.25rem}
.private-favourites-admin-card{overflow:visible}.private-favourites-admin-card .card-header p{color:var(--gray-500);font-size:.78rem;margin:.3rem 0 0}.private-favourite-admin-row{align-items:start;border-bottom:var(--border-light);display:grid;gap:.85rem;grid-template-columns:80px minmax(150px,.65fr) minmax(190px,.7fr) minmax(320px,1.65fr) auto;padding:1rem 1.1rem}.private-favourite-admin-row:last-child{border-bottom:0}.private-favourite-admin-order{align-items:center;display:flex;gap:.5rem}.private-favourite-admin-order>strong{align-items:center;background:var(--black);border-radius:50%;color:var(--white);display:flex;font:700 .7rem var(--font-display);height:25px;justify-content:center;width:25px}.private-favourite-admin-order>div{display:flex}.private-favourite-admin-order .btn{min-width:24px;padding:.2rem}.private-favourite-admin-row small{color:var(--gray-500);display:block;font-size:.65rem;line-height:1.35;margin-top:.3rem}.private-favourite-admin-row fieldset{border:0;margin:0;padding:0}.private-favourite-category-options{display:flex;flex-wrap:wrap;gap:.3rem}.private-favourite-category-options label{align-items:center;background:var(--gray-100);border:var(--border-light);border-radius:999px;cursor:pointer;display:flex;font-size:.65rem;gap:.25rem;padding:.3rem .45rem}.private-favourite-category-options input{accent-color:var(--lime-dark)}.private-favourite-admin-remove{color:#991b1b!important;margin-top:1.15rem}.private-favourites-admin-actions{align-items:center;display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.private-favourites-admin-actions span{color:var(--gray-500);font-size:.72rem}
@media(max-width:1100px){.private-favourite-admin-row{grid-template-columns:70px 1fr 1fr}.private-favourite-admin-row fieldset{grid-column:2/-1}.private-favourite-admin-remove{grid-column:3;margin-top:0;justify-self:end}}
@media (max-width: 700px) {
  .private-job-modal-layer {
    padding: 0;
  }
  .private-job-modal,
  .private-job-modal-scroll {
    border: 0;
    box-shadow: none;
    max-height: 100vh;
    width: 100vw;
  }
  .council-service-heading {
    flex-direction: column;
  }
  .council-service-actions {
    flex-wrap: wrap;
    width: 100%;
  }
  .private-collection-location-head {
    align-items: stretch;
    flex-direction: column;
  }
  .same-address-button {
    max-width: none;
    width: 100%;
  }
  .private-description-label-row { align-items:flex-start;flex-direction:column; }
  .mismatch-quote-grid{grid-template-columns:1fr}.job-version-card{grid-template-columns:auto 1fr}.job-version-card>.badge{grid-column:2}
  .private-favourite-admin-row{grid-template-columns:1fr}.private-favourite-admin-row fieldset,.private-favourite-admin-remove{grid-column:auto}.private-favourite-admin-remove{justify-self:start}.private-favourites-admin-card .card-header{align-items:flex-start;flex-direction:column}.private-favourites-admin-card .card-header .btn{width:100%}
  .private-auto-complete-tooltip { left:0;right:auto;width:min(270px,calc(100vw - 3rem)); }
  .council-service-grid,
  .recurrence-fields,
  .private-collection-fields {
    grid-template-columns: 1fr;
  }
}
html.auth-pending { visibility: hidden; }
/* Supplier network */
.supplier-page-header p,.supplier-section-head p{margin:.35rem 0 0;color:var(--gray-500);font-size:.8125rem}
.supplier-search-card{padding:1rem 1.1rem;margin-bottom:1.25rem}.supplier-job-row,.supplier-search-row,.supplier-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.supplier-search-row{grid-template-columns:minmax(240px,1fr) 150px 190px auto;align-items:end;margin-top:.85rem}.supplier-keyword{min-width:0}.supplier-emergency{display:flex;align-items:center;gap:.55rem;min-height:42px;padding:.55rem .7rem;border:var(--border-light);border-radius:var(--radius);cursor:pointer}.supplier-emergency input{accent-color:var(--lime-dark)}.supplier-emergency span{display:flex;flex-direction:column}.supplier-emergency strong{font:650 .75rem var(--font-display)}.supplier-emergency small{color:var(--gray-500);font-size:.65rem}
.supplier-results{display:flex;flex-direction:column;gap:1.25rem}.supplier-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.8rem}.supplier-section-head>span{font-size:.72rem;color:var(--gray-500)}.supplier-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.supplier-result-card{position:relative;padding:1rem;display:flex;flex-direction:column;gap:.65rem}.supplier-result-card h3{margin:.25rem 0 .15rem;font:700 1rem var(--font-display)}.supplier-result-card p{margin:0;color:var(--gray-500);font-size:.75rem}.supplier-card-rank{position:absolute;right:.8rem;top:.8rem;background:var(--lime);border:1px solid var(--lime-dark);border-radius:999px;padding:.18rem .45rem;font:700 .65rem var(--font-display)}.supplier-match{display:flex;flex-direction:column;gap:.15rem}.supplier-match strong{font:650 .7rem var(--font-display)}.supplier-stars{color:#8a6800;letter-spacing:.04em;font-size:.9rem}.supplier-reason{line-height:1.45!important}.supplier-card-foot{display:flex;justify-content:space-between;gap:.5rem;padding-top:.6rem;border-top:var(--border-light);font-size:.72rem}.supplier-card-foot strong{font-family:var(--font-display)}.supplier-result-card .btn{margin-top:auto}.supplier-network-list .card-header p{margin:.3rem 0 0}.supplier-network-list td small{display:block;margin-top:.15rem;color:var(--gray-500);font-size:.68rem}.supplier-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:3rem;text-align:center}.supplier-empty strong{font:700 .95rem var(--font-display)}.supplier-empty span{color:var(--gray-500);font-size:.78rem}
.supplier-detail-body{padding:0!important}.supplier-panel-summary{display:flex;flex-direction:column;gap:.3rem;padding:1.15rem 1.25rem;background:var(--gray-100);border-bottom:var(--border-light)}.supplier-panel-summary strong{font:700 .9rem var(--font-display)}.supplier-panel-summary span,.supplier-panel-summary small{color:var(--gray-600);font-size:.75rem;line-height:1.45}.supplier-panel-form .detail-section{display:flex;flex-direction:column;gap:.85rem;padding:1.2rem 1.25rem}.supplier-panel-actions{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:var(--border-light);position:sticky;bottom:0;background:var(--white)}.supplier-price-breakdown>div:not(.label-dark){display:flex;justify-content:space-between;gap:1rem;font-size:.78rem}.supplier-price-total{padding-top:.65rem;border-top:var(--border-light);font-family:var(--font-display)}.supplier-emergency-note{display:flex;flex-direction:column;gap:.2rem;padding:.75rem;border-left:4px solid #d97706;background:#fffbeb;color:#78350f}.supplier-emergency-note strong{font:700 .78rem var(--font-display)}.supplier-emergency-note span{font-size:.72rem}.supplier-request-register{display:flex;flex-direction:column}.supplier-request-register article{display:grid;grid-template-columns:1fr auto;gap:.4rem .8rem;padding:1rem 1.25rem;border-bottom:var(--border-light)}.supplier-request-register article>div{display:flex;flex-direction:column}.supplier-request-register article strong{font:650 .8rem var(--font-display)}.supplier-request-register article span,.supplier-request-register article small{font-size:.7rem;color:var(--gray-500)}.supplier-request-register article>small{grid-column:1/-1}.supplier-register-form{padding:1.25rem}.supplier-register-form>.field{margin-top:.85rem}.supplier-register-actions{display:flex;justify-content:flex-end;margin-top:1rem}.supplier-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.supplier-metric-grid section{padding:1rem}.supplier-metric-grid strong{display:block;margin:.4rem 0 .2rem;font:700 1.25rem var(--font-display)}.supplier-metric-grid p{margin:0;color:var(--gray-500);font-size:.72rem}.acct-type-chip.business{background:#ecfccb;color:#365314}
.supplier-search-tools{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.supplier-search-primary{display:flex;align-items:stretch;gap:.5rem}.supplier-search-box{width:auto;max-width:none;flex:1;margin:0}.supplier-search-box .input{height:42px;padding-left:2.2rem;font:500 .875rem var(--font-display)}.supplier-search-box>button{position:absolute;right:.55rem;top:50%;display:none;padding:.15rem;border:0;background:transparent;color:var(--gray-400);font-size:1rem;line-height:1;transform:translateY(-50%);cursor:pointer}.supplier-search-box:focus-within>button,.supplier-search-box>button:hover{display:block}.supplier-filter-toolbar{position:relative;z-index:4;padding:.6rem .75rem;border:var(--border);background:var(--white)}.supplier-toolbar-label{color:var(--gray-600);font:700 .625rem var(--font-display);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.supplier-toolbar-divider{width:1px;height:1.25rem;background:var(--gray-200)}.supplier-job-filter{min-width:280px;flex:1}.supplier-job-filter .custom-select-trigger{width:100%;max-width:520px}.supplier-job-filter .custom-select-dropdown{width:100%;max-width:520px}.supplier-job-filter .cs-option{overflow:hidden;text-overflow:ellipsis}.supplier-service-filter .custom-select-trigger{min-width:150px}.supplier-radius-filter .custom-select-trigger{min-width:120px}.supplier-emergency-toggle{white-space:nowrap}.supplier-emergency-toggle.active{border-color:var(--black);background:var(--black);color:var(--lime)}.supplier-filter-summary{margin-left:auto;color:var(--gray-500);font:600 .75rem var(--font-display);white-space:nowrap}.supplier-loading{padding:3rem;font:500 .8125rem var(--font-display)}
.supplier-network-list{overflow:hidden}.supplier-network-table-scroll{max-height:620px}.supplier-network-table{min-width:1080px}.supplier-network-table th,.supplier-network-table td{border-bottom:var(--border-light)}.supplier-network-table td{padding-top:.85rem;padding-bottom:.85rem}.supplier-network-table .supplier-stars,.supplier-network-table .btn{white-space:nowrap}.supplier-network-list .my-jobs-pagination{background:var(--white)}
.supplier-search-error span{max-width:620px;line-height:1.5}.supplier-search-error small{max-width:620px;color:var(--gray-400);font-size:.68rem}.supplier-search-error .btn{margin-top:.55rem}
@media(max-width:1050px){.supplier-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-toolbar-label,.supplier-toolbar-divider{display:none}.supplier-job-filter{width:100%;flex-basis:100%}.supplier-job-filter .custom-select-trigger,.supplier-job-filter .custom-select-dropdown{max-width:none}}
@media(max-width:700px){.supplier-card-grid,.supplier-job-row,.supplier-search-row,.supplier-form-grid,.supplier-metric-grid{grid-template-columns:1fr}.supplier-page-header,.supplier-section-head,.supplier-search-primary{align-items:flex-start;flex-direction:column}.supplier-page-header .btn,.supplier-search-primary .btn,.supplier-search-box{width:100%}.supplier-filter-toolbar>*{width:100%;margin-left:0}.supplier-filter-toolbar .custom-select-trigger,.supplier-filter-toolbar .custom-select-dropdown{width:100%;max-width:none}.supplier-filter-summary{padding-top:.2rem}.supplier-network-table-scroll{max-height:none}}

.supplier-header-actions,.supplier-row-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.supplier-operations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.supplier-event-list{display:flex;flex-direction:column}.supplier-event-list>article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.8rem 1rem;border-bottom:var(--border-light)}.supplier-event-list>article:last-child{border-bottom:0}.supplier-event-list strong,.supplier-event-list small,.supplier-operation-row strong,.supplier-operation-row span{display:block}.supplier-event-list small,.supplier-operation-row span{margin-top:.2rem;color:var(--gray-500);font-size:.72rem}.supplier-operation-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:var(--border-light)}.supplier-inline-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.75rem;margin-top:1rem}.supplier-asset-table{min-width:980px}
@media(max-width:900px){.supplier-operations-grid{grid-template-columns:1fr}.supplier-header-actions{width:100%}.supplier-header-actions .btn{flex:1}}
@media(max-width:700px){.supplier-inline-form{grid-template-columns:1fr}.supplier-row-actions{align-items:stretch;flex-direction:column}.supplier-row-actions .btn{width:100%}}
/* Contractor team management */
.team-page-header p,.team-table-header p,.team-confirm-modal p{margin:.35rem 0 0;color:var(--gray-500);font-size:.8125rem}
.team-summary-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:1rem;margin-bottom:1rem}
.team-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.team-insight-card{padding:1rem 1.1rem}.team-insight-card strong{display:block;margin:.45rem 0 .15rem;font:700 1.55rem/1 var(--font-display)}.team-insight-card p{margin:0;color:var(--gray-500);font-size:.75rem}
.team-summary-value{font-family:var(--font-display);font-weight:700;font-size:1.35rem;margin-bottom:.25rem}
.team-table-card{overflow:visible}.team-table-header{gap:1rem;align-items:flex-start}.team-table-header .my-jobs-search-wrap{min-width:260px}
.team-toolbar{position:relative;z-index:3;justify-content:space-between}
.team-filter-group{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.team-filter{width:180px}.team-table td{vertical-align:middle}.team-table .notification-table-detail span{display:block;margin-top:.18rem;color:var(--gray-500);font-size:.75rem}
.team-username{font-family:var(--font-display);font-size:.78rem;background:var(--gray-100);border-radius:3px;padding:.25rem .4rem}
.team-row-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;min-width:270px}.team-remove{color:#991b1b!important}.team-table th,.team-table td{border-bottom:var(--border-light)}.team-table td{font-size:.8125rem}.team-table .notification-table-detail strong{font:650 .8125rem var(--font-display)}
.team-primary-location strong,.team-primary-location span{display:block}.team-primary-location strong{font:650 .78rem var(--font-display)}.team-primary-location span{margin-top:.15rem;color:var(--gray-500);font-size:.68rem;text-transform:capitalize}
.my-job-status.team-status-active{background:#DCFCE7;color:#166534}.my-job-status.team-status-invited,.my-job-status.team-status-provisioning{background:#DBEAFE;color:#1E40AF}.my-job-status.team-status-provisioning_failed{background:#FEF3C7;color:#92400E}.my-job-status.team-status-suspended,.my-job-status.team-status-removed{background:var(--gray-100);color:var(--gray-600)}
.team-modal{width:min(680px,calc(100vw - 2rem))}.team-confirm-modal{width:min(480px,calc(100vw - 2rem))}
.team-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.team-form-grid .field-hint{display:block;color:var(--gray-500);font-size:.7rem;margin-top:.3rem}
.team-panel-form{padding:0}.team-panel-form .detail-section{display:flex;flex-direction:column;gap:.9rem;padding:1.25rem}.team-panel-copy{margin:0;color:var(--gray-500);font-size:.8125rem;line-height:1.5}.team-panel-actions{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:var(--border-light)}
.team-name-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem}.team-panel-form .field-hint{display:block;margin-top:.25rem;color:var(--gray-500);font-size:.68rem;font-weight:400}.team-area-search .input{width:100%}
.team-area-results{border:var(--border);border-radius:var(--radius);background:var(--white);overflow:auto}.team-area-columns{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));min-width:640px}.team-area-columns>section{min-height:120px;border-right:var(--border-light)}.team-area-columns>section:last-child{border-right:0}.team-area-column-title{padding:.55rem .65rem;border-bottom:var(--border-light);background:var(--gray-100);font:700 .625rem var(--font-display);letter-spacing:.07em;text-transform:uppercase;color:var(--gray-600)}.team-area-columns button{display:flex;width:100%;padding:.6rem .65rem;border:0;border-bottom:var(--border-light);background:var(--white);flex-direction:column;align-items:flex-start;gap:.1rem;text-align:left;cursor:pointer}.team-area-columns button:hover{background:#F7FFD9}.team-area-columns button strong{font:650 .75rem var(--font-display)}.team-area-columns button span,.team-area-empty{color:var(--gray-500);font-size:.66rem}.team-area-empty{display:block;padding:.65rem}
.team-area-selected{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border:var(--border-light);background:var(--gray-100)}.team-area-selected strong{font:650 .8rem var(--font-display)}.team-area-selected span{color:var(--gray-500);font-size:.7rem;text-transform:capitalize}.team-area-map-wrap{border:var(--border);border-radius:var(--radius);overflow:hidden}.team-operating-area-map{height:300px;background:#dfe8df}.team-area-map-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .65rem;border-top:var(--border-light);background:var(--white)}.team-area-map-actions>span{color:var(--gray-500);font-size:.68rem}.team-area-map-actions>div{display:flex;gap:.25rem}.service-map-area-line{fill:none;stroke:#0C0C0C;stroke-width:3;stroke-dasharray:6 6}.service-map-area-point{fill:#CAFF00;stroke:#0C0C0C;stroke-width:2}
.team-email-conflict{padding:.85rem;border:1px solid #D97706;border-left-width:4px;border-radius:var(--radius);background:#FFFBEB}.team-email-conflict>strong{font:700 .8125rem var(--font-display);color:#92400E}.team-email-conflict>p{margin:.3rem 0 .65rem;color:#78350F;font-size:.75rem;line-height:1.45}.team-transfer-override{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:.55rem!important;font-size:.75rem;font-weight:600;color:var(--black)}.team-transfer-override input{margin-top:.15rem;accent-color:var(--lime-dark)}
.team-permission{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:.7rem!important;padding:.65rem;border:var(--border-light);border-radius:var(--radius)}.team-permission input{margin-top:.2rem}.team-permission span{display:flex;flex-direction:column;gap:.15rem}.team-permission strong{font:650 .8125rem var(--font-display)}.team-permission small,.team-access-log span{font-size:.72rem;color:var(--gray-500)}
.team-member-map{height:220px;border:var(--border);border-radius:var(--radius);overflow:hidden}.team-access-log{display:flex;flex-direction:column;border:var(--border-light);border-radius:var(--radius)}.team-access-log>div{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border-bottom:var(--border-light);font-size:.78rem}.team-access-log>div:last-child{border-bottom:0}.team-account-actions>div:last-child{display:flex;flex-wrap:wrap;gap:.4rem}.team-access-summary{font-size:.75rem;color:var(--gray-600)}
.team-modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;padding:1rem 1.25rem;border-top:var(--border-light)}
.acct-type-chip.staff,.acct-type-chip.staff-driver,.acct-type-chip.staff-dispatcher{background:#eef2ff;color:#3730a3}
@media(max-width:900px){.team-insight-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.team-summary-grid,.team-form-grid,.team-insight-grid,.team-name-grid{grid-template-columns:1fr}.team-table-header{flex-direction:column}.team-table-header .my-jobs-search-wrap{width:100%;min-width:0}.team-page-header{align-items:flex-start;gap:1rem}.team-table{min-width:1080px}.team-filter-group,.team-filter{width:100%}.team-area-map-actions{align-items:flex-start;flex-direction:column}}
.staff-auth-modal{width:min(500px,calc(100vw - 2rem))}.staff-auth-copy{margin:.35rem 0 0;color:var(--gray-500);font-size:.8125rem;line-height:1.5}
.team-transfer-backdrop{z-index:1000}.team-transfer-modal{width:min(500px,calc(100vw - 2rem))}.team-transfer-modal .modal-body>p{margin:0;color:var(--gray-600);font-size:.8125rem;line-height:1.55}.team-transfer-safety{display:flex;flex-direction:column;gap:.2rem;margin-top:1rem;padding:.75rem;background:var(--gray-100);border:var(--border-light);border-radius:var(--radius)}.team-transfer-safety strong{font:650 .8rem var(--font-display)}.team-transfer-safety span{color:var(--gray-500);font-size:.72rem}
