/* Additive application controls only. The visual source is dashboard.html via /dashboard-design.css. */
[hidden]{display:none!important}
:root{--base:var(--bg-base);--surface:var(--bg-surface-1);--raised:var(--bg-surface-2);--line:var(--border-medium);--ink:var(--text-primary);--muted:var(--text-muted);--cyan:var(--cyan-hud);--bad:#ff9eb0;--control-border:#7588aa;--radius:var(--r-lg)}
a{color:var(--cyan);text-underline-offset:4px}a:hover{color:#a3f7ff}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;border:1px solid transparent;border-radius:var(--r-md);background:var(--cyan);color:#05212b;font-weight:650;text-decoration:none;cursor:pointer}button:hover,.button:hover{background:#8af3ff;color:#05212b}.secondary{background:var(--bg-surface-3);color:var(--ink);border-color:var(--line)}.quiet{background:none;color:var(--text-secondary);padding:8px;border:none}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}::selection{background:var(--cyan);color:#05212b}
input,textarea,select{caret-color:var(--cyan);display:block;width:100%;min-height:44px;background:var(--raised);color:var(--ink);border:1px solid var(--control-border);border-radius:var(--r-md);padding:10px 12px}input::placeholder,textarea::placeholder{color:var(--muted)}label{display:block;color:var(--text-secondary);font-size:13px}label input,label textarea,label select{margin-top:6px}textarea{resize:vertical}small{font-size:11.5px}small,small.muted{display:block}.muted{color:var(--text-secondary)}.accent{color:var(--cyan)}.error{color:var(--bad)}h2,h3{line-height:1.4;margin:0 0 15px;font-weight:700;font-size:14px}h3{font-size:13px;margin-top:25px}p{margin:0 0 18px;max-width:75ch;font-size:13px;line-height:1.6}.page-title{margin:0}.brand-block{flex-shrink:0}.navigation{flex:1;min-height:0;overflow:auto}.navigation summary{display:none}.nav-item-btn{text-decoration:none}.sidebar-footer{flex-shrink:0}.account-email{color:var(--text-secondary);overflow-wrap:anywhere;font-size:11px}.top-hud-bar{flex-shrink:0;gap:16px;min-height:60px}.top-hud-bar form{margin:0}.role-toggle-btn{display:inline-flex;align-items:center;justify-content:center;cursor:default}.view-content{scrollbar-color:#40536d var(--base)}.page-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-heading{margin-bottom:20px}.section-heading{margin:18px 0}.section-heading h2,.section-heading p{margin:0}.notice{border:1px solid var(--line);background:var(--raised);border-radius:var(--r-md);padding:14px 16px;max-width:none;font-size:13px;margin:18px 0}.notice p{margin:10px 0 0}.empty{border:1px dashed var(--line);padding:28px;border-radius:var(--radius);margin:24px 0}.empty p{color:var(--text-secondary)}.task-item{display:flex;justify-content:space-between;align-items:center;gap:18px}.task-item strong{font-size:13px}.task-item p{color:var(--text-secondary);font-size:12px;margin:7px 0 0}.task-item>.button{flex-shrink:0;font-size:12px}.task-item>.status-badge{flex-shrink:0}
.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0}.metric-strip>div{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;position:relative}.metric-strip>div:before{content:'';position:absolute;top:0;left:0;width:32px;height:2px;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.metric-strip span{color:var(--muted);font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.metric-strip strong{display:block;font:700 26px var(--font-mono);font-variant-numeric:tabular-nums;line-height:1.6;margin:8px 0 6px}.metric-strip small{color:var(--text-secondary)}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin:24px 0}.filters label{flex:1;min-width:145px}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.panel{padding:22px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.volume{grid-column:span 2}.panel .section-heading{margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.panel>p:last-child{margin-bottom:0}.chart{min-height:235px}.chart svg{width:100%;height:235px;display:block}.chart.compact,.chart.compact svg{min-height:180px;height:180px}.chart text{font:11px var(--font-sans);fill:var(--text-secondary)}.chart .gridline{stroke:var(--line)}.chart .plot{fill:none;stroke:var(--cyan);stroke-width:2.3;stroke-linejoin:round;stroke-linecap:round}.chart .bar{fill:#34bfd1}.chart .dot{fill:var(--cyan)}.chart .blank{display:flex;align-items:center;justify-content:center;min-height:235px;color:var(--text-secondary);text-align:center;padding:25px}.tag{font:10.5px var(--font-mono);padding:3px 8px;background:var(--cyan-dim);color:var(--cyan);border-radius:var(--r-sm)}.stat-list{margin:0}.stat-list>div{display:flex;justify-content:space-between;gap:18px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--border-subtle)}.stat-list>div:last-child{border:0}.stat-list dt{color:var(--text-secondary);font-size:12px}.stat-list dd{margin:0;font:14px var(--font-mono);font-variant-numeric:tabular-nums}.panel>p{margin-top:18px;font-size:12px}.client-breakdown{margin-top:20px}.data-table summary,.definitions summary{cursor:pointer;color:var(--text-secondary);min-height:44px;padding:10px 0}.definitions{margin-top:26px}.definitions p{margin-top:15px;color:var(--text-secondary);font-size:12px}.table-wrap{overflow:auto;max-height:450px}table{width:100%;border-collapse:collapse;font-size:12.5px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 16px;font-variant-numeric:tabular-nums}th{color:var(--muted);font:11px var(--font-mono);white-space:nowrap}td{overflow-wrap:anywhere}fieldset{min-width:0;border:0;border-top:1px solid var(--line);padding:26px 0 30px;margin:22px 0}legend{font-size:14px;font-weight:700;padding:0 15px 0 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:12px 0 20px}.form-width{max-width:620px}.form-width label,.auth label,.setup-form>label{margin:16px 0}.hours>div{display:flex;align-items:center;gap:12px;margin-bottom:12px}.hours input[type=time]{width:140px}.check{display:flex;align-items:center;gap:10px;margin:16px 0}.check input[type=checkbox]{width:20px;height:20px;min-height:20px;margin:0;flex-shrink:0}.hours .check{width:84px;margin:0}.form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.approval{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:30px 0}.auth{max-width:470px;margin:8vh auto;padding:32px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-lg)}.auth h1{font-size:22px;margin:20px 0}.auth .brand-block{padding:0 0 20px}.auth form{margin:24px 0}.auth button{width:100%;margin-top:8px}.transcript{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;max-width:75ch}.skip{position:absolute;left:16px;top:-60px;background:var(--cyan);color:#05212b;padding:8px 16px;z-index:50}.skip:focus{top:10px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:var(--base)}::-webkit-scrollbar-thumb{background:#40536d;border-radius:5px}
@media(max-width:1200px){.top-hud-bar{height:auto;padding:14px 22px;flex-wrap:wrap}.hud-title-zone{flex-wrap:wrap;min-width:0}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.volume{grid-column:span 2}}
@media(max-width:767px){.app-shell{display:block;overflow:auto;height:100dvh}.sidebar{width:100%;min-width:0;height:auto;max-height:none}.brand-block{padding:16px 20px}.navigation summary{display:block;cursor:pointer;padding:10px 20px;color:var(--text-secondary)}.nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 12px}.nav-list .nav-label{grid-column:1/-1}.sidebar-footer{display:none}.main-canvas{overflow:visible}.view-content{overflow:visible}.top-hud-bar{padding:14px}.hud-title-zone,.hud-stats-zone{width:100%;justify-content:space-between}.market-badge{max-width:100%;overflow-wrap:anywhere}.hud-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hud-card-label{gap:8px;flex-wrap:wrap}.hud-card{padding:16px}.hud-card-value{font-size:24px}.hud-dual-grid{grid-template-columns:1fr}.task-item{align-items:flex-start;flex-wrap:wrap}.report-grid{display:block}.panel{margin-bottom:16px;padding:18px}.metric-strip{gap:12px}.metric-strip>div{padding:16px}.metric-strip strong{font-size:24px}.metric-strip span{overflow-wrap:anywhere}.filters{gap:12px}.filters label{min-width:125px}.form-grid{grid-template-columns:1fr}.hours{font-size:11px}.hours input[type=time]{width:112px}.hours>div{gap:8px}.hours .check{width:64px}.form-actions button{width:100%}.auth{margin:3vh 12px;padding:24px}.empty{padding:24px}}
/* Historical provider observations extend the original telemetry components. */
.retell-balance{text-decoration:none;gap:12px}.retell-balance .accent{font-weight:700;min-width:0}.retell-balance small{font-size:10px;color:var(--text-secondary);margin-top:4px}.observation-time{overflow-wrap:anywhere;font-size:11px!important}.budget-hud{gap:12px;flex-wrap:wrap}.stat-list dd{max-width:58%;overflow-wrap:anywhere}

/* ==========================================================================
   CODEFRONTS MODERN ONBOARDING WIZARD STYLES (COMPACT & CRAFTED UX)
   ========================================================================== */
.onboarding-wizard {
  max-width: 980px;
  margin: 0 auto;
}

.onboarding-stepper {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0 32px;
  overflow-x: auto;
  padding-bottom: 8px;
}

.step-tab {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  background: var(--bg-surface-2);
  border: 1px solid var(--border-medium);
  border-radius: var(--r-lg);
  color: var(--text-secondary);
  font: inherit;
  text-decoration: none;
  cursor: pointer;
  flex: 1;
  min-width: 170px;
  text-align: left;
  transition: all 180ms ease-out;
}

.step-tab:hover {
  background: var(--bg-surface-3);
  border-color: rgba(0, 229, 255, 0.4);
}

.step-tab.active {
  background: rgba(0, 229, 255, 0.08);
  border-color: var(--cyan-hud);
  box-shadow: 0 0 16px rgba(0, 229, 255, 0.15);
  color: var(--text-primary);
}

.step-tab.completed .step-badge {
  background: #10B981;
  color: #05212b;
  border-color: #10B981;
}

.step-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--bg-surface-3);
  border: 1px solid var(--border-medium);
  color: var(--text-primary);
  font: 700 12px var(--font-mono);
  flex-shrink: 0;
  transition: all 180ms ease-out;
}

.step-tab.active .step-badge {
  background: var(--cyan-hud);
  color: #05212b;
  border-color: var(--cyan-hud);
}

.step-labels {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.step-title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.step-sub {
  font-size: 11px;
  color: var(--text-muted);
  white-space: nowrap;
}

.step-divider {
  width: 20px;
  height: 1px;
  background: var(--border-medium);
  flex-shrink: 0;
}

.wizard-panel {
  display: none;
  animation: panelFade 200ms ease-out;
}

.wizard-panel.active {
  display: block;
}

@keyframes panelFade {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Featured Magic Scan Card */
.magic-scan-box {
  background: linear-gradient(135deg, rgba(0, 229, 255, 0.04) 0%, rgba(12, 24, 42, 0.8) 100%);
  border: 1px solid rgba(0, 229, 255, 0.25);
  border-radius: var(--r-xl);
  padding: 36px 32px;
  margin-bottom: 24px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.magic-scan-header {
  text-align: center;
  max-width: 620px;
  margin: 0 auto 28px;
}

.magic-scan-header h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 8px;
}

.magic-scan-header p {
  color: var(--text-secondary);
  font-size: 14px;
  margin: 0 auto;
}

.scan-form-row {
  display: flex;
  gap: 12px;
  max-width: 680px;
  margin: 0 auto 16px;
}

.scan-url-input {
  flex: 1;
  min-height: 50px;
  font-size: 15px;
  border-color: rgba(0, 229, 255, 0.3);
  background: var(--bg-surface-1);
}

.scan-url-input:focus {
  border-color: var(--cyan-hud);
  box-shadow: 0 0 12px rgba(0, 229, 255, 0.25);
}

.btn-magic-scan {
  min-height: 50px;
  padding: 0 24px;
  font-size: 14px;
  white-space: nowrap;
}

.scan-skip-link {
  text-align: center;
  margin-top: 16px;
}

.scan-skip-link button {
  background: none;
  border: none;
  color: var(--text-muted);
  text-decoration: underline;
  cursor: pointer;
  font-size: 13px;
}

.scan-skip-link button:hover {
  color: var(--cyan-hud);
}

/* Service Chips UI */
.service-chips-container {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px;
  background: var(--bg-surface-1);
  border: 1px solid var(--border-medium);
  border-radius: var(--r-md);
  min-height: 60px;
  margin-bottom: 12px;
}

.service-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 229, 255, 0.12);
  border: 1px solid rgba(0, 229, 255, 0.3);
  color: var(--cyan-hud);
  padding: 6px 12px;
  border-radius: var(--r-full);
  font-size: 13px;
  font-weight: 500;
  transition: all 140ms ease-out;
}

.service-chip:hover {
  background: rgba(0, 229, 255, 0.2);
  border-color: var(--cyan-hud);
}

.chip-remove-btn {
  background: none;
  border: none;
  color: var(--cyan-hud);
  cursor: pointer;
  padding: 0;
  font-size: 12px;
  opacity: 0.7;
}

.chip-remove-btn:hover {
  opacity: 1;
}

.service-add-row {
  display: flex;
  gap: 10px;
  margin-bottom: 24px;
}

.service-add-row input {
  flex: 1;
}

.service-add-row button {
  flex-shrink: 0;
}

/* Hours Quick Presets */
.hours-quick-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 10px;
}

.btn-preset {
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.4);
  color: #F59E0B;
  padding: 7px 14px;
  border-radius: var(--r-md);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 150ms ease-out;
}

.btn-preset:hover {
  background: rgba(245, 158, 11, 0.2);
  border-color: #F59E0B;
}

/* Radio Selection Cards (Voice / Policy) */
.choice-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 14px 0 24px;
}

.choice-card {
  display: flex;
  flex-direction: column;
  padding: 18px 20px;
  background: var(--bg-surface-2);
  border: 1px solid var(--border-medium);
  border-radius: var(--r-lg);
  cursor: pointer;
  transition: all 180ms ease-out;
}

.choice-card:hover {
  border-color: rgba(0, 229, 255, 0.4);
}

.choice-card.selected {
  border-color: var(--cyan-hud);
  background: rgba(0, 229, 255, 0.06);
  box-shadow: 0 0 16px rgba(0, 229, 255, 0.12);
}

.choice-card strong {
  font-size: 14px;
  color: var(--text-primary);
  margin-bottom: 4px;
}

.choice-card span {
  font-size: 12px;
  color: var(--text-secondary);
}

/* Wizard Navigation Bar */
.wizard-nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0 12px;
  margin-top: 24px;
  border-top: 1px solid var(--border-subtle);
  flex-wrap: wrap;
  gap: 12px;
}

.wizard-nav-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.wizard-nav-right {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

/* Humanized Validation Summary */
.validation-summary-card {
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: var(--r-lg);
  padding: 18px 22px;
  margin-bottom: 24px;
}

.val-title {
  font-size: 14px;
  font-weight: 700;
  color: #F59E0B;
  margin-bottom: 6px;
}

.val-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.val-list li {
  background: rgba(245, 158, 11, 0.15);
  color: #F59E0B;
  padding: 4px 10px;
  border-radius: var(--r-sm);
  font-size: 12px;
}

/* Review Cards on Step 4 */
.review-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.review-card {
  background: var(--bg-surface-2);
  border: 1px solid var(--border-medium);
  border-radius: var(--r-lg);
  padding: 18px 20px;
}

.review-card h4,
.review-card .review-card-title {
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 10px;
  color: var(--cyan-hud);
}

.review-card p {
  font-size: 12.5px;
  margin: 0;
  line-height: 1.5;
}

@media (max-width: 860px) {
  .choice-cards-grid { grid-template-columns: 1fr; }
  .review-cards-grid { grid-template-columns: 1fr; }
  .scan-form-row { flex-direction: column; }
  .btn-magic-scan { width: 100%; }
}

/* Clear scan & Danger action buttons */
.button.danger {
  color: #FF5A5A;
  border-color: rgba(255, 90, 90, 0.35);
  background: rgba(255, 90, 90, 0.08);
  transition: all var(--motion-fast);
}

.button.danger:hover {
  background: rgba(255, 90, 90, 0.18);
  border-color: #FF5A5A;
  color: #FFF;
  box-shadow: 0 0 12px rgba(255, 90, 90, 0.3);
}

.website-audit-box {
  background: var(--bg-surface-2);
  border: 1px solid rgba(0, 229, 255, 0.25);
  border-radius: var(--r-lg);
  padding: 16px 20px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}
/* Calendar connect: three plain steps, the event chosen from a list. */
.notice.notice-ok{border-color:rgba(63,220,156,.45);background:rgba(63,220,156,.08);color:#9ff0cc}.notice.error{border-color:rgba(255,158,176,.45);background:rgba(255,158,176,.07)}
.status-badge.status-ok{color:#3fdc9c;border-color:rgba(63,220,156,.4)}
.calendar-status{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid;border-radius:6px;font-size:12px;font-weight:700;line-height:1.4}
.calendar-status svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.calendar-status.is-ready{color:#9ff0cc;background:rgba(63,220,156,.08);border-color:rgba(63,220,156,.45)}
.calendar-status.is-error{color:var(--bad);background:rgba(255,158,176,.07);border-color:rgba(255,158,176,.45)}
.calendar-status-help{margin:10px 0;max-width:48ch;font-size:12px;line-height:1.6;color:var(--text-secondary)}.calendar-status-help.is-error{color:var(--bad)}
.calendar-table td{vertical-align:top}.calendar-table td:last-child{width:300px}.calendar-table [data-calendar-actions]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.calendar-table [data-booking-progress]{margin:6px 0}
.calendar-remove{margin-top:14px}.calendar-remove summary{display:inline-flex;min-height:36px;cursor:pointer;list-style:none}.calendar-remove summary::-webkit-details-marker{display:none}.calendar-remove form{padding:12px 0}.calendar-remove p{max-width:40ch;margin:0;font-size:12px;line-height:1.6}.calendar-remove .check{align-items:flex-start;font-size:12px;line-height:1.6}
/* Runway Loader, AI Canvas (MIT): user-supplied SVG and runway, driven by real requests. */
.runway-loader{width:min(100%,440px);padding:20px 30px 12px;overflow:hidden;box-sizing:border-box}.runway-loader[hidden]{display:none}.runway-loader p{margin:14px 0 0;font-size:12px;line-height:1.6;text-align:center;color:var(--text-secondary)}
.runway-track{position:relative;height:44px;border-radius:999px;background:linear-gradient(to bottom,#404040,#252525);box-shadow:inset 0 4px 12px rgba(0,0,0,.85),inset 0 -1px 3px rgba(255,255,255,.04),0 2px 8px rgba(0,0,0,.5)}
.runway-dashes{position:absolute;left:18px;right:18px;top:50%;height:2px;background:repeating-linear-gradient(to right,rgba(255,255,255,.22) 0,rgba(255,255,255,.22) 10px,transparent 10px,transparent 24px)}
.runway-fill{position:absolute;inset:0 auto 0 0;width:18%;border-radius:999px;background:linear-gradient(to right,#6b0000,#be1c1c 50%,#e03030);animation:runway-fill 4s ease-in-out infinite alternate}
.runway-plane{position:absolute;left:18%;top:50%;width:64px;transform:translate(-50%,-50%);animation:runway-taxi 4s ease-in-out infinite alternate}.runway-plane svg{width:100%;height:auto;filter:drop-shadow(0 4px 12px rgba(0,0,0,.75)) drop-shadow(0 2px 4px rgba(0,0,0,.5))}
.runway-loader[data-state=complete] .runway-fill{animation:none;width:100%}.runway-loader[data-state=complete] .runway-plane{left:91%;animation:runway-takeoff .7s ease-in forwards}.runway-loader[data-state=error] .runway-plane,.runway-loader[data-state=error] .runway-fill{animation:none}.runway-loader[data-state=error] p{color:var(--bad)}
@keyframes runway-taxi{to{left:78%}}@keyframes runway-fill{to{width:78%}}@keyframes runway-takeoff{to{opacity:0;transform:translate(100px,-80%) scale(1.8)}}
@media(prefers-reduced-motion:reduce){.runway-plane,.runway-fill,.runway-loader[data-state=complete] .runway-plane{animation:none}.runway-loader[data-state=complete] .runway-plane{opacity:0}}
@media(max-width:767px){.calendar-connect .section-header{gap:14px;flex-wrap:wrap}.calendar-table,.calendar-table tbody,.calendar-table tr,.calendar-table td{display:block;width:100%}.calendar-table thead{display:none}.calendar-table tr{padding:12px 0;border-bottom:1px solid var(--line)}.calendar-table td{border:0;padding:8px 0}.calendar-table td:last-child{width:100%}.calendar-status-help{max-width:none}}
.connect-steps{list-style:none;counter-reset:step;margin:22px 0 10px;padding:0;display:grid;gap:14px}
.connect-steps>li{counter-increment:step;position:relative;padding:18px 20px 18px 62px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.connect-steps>li::before{content:counter(step);position:absolute;left:18px;top:18px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--cyan-dim);color:var(--cyan);font:700 13px var(--font-mono)}
.connect-steps h3{margin:2px 0 8px;font-size:14px}.connect-steps p{margin:0 0 10px}.connect-steps code{color:var(--cyan)}
.connect-steps .button{margin-top:12px}.events-status{margin:10px 0 0;font-size:12.5px;color:var(--text-secondary)}.events-status.is-error{color:var(--bad)}.events-status.is-ok{color:#3fdc9c}
.event-choices{display:grid;gap:8px;margin-bottom:6px}.event-choice{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);cursor:pointer;color:var(--ink)}
.event-choice input{grid-row:1/3;width:18px;height:18px;min-height:18px;margin:0;accent-color:var(--cyan)}.event-choice .event-title{font-weight:650;font-size:13.5px}.event-choice .event-meta{font-size:12px;color:var(--text-secondary)}
.event-choice:has(input:checked){border-color:var(--cyan);background:rgba(0,229,255,.06)}
.calendar-steps:not(.is-enhanced) .event-choices{display:none}.calendly-note{max-width:320px;margin-top:6px;opacity:.7}
@media(max-width:767px){.connect-steps>li{padding:16px 16px 16px 54px}.connect-steps>li::before{left:14px}}

/* Receptionist journey (Test & go live, overview, admin voice list) */
.journey-steps{margin-bottom:18px}.journey-next ol{margin:0 0 18px;padding-left:22px}.journey-next li{margin:6px 0;font-size:13px;line-height:1.6}.web-test{margin:0 0 18px}.web-test .button{margin-right:8px}.voice-table .status-badge,.voice-table td:last-child{white-space:nowrap}
.ai-line{border:1px solid var(--line);border-radius:var(--r-md);padding:18px;margin:0 0 18px;text-align:center}.ai-line p{margin:0 auto 8px}.ai-number{font-size:26px;font-weight:700;color:var(--cyan);letter-spacing:.02em}.transcript{border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);min-height:120px;max-height:260px;overflow:auto;padding:12px 14px;margin:10px 0 0}.transcript p{margin:0 0 6px;font-size:13px}

/* Test & go live (customer) and the operator's AI number section: rail, next step, two panels, practice call. */
.golive{display:grid;gap:20px;margin:6px 0 28px}
.golive-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.golive-head h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--text-primary)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill-wait{color:var(--amber-alert);background:var(--amber-dim)}
.pill-live{color:var(--emerald-live);background:var(--emerald-dim)}
.rail{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.rail-step{position:relative;display:grid;justify-items:start;gap:4px;padding-top:30px;padding-right:12px}
.rail-step::before{content:"";position:absolute;top:10px;left:22px;right:0;height:2px;background:var(--border-medium)}
.rail-step:last-child::before{display:none}
.rail-step.is-done::before{background:var(--cyan-hud)}
.rail-dot{position:absolute;top:0;left:0;width:22px;height:22px;border-radius:50%;border:2px solid var(--border-medium);background:var(--bg-surface-1);display:grid;place-items:center}
.rail-dot svg{width:13px;height:13px;fill:none;stroke:#04131a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.rail-step.is-done .rail-dot{background:var(--cyan-hud);border-color:var(--cyan-hud)}
.rail-step.is-current .rail-dot{border-color:var(--cyan-hud);box-shadow:0 0 0 5px var(--cyan-dim)}
.rail-title{font-size:13.5px;font-weight:650;color:var(--text-primary)}
.rail-step.is-todo .rail-title{color:var(--text-secondary)}
.rail-note{font-size:12px;color:var(--text-secondary);line-height:1.4}
.rail-step.is-current .rail-note{color:var(--cyan-hud)}
.next-step{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-radius:var(--r-lg);background:var(--bg-surface-2);border:1px solid var(--border-bright)}
.next-step p{margin:0;font-size:14.5px;font-weight:600;color:var(--text-primary);max-width:68ch}
.golive-note{margin:0;font-size:13px;color:var(--text-secondary);max-width:70ch}
.golive-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px;align-items:start}
.panel{background:var(--bg-surface-1);border:1px solid var(--border-subtle);border-radius:var(--r-xl);padding:22px;display:grid;gap:16px;min-width:0}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.panel-head h3{margin:0;font-size:16px;font-weight:700;color:var(--text-primary)}
.panel-aside{font-size:13px;color:var(--text-secondary)}
.panel-aside a{color:var(--cyan-hud);font-weight:600;text-decoration:none}
.panel-lead{margin:0;color:var(--text-secondary);font-size:13.5px}
.panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.panel-actions form{margin:0}
.facts{margin:0;display:grid;gap:0;border-top:1px solid var(--border-subtle)}
.fact{display:grid;grid-template-columns:minmax(120px,40%) 1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-subtle)}
.fact dt{font-size:13px;color:var(--text-secondary)}
.fact dd{margin:0;font-size:14px;color:var(--text-primary)}
.fact .number{font-size:16px;letter-spacing:.01em}
.fact-action{font-size:13px;font-weight:600;color:var(--cyan-hud);text-decoration:none}
.fact-action:hover{text-decoration:underline}
.inline-form{display:grid;gap:8px;margin:0}
.inline-form label{color:var(--text-primary);font-size:13.5px;font-weight:600}
.inline-form small{color:var(--text-secondary);font-size:12.5px;line-height:1.5}
.input-row{display:flex;gap:10px}
.input-row input{flex:1;margin:0}
.forward-steps{margin:0;padding-left:20px;display:grid;gap:8px;font-size:13.5px;color:var(--text-primary);line-height:1.55}
.forward-help{margin:0;font-size:12.5px;color:var(--text-secondary)}
.button-wide{width:100%}
.link-button{background:none;border:0;padding:0;min-height:0;color:var(--cyan-hud);font-weight:600;font-size:13px;cursor:pointer;text-align:left;width:auto}
.link-button:hover{text-decoration:underline}
.report{display:grid;gap:12px;justify-items:start}.report-form{width:100%}
.report-form{display:grid;gap:8px;margin:0}
.report-form label{color:var(--text-primary);font-weight:600;font-size:13.5px}
.form-row{display:flex;gap:10px}
/* Practice call: the round button is the one bold element on the page. */
.voice-test{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:stretch}
.voice-controls{display:grid;justify-items:center;align-content:start;gap:12px;text-align:center}
.voice-orb{position:relative;width:132px;height:132px;min-height:0;border-radius:50%;padding:0;border:1px solid var(--border-bright);background:radial-gradient(circle at 50% 38%,rgba(0,229,255,.22),rgba(0,229,255,.06) 62%),var(--bg-surface-2);color:var(--text-primary);display:grid;place-items:center;align-content:center;gap:6px;font-size:12.5px;font-weight:650;line-height:1.25;cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast)}
.voice-orb span{max-width:96px}
.voice-orb:hover:not(:disabled){transform:scale(1.03);border-color:var(--cyan-hud)}
.voice-orb:disabled{opacity:.45;cursor:not-allowed}
.voice-icon{width:30px;height:30px;fill:none;stroke:var(--cyan-hud);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.voice-icon-end{display:none;stroke:var(--rose-danger);fill:var(--rose-dim)}
.voice-test[data-state=live] .voice-orb,.voice-test[data-state=connecting] .voice-orb{border-color:var(--rose-danger);background:radial-gradient(circle at 50% 38%,rgba(244,63,94,.2),rgba(244,63,94,.05) 62%),var(--bg-surface-2)}
.voice-test[data-state=live] .voice-icon-mic,.voice-test[data-state=connecting] .voice-icon-mic{display:none}
.voice-test[data-state=live] .voice-icon-end,.voice-test[data-state=connecting] .voice-icon-end{display:block}
.voice-test[data-state=live] .voice-orb::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid rgba(244,63,94,.45);animation:voice-ring 1.6s ease-out infinite}
@keyframes voice-ring{from{transform:scale(.94);opacity:1}to{transform:scale(1.14);opacity:0}}
.voice-status{margin:0;font-size:12.5px;color:var(--text-secondary);line-height:1.45}
.voice-status.error{color:var(--rose-danger)}
.voice-usage{width:100%;display:grid;gap:7px;text-align:left;padding-top:12px;border-top:1px solid var(--border-subtle)}
.usage-head{margin:0;display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12.5px;color:var(--text-secondary)}
.usage-head strong{color:var(--text-primary);font-weight:650;font-size:13px}
.usage-meter{display:flex;gap:4px}
.usage-seg{flex:1;height:6px;border-radius:3px;background:var(--bg-surface-3)}
.usage-seg.is-used{background:var(--cyan-hud)}
.usage-bar{height:6px;border-radius:3px;background:var(--bg-surface-3);overflow:hidden}
.usage-bar span{display:block;height:100%;width:0;background:var(--cyan-hud)}
.usage-note{margin:0;font-size:12px;line-height:1.45;color:var(--text-secondary)}
.usage-next{color:var(--amber-alert)}
.voice-history{margin-top:18px;padding-top:14px;border-top:1px solid var(--border-subtle)}
.voice-history h4{margin:0 0 8px;font-size:13px;font-weight:650;color:var(--text-primary)}
.voice-history ul{list-style:none;margin:0;padding:0;display:grid}
.voice-history li{display:grid;grid-template-columns:minmax(90px,auto) 1fr auto;gap:12px;align-items:center;padding:7px 0;font-size:13px;border-top:1px solid var(--border-subtle)}
.voice-history li:first-child{border-top:0}
.voice-history time{color:var(--text-primary);font-variant-numeric:tabular-nums}
.history-meta{color:var(--text-secondary);font-size:12.5px}
.voice-history .link-button[aria-current]{color:var(--text-secondary)}
.voice-transcript{background:var(--bg-surface-2);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:14px;min-height:220px;max-height:340px;overflow:auto;display:flex;flex-direction:column;gap:8px}
.voice-empty{margin:auto;color:var(--text-secondary);font-size:13px;text-align:center;max-width:30ch}
.bubble{margin:0;max-width:85%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.45;color:var(--text-primary)}
.bubble-who{display:block;font-size:11.5px;font-weight:650;color:var(--text-secondary);margin-bottom:2px}
.bubble-agent{align-self:flex-start;background:var(--bg-surface-3);border-bottom-left-radius:4px}
.bubble-user{align-self:flex-end;background:rgba(0,229,255,.12);border-bottom-right-radius:4px}
.forward-check{display:grid;gap:8px;margin-top:4px}
.forward-result{margin:0;font-size:13px;line-height:1.5;color:var(--text-secondary)}
.forward-result:empty{display:none}
.forward-result.is-good{color:var(--emerald-live)}
.forward-result.is-bad{color:var(--amber-alert)}
.forward-check[data-state=checking] .forward-result{color:var(--text-primary)}
.forward-check[data-state=checking] .forward-result::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--cyan-hud);vertical-align:1px;animation:forward-pulse 1.2s ease-in-out infinite}
@keyframes forward-pulse{50%{opacity:.25}}
.skip-check{margin:6px 0 0}
.skip-check .link-button{font-weight:500;color:var(--text-secondary);font-size:12.5px}
@media (prefers-reduced-motion:reduce){.forward-check[data-state=checking] .forward-result::before{animation:none}}
.voice-orb:focus-visible,.link-button:focus-visible,.fact-action:focus-visible{outline:2px solid var(--cyan-hud);outline-offset:3px}
@media (max-width:1100px){.golive-grid{grid-template-columns:1fr}}
@media (max-width:640px){.rail{grid-template-columns:1fr 1fr;row-gap:18px}.rail-step:nth-child(2)::before{display:none}.next-step{flex-direction:column;align-items:flex-start}.voice-test{grid-template-columns:1fr}.fact{grid-template-columns:1fr auto}.fact dt{grid-column:1/-1}.input-row{flex-direction:column}}
@media (prefers-reduced-motion:reduce){.voice-test[data-state=live] .voice-orb::after{animation:none;opacity:.6}.voice-orb{transition:none}}

/* Test & go live, journey layout: the panel for the current stage comes first and gets the wide column. */
.next-step-text{display:grid;gap:4px}
.next-step-count{font-size:12px;font-weight:600;color:var(--cyan-hud)}
.next-step.is-live{border-color:color-mix(in oklab,var(--emerald-live) 50%,transparent);background:color-mix(in oklab,var(--emerald-live) 8%,var(--bg-surface-2))}
.golive-grid.is-line-first{grid-template-columns:minmax(0,6fr) minmax(0,6fr)}
.panel{container-type:inline-size}
.panel-focus{border-color:color-mix(in oklab,var(--cyan-hud) 45%,transparent);box-shadow:0 0 0 1px color-mix(in oklab,var(--cyan-hud) 18%,transparent)}
.panel-wait{max-width:720px}
.chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.chip-ok{color:var(--emerald-live);background:var(--emerald-dim)}
.chip-wait{color:var(--amber-alert);background:var(--amber-dim)}
.copy-button{background:none;border:0;padding:4px 0;min-height:0;width:auto;cursor:pointer}
.forward-steps{list-style:none;padding:0;counter-reset:fs;gap:0}
.forward-steps>li{counter-increment:fs;position:relative;display:grid;gap:4px;padding:0 0 18px 40px}
.forward-steps>li::before{content:counter(fs);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;color:var(--cyan-hud);border:1.5px solid var(--cyan-hud);background:var(--bg-surface-1)}
.forward-steps>li:not(:last-child)::after{content:"";position:absolute;left:12px;top:30px;bottom:4px;width:2px;background:var(--border-medium)}
.forward-steps>li:last-child{padding-bottom:0}
.fs-title{font-size:14px;font-weight:650;color:var(--text-primary)}
.fs-text{font-size:13px;color:var(--text-secondary);line-height:1.55}
.fs-text strong{color:var(--text-primary)}
.forward-steps .forward-check{margin-top:8px}
.report-form{padding-top:14px;border-top:1px solid var(--border-subtle)}
.report-row textarea{flex:1;margin:0;min-height:44px}
.report-row .button{align-self:flex-start;white-space:nowrap}
.live-summary{margin:0;font-size:14px;color:var(--text-primary)}
@container (max-width:560px){.voice-test{grid-template-columns:1fr}.voice-controls{justify-items:stretch}.voice-orb{justify-self:center}.report-row{flex-direction:column}.report-row .button{align-self:stretch}}
@media (max-width:1100px){.golive-grid.is-line-first{grid-template-columns:1fr}}
@media (max-width:640px){.input-row{flex-direction:column}.input-row .button{width:100%}}
.copy-button:focus-visible{outline:2px solid var(--cyan-hud);outline-offset:3px}

/* Accessibility pass (axe WCAG 2.1 AA): facts keep their action inside the value; pending phases stay readable; scroll areas show focus. */
.fact{grid-template-columns:minmax(120px,40%) 1fr}
.fact dd{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.phase-chip.pending{opacity:1}
.phase-chip.pending .phase-no{color:var(--text-secondary)}
.table-wrap:focus-visible,.phase-strip:focus-visible{outline:2px solid var(--cyan-hud);outline-offset:2px}

/* Dashboard signals: unread calls and labelled estimates */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nav-counter.nav-new,.nav-item-btn.active .nav-counter.nav-new{margin-left:6px;background:#f97316;color:#1f0f00;border-color:#f97316;font-weight:700}
.nav-counter+.nav-counter.nav-new{margin-left:6px}
.call-new-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:9px;background:#f97316;color:#1f0f00;font:700 10px var(--font-mono);vertical-align:middle}
tr.call-unread td{font-weight:600;color:var(--text-primary)}
.calls-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.calls-head form{margin:0}
.calls-new-count{color:#fb923c}
.new-calls-notice{border-color:rgba(249,115,22,.45)}
.new-calls-notice strong{color:#fb923c}
.status-badge.status-estimate{background:rgba(250,204,21,.14);color:#facc15;border:1px dashed rgba(250,204,21,.6)}
.estimate-card .hud-card-value{color:#fde68a}
.estimate-card a{color:var(--cyan)}
.metric-strip>.estimate-card{border-style:dashed;border-color:rgba(250,204,21,.45)}
.metric-strip>.estimate-card strong{color:#fde68a}
.metric-strip>.estimate-card .status-badge{margin-left:6px;font-size:10px}
@media(min-width:1201px){.metric-strip:has(>.estimate-card){grid-template-columns:repeat(5,minmax(0,1fr))}.hud-metrics-grid:has(>.estimate-card){grid-template-columns:repeat(5,minmax(0,1fr))}}

/* A save/confirm message repeated near the reader when the page kept its scroll position (keep-scroll.js). */
.tc-floating-note{position:fixed;right:24px;bottom:24px;z-index:60;max-width:min(440px,calc(100vw - 32px));margin:0;box-shadow:0 12px 32px rgba(0,0,0,.45)}
@media(max-width:767px){.tc-floating-note{left:16px;right:16px;bottom:16px}}

.brand-logo-tc{flex-shrink:0;width:36px;height:36px;display:flex}.brand-logo-tc svg{display:block}.auth-brand{display:flex;justify-content:center}.auth-brand svg{display:block;max-width:100%}
/* Bilingual admin menu */
.nav-two{display:flex;flex-direction:column;line-height:1.25;min-width:0}.nav-two>span:first-child{overflow-wrap:anywhere}.nav-en{font-size:10.5px;font-weight:500;color:var(--text-secondary);letter-spacing:.01em}.nav-item-btn.active .nav-en{color:inherit;opacity:.8}.nav-item-btn.nav-sub{margin-left:18px;border-left:1px solid var(--line);border-top-left-radius:0;border-bottom-left-radius:0}
/* Date picker (static/datepicker.js) */
.dp-wrap{position:relative}.dp-field{cursor:pointer;padding-right:42px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%237fd7e6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16' rx='2.5'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.dp-pop{position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:min(320px,calc(100vw - 32px));padding:14px;border-radius:18px;background:#141c2e;border:1px solid #2c3a55;box-shadow:0 18px 50px rgba(0,0,0,.55);color:var(--ink,#e8eef8)}
.dp-pop[hidden]{display:none}.dp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.dp-title{font-weight:700;font-size:14px;text-transform:capitalize}
.dp-nav{width:36px;height:36px;min-height:36px;padding:0;border-radius:10px;border:1px solid #2c3a55;background:#1b2540;color:inherit;font-size:16px;line-height:1;cursor:pointer}.dp-nav:hover{border-color:#4fd1e3}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.dp-dow{font-size:11px;color:var(--text-secondary,#9fb0c8);text-align:center;padding:4px 0;text-transform:capitalize}
.dp-day{height:38px;min-height:38px;padding:0;border-radius:10px;border:1px solid transparent;background:transparent;color:inherit;font:600 13px var(--font-sans,inherit);cursor:pointer;font-variant-numeric:tabular-nums}
.dp-day:hover:not(:disabled){background:#22304d}.dp-day.dp-out{color:#8a97ae}.dp-day.dp-today{border-color:#4fd1e3}.dp-day[aria-pressed=true]{background:#22d3ee;color:#062430}.dp-day:disabled{opacity:.3;cursor:not-allowed}.dp-day:focus-visible,.dp-nav:focus-visible,.dp-foot button:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}
.dp-foot{display:flex;justify-content:space-between;margin-top:10px}.dp-foot button{min-height:34px;padding:0 12px;border-radius:10px;border:0;background:transparent;color:#7fd7e6;font-weight:600;cursor:pointer}.dp-foot button:hover{background:#1b2540}
/* Round 66: what is left before going live, and the operator's practice-call grant. */
.live-checklist{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.live-checklist li{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--raised)}
.live-checklist li span{font-weight:600;font-size:13px}.live-checklist li small{color:var(--text-secondary);text-align:right}
.live-checklist li span::before{content:"○";margin-right:8px;color:var(--text-secondary)}
.live-checklist li.is-done span::before{content:"✓";color:var(--ok,#3ddc97)}
.live-checklist li.is-problem{border-color:var(--warn,#f5b84b)}.live-checklist li.is-problem span::before{content:"!";color:var(--warn,#f5b84b)}
.practice-grant{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.practice-grant h4{margin:0 0 6px;font-size:13px}
.practice-request{margin-top:10px}
.practice-request .input-row{flex-direction:column;align-items:stretch;gap:8px}.practice-request .input-row .button{width:100%}

/* Progress bar (website scan, receptionist build): CodeFronts "Stripe loading" (pb-15, MIT, https://codefronts.com/components/css-progress-bars/stripe-loading/):
   a track with a 45° striped fill whose stripes slide one tile per loop; the fill width follows --value. */
.pb-15 { --tile:1.4rem; --pb-h:55; display:grid; gap:6px; margin:10px 0 2px; max-width:520px; }
.pb-15__head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:12.5px; }
.pb-15__cap { color:var(--text-secondary,#9fb0c8); }
.pb-15__label { font:600 12px var(--font-mono, ui-monospace, Menlo, monospace); color:oklch(.85 .12 var(--pb-h)); font-variant-numeric:tabular-nums; }
.pb-15__bar { --value:5%; position:relative; height:12px; border-radius:999px; overflow:hidden; background:oklch(.32 .03 250 / .7); box-shadow:inset 0 1px 2px rgba(0,0,0,.45); }
.pb-15__fill { position:absolute; inset:0 auto 0 0; width:var(--value); border-radius:inherit; transition:width .6s cubic-bezier(.3,.7,.4,1);
  background-color:oklch(.72 .14 var(--pb-h));
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.28) 0 calc(var(--tile) / 4), transparent calc(var(--tile) / 4) calc(var(--tile) / 2));
  background-size:var(--tile) var(--tile); animation:pb-15-slide .9s linear infinite; }
.pb-15.is-done .pb-15__fill { --pb-h:150; background-color:oklch(.72 .15 150); animation:none; }
@keyframes pb-15-slide { from { background-position:0 0; } to { background-position:var(--tile) 0; } }
@media (prefers-reduced-motion: reduce) { .pb-15__fill { animation:none; transition:none; } }
.pb-15.is-paused .pb-15__fill { animation:none; }
.build-progress .pb-15 { max-width:none; }

/* Round 69: one tab row on every operator page of a business (Müşteriler › name). */
.client-crumb{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:14px}
.client-crumb a{color:var(--text-secondary)}.client-crumb strong{color:var(--text-primary);font-weight:700}.client-crumb .muted{font-size:12px}
.client-tabs{display:flex;gap:4px;overflow-x:auto;margin:0 0 22px;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--raised);scrollbar-width:thin}
.client-tabs a{flex:none;padding:9px 14px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--text-secondary);text-decoration:none;white-space:nowrap}
.client-tabs a:hover{color:var(--text-primary);background:oklch(.75 .1 220 / .08)}
.client-tabs a[aria-current="page"]{color:var(--text-primary);background:oklch(.75 .12 220 / .16);box-shadow:inset 0 0 0 1px oklch(.75 .12 220 / .35)}
/* Round 76: calls that do not use minutes, and the recording player */
.call-free-tag{display:inline-block;white-space:nowrap;margin-left:6px;padding:1px 8px;border-radius:9px;background:#dcfce7;color:#14532d;font:600 11px var(--font-mono);vertical-align:middle}
.call-audio{width:100%;max-width:420px}
/* Round 82: Twilio number picker on the operator number card */
.twilio-number{margin-top:14px;padding:12px 14px;border:1px solid var(--line,#2a3550);border-radius:14px}
.twilio-number>summary{cursor:pointer;font-weight:600}
.twilio-buy fieldset{display:grid;gap:6px;margin:10px 0;padding:0;border:0}
.twilio-buy fieldset label.check{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0}
.twilio-buy input[type=radio]{width:18px;height:18px;flex:none;margin:0}
.twilio-buy fieldset small{margin-left:4px}

/* round 112: the signed-in user is a quiet label, not a button */
.user-role{display:inline-flex;align-items:center;min-height:36px;max-width:260px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font:500 12px var(--font-mono);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:767px){.user-role{display:none}}

/* round 112: leads line on the reports chart; the metric strip holds up to 7 figures */
.chart .leads-plot{stroke:#34d399;fill:none;stroke-width:2.2}
@media(min-width:1101px){.metric-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tag .leads-word{color:#34d399}
/* round 113: customer requests inbox (operator) and request list (customer) */
.req-inbox{display:grid;gap:14px;margin:0 0 28px}
.req-head h2{margin:0 0 4px}.req-head p{margin:0}
.req-item{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-card);padding:16px 18px;display:grid;gap:8px;min-width:0}
.req-item.is-new{border-color:rgba(245,158,11,.42)}.req-item.is-late{border-color:rgba(244,63,94,.5);background:linear-gradient(var(--rose-dim),var(--rose-dim)),var(--bg-card)}.req-item.is-done{opacity:.85}
.req-item header{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:14px}
.req-item time{margin-left:auto;font:500 12px var(--font-mono);color:var(--text-secondary)}
.req-kind{font:700 11px var(--font-mono);text-transform:uppercase;padding:4px 7px;border-radius:var(--r-sm);background:var(--cyan-dim);color:#a5f3fc}
.req-title{color:var(--text-secondary)}
.req-status{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;border:1px solid var(--line)}
.req-status.st-open{color:#fcd34d;border-color:rgba(245,158,11,.5)}.req-status.st-in_progress{color:#a5f3fc;border-color:rgba(0,229,255,.45)}
.req-status.st-answered{color:#6ee7b7;border-color:rgba(16,185,129,.45)}.req-status.st-closed{color:var(--text-secondary)}
.req-item.is-late .req-status.st-open{color:#fda4af;border-color:rgba(244,63,94,.5)}
.req-text{margin:0;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.req-done{margin:0;font-size:13.5px;color:#6ee7b7}
.req-timeline{margin:0;padding:10px 0 0 18px;border-top:1px solid var(--border-subtle);font-size:13px;color:var(--text-secondary);display:grid;gap:4px}
.req-timeline time{font:500 12px var(--font-mono)}
.req-actions{display:grid;gap:10px}.req-actions form{display:grid;gap:8px}
.req-buttons{display:flex;flex-wrap:wrap;gap:8px}
.req-new{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr) auto;gap:12px;align-items:end;margin:6px 0 10px}
@media(max-width:767px){.req-new{grid-template-columns:1fr}.req-item time{margin-left:0}}
/* header alert next to the page title: yellow for the first 24 hours, red after */
.hud-alert{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:6px 12px;border-radius:999px;font:700 12.5px var(--font-sans);text-decoration:none;border:1px solid}
.hud-alert i{width:8px;height:8px;border-radius:50%;background:currentColor}
.hud-alert.lvl-new{color:#fcd34d;border-color:rgba(245,158,11,.55);background:var(--amber-dim)}
.hud-alert.lvl-late{color:#fda4af;border-color:rgba(244,63,94,.6);background:var(--rose-dim)}
.hud-alert:hover{filter:brightness(1.15)}
/* round 113: password rules under the field, with room to breathe */
.pw-field input{margin-bottom:10px}
.pw-rules{list-style:none;margin:2px 0 6px;padding:0;display:grid;gap:4px;font-size:13px;color:var(--text-secondary)}
.pw-rules li::before{content:"○";display:inline-block;width:18px;color:var(--text-dim)}
.pw-rules li.is-ok{color:#6ee7b7}.pw-rules li.is-ok::before{content:"✓";color:#34d399}
.req-actions>a.button,.req-buttons .button{justify-self:start;width:auto}
.req-actions>a.button{max-width:max-content}

/* Round 117: progress width by class (CSP blocks inline style attributes) */
.pb-15__bar.v-0{--value:0%}.pb-15__bar.v-5{--value:5%}.pb-15__bar.v-10{--value:10%}.pb-15__bar.v-15{--value:15%}.pb-15__bar.v-20{--value:20%}.pb-15__bar.v-25{--value:25%}.pb-15__bar.v-30{--value:30%}.pb-15__bar.v-35{--value:35%}.pb-15__bar.v-40{--value:40%}.pb-15__bar.v-45{--value:45%}.pb-15__bar.v-50{--value:50%}.pb-15__bar.v-55{--value:55%}.pb-15__bar.v-60{--value:60%}.pb-15__bar.v-65{--value:65%}.pb-15__bar.v-70{--value:70%}.pb-15__bar.v-75{--value:75%}.pb-15__bar.v-80{--value:80%}.pb-15__bar.v-85{--value:85%}.pb-15__bar.v-90{--value:90%}.pb-15__bar.v-95{--value:95%}.pb-15__bar.v-100{--value:100%}
/* Round 117: one line for the optional note and the action, so a list of caller requests stays short */
.req-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:4px}
.req-inline input{min-height:42px}
@media(max-width:640px){.req-inline{grid-template-columns:1fr}}
.report-grid{align-items:start}
