@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Outfit:wght@400;500;600;700&display=swap');

:root {
  /* Cool mist + deep teal — distinct from Switch Studio black/gold */
  --bg: #e8f0f4;
  --bg-raised: #dce7ed;
  --surface: #ffffff;
  --surface-elevated: #f7fafc;
  --surface-hover: #eef5f8;
  --border: #c5d4de;
  --border-light: #a8bdc9;
  --gold: #0f766e;
  --gold-light: #2dd4bf;
  --gold-dark: #115e59;
  --gold-glow: rgba(15,118,110,0.14);
  --gold-glow-strong: rgba(15,118,110,0.26);
  --gold-text: #ffffff;
  --text-primary: #14303a;
  --text-secondary: #4d6670;
  --text-muted: #7a919c;
  --success: #059669;
  --warning: #d97706;
  --danger: #dc2626;
  --info: #0284c8;
  --white: #ffffff;
  --radius: 14px;
  --radius-sm: 8px;
  --radius-xs: 4px;
  --radius-pill: 99px;
  --shadow-sm: 0 2px 10px rgba(20,48,58,0.08);
  --shadow: 0 12px 40px rgba(20,48,58,0.12), 0 2px 8px rgba(20,48,58,0.06);
  --shadow-gold: 0 0 32px rgba(15,118,110,0.18);
  --shadow-card: 0 1px 0 rgba(255,255,255,0.8) inset, 0 8px 28px rgba(20,48,58,0.08);
  --transition: 0.22s cubic-bezier(0.4,0,0.2,1);
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Outfit', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--sans); color:var(--text-primary); min-height:100vh; line-height:1.65;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(45,212,191,0.22) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 100% 30%, rgba(2,132,200,0.1) 0%, transparent 50%),
    radial-gradient(ellipse 50% 35% at 0% 70%, rgba(15,118,110,0.08) 0%, transparent 45%),
    linear-gradient(180deg, #eef5f8 0%, var(--bg) 40%, #e2ebf0 100%);
  background-attachment: fixed;
}

.app-wrapper { max-width:680px; margin:0 auto; padding:0 16px 80px; }

.app-header { text-align:center; padding:52px 16px 36px; position:relative; }
.app-header::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:600px; height:260px; background:radial-gradient(ellipse at center top, rgba(45,212,191,0.2) 0%, transparent 68%); pointer-events:none; animation:breathe 6s ease-in-out infinite; }
@keyframes breathe { 0%,100%{opacity:0.7} 50%{opacity:1.0} }
.logo-wrap { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px; margin-bottom:12px; }
img.logo { max-width:280px; width:100%; height:auto; display:block; border-radius:8px; }
.logo-text-fallback { display:flex; align-items:center; justify-content:center; gap:12px; }
.logo-bolt { font-size:2.4rem; filter:drop-shadow(0 0 10px rgba(15,118,110,0.45)); }
.site-brand,
.logo-name {
  font-family:var(--serif); font-size:1.85rem; font-weight:500; line-height:1.15; margin:0;
  text-align:center;
  background:linear-gradient(135deg,#0f766e 0%,#14b8a6 45%,#0e7490 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  letter-spacing:0.02em;
}
.site-brand-line2 { display:inline-block; letter-spacing:0.08em; }
.app-header .tagline { display:none; }
.header-divider { width:60px; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:16px auto 0; border-radius:99px; }

.app-footer { text-align:center; padding:32px 0 16px; font-size:0.72rem; color:var(--text-muted); letter-spacing:0.05em; border-top:1px solid var(--border); margin-top:20px; }
.app-footer a { color:var(--text-secondary); text-decoration:none; }
.app-footer a:hover { color:var(--gold); }
.footer-links { margin-top:8px; }
.legal-page .legal-title { font-family:var(--serif); font-size:1.75rem; font-weight:400; color:var(--white); margin-top:8px; }
.legal-back { color:var(--text-secondary); text-decoration:none; letter-spacing:0.12em; }
.legal-back:hover { color:var(--gold); }
.legal-card h2 { font-size:0.95rem; color:var(--gold); margin:22px 0 8px; font-weight:600; }
.legal-card p { font-size:0.88rem; color:var(--text-secondary); line-height:1.65; margin-bottom:10px; }
.legal-card a { color:var(--gold-light); }
.legal-updated { margin-top:24px; font-size:0.75rem; color:var(--text-muted); }

.warranty-lead {
  font-size:1.05rem !important; color:var(--white) !important; line-height:1.5 !important;
  margin:0 0 20px !important;
}
.warranty-split {
  display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:8px 0 28px;
}
.warranty-pane {
  border:1px solid var(--border); border-radius:12px; padding:18px 16px;
  background:var(--bg-raised);
}
.warranty-pane.labor { border-color:rgba(61,220,132,0.35); }
.warranty-pane.parts { border-color:rgba(15,118,110,0.4); }
.warranty-pane-kicker {
  margin:0 0 4px !important; font-size:0.68rem !important; font-weight:700 !important;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--text-muted) !important;
}
.warranty-pane.labor .warranty-pane-kicker { color:var(--success) !important; }
.warranty-pane.parts .warranty-pane-kicker { color:var(--gold) !important; }
.warranty-pane-title {
  font-family:var(--serif); font-size:1.85rem; font-weight:400; color:var(--white);
  margin:0 0 10px; line-height:1.1;
}
.warranty-pane-body {
  margin:0 0 12px !important; font-size:0.84rem !important; color:var(--text-secondary) !important;
}
.warranty-list {
  margin:0; padding-left:1.1rem; font-size:0.8rem; color:var(--text-secondary); line-height:1.55;
}
.warranty-list li { margin-bottom:6px; }
.warranty-list.plain { margin:0 0 12px; }
.warranty-list strong { color:var(--white); font-weight:600; }
.warranty-steps {
  margin:0 0 12px; padding-left:1.2rem; font-size:0.86rem; color:var(--text-secondary); line-height:1.6;
}
.warranty-steps li { margin-bottom:8px; }
.warranty-footnote {
  margin-top:20px !important; padding-top:16px; border-top:1px solid var(--border);
  font-size:0.8rem !important; color:var(--text-muted) !important;
}
@media (max-width:640px) {
  .warranty-split { grid-template-columns:1fr; }
}

@keyframes fadeUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
@keyframes shimmer { 0%{background-position:-200% center} 100%{background-position:200% center} }

.card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:30px; margin-bottom:20px; box-shadow:var(--shadow-card); animation:fadeUp 0.3s ease both; position:relative; overflow:hidden; }
.card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.06),transparent); pointer-events:none; }
.card-title { font-family:var(--serif); font-size:1.4rem; font-weight:400; color:var(--white); margin-bottom:6px; letter-spacing:0.01em; line-height:1.2; }
.card-subtitle { font-size:0.83rem; color:var(--text-secondary); margin-bottom:24px; line-height:1.5; }

.progress-bar-wrap { margin-bottom:28px; animation:fadeUp 0.25s ease both; }
.progress-labels { display:flex; justify-content:space-between; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-muted); margin-bottom:9px; }
.progress-track { background:var(--bg-raised); border:1px solid var(--border); border-radius:99px; height:8px; overflow:hidden; }
.progress-fill { height:100%; background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-light),var(--gold),var(--gold-dark)); background-size:200% 100%; border-radius:99px; transition:width 0.5s cubic-bezier(0.4,0,0.2,1); box-shadow:0 0 10px rgba(15,118,110,0.55); animation:shimmer 3s linear infinite; }
.step-indicator { text-align:center; font-size:0.74rem; color:var(--text-muted); letter-spacing:0.08em; margin-top:8px; text-transform:uppercase; }

.form-group { margin-bottom:20px; }
.form-group.field-locked input,
.form-group.field-locked textarea { opacity:0.45; cursor:not-allowed; }
label { display:block; font-size:0.79rem; font-weight:600; color:var(--text-secondary); margin-bottom:7px; text-transform:uppercase; letter-spacing:0.08em; }
label .hint { font-weight:400; color:var(--text-muted); font-size:0.76rem; text-transform:none; letter-spacing:0; }
input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="password"],select,textarea { width:100%; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text-primary); font-size:0.93rem; padding:11px 15px; transition:border-color var(--transition),box-shadow var(--transition); outline:none; font-family:var(--sans); }
input:focus,select:focus,textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-glow); }
input::placeholder,textarea::placeholder { color:var(--text-muted); }
select option { background:var(--bg); color:var(--text-primary); }
textarea { resize:vertical; min-height:80px; line-height:1.6; }
.input-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.label-with-tip { display:flex; align-items:center; gap:8px; font-size:0.79rem; font-weight:600; color:var(--text-secondary); margin-bottom:7px; text-transform:uppercase; letter-spacing:0.08em; }
.tip-icon { width:17px; height:17px; border-radius:50%; background:var(--bg-raised); border:1px solid var(--border); color:var(--gold); font-size:0.62rem; font-weight:800; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:all var(--transition); flex-shrink:0; text-transform:none; letter-spacing:0; line-height:1; }
.tip-icon:hover { background:var(--gold-glow); border-color:var(--gold); }

.toggle-group { display:flex; flex-wrap:wrap; gap:8px; }
.toggle-group input[type="radio"],.toggle-group input[type="checkbox"] { display:none; }
.toggle-group label { cursor:pointer; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:9px 18px; font-size:0.84rem; font-weight:500; color:var(--text-secondary); transition:all var(--transition); margin:0; text-transform:none; letter-spacing:0; user-select:none; }
.toggle-group label:hover { border-color:var(--gold-dark); color:var(--text-primary); background:rgba(15,118,110,0.05); }
.toggle-group input:checked + label {
  background:var(--gold-glow);
  border-color:var(--gold);
  color:var(--gold-light);
  box-shadow:0 0 0 2px rgba(15,118,110,0.25);
  font-weight:600;
}
.toggle-group label.disabled,
.toggle-group input:disabled + label {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
  box-shadow: none;
}

.checkbox-item { display:flex; align-items:flex-start; gap:14px; padding:14px 16px; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); margin-bottom:10px; cursor:pointer; transition:border-color var(--transition),box-shadow var(--transition); }
.checkbox-item:hover { border-color:var(--gold-dark); box-shadow:0 0 0 2px var(--gold-glow); }
.checkbox-item input[type="checkbox"] { width:17px; min-width:17px; height:17px; margin-top:3px; accent-color:var(--gold); cursor:pointer; }
.checkbox-item .check-label { font-size:0.84rem; color:var(--text-secondary); line-height:1.55; }
.checkbox-item .check-label strong { color:var(--text-primary); display:block; margin-bottom:3px; font-size:0.86rem; }
.checkbox-item .check-hint { display:block; font-size:0.76rem; color:var(--text-muted); font-weight:400; margin-top:2px; }
.terms-box a { color:var(--gold-light); }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 30px; border-radius:var(--radius-sm); font-size:0.86rem; font-weight:700; cursor:pointer; border:none; transition:all var(--transition); text-decoration:none; letter-spacing:0.05em; text-transform:uppercase; font-family:var(--sans); position:relative; overflow:hidden; }
.btn::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,0.07) 0%,transparent 50%); pointer-events:none; border-radius:inherit; }
.btn-primary { background:linear-gradient(135deg,#0f5c56 0%,var(--gold) 55%,#0d9488 100%); color:var(--gold-text); box-shadow:0 4px 20px rgba(15,118,110,0.35),0 1px 0 rgba(255,255,255,0.15) inset; }
.btn-primary:hover { background:linear-gradient(135deg,var(--gold) 0%,#0d9488 55%,#14b8a6 100%); box-shadow:0 6px 28px rgba(15,118,110,0.45),0 1px 0 rgba(255,255,255,0.2) inset; transform:translateY(-1px); }
.btn-primary:active { transform:translateY(0); box-shadow:0 2px 10px rgba(15,118,110,0.3); }
.btn-primary:disabled { opacity:0.4; cursor:not-allowed; transform:none; box-shadow:none; }
.btn-secondary { background:transparent; color:var(--text-secondary); border:1px solid var(--border); }
.btn-secondary:hover { border-color:var(--border-light); color:var(--text-primary); background:var(--surface-hover); }
.btn-ghost { background:transparent; color:var(--gold); border:1px solid var(--gold-dark); }
.btn-ghost:hover { background:var(--gold-glow); border-color:var(--gold); color:var(--gold-light); }
.btn-danger { background:var(--danger); color:var(--white); }
.btn-sm { padding:8px 16px; font-size:0.76rem; }
.btn-full { width:100%; }
.btn-row { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:28px; }
.btn-row.right { justify-content:flex-end; }
.landing-hero { text-align:center; padding:6px 0 40px; animation:fadeUp 0.4s ease both; }
.landing-hero h1 {
  font-family:var(--serif); font-size:1.55rem; font-weight:400; color:var(--text-primary);
  margin-bottom:10px; line-height:1.3; letter-spacing:0.01em; max-width:420px; margin-left:auto; margin-right:auto;
}
.landing-hero p { color:var(--text-secondary); margin-bottom:36px; font-size:0.95rem; line-height:1.65; max-width:440px; margin-left:auto; margin-right:auto; }
.landing-features { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:36px; }
.feature-chip { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:22px 10px; text-align:center; transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition); box-shadow:var(--shadow-card); }
.feature-chip:hover { border-color:var(--gold-dark); transform:translateY(-2px); box-shadow:0 0 20px var(--gold-glow),var(--shadow-card); }
.feature-chip .fi { font-size:1.7rem; margin-bottom:10px; display:block; }
.feature-chip span { display:block; font-size:0.72rem; color:var(--text-secondary); font-weight:600; text-transform:uppercase; letter-spacing:0.08em; }
.landing-cta-row { display:flex; flex-direction:column; gap:12px; max-width:360px; margin:0 auto; }
.social-row { display:flex; justify-content:center; gap:28px; margin-top:36px; padding-top:28px; border-top:1px solid var(--border); }
.social-link { color:var(--text-muted); font-size:0.76rem; text-decoration:none; display:flex; align-items:center; gap:6px; font-weight:500; letter-spacing:0.05em; text-transform:uppercase; transition:color var(--transition); cursor:default; }
.social-link:hover { color:var(--gold); }

.hold-gate { text-align:center; padding:28px 0; }
.hold-gate .gate-icon { font-size:3rem; margin-bottom:16px; display:block; }
.hold-gate h2 { font-family:var(--serif); font-size:1.5rem; font-weight:400; color:var(--white); margin-bottom:12px; }
.hold-gate p { color:var(--text-secondary); font-size:0.9rem; max-width:380px; margin:0 auto 12px; line-height:1.6; }

.alert { border-radius:var(--radius-sm); padding:14px 18px; margin-bottom:16px; font-size:0.86rem; line-height:1.55; display:flex; gap:12px; align-items:flex-start; animation:fadeUp 0.3s ease both; }
.alert-icon { font-size:1.1rem; margin-top:1px; flex-shrink:0; }
.alert-warning { background:rgba(230,168,23,0.08); border:1px solid rgba(230,168,23,0.28); color:#e8bf6a; }
.alert-info { background:rgba(91,155,213,0.08); border:1px solid rgba(91,155,213,0.28); color:#7db3d8; }
.alert-success { background:rgba(61,220,132,0.08); border:1px solid rgba(61,220,132,0.28); color:#5ddba0; }
.alert-danger { background:rgba(224,82,82,0.08); border:1px solid rgba(224,82,82,0.28); color:#e88080; }

.room-card { background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--gold-dark); border-radius:var(--radius); padding:20px; margin-bottom:14px; animation:fadeUp 0.3s ease both; transition:border-color var(--transition),box-shadow var(--transition); box-shadow:var(--shadow-sm); }
.room-card:hover { border-color:var(--gold-dark); border-left-color:var(--gold); }
.room-card .room-header { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid var(--border); }
.room-card .room-name { font-family:var(--serif); font-size:1.1rem; font-weight:400; color:var(--white); flex:1; min-width:120px; }
.room-amp-badge { font-size:0.68rem; font-weight:600; color:var(--gold-dark); background:rgba(15,118,110,0.1); border:1px solid rgba(15,118,110,0.22); border-radius:var(--radius-pill); padding:4px 10px; white-space:nowrap; }
.device-section { margin-bottom:14px; }
.device-section-title { font-size:0.72rem; font-weight:700; color:var(--gold-dark); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:8px; }
.cover-plate-section { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.cover-plate-header { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.cover-plate-title { font-size:0.72rem; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.1em; }
.cover-plate-hint { font-size:0.74rem; color:var(--text-muted); line-height:1.45; margin:0 0 12px; }
/* Same visual shell as .cover-preview-panel on the style step */
.cover-plate-preview-panel {
  margin-top:4px; padding:22px 16px; background:var(--bg-raised); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow-sm);
}
.cover-plate-preview-heading {
  font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--text-muted);
  margin:0 0 6px; font-weight:600;
}
.cover-plate-preview-note {
  font-size:0.78rem; line-height:1.4; color:var(--text-secondary); margin:0 0 14px;
}

/* Admin service-area map */
.service-zip-map-wrap {
  margin-top: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-raised);
}
.service-zip-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  align-items: center;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.service-zip-map-legend .leg {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.service-zip-map-legend .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.service-zip-map-legend .dot-green { background: #2ecc71; box-shadow: 0 0 0 2px rgba(46,204,113,0.25); }
.service-zip-map-legend .dot-red { background: #e74c3c; box-shadow: 0 0 0 2px rgba(231,76,60,0.25); }
.service-zip-map-hint {
  font-size: 0.74rem;
  color: var(--text-muted);
  line-height: 1.4;
  padding: 0 12px 10px;
}
#service-zip-map {
  height: 480px;
  width: 100%;
  background: #1a1a1a;
}
.leaflet-container { font: inherit; background: #1a1a1a; }
.leaflet-popup-content-wrapper {
  background: #1c1c1c;
  color: #f2f2f2;
  border-radius: 8px;
  border: 1px solid #2a2a2a;
  box-shadow: 0 8px 24px rgba(0,0,0,0.45);
}
.leaflet-popup-tip { background: #1c1c1c; }
.leaflet-popup-content { margin: 10px 12px; font-size: 0.8rem; line-height: 1.4; }
.leaflet-popup-content strong { color: #e0c06a; }
.zip-map-popup-actions { margin-top: 8px; display: flex; gap: 6px; }
.zip-map-popup-actions button {
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 6px;
  padding: 5px 10px;
  cursor: pointer;
  border: 1px solid #2a2a2a;
}
.zip-map-btn-allow { background: rgba(46,204,113,0.2); color: #2ecc71; border-color: rgba(46,204,113,0.4) !important; }
.zip-map-btn-block { background: rgba(231,76,60,0.2); color: #e74c3c; border-color: rgba(231,76,60,0.4) !important; }
.gang-plate-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:14px; }
.gang-plate-row { display:flex; align-items:center; justify-content:space-between; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:8px 10px; gap:8px; }
.gang-plate-tile { gap:10px; }
.gang-plate-tile .css-plate { transition:all 0.3s ease; }
.gang-plate-sub { font-size:0.68rem; color:var(--text-muted); }
.gang-plate-tile .device-counter { margin-top:2px; }
.room-remove { background:none; border:none; color:var(--text-muted); cursor:pointer; font-size:1rem; padding:4px 8px; border-radius:var(--radius-xs); transition:color var(--transition),background var(--transition); line-height:1; }
.room-remove:hover { color:var(--danger); background:rgba(224,82,82,0.1); }
.device-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; }
.device-row { display:flex; align-items:center; justify-content:space-between; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:9px 12px; gap:10px; transition:border-color var(--transition); }
.device-row:hover { border-color:var(--border-light); }
.device-row .device-label { font-size:0.8rem; color:var(--text-secondary); flex:1; line-height:1.4; }
.device-row .device-label > div:first-child { color:var(--text-primary); font-weight:600; font-size:0.82rem; }
.device-included-note { font-size:0.7rem; color:var(--gold-dark); margin-top:5px; line-height:1.4; font-style:italic; }
.device-row--outdoor-gfci { border-color:rgba(15,118,110,0.2); }
.device-counter { display:flex; align-items:center; gap:7px; flex-shrink:0; }
.counter-btn { width:28px; height:28px; border-radius:var(--radius-pill); border:1px solid var(--border); background:var(--surface-hover); color:var(--text-secondary); font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all var(--transition); line-height:1; font-weight:700; }
.counter-btn:hover { background:var(--gold-glow); border-color:var(--gold); color:var(--gold-light); }
.counter-val { font-size:0.8rem; font-weight:800; min-width:18px; text-align:center; color:var(--white); }
.counter-input {
  width:32px; padding:2px 1px; border:1px solid var(--border); border-radius:var(--radius-xs);
  background:var(--bg-raised); font-family:inherit; font-size:0.8rem; line-height:1.15;
  -moz-appearance:textfield; appearance:textfield; text-align:center;
}
/* Device rows only — cover plate tiles keep the default 32/36 width */
.device-row .counter-input {
  width:26px; max-width:26px; padding:2px 0; font-size:0.76rem;
}
.device-row .device-counter { gap:5px; }
.counter-input:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-glow); }
.counter-input::-webkit-outer-spin-button,
.counter-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }

.room-finish-override { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }
.room-finish-override--compact { margin-top:12px; padding-top:12px; }
.rfo-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.rfo-field { min-width:0; }
.rfo-label { font-size:0.7rem; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:6px; display:block; }
.rfo-select { width:100%; padding:8px 10px; font-size:0.82rem; font-family:var(--sans); color:var(--text-primary); background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); cursor:pointer; transition:border-color var(--transition); }
.rfo-select:hover { border-color:var(--border-light); }
.rfo-select:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-glow); }
.rfo-using { font-weight:400; color:var(--gold-dark); text-transform:none; letter-spacing:0; font-size:0.72rem; }
.rfo-swatches { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.rfo-swatch { width:24px; height:24px; border-radius:50%; border:2px solid transparent; cursor:pointer; transition:transform 0.2s,border-color 0.2s,box-shadow 0.2s; flex-shrink:0; }
.rfo-swatch:hover { transform:scale(1.15); }
.rfo-swatch.active { border-color:var(--gold); transform:scale(1.25); box-shadow:0 0 8px var(--gold-glow-strong); }
.rfo-swatch.disabled { opacity:0.28; cursor:not-allowed; pointer-events:none; transform:none; box-shadow:none; }
.rfo-swatch.disabled:hover { transform:none; }
.rfo-swatch[data-finish="white"]{background:#e8e8e8}
.rfo-swatch[data-finish="ivory"]{background:#ede8d5}
.rfo-swatch[data-finish="almond"]{background:#d4c8a8}
.rfo-swatch[data-finish="nickel"]{background:linear-gradient(135deg,#9ea8b0,#c8d0d8,#8a9298)}
.rfo-swatch[data-finish="bronze"]{background:linear-gradient(135deg,#5c4020,#8a6030,#4a3018)}
.rfo-swatch[data-finish="graphite"]{background:linear-gradient(135deg,#3a3a3a,#505050,#2a2a2a)}
.rfo-reset { font-size:0.7rem; color:var(--text-muted); background:none; border:none; cursor:pointer; padding:2px 6px; border-radius:var(--radius-xs); transition:color var(--transition); font-family:var(--sans); }
.rfo-reset:hover { color:var(--gold); }

.room-note-wrap { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }
.room-note-wrap textarea { min-height:60px; font-size:0.83rem; }
.install-tip { display:flex; align-items:flex-start; gap:10px; background:rgba(15,118,110,0.05); border:1px solid rgba(15,118,110,0.16); border-radius:var(--radius-sm); padding:10px 13px; margin-top:10px; }
.install-tip .tip-emoji { font-size:1rem; flex-shrink:0; margin-top:1px; }
.install-tip p { font-size:0.78rem; color:#b09040; line-height:1.5; }

.add-room-bar { display:flex; gap:10px; margin-bottom:20px; }
.preset-rooms { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px; }
.preset-chip { background:var(--bg-raised); border:1px dashed var(--border); border-radius:var(--radius-sm); padding:6px 13px; font-size:0.78rem; color:var(--text-muted); cursor:pointer; transition:all var(--transition); font-weight:500; }
.preset-chip:hover { border-color:var(--gold-dark); border-style:solid; color:var(--gold); background:var(--gold-glow); }
.preset-chip.used { opacity:0.25; pointer-events:none; }

.cover-preview-panel { margin-top:20px; padding:22px; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius); animation:fadeUp 0.3s ease both; box-shadow:var(--shadow-sm); }
.cover-preview-panel h4 { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--text-muted); margin-bottom:14px; font-weight:600; }
.preview-tiles { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px; }
.preview-tile { display:flex; flex-direction:column; align-items:center; gap:10px; }
.preview-tile-label { font-size:0.72rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.1em; font-weight:600; }
.preview-selection-label { text-align:center; font-size:0.8rem; color:var(--text-secondary); font-style:italic; margin-top:6px; }
.preview-selection-label strong { color:var(--gold-light); font-style:normal; }

.css-plate { border-radius:6px; padding:12px 10px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; position:relative; transition:all 0.3s ease; }
.outlet-face { border-radius:6px; padding:6px; display:flex; flex-direction:column; align-items:center; justify-content:space-around; position:relative; }
.outlet-socket { display:flex; gap:5px; align-items:center; justify-content:center; }
.outlet-slot { width:4px; height:10px; border-radius:2px; }
.outlet-ground { width:6px; height:6px; border-radius:50%; }
.outlet-screw { width:5px; height:5px; border-radius:50%; position:absolute; }
.outlet-screw.top { top:4px; }
.outlet-screw.bottom { bottom:4px; }
.switch-rocker { position:relative; overflow:hidden; }
.switch-rocker::after { content:''; position:absolute; top:0; left:0; right:0; height:48%; background:rgba(255,255,255,0.12); border-radius:3px 3px 0 0; }
.switch-paddle { width:18px; height:6px; border-radius:3px; position:absolute; bottom:6px; left:50%; transform:translateX(-50%); }

/* Toggle switch (Leviton path) */
.switch-toggle { width:28px; height:40px; border-radius:3px; position:relative; display:flex; align-items:center; justify-content:center; box-shadow:inset 0 1px 3px rgba(0,0,0,0.25); }
.toggle-lever { width:9px; height:24px; border-radius:2px; box-shadow:1px 1px 2px rgba(0,0,0,0.35); transform:rotate(-8deg); }
.lever-white{background:linear-gradient(180deg,#f0f0f0,#c8c8c8);border:1px solid #aaa}
.lever-ivory{background:linear-gradient(180deg,#f5f0e0,#d8d0b8);border:1px solid #bbb}
.lever-almond{background:linear-gradient(180deg,#e0d4b0,#c0b090);border:1px solid #a09070}
.lever-black{background:linear-gradient(180deg,#444,#1a1a1a);border:1px solid #000}
.toggle-body-white{background:#e0e0e0;border:1px solid #bbb}
.toggle-body-ivory{background:#e8e0cc;border:1px solid #bbb}
.toggle-body-almond{background:#d4c8a8;border:1px solid #b8a880}
.toggle-body-black{background:#2a2a2a;border:1px solid #111}

/* Duplex outlet (Leviton path) */
.duplex-face { width:38px; height:56px; border-radius:4px; padding:4px 3px; display:flex; flex-direction:column; align-items:center; justify-content:space-between; position:relative; box-shadow:inset 0 1px 2px rgba(0,0,0,0.12); }
.duplex-well { width:100%; flex:1; border-radius:3px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; margin:1px 0; }
.well-white{background:rgba(0,0,0,0.04);border:1px solid rgba(0,0,0,0.08)}
.well-ivory{background:rgba(0,0,0,0.04);border:1px solid rgba(0,0,0,0.08)}
.well-almond{background:rgba(0,0,0,0.06);border:1px solid rgba(0,0,0,0.1)}
.well-black{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08)}
.duplex-slots { display:flex; gap:6px; align-items:center; }
.duplex-slot { width:3px; height:11px; border-radius:1px; }
.duplex-ground { width:5px; height:5px; border-radius:50%; }

.finish-white{background:#e8e8e8;border:1.5px solid #ccc}
.finish-ivory{background:#ede8d5;border:1.5px solid #ccc}
.finish-almond{background:#d4c8a8;border:1.5px solid #b8a880}
.finish-nickel{background:linear-gradient(135deg,#9ea8b0 0%,#c8d0d8 40%,#8a9298 70%,#b0b8c0 100%);border:1.5px solid #7a8490}
.finish-bronze{background:linear-gradient(135deg,#5c4020 0%,#8a6030 40%,#4a3018 70%,#7a5428 100%);border:1.5px solid #3a2810}
.finish-graphite{background:linear-gradient(135deg,#3a3a3a 0%,#505050 40%,#2a2a2a 70%,#424242 100%);border:1.5px solid #1a1a1a}
.finish-black{background:#1a1a1a;border:1.5px solid #000}
.slot-white{background:#aaa}.slot-ivory{background:#bbb}.slot-almond{background:#999}.slot-nickel{background:#607080}.slot-bronze{background:#2a1808}.slot-graphite{background:#111}.slot-black{background:#000}
.ground-white{background:#bbb}.ground-ivory{background:#ccc}.ground-almond{background:#aaa}.ground-nickel{background:#708090}.ground-bronze{background:#3a2010}.ground-graphite{background:#222}.ground-black{background:#111}
.screw-white{background:#ccc;border:1px solid #aaa}.screw-ivory{background:#ddd;border:1px solid #bbb}.screw-almond{background:#c0b090;border:1px solid #a09070}.screw-nickel{background:#8090a0;border:1px solid #607080}.screw-bronze{background:#6a4820;border:1px solid #4a3010}.screw-graphite{background:#404040;border:1px solid #202020}.screw-black{background:#333;border:1px solid #111}
.rocker-white{background:#d0d0d0}.rocker-ivory{background:#c8c0a0}.rocker-almond{background:#b8a880}.rocker-nickel{background:#8090a0}.rocker-bronze{background:#6a4820}.rocker-graphite{background:#383838}.rocker-black{background:#222}
.paddle-white{background:#aaa}.paddle-ivory{background:#bbb}.paddle-almond{background:#999}.paddle-nickel{background:#5a6a7a}.paddle-bronze{background:#3a2010}.paddle-graphite{background:#111}.paddle-black{background:#000}

.color-swatch-strip { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.color-swatch { width:26px; height:26px; border-radius:50%; border:2px solid transparent; cursor:pointer; transition:transform 0.2s,border-color 0.2s,box-shadow 0.2s; }
.color-swatch.active { border-color:var(--gold); transform:scale(1.25); box-shadow:0 0 8px var(--gold-glow-strong); }
.color-swatch.disabled { opacity:0.28; cursor:not-allowed; pointer-events:none; transform:none; box-shadow:none; }
.color-swatch.disabled:hover { transform:none; }
.color-swatch[data-finish="white"]{background:#e8e8e8}.color-swatch[data-finish="ivory"]{background:#ede8d5}.color-swatch[data-finish="almond"]{background:#d4c8a8}.color-swatch[data-finish="nickel"]{background:linear-gradient(135deg,#9ea8b0,#c8d0d8,#8a9298)}.color-swatch[data-finish="bronze"]{background:linear-gradient(135deg,#5c4020,#8a6030,#4a3018)}.color-swatch[data-finish="graphite"]{background:linear-gradient(135deg,#3a3a3a,#505050,#2a2a2a)}
.color-swatch[data-finish="black"],
.rfo-swatch[data-finish="black"] {
  background:#1a1a1a;
  border-color:rgba(255,255,255,0.32);
  box-shadow:0 0 0 2px rgba(255,255,255,0.14), inset 0 0 0 1px rgba(255,255,255,0.08);
}
.color-swatch[data-finish="black"].active,
.rfo-swatch[data-finish="black"].active {
  border-color:var(--gold);
  box-shadow:0 0 0 2px rgba(255,255,255,0.12), 0 0 8px var(--gold-glow-strong);
}

.order-recap { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px; margin-bottom:20px; animation:fadeUp 0.3s ease both; box-shadow:var(--shadow-card); }
.order-recap h3 { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--text-muted); margin-bottom:14px; font-weight:600; padding-bottom:8px; border-bottom:1px solid var(--border); }
.recap-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.recap-stat { text-align:center; padding:14px 8px; background:var(--surface-elevated); border:1px solid var(--border); border-radius:var(--radius-sm); }
.recap-stat .stat-val { font-family:var(--serif); font-size:1.8rem; font-weight:400; background:linear-gradient(135deg,var(--gold-light),var(--gold)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.recap-stat .stat-label { font-size:0.66rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.1em; margin-top:3px; }
.recap-rooms-list { margin-top:14px; }
.recap-room-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:7px 0; border-bottom:1px solid var(--border); font-size:0.84rem; }
.recap-room-row:last-child { border-bottom:none; }
.recap-room-row .rr-name { color:var(--text-secondary); flex-shrink:0; }
.recap-room-row .rr-devices { color:var(--text-primary); font-weight:600; font-size:0.78rem; text-align:right; line-height:1.45; min-width:0; }

.summary-section { margin-bottom:22px; }
.summary-section h3 { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--text-muted); margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid var(--border); font-weight:600; }
.summary-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:8px 0; font-size:0.88rem; border-bottom:1px solid var(--border); }
.summary-row:last-child { border-bottom:none; }
.summary-row .label { color:var(--text-secondary); flex:1; min-width:0; line-height:1.4; }
.summary-row .value { font-weight:600; color:var(--white); flex-shrink:0; text-align:right; line-height:1.4; }
.summary-total { background:linear-gradient(135deg,#1c1600,#261d00); border:1px solid var(--gold-dark); border-radius:var(--radius-sm); padding:22px 26px; display:flex; justify-content:space-between; align-items:center; margin-top:20px; box-shadow:var(--shadow-gold),inset 0 1px 0 rgba(255,255,255,0.04); position:relative; overflow:hidden; }
.summary-total::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.summary-total .total-label { font-size:0.76rem; font-weight:700; color:var(--text-secondary); text-transform:uppercase; letter-spacing:0.12em; }
.summary-total .total-value { font-family:var(--serif); font-size:2.4rem; font-weight:400; background:linear-gradient(135deg,var(--gold-light),var(--gold),var(--gold-dark)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; letter-spacing:0.01em; }

.trust-badges { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:16px; }
.trust-badge { display:flex; align-items:center; gap:9px; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 12px; transition:border-color var(--transition); }
.trust-badge:hover { border-color:var(--border-light); }
.trust-badge .tb-icon { font-size:1rem; flex-shrink:0; }
.trust-badge .tb-text { font-size:0.76rem; color:var(--text-secondary); line-height:1.35; }
.trust-badge .tb-text strong { display:block; color:var(--text-primary); font-size:0.78rem; }

.payment-summary-box { background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; margin-bottom:18px; }
.payment-options { display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.payment-option { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); cursor:pointer; transition:border-color var(--transition),box-shadow var(--transition); }
.payment-option:hover { border-color:var(--gold-dark); }
.payment-option.active { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-glow); }
.payment-option .po-radio { color:var(--gold); font-size:0.9rem; line-height:1.4; flex-shrink:0; }
.payment-option .po-body { flex:1; min-width:0; }
.payment-option .po-body strong { color:var(--text-primary); font-size:0.88rem; }
.payment-option .po-tag { font-size:0.65rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold-dark); margin-left:6px; }
.payment-option .po-tag.optional { color:var(--text-muted); }
.payment-option .po-tag.klarna-tag { color:var(--gold-light); }
.payment-option .po-detail { font-size:0.78rem; color:var(--text-secondary); margin-top:4px; line-height:1.45; }
.payment-klarna-note { font-size:0.76rem; color:var(--text-muted); line-height:1.5; margin-bottom:10px; }
.payment-due-today { font-size:0.9rem; color:var(--text-secondary); padding:10px 14px; background:rgba(15,118,110,0.08); border:1px solid rgba(15,118,110,0.2); border-radius:var(--radius-sm); }
.payment-due-today strong { color:var(--gold-light); }
.payment-confirm-box { background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px 16px; margin:16px auto 20px; max-width:360px; text-align:left; }

.financing-note { display:flex; align-items:center; gap:10px; background:rgba(91,155,213,0.06); border:1px solid rgba(91,155,213,0.2); border-radius:var(--radius-sm); padding:12px 15px; margin-top:14px; font-size:0.81rem; color:#7db3d8; line-height:1.5; }
.financing-note .fn-icon { font-size:1.1rem; flex-shrink:0; }

.photo-upload-area { border:2px dashed var(--border); border-radius:var(--radius); padding:28px 24px; text-align:center; cursor:pointer; transition:all var(--transition); position:relative; background:var(--bg-raised); }
.photo-upload-area:hover { border-color:var(--gold-dark); background:rgba(15,118,110,0.04); }
.photo-upload-area input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.photo-upload-area .upload-icon { font-size:2rem; margin-bottom:8px; display:block; }
.photo-upload-area p { font-size:0.84rem; color:var(--text-secondary); margin-bottom:4px; }
.photo-upload-area span { font-size:0.74rem; color:var(--text-muted); }
.photo-previews { display:grid; grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); gap:8px; margin-top:12px; }
.photo-thumb { position:relative; border-radius:var(--radius-sm); overflow:hidden; border:1px solid var(--border); aspect-ratio:1; background:var(--bg-raised); }
.photo-thumb img { width:100%; height:100%; object-fit:cover; cursor:pointer; }
.photo-thumb .remove-photo { position:absolute; top:3px; right:3px; background:rgba(0,0,0,0.75); color:#fff; border:none; width:20px; height:20px; border-radius:50%; font-size:0.7rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background var(--transition); }
.photo-thumb .remove-photo:hover { background:var(--danger); }

.photo-lightbox { position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,0.92); display:flex; align-items:center; justify-content:center; padding:20px; }
.lightbox-inner { position:relative; max-width:90vw; max-height:90vh; }
.lightbox-inner img { max-width:100%; max-height:80vh; border-radius:var(--radius); display:block; }
.lightbox-close { position:absolute; top:-14px; right:-14px; background:var(--surface); border:1px solid var(--border); color:var(--text-primary); width:32px; height:32px; border-radius:50%; font-size:0.85rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all var(--transition); }
.lightbox-close:hover { background:var(--danger); border-color:var(--danger); }

.tooltip-overlay { position:fixed; inset:0; z-index:9998; background:rgba(0,0,0,0.75); display:flex; align-items:center; justify-content:center; padding:20px; }
.tooltip-card { background:var(--surface-elevated); border:1px solid var(--border); border-radius:var(--radius); padding:26px 30px; max-width:380px; width:100%; position:relative; box-shadow:var(--shadow); animation:fadeUp 0.25s ease both; }
.tooltip-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(15,118,110,0.35),transparent); }
.tooltip-close { position:absolute; top:12px; right:12px; background:none; border:none; color:var(--text-muted); font-size:0.9rem; cursor:pointer; padding:4px 8px; border-radius:var(--radius-xs); transition:color var(--transition); }
.tooltip-close:hover { color:var(--text-primary); }
#tooltip-content h4 { font-family:var(--serif); color:var(--gold-light); font-size:1.15rem; font-weight:400; margin-bottom:10px; }
#tooltip-content p { color:var(--text-secondary); font-size:0.88rem; line-height:1.65; }
#tooltip-content .tip-code-note { background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:8px 12px; margin-top:12px; font-size:0.78rem; color:var(--text-muted); }

.sms-opt-in { background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius); padding:16px 18px; margin-top:6px; }
.sms-opt-in h4 { font-size:0.76rem; font-weight:700; color:var(--text-secondary); text-transform:uppercase; letter-spacing:0.09em; margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.sms-opt-in h4 span { font-size:1rem; }
.sms-row { display:flex; align-items:flex-start; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); }
.sms-row:last-child { border-bottom:none; padding-bottom:0; }
.sms-row input[type="checkbox"] { width:17px; min-width:17px; height:17px; margin-top:2px; accent-color:var(--gold); cursor:pointer; }
.sms-row .sms-text { font-size:0.83rem; color:var(--text-secondary); line-height:1.5; }
.sms-row .sms-text strong { color:var(--text-primary); display:block; margin-bottom:2px; }

.appt-section { margin-top:20px; padding-top:20px; border-top:1px solid var(--border); }
.appt-section h4 { font-size:0.76rem; font-weight:700; color:var(--text-secondary); text-transform:uppercase; letter-spacing:0.09em; margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.appt-section h4 span { font-size:1rem; }

.terms-box { background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:16px 18px; max-height:180px; overflow-y:auto; font-size:0.78rem; color:var(--text-muted); line-height:1.75; margin-bottom:16px; }
.terms-box::-webkit-scrollbar { width:4px; }
.terms-box::-webkit-scrollbar-track { background:var(--bg); }
.terms-box::-webkit-scrollbar-thumb { background:var(--border-light); border-radius:99px; }

.what-next { margin-top:24px; padding:22px; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius); }
.what-next h4 { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--text-muted); margin-bottom:18px; font-weight:600; }
.next-steps { display:flex; flex-direction:column; }
.next-step { display:flex; align-items:flex-start; gap:14px; position:relative; padding-bottom:18px; }
.next-step:last-child { padding-bottom:0; }
.next-step::after { content:''; position:absolute; left:16px; top:36px; bottom:0; width:1px; background:linear-gradient(to bottom,var(--gold-dark),transparent); }
.next-step:last-child::after { display:none; }
.step-num { width:32px; height:32px; border-radius:50%; flex-shrink:0; background:linear-gradient(135deg,#1e1800,#2e2200); border:1px solid var(--gold-dark); color:var(--gold); font-size:0.75rem; font-weight:800; display:flex; align-items:center; justify-content:center; position:relative; z-index:1; box-shadow:0 0 10px var(--gold-glow); }
.step-body strong { display:block; font-size:0.87rem; color:var(--text-primary); margin-bottom:4px; font-weight:700; }
.step-body p { font-size:0.8rem; color:var(--text-secondary); line-height:1.5; }

.confirmation-wrap { text-align:center; padding:28px 0; animation:fadeUp 0.4s ease both; }
.confirmation-wrap .check-circle { width:80px; height:80px; border-radius:50%; background:rgba(61,220,132,0.1); border:1px solid rgba(61,220,132,0.35); display:flex; align-items:center; justify-content:center; font-size:2.4rem; margin:0 auto 22px; box-shadow:0 0 30px rgba(61,220,132,0.15); }
.confirmation-wrap h2 { font-family:var(--serif); font-size:2rem; font-weight:400; color:var(--white); margin-bottom:12px; }
.confirmation-wrap p { color:var(--text-secondary); font-size:0.9rem; max-width:400px; margin:0 auto 20px; line-height:1.65; }
.ref-badge { display:inline-block; background:var(--bg-raised); border:1px solid var(--gold-dark); border-radius:var(--radius-sm); padding:9px 22px; font-size:0.82rem; color:var(--text-secondary); margin-bottom:24px; letter-spacing:0.05em; box-shadow:0 0 12px var(--gold-glow); }
.ref-badge strong { color:var(--gold-light); letter-spacing:0.08em; }

.admin-trigger { position:fixed; bottom:20px; right:20px; width:36px; height:36px; border-radius:50%; background:rgba(15,118,110,0.06); border:1px solid rgba(15,118,110,0.12); color:rgba(15,118,110,0.25); font-size:0.9rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all var(--transition); z-index:8000; }
.admin-trigger:hover { background:rgba(15,118,110,0.14); color:var(--gold); border-color:rgba(15,118,110,0.35); }

.admin-pin-overlay { position:fixed; inset:0; z-index:9000; background:rgba(0,0,0,0.85); display:flex; align-items:center; justify-content:center; padding:20px; }
.admin-pin-card { background:var(--surface-elevated); border:1px solid var(--border); border-radius:var(--radius); padding:34px 30px; max-width:340px; width:100%; text-align:center; box-shadow:var(--shadow); animation:fadeUp 0.25s ease both; }
.admin-pin-logo { font-size:2rem; margin-bottom:8px; }
.admin-pin-card h3 { font-family:var(--serif); font-size:1.3rem; font-weight:400; color:var(--white); margin-bottom:20px; }
.admin-pin-card input { margin-bottom:12px; text-align:center; letter-spacing:0.3em; font-size:1.2rem; }
.admin-pin-error { color:var(--danger); font-size:0.82rem; margin-bottom:12px; }

.admin-panel { position:fixed; top:0; right:0; bottom:0; width:100%; max-width:min(95vw, 1100px); background:var(--bg-raised); border-left:1px solid var(--border); z-index:8500; overflow-y:auto; box-shadow:-8px 0 50px rgba(0,0,0,0.7); animation:slideInRight 0.3s ease both; }
@keyframes slideInRight { from{transform:translateX(100%);opacity:0} to{transform:translateX(0);opacity:1} }
.admin-header-bar { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--bg-raised); z-index:1; }
.admin-header-bar h2 { font-family:var(--serif); font-size:1.15rem; font-weight:400; color:var(--white); }
.admin-close-btn { background:none; border:none; color:var(--text-muted); font-size:1.2rem; cursor:pointer; padding:4px 8px; border-radius:var(--radius-xs); transition:color var(--transition); }
.admin-close-btn:hover { color:var(--text-primary); }
.admin-tabs { display:flex; gap:0; border-bottom:1px solid var(--border); padding:0 24px; overflow-x:auto; }
.admin-tab { padding:12px 14px; font-size:0.76rem; font-weight:600; color:var(--text-muted); cursor:pointer; border:none; background:none; font-family:var(--sans); border-bottom:2px solid transparent; white-space:nowrap; transition:all var(--transition); text-transform:uppercase; letter-spacing:0.07em; }
.admin-tab:hover { color:var(--text-primary); }
.admin-tab.active { color:var(--gold); border-bottom-color:var(--gold); }
.admin-tab-content { padding:24px; }
.admin-section { margin-bottom:28px; }
.admin-section-title { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--text-muted); font-weight:600; margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid var(--border); }
.admin-row { display:flex; justify-content:space-between; align-items:center; padding:8px 0; font-size:0.84rem; border-bottom:1px solid var(--border); }
.admin-row:last-child { border-bottom:none; }
.admin-row .ar-label { color:var(--text-secondary); }
.admin-row .ar-value { font-weight:600; color:var(--white); }
.admin-row .ar-value.green { color:var(--success); }
.admin-row .ar-value.gold { color:var(--gold-light); }
.profit-table { width:100%; border-collapse:collapse; font-size:0.78rem; margin-top:8px; }
.profit-table th { text-align:left; padding:8px 10px; background:var(--surface); color:var(--text-muted); font-weight:700; text-transform:uppercase; letter-spacing:0.06em; font-size:0.7rem; border-bottom:1px solid var(--border); }
.profit-table td { padding:8px 10px; border-bottom:1px solid var(--border); color:var(--text-secondary); }
.profit-table tr:last-child td { border-bottom:none; }
.profit-table .highlight td { color:var(--white); font-weight:600; background:rgba(15,118,110,0.07); }
.admin-pricing-hint { font-size:0.78rem; color:var(--text-muted); margin:-6px 0 14px; line-height:1.55; }
.admin-pricing-filters { display:flex; flex-wrap:wrap; gap:16px 24px; margin-bottom:14px; align-items:center; }
.admin-pricing-filters label { display:flex; align-items:center; gap:8px; font-size:0.8rem; color:var(--text-secondary); }
.admin-select { padding:6px 10px; font-size:0.8rem; background:var(--bg); border:1px solid var(--border); border-radius:6px; color:var(--text-primary); min-width:140px; }
.admin-cost-input { width:88px; padding:4px 6px; font-size:0.78rem; background:var(--bg); border:1px solid var(--border); border-radius:4px; color:var(--text-primary); }
.admin-sku-hint { font-size:0.68rem; color:var(--text-muted); font-family:monospace; margin-top:3px; }
.admin-pricing-table .gold { color:var(--gold-light); }
.admin-pricing-table .ar-muted { color:var(--text-muted); }
.lead-card { background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--gold-dark); border-radius:var(--radius-sm); padding:14px; margin-bottom:10px; transition:border-color var(--transition); }
.lead-card--paid_full,.lead-card--deposit_paid { border-left-color:var(--success); }
.lead-card--awaiting_payment { border-left-color:var(--warning); }
.lead-card--pending_review { border-left-color:var(--danger); }
.lead-card:hover { border-color:var(--border-light); }
.lead-card[role="button"] { cursor:pointer; }
.lead-card--expanded { border-color:var(--gold-dark); background:var(--bg-raised); }
.lead-card-top-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.lead-expand-btn { font-size:0.72rem; font-weight:700; color:var(--gold-dark); letter-spacing:0.02em; white-space:nowrap; }
.lead-expand-hint { color:var(--gold-dark); font-weight:600; }
.lead-parts-panel { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }
.lead-parts-header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.lead-parts-title { font-size:0.82rem; font-weight:700; color:var(--white); text-transform:uppercase; letter-spacing:0.08em; }
.lead-parts-sub { font-size:0.74rem; color:var(--text-muted); margin-top:4px; }
.lead-parts-actions { display:flex; gap:6px; flex-shrink:0; }
.lead-parts-section { margin-bottom:14px; }
.lead-parts-section-title { font-size:0.68rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--text-muted); font-weight:600; margin-bottom:6px; }
.lead-parts-table { font-size:0.74rem; }
.lead-parts-table th { font-size:0.64rem; padding:6px 8px; }
.lead-parts-table td { padding:6px 8px; vertical-align:top; }
.lead-parts-table td:nth-child(3) { line-height:1.45; max-width:140px; }
.lead-parts-totals { margin-top:12px; padding-top:10px; border-top:1px dashed var(--border); }
.lead-color-summary { display:flex; flex-direction:column; gap:6px; }
.lead-color-row { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; font-size:0.76rem; padding:8px 10px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); }
.lead-color-room { font-weight:600; color:var(--text-secondary); min-width:120px; }
.finish-swatch { display:inline-flex; align-items:center; gap:6px; font-size:0.74rem; color:var(--text-secondary); white-space:nowrap; }
.finish-dot { width:12px; height:12px; border-radius:50%; border:1px solid rgba(255,255,255,0.15); flex-shrink:0; }
.lead-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; flex-wrap:wrap; }
.lead-card .lead-ref { font-size:0.7rem; color:var(--text-muted); font-family:monospace; }
.lead-card .lead-name { font-size:0.9rem; font-weight:700; color:var(--white); margin-bottom:4px; }
.lead-card .lead-meta { font-size:0.78rem; color:var(--text-secondary); line-height:1.5; }
.lead-card .lead-total { font-size:1rem; font-weight:800; color:var(--gold-light); margin-top:8px; }
.lead-total-label { font-size:0.68rem; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.06em; margin-left:6px; }
.lead-payment-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:14px; }
.lps-stat { text-align:center; padding:10px 6px; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); }
.lps-stat .lps-val { display:block; font-size:1.1rem; font-weight:800; color:var(--white); }
.lps-stat .lps-val.gold { color:var(--gold-light); }
.lps-stat .lps-label { display:block; font-size:0.62rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.08em; margin-top:2px; }
.lead-flags { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.flag-badge { font-size:0.68rem; font-weight:700; padding:3px 8px; border-radius:99px; text-transform:uppercase; letter-spacing:0.06em; }
.flag-paid { background:rgba(61,220,132,0.15); color:#5ddba0; }
.flag-deposit { background:rgba(61,220,132,0.12); color:#4ec87a; }
.flag-unpaid { background:rgba(230,168,23,0.15); color:#e8bf6a; }
.flag-review { background:rgba(224,82,82,0.15); color:#e88080; }
.flag-quote { background:rgba(91,155,213,0.12); color:#7db3d8; }
.payment-status-box { background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; }
.ps-row { display:flex; justify-content:space-between; align-items:center; padding:6px 0; font-size:0.8rem; border-bottom:1px solid var(--border); }
.ps-row:last-child { border-bottom:none; }
.ps-badge { font-size:0.68rem; font-weight:700; padding:3px 8px; border-radius:99px; text-transform:uppercase; letter-spacing:0.05em; }
.ps-ok { background:rgba(61,220,132,0.15); color:#5ddba0; }
.ps-miss { background:rgba(224,82,82,0.12); color:#e88080; }
.ps-info { background:rgba(15,118,110,0.12); color:var(--gold-dark); }
.flag-renter { background:rgba(91,155,213,0.15); color:#7db3d8; }
.flag-flagged { background:rgba(224,82,82,0.15); color:#e88080; }
.flag-outofzone { background:rgba(230,168,23,0.15); color:#e8bf6a; }
.zip-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.zip-tag { display:flex; align-items:center; gap:6px; background:var(--surface); border:1px solid var(--border); border-radius:99px; padding:4px 12px; font-size:0.78rem; color:var(--text-secondary); }
.zip-tag-remove { background:none; border:none; color:var(--text-muted); cursor:pointer; font-size:0.8rem; padding:0; line-height:1; transition:color var(--transition); }
.zip-tag-remove:hover { color:var(--danger); }

.data-source-note { font-size:0.76rem; padding:8px 12px; border-radius:6px; margin-bottom:14px; line-height:1.5; }
.data-source-note.real { background:rgba(80,200,120,0.1); border:1px solid rgba(80,200,120,0.25); color:#50c878; }
.data-source-note.estimated { background:rgba(212,175,55,0.1); border:1px solid rgba(212,175,55,0.25); color:var(--gold); }

.schedule-page .schedule-subtitle { font-size:0.78rem; color:var(--text-muted); margin-top:8px; letter-spacing:0.06em; }
.schedule-date-list { display:flex; flex-direction:column; gap:10px; }
.schedule-date-btn { display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; text-align:left; padding:14px 16px; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text-primary); cursor:pointer; transition:border-color var(--transition),box-shadow var(--transition); font-family:var(--sans); }
.schedule-date-btn:hover:not(:disabled) { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-glow); }
.schedule-date-btn:disabled { opacity:0.5; cursor:not-allowed; }
.schedule-date-btn .sdb-day { font-weight:600; font-size:0.9rem; }
.schedule-date-btn .sdb-window { font-size:0.76rem; color:var(--text-muted); }

.admin-cal-hint { font-size:0.78rem; color:var(--text-muted); line-height:1.55; margin:-6px 0 14px; }
.admin-lead-time { display:flex; flex-wrap:wrap; gap:12px 18px; align-items:flex-end; margin-bottom:16px; padding:12px 14px; background:var(--bg-raised); border:1px solid var(--border); border-radius:var(--radius-sm); }
.admin-lead-time .form-group label { margin-bottom:6px; }
.admin-lead-time input { max-width:100px; }
.admin-lead-time-note { flex:2; min-width:200px; margin:0; font-size:0.76rem; color:var(--text-muted); line-height:1.5; }
.admin-cal-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.admin-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-bottom:12px; }
.admin-cal-dow { font-size:0.65rem; text-transform:uppercase; color:var(--text-muted); text-align:center; padding:4px 0; letter-spacing:0.06em; }
.admin-cal-cell { min-height:52px; border:1px solid var(--border); border-radius:8px; background:var(--bg-raised); color:var(--text-secondary); font-size:0.72rem; padding:6px 4px; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:2px; font-family:var(--sans); transition:border-color var(--transition); }
.admin-cal-cell.empty { border:none; background:transparent; cursor:default; }
.admin-cal-cell.past { opacity:0.35; cursor:not-allowed; }
.admin-cal-cell.open { border-color:rgba(61,220,132,0.45); background:rgba(61,220,132,0.08); color:var(--success); }
.admin-cal-cell.open.lead-window { border-color:rgba(91,155,213,0.45); background:rgba(91,155,213,0.1); color:var(--info); }
.admin-cal-cell.lead-window:not(.open):not(.booked):not(.blocked) { border-style:dashed; opacity:0.7; }
.admin-cal-cell.booked { border-color:rgba(15,118,110,0.5); background:rgba(15,118,110,0.12); color:var(--gold-light); cursor:pointer; }
.admin-cal-cell.booked:disabled { cursor:default; }
.admin-cal-cell.moving-from { outline:2px solid var(--gold); outline-offset:1px; box-shadow:0 0 0 3px rgba(15,118,110,0.2); }
.admin-cal-cell.move-target { border-color:rgba(61,220,132,0.7); background:rgba(61,220,132,0.14); cursor:pointer; }
.admin-reschedule-banner {
  display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  padding:12px 14px; margin:0 0 14px; border-radius:10px;
  border:1px solid rgba(15,118,110,0.4); background:rgba(15,118,110,0.1);
  font-size:0.84rem; color:var(--text-secondary); line-height:1.45;
}
.admin-reschedule-banner strong { color:var(--gold-light); }
.admin-reschedule-banner code { color:var(--gold); font-size:0.78rem; }

.analytics-year-select {
  background:var(--bg-raised); color:var(--white); border:1px solid var(--border);
  border-radius:8px; padding:6px 10px; font-size:0.82rem; font-family:var(--sans);
}
.class-c-bar {
  margin-top:12px; height:10px; border-radius:999px; overflow:hidden;
  background:rgba(255,255,255,0.08); border:1px solid var(--border);
}
.class-c-bar-fill { height:100%; border-radius:999px; transition:width 0.25s ease; }
.class-c-bar-fill.ok { background:var(--success); }
.class-c-bar-fill.warn { background:var(--gold); }
.class-c-bar-fill.over { background:var(--danger); }
.class-c-status { font-size:0.74rem; margin:8px 0 0; line-height:1.45; font-weight:600; }
.class-c-status.ok { color:var(--success); }
.class-c-status.warn { color:var(--gold-light); }
.class-c-status.over { color:var(--danger); }
.analytics-months { display:flex; flex-direction:column; gap:8px; }
.analytics-month {
  border:1px solid var(--border); border-radius:10px; background:var(--bg-raised); overflow:hidden;
}
.analytics-month.current { border-color:rgba(15,118,110,0.45); }
.analytics-month-head {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:12px 14px; background:transparent; border:none; color:var(--text-secondary);
  cursor:pointer; font-family:var(--sans); text-align:left;
}
.analytics-month-head:hover { background:rgba(255,255,255,0.03); }
.analytics-month-title { font-weight:700; color:var(--white); font-size:0.9rem; }
.analytics-month-title em { font-style:normal; color:var(--gold); font-size:0.72rem; font-weight:600; margin-left:6px; text-transform:uppercase; letter-spacing:0.04em; }
.analytics-month-summary { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; font-size:0.76rem; color:var(--text-muted); }
.analytics-month-summary .green { color:var(--success); }
.analytics-month-summary .gold { color:var(--gold-light); font-weight:600; }
.analytics-chevron { color:var(--text-muted); font-size:0.7rem; }
.analytics-month-body { padding:4px 14px 14px; border-top:1px solid var(--border); }
.analytics-job-list { display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.analytics-job-row {
  display:grid; grid-template-columns:1fr auto; gap:4px 12px; padding:10px 12px;
  border:1px solid var(--border); border-radius:8px; background:var(--surface);
  font-size:0.78rem;
}
.analytics-job-main { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.analytics-job-main strong { color:var(--white); font-size:0.84rem; }
.analytics-job-ref { color:var(--gold); font-size:0.72rem; }
.analytics-job-meta { grid-column:1 / -1; color:var(--text-muted); font-size:0.72rem; }
.analytics-job-pay { text-align:right; color:var(--gold-light); font-weight:600; }
.analytics-job-status { display:block; color:var(--text-muted); font-weight:500; font-size:0.7rem; margin-top:2px; }
.analytics-empty { color:var(--text-muted); font-size:0.8rem; margin:8px 0 0; }

.leads-sync-bar {
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:10px 12px; margin:0 0 16px; border-radius:8px;
  border:1px solid var(--border); background:var(--surface);
  font-size:0.74rem; color:var(--text-muted);
}
.job-group-label {
  font-size:0.7rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--text-muted);
  font-weight:600; margin:18px 0 10px;
}
.job-card {
  border:1px solid var(--border); border-radius:10px; background:var(--surface);
  margin-bottom:10px; overflow:hidden;
}
.job-card.open { border-color:rgba(15,118,110,0.45); }
.job-card-head {
  width:100%; display:flex; justify-content:space-between; align-items:flex-start; gap:12px;
  padding:12px 14px 6px; background:transparent; border:none; color:inherit;
  cursor:pointer; font-family:var(--sans); text-align:left;
}
.job-card-title { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.job-card-title strong { color:var(--white); font-size:0.95rem; }
.job-card-ref { color:var(--gold); font-size:0.72rem; }
.job-card-when { color:var(--gold-light); font-weight:600; font-size:0.84rem; white-space:nowrap; }
.job-card-summary { padding:0 14px 10px; font-size:0.8rem; color:var(--text-secondary); line-height:1.5; }
.job-card-contact a { color:var(--gold-light); text-decoration:none; }
.job-card-contact a:hover { text-decoration:underline; }
.job-card-parts { margin-top:4px; color:var(--text-muted); font-size:0.74rem; }
.job-card-controls {
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  padding:10px 14px 12px; border-top:1px solid var(--border);
}
.job-status-label { display:flex; align-items:center; gap:8px; font-size:0.76rem; color:var(--text-muted); }
.job-actions { display:flex; flex-wrap:wrap; gap:8px; }
.job-card-detail { padding:0 14px 14px; border-top:1px solid var(--border); }
.flag-badge.job-st-paid { background:rgba(61,220,132,0.12); color:var(--success); }
.flag-badge.job-st-materials { background:rgba(91,155,213,0.15); color:var(--info); }
.flag-badge.job-st-scheduled { background:rgba(15,118,110,0.15); color:var(--gold-light); }
.flag-badge.job-st-completed { background:rgba(255,255,255,0.08); color:var(--text-secondary); }
.flag-badge.job-st-canceled,
.flag-badge.flag-canceled { background:rgba(224,82,82,0.12); color:var(--danger); }
.flag-badge.job-st-quote { background:rgba(255,255,255,0.06); color:var(--text-muted); }

.goal-paid-banner {
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:10px 12px; margin:0 0 14px; border-radius:8px;
  border:1px solid rgba(15,118,110,0.35); background:rgba(15,118,110,0.08);
  font-size:0.76rem; color:var(--text-secondary); line-height:1.45;
}
.goal-paid-banner.muted {
  border-color:var(--border); background:var(--surface); color:var(--text-muted);
}
.goal-paid-banner strong { color:var(--gold-light); }
.goal-paid-banner em { color:var(--text-muted); font-style:normal; }
.goal-paid-toggle {
  display:inline-flex; align-items:center; gap:6px; font-size:0.74rem; color:var(--text-secondary);
  white-space:nowrap; cursor:pointer;
}
.goal-period-tabs {
  display:inline-flex; gap:4px; padding:3px; border-radius:10px;
  border:1px solid var(--border); background:var(--bg-raised);
}
.goal-period-tab {
  appearance:none; border:none; cursor:pointer; font-family:var(--sans);
  font-size:0.78rem; font-weight:600; padding:8px 16px; border-radius:8px;
  color:var(--text-secondary); background:transparent;
  transition:background var(--transition), color var(--transition);
}
.goal-period-tab:hover { color:var(--white); }
.goal-period-tab.active {
  color:var(--bg); background:var(--gold);
}
.goal-period-note {
  font-size:0.72rem; color:var(--text-muted); margin:10px 0 0; line-height:1.45;
}
.goal-ladder {
  display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px;
}
.goal-ladder-card {
  text-align:left; padding:14px 12px; border-radius:10px; cursor:pointer;
  border:1px solid var(--border); background:var(--surface); color:inherit;
  font-family:var(--sans); transition:border-color var(--transition), background var(--transition);
}
.goal-ladder-card:hover { border-color:rgba(15,118,110,0.45); }
.goal-ladder-card.active { border-color:var(--gold); background:rgba(15,118,110,0.1); }
.goal-ladder-card.disabled { opacity:0.55; cursor:default; }
.goal-ladder-name { font-weight:700; color:var(--white); font-size:0.88rem; }
.goal-ladder-sub { font-size:0.7rem; color:var(--text-muted); margin-top:2px; }
.goal-ladder-after { margin-top:10px; font-size:1.05rem; font-weight:700; color:var(--gold-light); }
.goal-ladder-after span { font-size:0.68rem; font-weight:500; color:var(--text-muted); }
.goal-ladder-meta { margin-top:6px; font-size:0.7rem; color:var(--text-secondary); line-height:1.4; }
.goal-ladder-pays {
  display:flex; flex-direction:column; gap:4px; margin-top:8px;
  font-size:0.72rem; font-weight:600;
}
.goal-compare-solo { color:var(--text-secondary); }
.goal-compare-arrow { margin:0 6px; color:var(--text-muted); }
.goal-compare-crew { color:var(--white); font-weight:700; }
.goal-pay-tech { color:var(--info); }
.goal-pay-tech em { font-style:normal; font-weight:500; color:var(--text-muted); }
.goal-pay-owner { color:var(--success); }
.goal-pay-compare {
  display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px;
}
.goal-pay-box {
  border:1px solid var(--border); border-radius:10px; padding:12px;
  background:var(--bg-raised);
}
.goal-pay-box.tech { border-color:rgba(91,155,213,0.4); }
.goal-pay-box.owner { border-color:rgba(61,220,132,0.35); }
.goal-pay-box-label {
  font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em;
  margin-bottom:8px; color:var(--text-secondary);
}
.goal-pay-box.tech .goal-pay-box-label { color:var(--info); }
.goal-pay-box.owner .goal-pay-box-label { color:var(--success); }
.goal-pay-box-label em { font-style:normal; font-weight:500; text-transform:none; letter-spacing:0; color:var(--text-muted); }
.goal-pay-box-row {
  display:flex; justify-content:space-between; gap:8px;
  font-size:0.78rem; color:var(--text-secondary); padding:4px 0;
  border-bottom:1px solid var(--border);
}
.goal-pay-box-row:last-child { border-bottom:none; }
.goal-pay-box-row strong { color:var(--white); }
@media (max-width:720px) {
  .goal-ladder { grid-template-columns:1fr; }
  .goal-pay-compare { grid-template-columns:1fr; }
}
.goal-ladder-cap {
  display:inline-block; margin-top:8px; font-size:0.65rem; font-weight:700;
  text-transform:uppercase; letter-spacing:0.06em; padding:3px 8px; border-radius:99px;
}
.goal-capacity {
  display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;
  margin:10px 0 12px; padding:10px 12px; border-radius:8px; font-size:0.76rem;
  border:1px solid var(--border);
}
.goal-capacity strong { text-transform:uppercase; letter-spacing:0.06em; font-size:0.7rem; }
.goal-cap-doable, .goal-ladder-cap.goal-cap-doable {
  color:var(--success); background:rgba(61,220,132,0.1); border-color:rgba(61,220,132,0.35);
}
.goal-cap-tight, .goal-ladder-cap.goal-cap-tight {
  color:var(--warning); background:rgba(230,168,23,0.12); border-color:rgba(230,168,23,0.35);
}
.goal-cap-full, .goal-ladder-cap.goal-cap-full {
  color:var(--gold-light); background:rgba(15,118,110,0.12); border-color:rgba(15,118,110,0.4);
}
.goal-cap-over, .goal-ladder-cap.goal-cap-over {
  color:var(--danger); background:rgba(224,82,82,0.12); border-color:rgba(224,82,82,0.35);
}

.admin-cal-cell.blocked { border-color:rgba(224,82,82,0.35); background:rgba(224,82,82,0.08); color:var(--danger); }
.admin-cal-cell .acc-num { font-weight:700; font-size:0.82rem; }
.admin-cal-cell .acc-booked { font-size:0.58rem; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--gold); }
.admin-cal-cell .acc-lead { font-size:0.55rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--info); }
.admin-cal-legend { display:flex; flex-wrap:wrap; gap:12px 16px; font-size:0.72rem; color:var(--text-muted); }
.admin-cal-legend span { display:inline-flex; align-items:center; gap:6px; }
.cal-dot { width:10px; height:10px; border-radius:50%; display:inline-block; border:1px solid var(--border); background:var(--bg-raised); }
.cal-dot.open { background:rgba(61,220,132,0.7); border-color:var(--success); }
.cal-dot.lead { background:rgba(91,155,213,0.75); border-color:var(--info); }
.cal-dot.booked { background:rgba(15,118,110,0.8); border-color:var(--gold); }
.cal-dot.blocked { background:rgba(224,82,82,0.6); border-color:var(--danger); }
.cal-dot.unset { background:var(--bg-raised); }

@media (max-width:540px) {
  .input-row { grid-template-columns:1fr; }
  .landing-features { gap:8px; }
  .landing-hero h1 { font-size:1.35rem; }
  .feature-chip { padding:16px 8px; }
  .feature-chip .fi { font-size:1.4rem; }
  .device-grid { grid-template-columns:1fr; }
  .card { padding:22px 16px; }
  .summary-total .total-value { font-size:1.9rem; }
  .btn { padding:11px 20px; font-size:0.82rem; }
  .preview-tiles { grid-template-columns:1fr 1fr; }
  .recap-grid { grid-template-columns:repeat(3,1fr); }
  .trust-badges { grid-template-columns:1fr; }
  .admin-panel { max-width:100%; }
  .rfo-row { grid-template-columns:1fr; }
  .lead-payment-summary { grid-template-columns:repeat(2,1fr); }

  /* Mobile polish — phone only; desktop counters/recap unchanged */
  .device-counter { gap:10px; }
  .counter-btn { width:44px; height:44px; font-size:1.25rem; }
  .counter-input { width:36px; font-size:0.9rem; padding:6px 2px; }
  .device-row .device-counter { gap:8px; }
  .device-row .counter-input { width:28px; max-width:28px; font-size:0.82rem; padding:4px 0; }
  .gang-plate-tile .counter-btn { width:40px; height:40px; }
  .gang-plate-grid { grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); }

  .summary-row { flex-wrap:wrap; gap:4px 12px; }
  .summary-row .label { flex:1 1 60%; max-width:100%; word-break:break-word; }
  .summary-row .value { flex:0 0 auto; margin-left:auto; }

  .recap-room-row { flex-direction:column; align-items:flex-start; gap:4px; padding:10px 0; }
  .recap-room-row .rr-devices { text-align:left; font-weight:500; color:var(--text-secondary); }
}