:root { font-family: system-ui, -apple-system, Segoe UI, sans-serif; color: #1f2328; background: #f6f8fa; }
body { margin: 0; }
main { max-width: 1000px; margin: 0 auto; padding: 32px 20px 60px; }
header { display:flex; gap:20px; justify-content:space-between; align-items:flex-start; }
h1 { margin: 0 0 6px; }
h2 { margin-top:0; }
section { background:white; border:1px solid #d0d7de; border-radius:12px; padding:20px; margin:22px 0; }
.safe { background:#dafbe1; border:1px solid #4ac26b; border-radius:999px; padding:7px 10px; font-size:12px; font-weight:700; white-space:nowrap; }
.muted { color:#59636e; }
.performer { border-top:1px solid #d8dee4; padding:18px 0; }
.performer:first-child { border-top:0; }
.row { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.skills { display:flex; gap:6px; flex-wrap:wrap; margin:7px 0; }
.badge { background:#ddf4ff; border-radius:999px; padding:4px 8px; font-size:12px; }
textarea { width:100%; box-sizing:border-box; min-height:80px; margin:8px 0; padding:9px; }
label { display:grid; gap:6px; font-weight:600; }
form { display:grid; grid-template-columns:2fr 1fr 2fr auto; gap:12px; align-items:end; }
input, select, button { font:inherit; padding:9px 10px; }
button { cursor:pointer; }
.card { border:1px solid #d8dee4; border-radius:10px; padding:14px; margin:10px 0; }
.perfect { border-left:5px solid #1a7f37; }
.override { border-left:5px solid #bf8700; }
.ineligible { border-left:5px solid #cf222e; }
@media (max-width: 760px) { form { grid-template-columns:1fr; } header { flex-direction:column; } }

.test-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:10px; flex-wrap:wrap; }
.secondary { background:#fff; border:1px solid #d0d7de; border-radius:6px; }
.assign-test { margin-top:10px; }
.last-assigned { font-size:12px; margin-top:4px; }
.market-card { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid #d8dee4; }
.market-card:first-child { border-top:0; }
.stack-form { grid-template-columns:1fr 1fr 1.5fr auto; margin:14px 0; }
details { margin-top:14px; }
summary { cursor:pointer; font-weight:700; }
.market-checks { margin:10px 0; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.check { display:inline-flex; grid-template-columns:auto 1fr; align-items:center; gap:5px; font-weight:400; }
.territory-generator { display:grid; grid-template-columns:1fr 1fr auto 1.4fr; gap:10px; align-items:end; margin:12px 0; padding:12px; background:#f6f8fa; border-radius:8px; }
.small { font-size:12px; }
@media (max-width: 760px) { .territory-generator, .stack-form { grid-template-columns:1fr; } .market-card { flex-direction:column; } }
.button-link { display:inline-block; background:#1f2328; color:#fff; text-decoration:none; padding:10px 14px; border-radius:7px; font-weight:700; }
.between { justify-content:space-between; }
.customer-form { display:block; }
.customer-form fieldset { border:1px solid #d8dee4; border-radius:10px; padding:16px; margin:0 0 18px; }
.customer-form legend { font-weight:800; padding:0 6px; }
.form-grid { display:grid; gap:14px; }
.form-grid.two { grid-template-columns:1fr 1fr; }
.span-2 { grid-column:1 / -1; }
.customer-form > label { margin:16px 0; }
.customer-form input, .customer-form select, .customer-form textarea { width:100%; box-sizing:border-box; }
.status-panel { margin-top:16px; padding:14px; border-radius:9px; min-height:22px; }
.success-panel { background:#dafbe1; border:1px solid #4ac26b; color:#116329; }
.error-panel { background:#ffebe9; border:1px solid #ff8182; color:#82071e; }
.request-card { border:1px solid #d8dee4; border-radius:10px; padding:16px; margin:12px 0; }
.request-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.request-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 18px; margin:12px 0; }
.request-evals { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.mini-pill { border:1px solid #d8dee4; border-radius:999px; padding:5px 9px; font-size:12px; }
.mini-pill.perfect { border-color:#4ac26b; }
.mini-pill.override { border-color:#d4a72c; }
.mini-pill.ineligible { border-color:#ff8182; }
@media (max-width:760px) { .form-grid.two, .request-meta { grid-template-columns:1fr; } .span-2 { grid-column:auto; } .request-head { flex-direction:column; } }
.runtime-box { padding:12px; border:1px solid #d8dee4; border-radius:8px; background:#f6f8fa; margin:10px 0 14px; }
.settings-form { grid-template-columns:2fr 1fr 1fr 2fr auto; }
.warning-badge { background:#fff8c5; border-color:#d4a72c; }
.danger-badge { background:#ffebe9; border-color:#ff8182; }
.status-chip { display:inline-block; border-radius:999px; padding:4px 8px; font-size:12px; font-weight:800; background:#eef1f4; }
.status-chip.BOOKED, .status-chip.BOOKED_SIMULATED { background:#dafbe1; color:#116329; }
.status-chip.MANAGER_REVIEW, .status-chip.COLLISION_REFUNDED_REVIEW { background:#fff8c5; color:#633c01; }
.status-chip.PAYMENT_FAILED, .status-chip.REFUND_ATTENTION_REQUIRED { background:#ffebe9; color:#82071e; }
.request-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; align-items:center; }
.candidate-button { font-size:13px; padding:7px 9px; }
.danger-button { background:#fff; border:1px solid #ff8182; color:#82071e; border-radius:6px; }
.price-line { font-size:14px; font-weight:700; margin-top:8px; }
#test-form { grid-template-columns:1.3fr 2fr 1fr 1fr 2fr auto; }
@media (max-width:900px) { .settings-form, #test-form { grid-template-columns:1fr; } }
.payment-panel { margin-top:16px; padding:16px; border:1px solid #d0d7de; border-radius:10px; background:#fff; }
#card-container { margin:14px 0; min-height:90px; }

.field-help { font-weight:400; font-size:12px; color:#59636e; }
.time-preview { margin-top:6px; font-size:14px; }

/* v0.7 manager usability */
.filter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:14px 0; }
.filter-grid input, .filter-grid select { width:100%; box-sizing:border-box; }
.table-wrap { overflow-x:auto; margin-top:12px; }
table { width:100%; border-collapse:collapse; min-width:820px; }
th, td { text-align:left; vertical-align:top; padding:10px 9px; border-bottom:1px solid #d8dee4; }
th { font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:#59636e; background:#f6f8fa; }
.service-card { border-top:1px solid #d8dee4; padding:16px 0; }
.service-card:first-child { border-top:0; }
.eval-detail { border:1px solid #d8dee4; border-left-width:5px; border-radius:8px; padding:10px 12px; margin:9px 0; }
.eval-detail.perfect { border-left-color:#1a7f37; }
.eval-detail.override { border-left-color:#bf8700; }
.eval-detail.ineligible { border-left-color:#cf222e; }
.eval-detail ul { margin:7px 0 0 20px; padding:0; }
.preference-check { align-self:end; padding:9px 0; }
@media (max-width:760px) { .filter-grid { grid-template-columns:1fr; } }

/* v0.8 availability-first customer flow and manager controls */
.step-heading { display:flex; gap:12px; align-items:flex-start; margin-bottom:16px; }
.step-heading h2 { margin-bottom:4px; }
.step-number { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#1f2328; color:#fff; font-weight:800; flex:0 0 auto; }
.address-grid { display:grid; grid-template-columns:1fr 2fr 90px; gap:14px; align-items:start; }
.address-street { grid-column:1 / -1; }
.availability-summary { background:#f6f8fa; border:1px solid #d8dee4; border-radius:9px; padding:14px; margin:12px 0 18px; line-height:1.55; }
.nearby-times { margin-top:12px; padding:14px; border:1px solid #d8dee4; border-radius:9px; }
.nearby-buttons { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.reference-row { display:grid; grid-template-columns:1fr auto; gap:10px; }
.service-controls { display:grid; grid-template-columns:1.5fr 1.2fr 1fr auto 1fr; gap:12px; align-items:end; }
.zip-data-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.data-card { border:1px solid #d8dee4; border-radius:9px; padding:14px; display:grid; gap:10px; }
.status-panel.muted { background:#f6f8fa; border:1px solid #d8dee4; color:#59636e; }
.status-chip.LARGE_EVENT_REVIEW { background:#ddf4ff; color:#0550ae; }
@media (max-width:760px) {
  .address-grid, .service-controls, .zip-data-grid, .reference-row { grid-template-columns:1fr; }
  .address-street { grid-column:auto; }
}

/* v0.8.1 review-before-payment and contact polish */
.address-grid { grid-template-columns:minmax(0,2fr) 90px minmax(140px,1fr); align-items:start; }
.contact-grid > label { min-width:0; }
.review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:14px 0; }
.review-card { border:1px solid #d8dee4; border-radius:10px; padding:14px; min-width:0; }
.review-details { margin-top:10px; line-height:1.55; overflow-wrap:anywhere; }
.review-total { margin:18px 0 6px; font-size:20px; font-weight:800; }
.compact-button { padding:5px 9px; font-size:13px; }
#review-status:empty { display:none; }
@media (max-width:760px) {
  .address-grid, .review-grid { grid-template-columns:1fr; }
}

/* v0.8.2 lead-time and manager-reviewed schedule rebalancing */
.scheduling-solution { margin:14px 0; padding:14px; border:1px solid #d4a72c; border-left:5px solid #bf8700; border-radius:9px; background:#fff8c5; }
.scheduling-solution p { margin:8px 0; }
.status-chip.SCHEDULING_REVIEW { background:#fff8c5; color:#633c01; }

/* v0.8.3 manager operations */
.hidden { display:none !important; }
#manual-booking-form { display:grid; grid-template-columns:1fr; align-items:stretch; }
#manual-booking-form input, #manual-booking-form select, #manual-booking-form textarea { width:100%; box-sizing:border-box; }
.form-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.manual-preview { margin-top:14px; }
.manual-preview .status-panel { margin-top:0; }
.override-panel { display:grid; gap:12px; padding:12px; margin-top:10px; background:#f6f8fa; border-radius:8px; }
.manager-dialog { width:min(760px,calc(100% - 32px)); border:1px solid #d0d7de; border-radius:12px; padding:0; }
.manager-dialog::backdrop { background:rgba(31,35,40,.38); }
.dialog-shell { display:grid; grid-template-columns:1fr; gap:14px; padding:20px; }
.reassign-option { border:1px solid #d8dee4; border-radius:9px; padding:12px; margin:10px 0; }
.reassign-option.current { background:#f6f8fa; }
.email-card { border-top:1px solid #d8dee4; padding:14px 0; }
.email-card:first-child { border-top:0; }
.email-body { white-space:pre-wrap; background:#f6f8fa; border-radius:8px; padding:12px; margin-top:10px; font-family:inherit; }
.origin-chip { font-size:11px; font-weight:800; letter-spacing:.02em; color:#59636e; }
@media (max-width:760px) { .form-grid.three { grid-template-columns:1fr; } }

/* v0.9 manager application shell */
.manager-body { background:#f6f8fa; }
.manager-shell { min-height:100vh; display:grid; grid-template-columns:240px minmax(0,1fr); }
.manager-sidebar { position:sticky; top:0; height:100vh; box-sizing:border-box; padding:20px 14px; background:#1f2328; color:#fff; display:flex; flex-direction:column; gap:6px; overflow:auto; }
.manager-brand { display:grid; gap:3px; padding:0 10px 16px; margin-bottom:6px; border-bottom:1px solid rgba(255,255,255,.14); }
.manager-brand strong { font-size:18px; }
.manager-brand span { font-size:12px; color:#b8c0ca; }
.nav-item, .nav-link { display:block; width:100%; box-sizing:border-box; text-align:left; padding:10px 12px; border-radius:8px; border:0; background:transparent; color:#e6edf3; text-decoration:none; font-weight:650; }
.nav-item:hover, .nav-link:hover, .nav-item.active { background:#343a40; color:#fff; }
.nav-link { margin-top:auto; border:1px solid rgba(255,255,255,.18); }
.manager-main { max-width:none; margin:0; padding:26px clamp(16px,3vw,38px) 60px; min-width:0; }
.manager-topbar { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:18px; }
.manager-view { display:none; background:#fff; border:1px solid #d0d7de; border-radius:12px; padding:20px; margin:0; }
.manager-view.active { display:block; }
.manager-view + .manager-view { margin-top:0; }
.dashboard-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:22px; }
.dashboard-stats article { border:1px solid #d8dee4; border-radius:10px; padding:16px; display:grid; gap:4px; }
.dashboard-stats strong { font-size:28px; }
.dashboard-stats span { color:#59636e; font-size:13px; }
.attention-item { border:1px solid #d4a72c; border-left:5px solid #bf8700; border-radius:9px; padding:12px 14px; margin:10px 0; display:flex; justify-content:space-between; gap:14px; align-items:center; background:#fff8c5; }
.attention-item p { margin:4px 0 0; }
.empty-state { border:1px dashed #d0d7de; border-radius:10px; padding:18px; text-align:center; margin:10px 0 18px; }
.quick-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.manager-form { display:grid; grid-template-columns:1fr; gap:16px; align-items:stretch; }
.manager-form input, .manager-form select, .manager-form textarea { width:100%; box-sizing:border-box; }
.manager-fieldset { border:1px solid #d8dee4; border-radius:10px; padding:16px; margin:0; }
.manager-fieldset legend { font-weight:800; padding:0 6px; }
.manager-address { grid-template-columns:150px minmax(220px,1fr) 100px; }
.performer-selector { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:12px 0; }
.performer-choice { display:grid; grid-template-columns:auto 1fr; align-items:start; gap:10px; border:1px solid #d8dee4; border-radius:9px; padding:11px; cursor:pointer; font-weight:400; }
.performer-choice input { width:auto; margin-top:3px; }
.performer-choice span { display:grid; gap:3px; }
.performer-choice small { color:#59636e; }
.performer-choice:has(input:checked) { border-color:#218bff; background:#ddf4ff; }
.performer-choice.disabled { opacity:.55; cursor:not-allowed; }
.override-panel { display:grid; gap:10px; padding:12px; margin-top:10px; background:#f6f8fa; border-radius:8px; }
.override-choice { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; align-items:start; padding:10px; background:#fff; border:1px solid #d8dee4; border-radius:8px; font-weight:400; }
.override-choice input { width:auto !important; margin-top:3px; }
.override-choice span { display:grid; gap:3px; }
.override-choice small { color:#59636e; }
.performer-card { border-top:1px solid #d8dee4; padding:18px 0; }
.performer-card:first-child { border-top:0; }
.performer-toggles { display:flex; flex-wrap:wrap; gap:10px; }
.archived-performer { border-top:1px solid #d8dee4; padding:14px 0; display:grid; gap:6px; }
.archived-performer:first-child { border-top:0; }
.attention-banner { background:#fff8c5; border:1px solid #d4a72c; border-left:5px solid #bf8700; border-radius:8px; padding:10px 12px; margin:10px 0; }
.attention-banner p { margin:4px 0 0; }
.needs-attention-card { border-color:#d4a72c; }
.settings-card { border-top:1px solid #d8dee4; padding:18px 0; }
.settings-card:first-of-type { border-top:0; }
.warning-panel { background:#fff8c5; border:1px solid #d4a72c; color:#633c01; }
.wide-dialog { width:min(980px,calc(100% - 32px)); max-height:90vh; overflow:auto; }
.manager-dialog form.dialog-shell { align-items:stretch; }

@media (max-width: 920px) {
  .manager-shell { grid-template-columns:1fr; }
  .manager-sidebar { position:static; height:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:12px; }
  .manager-brand { grid-column:1 / -1; }
  .nav-link { margin-top:0; }
  .dashboard-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .performer-selector { grid-template-columns:1fr; }
  .manager-address { grid-template-columns:1fr 2fr 90px; }
}
@media (max-width: 640px) {
  .manager-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-stats { grid-template-columns:1fr 1fr; }
  .manager-address { grid-template-columns:1fr; }
  .attention-item { align-items:flex-start; flex-direction:column; }
}
.customer-address { grid-template-columns:150px minmax(220px,1fr) 100px; }
.customer-address .address-street { grid-column:1 / -1; }
@media (max-width:760px) { .customer-address { grid-template-columns:1fr; } .customer-address .address-street { grid-column:auto; } }

/* v0.9.1 manager usability polish */
.dashboard-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
.reason-textarea { min-height:120px; resize:vertical; }
.message-textarea { min-height:220px; resize:vertical; line-height:1.45; }
.staffing-option { border:1px solid #d8dee4; border-radius:9px; padding:12px; margin:10px 0; display:flex; justify-content:space-between; gap:14px; align-items:center; }
.audit-entry { border-top:1px solid #d8dee4; padding:14px 0; }
.audit-entry:first-child { border-top:0; }
.audit-entry p { margin:7px 0; }
.audit-json { white-space:pre-wrap; overflow-wrap:anywhere; max-height:280px; overflow:auto; background:#f6f8fa; border-radius:8px; padding:10px; font-size:12px; }
.manager-toast { position:fixed; right:22px; bottom:22px; max-width:min(430px,calc(100% - 44px)); padding:12px 16px; border-radius:9px; background:#1f2328; color:#fff; box-shadow:0 8px 28px rgba(31,35,40,.22); opacity:0; transform:translateY(10px); pointer-events:none; transition:opacity .18s ease,transform .18s ease; z-index:1000; }
.manager-toast.show { opacity:1; transform:translateY(0); }
.status-chip.CANCELLED_SIMULATED, .status-chip.CANCELLED, .status-chip.CANCELLED_BY_MANAGER { background:#f6f8fa; color:#59636e; }
@media (max-width:640px) { .dashboard-stats { grid-template-columns:1fr; } .staffing-option { align-items:flex-start; flex-direction:column; } }

.audit-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.45rem 1rem;margin:.65rem 0}.audit-facts>div{padding:.25rem 0}.audit-changes{margin:.65rem 0}.audit-changes ul{margin:.35rem 0 .1rem 1.25rem}.audit-entry details{margin-top:.65rem}.audit-entry details summary{cursor:pointer;color:var(--muted)}

/* v0.10.0 booking wizard + manager pricing/message-center polish */
.price-verification { border:3px solid #bf8700; background:#fff8c5; border-radius:12px; padding:18px; display:grid; gap:12px; }
.price-verification[hidden] { display:none; }
.price-warning-title { font-size:1.15rem; font-weight:900; letter-spacing:.04em; }
.price-breakdown-grid { display:grid; grid-template-columns:minmax(180px,1fr) auto; gap:8px 18px; align-items:baseline; margin:10px 0; }
.price-breakdown-grid strong { text-align:right; }
.verify-check { background:#fff; border:1px solid #d4a72c; border-radius:8px; padding:12px; }
.warning-text { color:#633c01; }
.notification-filters { display:grid; grid-template-columns:minmax(220px,2fr) minmax(160px,1fr) minmax(160px,1fr) 150px 150px; gap:10px; margin:14px 0; }
.email-card { border-top:1px solid #d8dee4; padding:14px 0; }
.email-card:first-child { border-top:0; }
.email-body { white-space:pre-wrap; line-height:1.5; padding:12px; background:#f6f8fa; border-radius:8px; margin-top:8px; }
.service-controls { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
@media (max-width:900px) { .notification-filters { grid-template-columns:1fr 1fr; } }
@media (max-width:600px) { .notification-filters, .price-breakdown-grid { grid-template-columns:1fr; } .price-breakdown-grid strong { text-align:left; } }
.result-anchor { scroll-margin-top:20px; }
.market-card { flex-wrap:wrap; }
.market-help-edit { flex-basis:100%; display:grid; grid-template-columns:minmax(240px,1fr) auto auto; gap:10px; align-items:end; margin-top:10px; }
@media (max-width:640px) { .market-help-edit { grid-template-columns:1fr; } }

/* v0.10.0 service selector alignment fix */
.service-choice-grid {
  display:grid;
  gap:12px;
  margin-top:10px;
}
.service-choice {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  cursor:pointer;
  font-weight:400;
}
.service-choice input[type="radio"] {
  width:auto;
  margin:0;
  padding:0;
  justify-self:start;
}
.service-choice span {
  min-width:0;
}
.service-choice small {
  color:#1f2328;
}

/* v0.10.6 customer booking page branding */
.customer-brand {
  display:flex;
  align-items:center;
  gap:16px;
  margin:4px 0 18px;
}
.customer-brand-logo {
  display:block;
  width:120px;
  height:auto;
  flex:0 0 auto;
}
.customer-brand-name {
  font-family:"Avenir Next Rounded Demi", "Avenir Next Rounded", "Avenir Next", "Arial Rounded MT Bold", sans-serif;
  font-size:clamp(2rem,5vw,3rem);
  line-height:1;
  font-weight:600;
  letter-spacing:0;
}
@media (max-width:520px) {
  .customer-brand { gap:12px; }
  .customer-brand-logo { width:92px; }
}

/* v0.11.1 manager authentication */
.manager-login-body {
  min-height:100vh;
  margin:0;
  display:grid;
  place-items:center;
  padding:24px;
  background:#f6f8fa;
}
.manager-login-card {
  width:min(440px,100%);
  background:#fff;
  border:1px solid #d8dee4;
  border-radius:14px;
  padding:30px;
  box-shadow:0 12px 36px rgba(31,35,40,.08);
}
.manager-login-brand {
  font-family:"Avenir Next Rounded Demi", "Avenir Next Rounded", "Avenir Next", "Arial Rounded MT Bold", sans-serif;
  font-size:2rem;
  font-weight:600;
  margin-bottom:8px;
}
.manager-login-card h1 { margin:.15rem 0 .35rem; }
.manager-login-form { display:grid; gap:16px; margin:24px 0 14px; }
.manager-login-form label { display:grid; gap:7px; }
.manager-login-form input { width:100%; box-sizing:border-box; }
.manager-login-form button { width:100%; }
.login-error { margin:12px 0; padding:10px 12px; border-radius:8px; background:#ffebe9; color:#82071e; border:1px solid #ff8182; }
.manager-login-customer-link { display:inline-block; margin-top:8px; }
.manager-logout-form { margin:0; }
.manager-logout-button { width:100%; text-align:left; background:transparent; border:0; font:inherit; cursor:pointer; }
