/* SprinklerBlueprint — verdant nature-premium design system */
:root{
  /* Ink / text — deep-forest neutrals */
  --ld-ink: #0c1f17;
  --ld-ink-2:#3c4a42;
  --ld-ink-3:#6a7b71;
  /* Surfaces — warm sand-tinted */
  --ld-bg:#ffffff;
  --ld-surface:#f5f6f0;
  --ld-surface-2:#eceee4;
  --ld-border:rgba(12,31,23,.10);
  /* Brand — emerald */
  --ld-accent:#16744a;
  --ld-accent-h:#0f5c39;
  --ld-accent-2:#0b3d28;
  --ld-accent-soft:rgba(22,116,74,.10);
  --ld-accent-ring:rgba(22,116,74,.18);
  /* Secondary accents */
  --ld-gold:#c8861d;        /* warm amber */
  --ld-gold-h:#a96e10;
  --ld-gold-soft:rgba(200,134,29,.12);
  --ld-sky:#2f9bd4;         /* water blue */
  --ld-sky-soft:#7dd3fc;
  --ld-sand:#f3efe5;        /* warm sand wash */
  /* Status */
  --ld-success:#15a34a;
  --ld-warn:#d97706;
  --ld-err:#dc2626;
  /* Forest dark bands */
  --ld-forest:#0a2018;
  --ld-forest-2:#103024;
  /* Effects */
  --ld-shadow: 0 4px 14px rgba(12,31,23,.06);
  --ld-shadow-soft: 0 18px 50px -18px rgba(12,31,23,.20);
  --ld-shadow-lg: 0 30px 70px -24px rgba(12,31,23,.30);
  --ld-radius: 14px;
  --ld-radius-lg: 22px;
  --ld-mono: ui-monospace, Menlo, Consolas, monospace;
  --ld-ease: cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  background:var(--ld-bg); color:var(--ld-ink);
  line-height:1.5; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
.wrap{max-width:1120px; margin:0 auto; padding:0 20px}

/* Header */
.ld-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.78); backdrop-filter:blur(14px) saturate(1.4); -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid var(--ld-border);
  transition:box-shadow .25s var(--ld-ease), background .25s var(--ld-ease);
}
.ld-header.is-scrolled{background:rgba(255,255,255,.92); box-shadow:0 8px 30px -18px rgba(12,31,23,.35)}
.ld-header .wrap{display:flex; align-items:center; gap:18px; padding:12px 20px}
.ld-brand{
  display:inline-flex; align-items:center; gap:9px;
  font-weight:800; font-size:1.16rem; letter-spacing:-.02em;
  text-decoration:none; color:var(--ld-ink);
}
.ld-brand-mark{flex:0 0 auto; width:34px; height:34px; display:grid; place-items:center;
  border-radius:11px; background:linear-gradient(150deg,#1c8a59,var(--ld-accent-2));
  box-shadow:0 6px 16px -8px rgba(11,61,40,.7), inset 0 1px 0 rgba(255,255,255,.25)}
.ld-brand-mark svg{width:20px; height:20px}
.ld-brand b{font-weight:800}
.ld-brand i{font-style:normal; color:var(--ld-accent); font-weight:800}
.ld-brand .ld-tag{
  background:var(--ld-gold-soft); color:var(--ld-gold-h);
  font-size:.6rem; padding:3px 8px; border-radius:999px; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; align-self:center;
}
.ld-nav{margin-left:auto; display:flex; gap:4px; align-items:center}
.ld-nav a{
  position:relative; padding:9px 14px; border-radius:9px;
  color:var(--ld-ink-2); text-decoration:none; font-weight:600; font-size:.92rem;
  transition:color .18s var(--ld-ease), background .18s var(--ld-ease);
}
.ld-nav a:not(.ld-nav-cta)::after{content:''; position:absolute; left:14px; right:14px; bottom:5px; height:2px; border-radius:2px; background:var(--ld-accent); transform:scaleX(0); transform-origin:left; transition:transform .22s var(--ld-ease)}
.ld-nav a:not(.ld-nav-cta):hover{color:var(--ld-ink)}
.ld-nav a:not(.ld-nav-cta):hover::after,.ld-nav a.is-active::after{transform:scaleX(1)}
.ld-nav a.is-active{color:var(--ld-ink)}
.ld-nav-cta{margin-left:6px; background:linear-gradient(180deg,#1c8a59,var(--ld-accent)); color:#fff !important; font-weight:700 !important; box-shadow:0 6px 16px -8px rgba(11,61,40,.6)}
.ld-nav-cta:hover{background:linear-gradient(180deg,#17794d,var(--ld-accent-h)); color:#fff !important}
.ld-admin-pill{background:var(--ld-ink); color:#fff !important}
.ld-admin-pill:hover{background:var(--ld-accent-2) !important; color:#fff !important}

/* Main */
.ld-main{min-height:calc(100vh - 220px); padding:28px 0 60px}

/* Hero */
.ld-hero{padding:32px 0 8px}
.ld-hero h1{
  font-size:clamp(1.8rem, 3.4vw, 2.6rem);
  font-weight:800; letter-spacing:-.02em;
  margin:0 0 12px; line-height:1.1; color:var(--ld-ink);
}
.ld-hero .sub{color:var(--ld-ink-2); font-size:1.06rem; margin:0 0 22px; max-width:660px}

/* Address card */
.ld-addr-card{
  background:var(--ld-bg); border:1px solid var(--ld-border);
  border-radius:var(--ld-radius); padding:18px;
  box-shadow:var(--ld-shadow); max-width:660px;
}
.ld-addr-card label{font-weight:600; font-size:.86rem; color:var(--ld-ink-2)}
.ld-addr-card input[type="text"]{
  display:block; width:100%; margin:6px 0 14px;
  padding:11px 14px; font-size:1rem; font-family:inherit;
  border:1px solid var(--ld-border); border-radius:8px;
  background:#fff; color:var(--ld-ink);
}
.ld-addr-card input:focus{outline:none; border-color:var(--ld-accent); box-shadow:0 0 0 3px var(--ld-accent-ring)}
.btn-primary{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg,#1c8a59,var(--ld-accent)); color:#fff;
  padding:12px 24px; border:0; border-radius:10px;
  font-weight:700; font-size:.95rem; cursor:pointer; text-decoration:none;
  display:inline-flex; align-items:center; gap:8px;
  box-shadow:0 8px 20px -8px rgba(11,61,40,.55), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .18s var(--ld-ease), box-shadow .18s var(--ld-ease), background .18s var(--ld-ease);
}
.btn-primary:hover{background:linear-gradient(180deg,#17794d,var(--ld-accent-h)); transform:translateY(-2px); box-shadow:0 14px 28px -10px rgba(11,61,40,.6), inset 0 1px 0 rgba(255,255,255,.2)}
.btn-primary:active{transform:translateY(0)}
.btn-primary:focus-visible{outline:none; box-shadow:0 0 0 3px var(--ld-accent-ring), 0 8px 20px -8px rgba(11,61,40,.55)}
/* Warm-amber CTA — used sparingly on key marketing actions */
.btn-gold{background:linear-gradient(180deg,#dba031,var(--ld-gold)); box-shadow:0 8px 20px -8px rgba(169,110,16,.55), inset 0 1px 0 rgba(255,255,255,.25)}
.btn-gold:hover{background:linear-gradient(180deg,#cf941f,var(--ld-gold-h)); box-shadow:0 14px 28px -10px rgba(169,110,16,.6), inset 0 1px 0 rgba(255,255,255,.25)}
.btn-secondary{
  background:#fff; color:var(--ld-ink); border:1px solid var(--ld-border);
  padding:11px 20px; border-radius:10px; font-weight:600; cursor:pointer;
  text-decoration:none; display:inline-flex; align-items:center; gap:7px;
  transition:transform .18s var(--ld-ease), border-color .18s var(--ld-ease), background .18s var(--ld-ease);
}
.btn-secondary:hover{background:var(--ld-surface); border-color:rgba(22,116,74,.4); transform:translateY(-2px)}
/* button ripple */
.btn-ripple{position:absolute; border-radius:50%; transform:translate(-50%,-50%) scale(0); background:rgba(255,255,255,.45); pointer-events:none; animation:ldripple .6s var(--ld-ease) forwards}
@keyframes ldripple{to{transform:translate(-50%,-50%) scale(1); opacity:0}}
@media (prefers-reduced-motion:reduce){.btn-primary,.btn-secondary{transition:none}.btn-primary:hover,.btn-secondary:hover{transform:none}.btn-ripple{display:none}}

.ld-steps{display:grid; gap:18px; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); margin:32px 0}
.ld-step{
  background:var(--ld-surface); border:1px solid var(--ld-border);
  border-radius:var(--ld-radius); padding:18px;
}
.ld-step .n{
  display:inline-flex; width:28px; height:28px; align-items:center; justify-content:center;
  background:var(--ld-accent); color:#fff; border-radius:50%; font-weight:700; font-size:.85rem;
  margin-bottom:10px;
}
.ld-step h3{margin:0 0 6px; font-size:1.02rem; font-weight:700}
.ld-step p{margin:0; font-size:.9rem; color:var(--ld-ink-2)}

/* Footer */
.ld-footer{position:relative; border-top:1px solid var(--ld-border); padding:40px 0 26px; background:var(--ld-surface)}
.ld-footer::before{content:''; position:absolute; top:-1px; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--ld-accent),var(--ld-gold),var(--ld-sky))}
.ld-footer p{margin:6px 0; font-size:.85rem; color:var(--ld-ink-2)}
.ld-footer .ld-foot-small{font-size:.82rem; color:var(--ld-ink-3); max-width:300px; line-height:1.6}

/* ────────── Admin ────────── */
body.is-admin .ld-main{background:var(--ld-surface-2)}
.ld-admin-bar{
  background:var(--ld-ink); color:#fff; padding:10px 0; font-size:.9rem;
}
.ld-admin-bar .wrap{display:flex; gap:14px; align-items:center}
.ld-admin-bar a{color:#cbd5e1; text-decoration:none; font-weight:600; padding:4px 10px; border-radius:6px}
.ld-admin-bar a:hover, .ld-admin-bar a.active{background:rgba(255,255,255,.08); color:#fff}
.ld-admin-bar .right{margin-left:auto; color:#94a3b8; font-size:.85rem}
.ld-admin-bar .right a{color:#fff; background:var(--ld-accent); padding:4px 10px; border-radius:6px}

.adm-card{
  background:#fff; border:1px solid var(--ld-border); border-radius:var(--ld-radius);
  padding:22px; box-shadow:var(--ld-shadow); margin:18px 0;
}
.adm-card h2{margin:0 0 14px; font-size:1.2rem}
.adm-grid{display:grid; gap:18px; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr))}
.adm-field{display:flex; flex-direction:column}
.adm-field label{font-weight:600; font-size:.84rem; color:var(--ld-ink-2); margin-bottom:5px}
.adm-field input, .adm-field select, .adm-field textarea{
  font:inherit; padding:9px 12px; border:1px solid var(--ld-border);
  border-radius:7px; background:#fff; color:var(--ld-ink);
}
.adm-field input:focus, .adm-field select:focus, .adm-field textarea:focus{
  outline:none; border-color:var(--ld-accent); box-shadow:0 0 0 3px var(--ld-accent-ring);
}
.adm-field textarea{min-height:80px; resize:vertical}
.adm-field .hint{font-size:.75rem; color:var(--ld-ink-3); margin-top:4px}

.adm-table{width:100%; border-collapse:collapse; margin:14px 0}
.adm-table th, .adm-table td{
  text-align:left; padding:10px 12px; border-bottom:1px solid var(--ld-border); font-size:.9rem;
}
.adm-table th{color:var(--ld-ink-3); font-weight:600; font-size:.75rem; text-transform:uppercase; letter-spacing:.04em}
.adm-table tr:hover td{background:var(--ld-surface)}
.adm-pill{display:inline-block; padding:2px 9px; border-radius:999px; font-size:.7rem; font-weight:700}
.adm-pill.on{background:#dcfce7; color:#166534}
.adm-pill.off{background:#fee2e2; color:#991b1b}
.adm-pill.type-rotor{background:#e0e7ff; color:#3730a3}
.adm-pill.type-spray{background:#fef3c7; color:#92400e}
.adm-pill.type-drip{background:#dbeafe; color:#1e40af}
.adm-pill.type-kit{background:#f1f5f9; color:#0f172a}
.adm-pill.type-controller{background:#fce7f3; color:#9d174d}
.adm-pill.type-valve, .adm-pill.type-fitting, .adm-pill.type-other, .adm-pill.type-impact, .adm-pill.type-micro_spray, .adm-pill.type-hose_oscillator{background:#f1f5f9; color:#0f172a}

.adm-flash{padding:11px 15px; border-radius:8px; margin:12px 0; font-weight:500}
.adm-flash.ok{background:#dcfce7; color:#166534}
.adm-flash.err{background:#fee2e2; color:#991b1b}
.adm-btn-row{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap}

.adm-key-redacted{font-family:var(--ld-mono); color:var(--ld-ink-3); font-size:.85rem}
.adm-stats{display:grid; gap:14px; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); margin:18px 0}
.adm-stat{background:#fff; border:1px solid var(--ld-border); border-radius:10px; padding:14px}
.adm-stat .v{font-size:1.7rem; font-weight:800; color:var(--ld-ink)}
.adm-stat .l{font-size:.8rem; color:var(--ld-ink-3); text-transform:uppercase; letter-spacing:.04em; font-weight:600}
.adm-stat.warn{border-color:#fcd34d; background:#fffbeb}
.adm-linkgrid{display:grid; gap:14px; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); margin:4px 0}
.adm-link{display:flex; flex-direction:column; gap:4px; background:#fff; border:1px solid var(--ld-border); border-radius:12px; padding:16px; text-decoration:none; color:var(--ld-ink); transition:border-color .15s, box-shadow .15s, transform .15s}
.adm-link:hover{border-color:var(--ld-accent); box-shadow:var(--ld-shadow); transform:translateY(-2px)}
.adm-link .t{font-weight:700; font-size:1rem}
.adm-link .d{font-size:.82rem; color:var(--ld-ink-3); line-height:1.4}
.adm-link .n{font-size:1.5rem; font-weight:800; color:var(--ld-accent)}
.adm-badge{display:inline-block; min-width:18px; text-align:center; background:var(--ld-accent); color:#fff; border-radius:999px; font-size:.68rem; font-weight:800; padding:1px 6px; margin-left:5px}

/* ───────── Phase 2: Designer ───────── */
.ld-designer{display:flex; flex-direction:column; height:calc(100vh - 58px); position:fixed; inset:58px 0 0 0; z-index:1}
.ld-designer-bar{display:flex; align-items:center; gap:14px; padding:10px 16px; background:#fff; border-bottom:1px solid var(--ld-border); flex-wrap:wrap}
.ldb-addr{font-size:.92rem; color:var(--ld-ink)}
.ldb-tools{display:flex; gap:8px; align-items:center; margin-left:auto; flex-wrap:wrap}
.ldt-btn{background:#fff; border:1px solid var(--ld-border); border-radius:8px; padding:8px 12px; font:inherit; font-size:.86rem; font-weight:600; cursor:pointer; color:var(--ld-ink)}
.ldt-btn:hover{background:var(--ld-surface)}
.ldt-btn.is-active{background:var(--ld-accent); color:#fff; border-color:var(--ld-accent)}
.ldt-primary{background:var(--ld-accent); color:#fff; border-color:var(--ld-accent)}
.ldt-primary:hover{background:var(--ld-accent-h)}
.ldt-success{background:var(--ld-success); color:#fff; border-color:var(--ld-success)}
.ldt-success:disabled{opacity:.5; cursor:not-allowed}
.ldt-select{padding:8px 10px; border:1px solid var(--ld-border); border-radius:8px; font:inherit; font-size:.86rem; background:#fff}
.ldt-sep{width:1px; height:24px; background:var(--ld-border)}
.ld-designer-body{flex:1; display:flex; min-height:0}
.ld-map-wrap{flex:1; min-height:0; position:relative; display:flex}
.ld-map{flex:1; min-height:0}
/* On-map drawing helper */
.ld-draw-hud{position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:5;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center;
  background:rgba(15,23,42,.92); color:#fff; padding:9px 12px; border-radius:11px;
  box-shadow:0 6px 22px rgba(0,0,0,.32); font-size:.85rem; max-width:calc(100% - 24px)}
.ld-draw-hud[hidden]{display:none}
.ld-draw-hud #ldDrawHudText{font-weight:600; margin-right:2px}
.ldh-btn{border:0; border-radius:8px; padding:7px 12px; font:inherit; font-size:.83rem; font-weight:700; cursor:pointer; background:rgba(255,255,255,.16); color:#fff}
.ldh-btn:hover{background:rgba(255,255,255,.28)}
.ldh-btn.ldh-finish{background:#22c55e; color:#04210f}
.ldh-btn.ldh-finish:hover{background:#34d76b}
.ldh-btn.ldh-cancel{background:rgba(239,68,68,.85)}
.ldh-btn:disabled{opacity:.4; cursor:not-allowed}
.ld-side{width:330px; background:var(--ld-surface-2); border-left:1px solid var(--ld-border); overflow-y:auto; padding:14px}
.ld-side-card{background:#fff; border:1px solid var(--ld-border); border-radius:10px; padding:14px; margin-bottom:12px}
.ld-side-card h3{margin:0 0 10px; font-size:1rem}
.ld-legend{list-style:none; padding:0; margin:0; font-size:.88rem}
.ld-legend li{display:flex; align-items:center; gap:8px; padding:4px 0}
.ld-legend .sw{width:14px; height:14px; border-radius:3px; display:inline-block}
.sw-lawn{background:#22c55e}.sw-bed{background:#a855f7}.sw-nogo{background:#ef4444}.sw-head{background:#2563eb; border-radius:50%}
.sw-driveway{background:#374151}.sw-sidewalk{background:#cbd5e1; border:1px solid #0ea5e9}
.ld-hint{font-size:.78rem; color:var(--ld-ink-3); margin:10px 0 0; line-height:1.5}
.ld-spinner{width:26px; height:26px; border:3px solid var(--ld-surface-2); border-top-color:var(--ld-accent); border-radius:50%; animation:ldspin .8s linear infinite; margin-bottom:10px}
@keyframes ldspin{to{transform:rotate(360deg)}}
.ld-bom-line{display:grid; grid-template-columns:34px 1fr auto; gap:8px; align-items:center; padding:8px 0; border-bottom:1px solid var(--ld-border); font-size:.86rem}
.ld-bom-line .q{font-weight:700; color:var(--ld-accent)}
.ld-bom-line .n a{color:var(--ld-accent); text-decoration:none}
.ld-bom-line .n small{color:var(--ld-ink-3); font-size:.78rem}
.ld-bom-line .s{font-weight:700}
.ld-asof{color:var(--ld-ink-3); font-size:.72rem}
.ld-bom-total{display:flex; justify-content:space-between; align-items:center; margin:12px 0 4px; font-size:1.05rem}
.ld-bom-total strong{font-size:1.3rem; color:var(--ld-ink)}
.ld-bom-tools{font-size:.8rem; color:var(--ld-warn); margin:8px 0 0}
@media (max-width:820px){
  /* Mobile: let the whole page scroll instead of trapping everything in a fixed,
     non-scrolling shell where the map captures every swipe. */
  .ld-designer{position:static; inset:auto; height:auto; min-height:0}
  .ld-designer-body{flex-direction:column; min-height:0}
  .ld-map-wrap{flex:none; display:block; height:auto}
  .ld-map{flex:none; display:block; width:100%; height:60vh; min-height:300px; max-height:540px}
  .ld-side{width:auto; border-left:0; border-top:1px solid var(--ld-border); max-height:none; overflow:visible}
}

/* ───────── Plan view ───────── */
.ld-plan{padding:22px 18px 60px}
.ld-plan-head{display:flex; justify-content:space-between; align-items:flex-start; gap:18px; flex-wrap:wrap; margin-bottom:16px}
.ld-plan-head h1{margin:0 0 4px; font-size:1.6rem}
.ld-plan-head .sub{margin:0; color:var(--ld-ink-2)}
.ld-plan-total{background:var(--ld-surface); border:1px solid var(--ld-border); border-radius:10px; padding:12px 18px; text-align:right}
.ld-plan-total span{display:block; font-size:.78rem; color:var(--ld-ink-3); text-transform:uppercase; letter-spacing:.04em}
.ld-plan-total strong{font-size:1.6rem; color:var(--ld-ink)}
.ld-plan-map{height:460px; border-radius:12px; overflow:hidden; border:1px solid var(--ld-border); margin-bottom:18px}
.ld-plan-grid{display:grid; gap:18px; grid-template-columns:1.5fr 1fr}
.ld-plan-card{background:#fff; border:1px solid var(--ld-border); border-radius:12px; padding:18px}
.ld-plan-card h3{margin:0 0 12px}
@media (max-width:760px){ .ld-plan-grid{grid-template-columns:1fr} .ld-plan-map{height:320px} }

/* Specialist + supervisor review badge */
.ld-review-badge{background:linear-gradient(135deg,#ecfdf5,#f0f9ff); border:1px solid #6ee7b7; border-radius:12px; padding:16px 18px; margin:0 0 18px}
.ld-review-head{display:flex; align-items:flex-start; gap:12px}
.ld-review-seal{flex:0 0 auto; width:34px; height:34px; border-radius:50%; background:#059669; color:#fff; font-weight:800; font-size:1.1rem; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(5,150,105,.35)}
.ld-review-head strong{font-size:1.02rem}
.ld-review-head p{margin:2px 0 0; font-size:.85rem; color:var(--ld-ink-3)}
.ld-review-head>div{flex:1}
.ld-review-grade{flex:0 0 auto; align-self:center; font-weight:800; font-size:1.5rem; color:#047857; line-height:1}
.ld-review-grade small{font-size:.7rem; color:var(--ld-ink-3); font-weight:600}
.ld-grade{display:inline-block; margin-left:6px; padding:1px 8px; border-radius:999px; background:rgba(5,150,105,.14); color:#047857; font-weight:700; font-size:.8rem}
.ld-review-standards{list-style:none; display:flex; flex-wrap:wrap; gap:6px 14px; padding:0; margin:12px 0 0 46px; font-size:.82rem; color:#065f46; font-weight:600}
.ld-build-notes{background:#fffbeb; border:1px solid #fcd34d; border-radius:12px; padding:14px 18px; margin:0 0 18px; font-size:.88rem}
.ld-build-notes strong{display:block; margin-bottom:6px}
.ld-build-notes ul{margin:0; padding-left:18px}
.ld-build-notes li{margin:3px 0}

/* Step-by-step installation guide */
.ld-guide{background:#fff; border:1px solid var(--ld-border); border-radius:12px; margin-top:18px; overflow:hidden}
.ld-guide>summary{list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; font-weight:700; font-size:1.05rem; background:linear-gradient(180deg,#f8fafc,#fff)}
.ld-guide>summary::-webkit-details-marker{display:none}
.ld-guide-time{font-weight:600; font-size:.82rem; color:#fff; background:var(--ld-accent); padding:5px 10px; border-radius:999px; white-space:nowrap}
.ld-guide-body{padding:0 18px 18px}
.ld-guide-meta{display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 16px}
.ld-guide-meta span{background:var(--ld-surface-2); border:1px solid var(--ld-border); border-radius:8px; padding:6px 10px; font-size:.82rem}
.ld-guide-cols{display:grid; grid-template-columns:1fr 1.4fr; gap:24px}
.ld-guide-cols h4{margin:0 0 8px; font-size:.92rem}
.ld-check{list-style:none; padding:0; margin:0 0 14px; font-size:.88rem}
.ld-check li{padding:3px 0}
.ld-check label{display:flex; gap:8px; align-items:flex-start; cursor:pointer}
.ld-steps{margin:0; padding-left:20px; font-size:.9rem; line-height:1.5}
.ld-steps li{margin-bottom:9px}
.ld-guide-actions{display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 8px}
@media (max-width:760px){ .ld-guide-cols{grid-template-columns:1fr} }
@media print{
  .ld-header,.ld-nav,.ld-plan-tabs,.ld-plan-map,#viewBlueprint,#viewSatellite,.ld-guide-actions,.ld-savings,#ldEmailForm{display:none !important}
  .ld-guide{border:0; margin:0} .ld-guide>summary{background:none; padding:0 0 8px}
  .ld-guide-time{color:#000; background:none; padding:0}
  body{background:#fff}
}

/* Analysis progress */
.ld-prog-head{display:flex; align-items:center; gap:10px; margin-bottom:10px}
.ld-prog-head strong{font-size:.95rem; color:var(--ld-ink)}
.ld-spinner{display:inline-block; width:18px; height:18px; border:2.5px solid var(--ld-surface-2); border-top-color:var(--ld-accent); border-radius:50%; animation:ldspin .8s linear infinite; flex:0 0 auto}
.ld-prog-bar{height:8px; background:var(--ld-surface-2); border-radius:999px; overflow:hidden; margin:4px 0}
.ld-prog-fill{height:100%; width:0; background:linear-gradient(90deg,var(--ld-accent),var(--ld-accent-2)); border-radius:999px; transition:width .3s ease}
.ld-prog-fill.ok{background:var(--ld-success)}
.ld-prog-fill.err{background:var(--ld-err)}
.ld-prog-meta{display:flex; justify-content:space-between; font-size:.78rem; color:var(--ld-ink-3); margin:6px 0 12px}
.ld-prog-list{list-style:none; padding:0; margin:0; font-size:.84rem}
.ld-prog-list li{position:relative; padding:5px 0 5px 24px; color:var(--ld-ink-3); transition:color .2s}
.ld-prog-list li::before{content:'○'; position:absolute; left:2px; top:5px; font-size:.8rem; color:var(--ld-ink-3)}
.ld-prog-list li.active{color:var(--ld-ink); font-weight:600}
.ld-prog-list li.active::before{content:'◔'; color:var(--ld-accent); animation:ldspin 1.2s linear infinite}
.ld-prog-list li.done{color:var(--ld-success)}
.ld-prog-list li.done::before{content:'✓'; color:var(--ld-success)}

/* Delete tool + label swatch */
.ldt-del.is-active{background:var(--ld-err); color:#fff; border-color:var(--ld-err)}
.sw-label{background:#0f172a}
/* Polygon info-window menu */
.ld-iw{font:inherit; min-width:150px}
.ld-iw strong{display:block; margin-bottom:8px; font-size:.9rem}
.ld-iw-btns{display:flex; flex-direction:column; gap:6px}
.ld-iw-btns button{font:inherit; font-size:.82rem; padding:6px 10px; border:1px solid var(--ld-border); border-radius:6px; background:#fff; cursor:pointer; text-align:left}
.ld-iw-btns button:hover{background:var(--ld-surface)}
.ld-iw-btns button.del{color:#fff; background:var(--ld-err); border-color:var(--ld-err)}
/* head arc/rotate menu */
.ld-head-iw{min-width:210px}
.ld-iw-lbl{font-size:.76rem; color:var(--ld-ink-3); font-weight:700; margin:9px 0 4px}
.ld-iw-lbl:first-child{margin-top:0}
.ld-head-iw .ld-iw-btns{flex-direction:row; flex-wrap:wrap; gap:5px}
.ld-head-iw .ld-iw-btns button{flex:1 1 auto; min-width:40px; text-align:center; padding:6px 8px}
.ld-head-iw .ld-iw-btns button.on{background:var(--ld-accent); color:#fff; border-color:var(--ld-accent)}
.ld-head-iw>button.del{margin-top:10px; width:100%; text-align:center; color:#fff; background:var(--ld-err); border:1px solid var(--ld-err); border-radius:6px; padding:7px; font:inherit; font-size:.82rem; cursor:pointer}
.ld-head-deg{color:var(--ld-accent); font-weight:700}

/* System option cards */
#ldOptionCards{display:flex; flex-direction:column; gap:10px}
.ldo-card{display:block; border:1.5px solid var(--ld-border); border-radius:10px; padding:12px; cursor:pointer; transition:border-color .15s, box-shadow .15s; position:relative}
.ldo-card:hover{border-color:var(--ld-accent)}
.ldo-card.sel{border-color:var(--ld-accent); box-shadow:0 0 0 3px var(--ld-accent-ring)}
.ldo-card.rec{border-color:var(--ld-success)}
.ldo-card.rec.sel{box-shadow:0 0 0 3px rgba(22,163,74,.15)}
.ldo-head{display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap; row-gap:4px}
.ldo-head strong{font-size:1rem; flex:0 0 auto}
.ldo-rec{background:#dcfce7; color:#166534; font-size:.66rem; font-weight:800; padding:2px 8px; border-radius:999px; letter-spacing:.03em; white-space:nowrap}
.ldo-total{margin-left:auto; font-weight:800; font-size:1.05rem; white-space:nowrap}
.ldo-lines{font-size:.82rem; color:var(--ld-ink-2); margin-bottom:8px}
.ldo-line{display:flex; justify-content:space-between; gap:8px; padding:2px 0; flex-wrap:wrap}
.ldo-line span:first-child{min-width:0; word-break:break-word}
.ldo-card{overflow:hidden}
.ldo-why{font-size:.8rem; color:var(--ld-ink-3); line-height:1.5; margin:0}

/* Blueprint */
.ld-blueprint-wrap{background:#fff; border:1px solid var(--ld-border); border-radius:12px; padding:12px; margin-bottom:18px; overflow:auto}
#ldBlueprint{display:block; width:100%; height:auto; background:#0b1f3a; border-radius:8px}
.ld-bp-actions{display:flex; gap:10px; flex-wrap:wrap; margin:12px 0 0; align-items:center}
.ld-plan-tabs{display:flex; gap:8px; margin-bottom:12px}
.ld-plan-tab{padding:8px 14px; border:1px solid var(--ld-border); border-radius:8px; background:#fff; cursor:pointer; font:inherit; font-weight:600; font-size:.9rem}
.ld-plan-tab.active{background:var(--ld-accent); color:#fff; border-color:var(--ld-accent)}
.ld-opt-row{display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); margin:6px 0 18px}

/* Water supply card */
.sw-faucet{background:#0891b2; border-radius:50%}
.ld-water-row{display:flex; gap:10px}
.ld-water-row label{flex:1; font-size:.8rem; font-weight:600; color:var(--ld-ink-2); display:flex; flex-direction:column; gap:4px}
.ld-water-row input{padding:8px 10px; border:1px solid var(--ld-border); border-radius:7px; font:inherit}
.ld-water-help{margin-top:10px; font-size:.8rem; color:var(--ld-ink-3)}
.ld-water-help summary{cursor:pointer; font-weight:600; color:var(--ld-accent)}
.ld-water-help p{margin:8px 0 0; line-height:1.5}
.ld-water-warn{margin-top:12px; padding:10px 12px; background:#fff7ed; border:1px solid #fed7aa; border-radius:8px; font-size:.8rem; color:#9a3412}
.ld-water-warn p{margin:4px 0; line-height:1.45}

/* Map lock toggle */
.ldt-lock.is-active{background:#0f172a; color:#fff; border-color:#0f172a}

/* Wider blueprint so it renders larger / less cramped */
.ld-plan{max-width:1340px !important; width:min(100% - 24px, 1340px) !important}
#ldBlueprint{min-width:920px}

/* Pack / units notes in option lines */
.ldo-pack{color:var(--ld-accent); font-weight:600; font-size:.85em}
.ldo-units{color:var(--ld-ink-3); font-size:.82em}

/* Option tools + totals */
.ldo-sub{font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--ld-ink-3); margin:8px 0 4px; border-top:1px dashed var(--ld-border); padding-top:6px}
.ldo-totrow{display:flex; justify-content:space-between; font-size:.84rem; color:var(--ld-ink-2); padding:2px 0}
.ldo-totrow.grand{font-weight:800; font-size:.98rem; color:var(--ld-ink); border-top:1px solid var(--ld-border); margin-top:4px; padding-top:6px}

/* AI verify banner */
.ld-verify{margin:0 0 12px; padding:10px 12px; border-radius:8px; font-size:.82rem; line-height:1.45}
.ld-verify.checking{background:#eff6ff; color:#1e40af; border:1px solid #bfdbfe}
.ld-verify.ok{background:#dcfce7; color:#166534; border:1px solid #bbf7d0}
.ld-verify.warn{background:#fff7ed; color:#9a3412; border:1px solid #fed7aa}
.ld-verify strong{display:block; margin-bottom:4px}
/* review progress */
.ld-rev-top{display:flex; align-items:center; gap:8px; margin-bottom:8px}
.ld-rev-top strong{flex:1; display:inline; margin:0; font-size:.88rem}
.ld-rev-rnd{font-size:.74rem; color:#1e40af; font-weight:700; white-space:nowrap}
.ld-rev-spin{width:14px; height:14px; border:2px solid #bfdbfe; border-top-color:#2563eb; border-radius:50%; animation:ldspin .8s linear infinite; flex:0 0 auto}
.ld-rev-bar{height:6px; background:#dbeafe; border-radius:999px; overflow:hidden}
.ld-rev-fill{height:100%; background:linear-gradient(90deg,#2563eb,#22c55e); border-radius:999px; transition:width .5s ease}
.ld-rev-msg{margin-top:8px}
.ld-rev-grades{display:flex; gap:6px; margin-top:8px; flex-wrap:wrap}
.ld-rev-g{font-size:.72rem; font-weight:700; color:#047857; background:rgba(5,150,105,.14); padding:2px 8px; border-radius:999px}

/* Share menu */
.ld-share-menu{margin:12px 0 0; padding:14px; background:var(--ld-surface); border:1px solid var(--ld-border); border-radius:10px}
.ld-share-title{margin:0 0 10px; font-size:.9rem; color:var(--ld-ink-2)}
.ld-share-row{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px}
.ld-share-chip{display:inline-flex; align-items:center; gap:6px; padding:9px 14px; border-radius:8px; border:1px solid var(--ld-border); background:#fff; color:var(--ld-ink); text-decoration:none; font-weight:600; font-size:.88rem; cursor:pointer}
.ld-share-chip:hover{background:var(--ld-surface-2)}
.ld-share-chip.wa{background:#25D366; color:#fff; border-color:#25D366}
.ld-share-chip.sms{background:#2563eb; color:#fff; border-color:#2563eb}
.ld-share-url{width:100%; padding:9px 12px; border:1px solid var(--ld-border); border-radius:8px; font-size:.82rem; font-family:var(--ld-mono); color:var(--ld-ink-2); background:#fff}

/* Undo/redo + add-head toolbar buttons */
.ldt-icon{font-size:1.1rem; line-height:1; padding:8px 11px; font-weight:700}
.ldt-btn:disabled{opacity:.4; cursor:not-allowed}
.ldt-addhead.is-active{background:var(--ld-accent); color:#fff; border-color:var(--ld-accent)}

/* DIY vs Professional savings */
.ld-savings{margin:0 0 18px}
.ld-savings .lds-loading{padding:16px; background:var(--ld-surface); border:1px solid var(--ld-border); border-radius:12px; color:var(--ld-ink-2); font-size:.95rem}
.ld-savings.ready{background:linear-gradient(135deg,#ecfdf5,#eff6ff); border:1px solid #bbf7d0; border-radius:14px; padding:20px; box-shadow:var(--ld-shadow)}
.lds-hero{text-align:center; margin-bottom:16px}
.lds-save{font-size:clamp(1.6rem,4vw,2.4rem); font-weight:800; color:#15803d; letter-spacing:-.02em}
.lds-save b{color:#15803d}
.lds-pct{font-size:1rem; font-weight:700; color:#166534; margin-top:2px}
.lds-cols{display:grid; grid-template-columns:1fr auto 1fr; gap:14px; align-items:center}
.lds-col{background:#fff; border:1px solid var(--ld-border); border-radius:12px; padding:16px; text-align:center}
.lds-col h4{margin:0 0 8px; font-size:.92rem; color:var(--ld-ink-2)}
.lds-col.diy{border-color:#bbf7d0}
.lds-col.pro{border-color:#fecaca}
.lds-big{font-size:1.7rem; font-weight:800; color:var(--ld-ink)}
.lds-col.diy .lds-big{color:#15803d}
.lds-col.pro .lds-big{color:#b91c1c}
.lds-sub{font-size:.82rem; color:var(--ld-ink-3); margin-top:5px}
.lds-vs{font-weight:800; color:var(--ld-ink-3); font-size:.9rem}
.lds-note{margin:14px 0 0; font-size:.78rem; color:var(--ld-ink-3); text-align:center; line-height:1.5}
@media (max-width:640px){ .lds-cols{grid-template-columns:1fr; } .lds-vs{display:none} }

/* ───────── Marketing sections ───────── */
.ld-section{padding:48px 0}
.ld-section.alt{background:var(--ld-surface)}
.ld-section h2, .ld-band h2, .ld-cta-final h2{font-size:clamp(1.5rem,3vw,2rem); font-weight:800; letter-spacing:-.02em; text-align:center; margin:0 0 28px}
.ld-feat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px}
.ld-feat{background:#fff; border:1px solid var(--ld-border); border-radius:14px; padding:20px; box-shadow:var(--ld-shadow)}
.ld-feat h3{margin:0 0 8px; font-size:1.08rem}
.ld-feat p{margin:0; color:var(--ld-ink-2); line-height:1.6; font-size:.95rem}
.ld-band{padding:50px 0; background:linear-gradient(135deg,#eff6ff,#ecfdf5)}
.ld-band-lead{text-align:center; max-width:720px; margin:0 auto 26px; color:var(--ld-ink-2); font-size:1.05rem; line-height:1.6}
.ld-band-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:720px; margin:0 auto 26px}
.ld-band-grid > div{background:#fff; border:1px solid var(--ld-border); border-radius:12px; padding:18px; text-align:center}
.ld-band-grid .big{font-size:1.5rem; font-weight:800; color:var(--ld-accent)}
.ld-band-grid span{font-size:.85rem; color:var(--ld-ink-3)}
.ld-band .btn-primary{display:block; width:max-content; margin:0 auto}
.ld-how{max-width:640px; margin:0 auto 22px; padding-left:22px; line-height:2}
.ld-how li{color:var(--ld-ink-2)}
.ld-section.alt .btn-secondary{display:block; width:max-content; margin:0 auto}
.ld-faq-item{background:#fff; border:1px solid var(--ld-border); border-radius:10px; padding:14px 16px; margin-bottom:10px}
.ld-faq-item summary{cursor:pointer; font-weight:700}
.ld-faq-item p{margin:10px 0 0; color:var(--ld-ink-2); line-height:1.6; font-size:.95rem}
.ld-cta-final{padding:54px 0; text-align:center}
.ld-cta-final .btn-primary{display:inline-flex}

/* ───────── Legal + contact pages ───────── */
.ld-legal{max-width:760px; padding:30px 18px 60px}
.ld-legal h1{font-family:'Fraunces',Georgia,serif; font-size:clamp(1.8rem,3.2vw,2.4rem); font-weight:700; letter-spacing:-.01em; margin:6px 0 6px}
.ld-legal .ld-updated{color:var(--ld-ink-3); font-size:.85rem; margin:0 0 22px}
.ld-legal .ld-lead{color:var(--ld-ink-2); font-size:1.05rem; margin:0 0 22px}
.ld-legal h2{font-size:1.2rem; margin:26px 0 8px}
.ld-legal p, .ld-legal li{color:var(--ld-ink-2); line-height:1.7}
.ld-legal ul{padding-left:20px}
.ld-legal a{color:var(--ld-accent)}
.ld-contact-form{display:flex; flex-direction:column; gap:14px; max-width:520px}
.ld-contact-form label{font-weight:600; font-size:.9rem; color:var(--ld-ink-2); display:flex; flex-direction:column; gap:6px}
.ld-contact-form input, .ld-contact-form textarea{font:inherit; padding:11px 13px; border:1px solid var(--ld-border); border-radius:8px; background:#fff; color:var(--ld-ink)}
.ld-contact-form input:focus, .ld-contact-form textarea:focus{outline:none; border-color:var(--ld-accent); box-shadow:0 0 0 3px var(--ld-accent-ring)}
.ld-contact-form button{width:max-content; margin-top:4px}

/* ───────── Footer ───────── */
.ld-foot-cols{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:14px}
.ld-foot-cols strong{font-size:1.05rem}
.ld-foot-nav{display:flex; gap:16px; flex-wrap:wrap; align-items:center}
.ld-foot-nav a{color:var(--ld-ink-2); text-decoration:none; font-size:.9rem; font-weight:500}
.ld-foot-nav a:hover{color:var(--ld-accent)}
.ld-foot-legal{font-size:.78rem; color:var(--ld-ink-3); border-top:1px solid var(--ld-border); padding-top:12px; margin:0}
@media (max-width:560px){ .ld-band-grid{grid-template-columns:1fr} }

/* Admin visitors table — contain + truncate long cells */
.adm-table-wrap{width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch}
.adm-visitors{min-width:720px}
.adm-visitors td{vertical-align:top}
.adm-visitors .v-addr{max-width:180px; word-break:break-word}
.adm-visitors .v-ua{max-width:170px; font-size:.75rem; color:var(--ld-ink-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.adm-visitors .v-ref{max-width:240px; font-size:.78rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.adm-visitors .v-ref a{color:var(--ld-accent); text-decoration:none}

/* Mobile hamburger nav */
.ld-nav-toggle{display:none; background:none; border:0; font-size:1.5rem; line-height:1; cursor:pointer; color:var(--ld-ink); padding:4px 10px; margin-left:auto; border-radius:8px}
.ld-nav-toggle:hover{background:var(--ld-surface)}
@media (max-width:640px){
  .ld-header .wrap{flex-wrap:wrap; gap:8px}
  .ld-nav-toggle{display:block}
  .ld-nav{display:none; flex-basis:100%; width:100%; flex-direction:column; gap:2px; padding:6px 0 4px}
  .ld-nav.open{display:flex}
  .ld-nav a{padding:11px 12px; border-radius:8px}
  .ld-nav a:hover{background:var(--ld-surface)}
  .ld-admin-pill{align-self:flex-start}
  /* Admin: nav wraps to rows, cards/padding tighten, tables scroll */
  .ld-admin-bar .wrap{flex-wrap:wrap; gap:6px 8px}
  .ld-admin-bar a{padding:8px 12px; font-size:.92rem}
  .ld-admin-bar strong{flex-basis:100%}
  .ld-admin-bar .right{margin-left:auto}
  .wrap{padding:0 14px}
  .adm-card{padding:16px}
  .adm-stats{grid-template-columns:repeat(2,1fr); gap:10px}
  .adm-stat .v{font-size:1.5rem}
  .adm-grid{grid-template-columns:1fr}
}

/* Lawn-area highlight badge on the plan */
.ld-area-badge{display:inline-flex; align-items:center; gap:6px; margin-top:10px; padding:7px 14px; border-radius:999px; background:linear-gradient(135deg,#dcfce7,#dbeafe); border:1px solid #86efac; color:#166534; font-size:.95rem; font-weight:600}
.ld-area-badge strong{font-size:1.1rem; color:#15803d}
.ld-area-acres{color:var(--ld-ink-3); font-weight:500; font-size:.85rem}

/* ════════════════ Landing v2 — premium ════════════════ */
.btn-lg{padding:15px 28px; font-size:1.02rem; border-radius:12px}
.lv-eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ld-accent); background:var(--ld-accent-soft); border:1px solid rgba(22,116,74,.18); padding:6px 13px; border-radius:999px}
.lv-eyebrow .lv-dot{width:7px; height:7px; border-radius:50%; background:#22c55e; box-shadow:0 0 0 3px rgba(34,197,94,.25); animation:lvblink 2s ease-in-out infinite}
@keyframes lvblink{0%,100%{opacity:1}50%{opacity:.35}}

/* Hero */
.lv-hero{position:relative; overflow:hidden; padding:54px 0 64px}
.lv-hero-bg{position:absolute; inset:0; z-index:0; background:
  radial-gradient(58% 78% at 10% -5%, rgba(22,116,74,.14), transparent 60%),
  radial-gradient(52% 72% at 102% 18%, rgba(200,134,29,.12), transparent 58%),
  radial-gradient(46% 64% at 82% 104%, rgba(47,155,212,.10), transparent 62%);}
.lv-hero::after{content:''; position:absolute; left:0; right:0; bottom:-1px; height:120px; z-index:0; pointer-events:none;
  background:linear-gradient(180deg, transparent, var(--ld-surface)); opacity:.0}
.lv-hero-inner{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center}
.lv-hero-copy{animation:lvrise .7s ease both}
@keyframes lvrise{from{opacity:0; transform:translateY(14px)}to{opacity:1; transform:none}}
.lv-hero-copy h1{font-family:'Fraunces',Georgia,serif; font-weight:700; font-size:clamp(2.1rem,4.4vw,3.4rem); line-height:1.06; letter-spacing:-.01em; margin:18px 0 14px; color:var(--ld-ink)}
.lv-hero-copy h1 em{font-style:italic; color:var(--ld-accent); background:linear-gradient(120deg,#16744a 0%,#1f9c5e 45%,#c8861d 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent}
.lv-sub{font-size:1.1rem; line-height:1.6; color:var(--ld-ink-2); margin:0 0 24px; max-width:560px}
.lv-addr-card{background:#fff; border:1px solid var(--ld-border); border-radius:16px; padding:18px; box-shadow:0 18px 50px -18px rgba(15,23,42,.28)}
.lv-addr-card label{display:block; font-weight:600; font-size:.86rem; color:var(--ld-ink-2); margin-bottom:9px}
.lv-addr-row{display:flex; gap:10px}
.lv-addr-row input{flex:1; min-width:0; font:inherit; font-size:1rem; padding:13px 15px; border:1px solid var(--ld-border); border-radius:11px; background:#fff; color:var(--ld-ink)}
.lv-addr-row input:focus{outline:none; border-color:var(--ld-accent); box-shadow:0 0 0 3px var(--ld-accent-ring)}
.lv-addr-row .btn-primary{white-space:nowrap; border-radius:11px; padding:13px 22px}
.lv-addr-fine{margin:12px 0 0; font-size:.8rem; color:var(--ld-ink-3)}
.lv-addr-fine a{color:var(--ld-accent)}
.lv-trust{list-style:none; display:flex; flex-wrap:wrap; gap:10px 22px; margin:22px 0 0; padding:0}
.lv-trust li{font-size:.9rem; color:var(--ld-ink-2)}
.lv-trust strong{color:var(--ld-ink); font-weight:800}
.lv-trust li+li{position:relative; padding-left:22px}
.lv-trust li+li::before{content:''; position:absolute; left:0; top:50%; width:6px; height:6px; border-radius:50%; background:var(--ld-accent); transform:translateY(-50%)}

/* Hero art */
.lv-hero-art{position:relative; animation:lvrise .9s ease both .1s}
.lv-art-card{background:#08130d; border:1px solid rgba(155,220,183,.16); border-radius:18px; padding:10px; box-shadow:var(--ld-shadow-lg); overflow:hidden}
.lv-art-top{display:flex; align-items:center; gap:10px; padding:6px 8px 10px}
.lv-art-dots{display:flex; gap:6px}
.lv-art-dots i{width:10px; height:10px; border-radius:50%; background:#334155; display:block}
.lv-art-dots i:first-child{background:#ef4444aa}.lv-art-dots i:nth-child(2){background:#f59e0baa}.lv-art-dots i:last-child{background:#22c55eaa}
.lv-art-title{font-family:var(--ld-mono); font-size:.74rem; color:#64748b; letter-spacing:.02em}
.lv-art-badge{position:absolute; background:#fff; border:1px solid var(--ld-border); border-radius:11px; padding:9px 13px; font-size:.82rem; font-weight:700; color:var(--ld-ink); box-shadow:0 12px 30px -10px rgba(15,23,42,.35); animation:lvfloat 5s ease-in-out infinite}
.lv-badge-1{top:18px; right:-14px; color:var(--ld-accent)}
.lv-badge-2{bottom:24px; left:-16px; color:#15803d; animation-delay:1.2s}
@keyframes lvfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* Section scaffolding */
.lv-h2{font-family:'Fraunces',Georgia,serif; font-weight:700; font-size:clamp(1.6rem,3vw,2.3rem); line-height:1.12; letter-spacing:-.01em; text-align:center; margin:0 0 10px; color:var(--ld-ink)}
.lv-lead{text-align:center; color:var(--ld-ink-2); font-size:1.05rem; max-width:620px; margin:0 auto 40px}
.lv-steps-sec{padding:64px 0}
.lv-steps{display:grid; gap:18px; grid-template-columns:repeat(4,1fr)}
.lv-step{position:relative; background:var(--ld-surface); border:1px solid var(--ld-border); border-radius:16px; padding:24px 20px; transition:transform .25s ease, box-shadow .25s ease}
.lv-step:hover{transform:translateY(-4px); box-shadow:0 18px 40px -20px rgba(15,23,42,.3)}
.lv-step-ico{width:52px; height:52px; display:flex; align-items:center; justify-content:center; border-radius:14px; background:linear-gradient(135deg,#e7f3ec,#f0e9d8); color:var(--ld-accent); margin-bottom:14px; box-shadow:inset 0 0 0 1px rgba(22,116,74,.12)}
.lv-step-ico svg{width:26px; height:26px}
.lv-step-n{position:absolute; top:18px; right:20px; font-family:var(--ld-mono); font-size:.78rem; font-weight:700; color:var(--ld-ink-3); opacity:.6}
.lv-step h3{margin:0 0 7px; font-size:1.08rem; font-weight:700}
.lv-step p{margin:0; font-size:.9rem; line-height:1.55; color:var(--ld-ink-2)}

.lv-feat-sec{padding:64px 0; background:var(--ld-surface)}
.lv-feat-grid{display:grid; gap:18px; grid-template-columns:repeat(3,1fr); margin-top:40px}
.lv-feat{background:#fff; border:1px solid var(--ld-border); border-radius:16px; padding:26px 22px; transition:transform .25s ease, box-shadow .25s ease, border-color .25s}
.lv-feat:hover{transform:translateY(-4px); box-shadow:var(--ld-shadow-soft); border-color:rgba(22,116,74,.32)}
.lv-feat-ico{width:54px; height:54px; display:flex; align-items:center; justify-content:center; border-radius:15px; background:linear-gradient(135deg,#e7f3ec,#f1ead9); color:var(--ld-accent); margin-bottom:15px; box-shadow:inset 0 0 0 1px rgba(22,116,74,.12)}
.lv-feat-ico svg{width:28px; height:28px}
.lv-feat h3{margin:0 0 8px; font-size:1.1rem; font-weight:700}
.lv-feat p{margin:0; font-size:.92rem; line-height:1.6; color:var(--ld-ink-2)}

/* Dark band */
.lv-band{position:relative; overflow:hidden; padding:80px 0; text-align:center; background:linear-gradient(150deg,var(--ld-forest),var(--ld-forest-2)); color:#dfe9e2}
.lv-band::before{content:''; position:absolute; inset:0; background:radial-gradient(50% 80% at 20% 0%, rgba(34,197,94,.22), transparent 60%), radial-gradient(50% 80% at 90% 100%, rgba(200,134,29,.18), transparent 60%)}
.lv-band>.wrap{position:relative; z-index:1}
.lv-eyebrow-light{color:#9bdcb7; background:rgba(155,220,183,.1); border-color:rgba(155,220,183,.28)}
.lv-h2-light{color:#fff; margin-top:14px}
.lv-band-lead{max-width:680px; margin:6px auto 36px; font-size:1.1rem; line-height:1.6; color:#cadbcf}
.lv-band-lead strong{color:#fff}
.lv-band-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:760px; margin:0 auto 40px}
.lv-stat{background:rgba(255,255,255,.05); border:1px solid rgba(148,163,184,.16); border-radius:16px; padding:22px}
.lv-stat-v{font-family:'Fraunces',serif; font-size:1.9rem; font-weight:700; color:#fff; margin-bottom:4px}
.lv-stat span{font-size:.86rem; color:#9fb3a6}
.lv-stat-v.is-gold{color:var(--ld-gold)}

/* FAQ */
.lv-faq-sec{padding:64px 0}
.lv-faq-wrap{max-width:760px}
.lv-faq-item{border:1px solid var(--ld-border); border-radius:13px; margin:12px 0; background:#fff; overflow:hidden}
.lv-faq-item summary{cursor:pointer; padding:17px 20px; font-weight:600; font-size:1rem; list-style:none; display:flex; justify-content:space-between; align-items:center; color:var(--ld-ink)}
.lv-faq-item summary::-webkit-details-marker{display:none}
.lv-faq-item summary::after{content:'+'; font-size:1.4rem; color:var(--ld-accent); font-weight:400; line-height:1}
.lv-faq-item[open] summary::after{content:'\2013'}
.lv-faq-item p{margin:0; padding:0 20px 18px; color:var(--ld-ink-2); line-height:1.6; font-size:.94rem}

/* Final CTA */
.lv-cta-final{position:relative; overflow:hidden; text-align:center; padding:88px 0; background:linear-gradient(150deg,var(--ld-forest),var(--ld-forest-2)); color:#fff}
.lv-cta-final .lv-hero-bg{opacity:.7}
.lv-cta-final>.wrap{position:relative; z-index:1}
.lv-cta-final h2{font-family:'Fraunces',serif; font-weight:700; font-size:clamp(1.8rem,3.4vw,2.6rem); margin:0 0 10px}
.lv-cta-final p{color:#cfe0d6; font-size:1.05rem; margin:0 0 26px}

@media (max-width:900px){
  .lv-hero-inner{grid-template-columns:1fr; gap:36px}
  .lv-hero-art{order:-1; max-width:520px; margin:0 auto}
  .lv-steps{grid-template-columns:repeat(2,1fr)}
  .lv-feat-grid{grid-template-columns:1fr 1fr}
  .lv-band-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .lv-addr-row{flex-direction:column}
  .lv-addr-row .btn-primary{width:100%}
  .lv-steps,.lv-feat-grid{grid-template-columns:1fr}
  .lv-art-badge{display:none}
}

/* ════════════════ Patio designer ════════════════ */
.ldt-lbl{font-size:.8rem;color:var(--ld-ink-3);font-weight:600}
.ldt-num{width:56px;padding:7px 8px;border:1px solid var(--ld-border);border-radius:8px;font:inherit;font-size:.86rem;background:#fff;color:var(--ld-ink)}
.pat-rec{display:flex;flex-direction:column;gap:3px;padding:12px;border-radius:10px;margin:2px 0 12px;font-size:.9rem}
.pat-rec strong{font-size:1rem}
.pat-rec.ok{background:#dcfce7;color:#166534}
.pat-rec.wait{background:#fef3c7;color:#92400e}
.pat-rec.err{background:#fee2e2;color:#991b1b}
.pat-costgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pat-cost{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:10px;border:1px solid var(--ld-border)}
.pat-cost .l{font-size:.72rem;color:var(--ld-ink-3);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.pat-cost .v{font-size:1.45rem;font-weight:800;color:var(--ld-ink)}
.pat-cost small{font-size:.72rem;color:var(--ld-ink-3)}
.pat-cost.diy{background:#eff6ff;border-color:#bfdbfe}
.pat-cost.diy .v{color:#1d4ed8}
.pat-save{margin:10px 0;text-align:center;font-size:.9rem;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;padding:9px;border-radius:10px}
.pat-save strong{color:#047857}
.pat-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0;font-size:.84rem;color:var(--ld-ink-2)}
.pat-h4{margin:14px 0 4px;font-size:.92rem;color:var(--ld-ink)}
#patResult .ld-bom-line{grid-template-columns:auto 1fr auto}

/* Patio: save banner + print head */
.pat-saved{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;padding:9px 12px;border-radius:9px;margin:0 0 12px;font-size:.86rem;word-break:break-all}
.pat-saved a{color:#047857;font-weight:600}
.pat-print-head{display:none}

@media print {
  .ld-header, .ld-footer, .ld-designer-bar, .ld-map-wrap, #patMatCard, .ld-nav, .ld3d-bar, #ld3dOverlay { display:none !important; }
  .ld-designer{position:static !important;height:auto !important;inset:auto !important;display:block !important}
  .ld-designer-body{display:block !important}
  .ld-main{padding:0 !important}
  body, .ld-main{background:#fff !important}
  .ld-side{width:auto !important;border:0 !important;background:#fff !important;overflow:visible !important;padding:0 !important}
  .ld-side-card{break-inside:avoid;box-shadow:none;border:1px solid #e2e8f0}
  .pat-print-head{display:flex !important;flex-direction:column;font-family:Fraunces,Georgia,serif;font-weight:700;font-size:1.4rem;margin:0 0 14px;color:#0f172a}
  .pat-print-head span{font:400 .8rem/1 Inter,sans-serif;color:#64748b;margin-top:4px}
  .pat-costgrid{break-inside:avoid}
}

/* ════════════════ Premium enhancements (v3 — verdant) ════════════════ */

/* Global focus-visible for keyboard users */
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--ld-accent); outline-offset:2px; border-radius:6px;
}

/* Scroll reveal */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s var(--ld-ease), transform .7s var(--ld-ease)}
.reveal.in{opacity:1; transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}.reveal-d4{transition-delay:.32s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1 !important; transform:none !important; transition:none}
  .lv-hero-copy,.lv-hero-art{animation:none !important}
}

/* Organic section divider (leafy wave) */
.lv-wave{display:block; width:100%; height:auto; margin-bottom:-6px}
.lv-wave.flip{transform:scaleY(-1)}

/* Trust / proof strip */
.lv-proof{padding:30px 0 6px}
.lv-proof-inner{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 30px; text-align:center}
.lv-proof-item{display:inline-flex; align-items:center; gap:10px; color:var(--ld-ink-2); font-weight:600; font-size:.92rem}
.lv-proof-item svg{width:22px; height:22px; color:var(--ld-accent); flex:0 0 auto}
.lv-proof-sep{width:1px; height:22px; background:var(--ld-border)}
@media (max-width:680px){ .lv-proof-sep{display:none} }

/* Star rating + testimonials */
.lv-testi-sec{padding:64px 0; background:var(--ld-surface)}
.lv-testi-grid{display:grid; gap:18px; grid-template-columns:repeat(3,1fr); margin-top:40px}
.lv-testi{background:#fff; border:1px solid var(--ld-border); border-radius:16px; padding:24px 22px; box-shadow:var(--ld-shadow); transition:transform .25s var(--ld-ease), box-shadow .25s var(--ld-ease)}
.lv-testi:hover{transform:translateY(-4px); box-shadow:var(--ld-shadow-soft)}
.lv-stars{display:inline-flex; gap:2px; color:var(--ld-gold); margin-bottom:12px}
.lv-stars svg{width:18px; height:18px}
.lv-testi p{margin:0 0 16px; color:var(--ld-ink); line-height:1.6; font-size:.98rem}
.lv-testi-by{display:flex; align-items:center; gap:11px}
.lv-testi-av{width:40px; height:40px; border-radius:50%; flex:0 0 auto; display:grid; place-items:center; font-weight:800; color:#fff; font-size:.95rem; background:linear-gradient(150deg,#1c8a59,var(--ld-accent-2))}
.lv-testi-by b{display:block; font-size:.92rem}
.lv-testi-by span{font-size:.8rem; color:var(--ld-ink-3)}

/* Comparison (DIY vs Pro) table-card */
.lv-compare{display:grid; grid-template-columns:1.2fr 1fr 1fr; max-width:760px; margin:36px auto 0; border:1px solid var(--ld-border); border-radius:18px; overflow:hidden; background:#fff; box-shadow:var(--ld-shadow-soft)}
.lv-compare>div{padding:15px 18px; border-bottom:1px solid var(--ld-border); display:flex; align-items:center; gap:8px; font-size:.95rem}
.lv-compare .lv-c-h{font-weight:800; background:var(--ld-surface); font-size:.86rem; text-transform:uppercase; letter-spacing:.03em}
.lv-compare .lv-c-h.diy{color:var(--ld-accent); background:var(--ld-accent-soft)}
.lv-compare .lv-c-h.pro{color:var(--ld-ink-3)}
.lv-compare .lv-c-l{font-weight:600; color:var(--ld-ink-2)}
.lv-compare svg{width:18px; height:18px; flex:0 0 auto}
.lv-c-yes{color:var(--ld-success)} .lv-c-no{color:#c0584e}
.lv-compare>div:nth-last-child(-n+3){border-bottom:0}
@media (max-width:560px){ .lv-compare{font-size:.86rem} .lv-compare>div{padding:12px} }

/* Sticky mobile CTA */
.lv-sticky-cta{position:fixed; left:0; right:0; bottom:0; z-index:60; display:none; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.92); backdrop-filter:blur(12px); border-top:1px solid var(--ld-border); box-shadow:0 -10px 30px -18px rgba(12,31,23,.4)}
.lv-sticky-cta .btn-primary{width:100%; justify-content:center; padding:14px}
@media (max-width:760px){ .lv-sticky-cta{display:block} body.has-sticky-cta{padding-bottom:78px} }

/* Section eyebrow centered helper */
.lv-eyebrow-c{display:flex; justify-content:center; margin-bottom:14px}

/* Hero art: keep crisp on the new palette */
.lv-art-badge{background:#fff; border:1px solid var(--ld-border)}
.lv-badge-1{color:var(--ld-accent)} .lv-badge-2{color:var(--ld-gold-h)}

/* Step icon hover lift accent */
.lv-step:hover .lv-step-ico{background:linear-gradient(135deg,#dcefe2,#ece2c8)}

/* Make marketing h2 support left align variant */
.lv-h2.left{text-align:left}
.lv-lead.left{text-align:left; margin-left:0}

/* count-up number stability */
.lv-stat-v,.lds-save,.lds-big{font-variant-numeric:tabular-nums}

/* ── Savings calculator ── */
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
.lv-calc-sec{padding:64px 0; background:linear-gradient(180deg,var(--ld-bg),var(--ld-sand))}
.lv-calc{max-width:780px; margin:8px auto 0; background:#fff; border:1px solid var(--ld-border); border-radius:var(--ld-radius-lg); padding:30px 28px; box-shadow:var(--ld-shadow-soft)}
.lv-calc-label{display:flex; justify-content:space-between; align-items:baseline; font-weight:700; font-size:1rem; margin-bottom:12px}
.lv-calc-label output{font-family:'Fraunces',serif; font-size:1.5rem; color:var(--ld-accent); font-variant-numeric:tabular-nums}
.lv-calc input[type=range]{width:100%; height:34px; cursor:pointer; accent-color:var(--ld-accent); touch-action:manipulation}
.lv-calc-scale{display:flex; justify-content:space-between; font-size:.75rem; color:var(--ld-ink-3); margin:2px 2px 18px}
.lv-calc-type{border:0; padding:0; margin:0 0 22px; display:flex; gap:10px; flex-wrap:wrap}
.lv-calc-type label{flex:1; min-width:180px; cursor:pointer}
.lv-calc-type input{position:absolute; opacity:0; pointer-events:none}
.lv-calc-type span{display:block; text-align:center; padding:12px 16px; border:1.5px solid var(--ld-border); border-radius:11px; font-weight:600; font-size:.93rem; color:var(--ld-ink-2); transition:all .18s var(--ld-ease)}
.lv-calc-type input:checked+span{border-color:var(--ld-accent); background:var(--ld-accent-soft); color:var(--ld-accent-2)}
.lv-calc-type input:focus-visible+span{outline:2px solid var(--ld-accent); outline-offset:2px}
.lv-calc-results{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:6px 0 16px}
.lv-calc-col{border:1px solid var(--ld-border); border-radius:14px; padding:16px 14px; text-align:center}
.lv-calc-col .lv-calc-t{display:block; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--ld-ink-3); margin-bottom:6px}
.lv-calc-col strong{display:block; font-family:'Fraunces',serif; font-size:clamp(1.3rem,2.6vw,1.8rem); font-variant-numeric:tabular-nums; color:var(--ld-ink)}
.lv-calc-col small{font-size:.76rem; color:var(--ld-ink-3)}
.lv-calc-col.pro{background:var(--ld-surface)}
.lv-calc-col.diy{border-color:rgba(22,116,74,.35)} .lv-calc-col.diy strong{color:var(--ld-accent)}
.lv-calc-col.save{background:linear-gradient(150deg,#e7f3ec,#f1ead9); border-color:rgba(200,134,29,.3)} .lv-calc-col.save strong{color:var(--ld-gold-h)}
.lv-calc-note{font-size:.78rem; color:var(--ld-ink-3); text-align:center; margin:0 0 18px; line-height:1.5}
.lv-calc-cta{text-align:center}
@media (max-width:640px){ .lv-calc{padding:22px 18px} .lv-calc-results{grid-template-columns:1fr; gap:10px} }

/* ── "Real design running" demo section ── */
.lv-run-sec{padding:64px 0}
.lv-run-card{position:relative; max-width:820px; margin:8px auto 0; border-radius:var(--ld-radius-lg); overflow:hidden; border:1px solid rgba(155,220,183,.25); box-shadow:var(--ld-shadow-lg); line-height:0; background:#0b1f3a}
.lv-demo-play{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:inline-flex; align-items:center; gap:10px;
  background:linear-gradient(180deg,#1c8a59,var(--ld-accent)); color:#fff; border:0; border-radius:999px; padding:15px 28px;
  font:700 1rem Inter,system-ui,sans-serif; line-height:1; cursor:pointer; box-shadow:0 14px 40px -10px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.2);
  transition:transform .18s var(--ld-ease), box-shadow .18s var(--ld-ease)}
.lv-demo-play:hover{transform:translate(-50%,-50%) scale(1.05); box-shadow:0 18px 50px -12px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.2)}
.lv-demo-play:disabled{cursor:wait; opacity:.85}
.lv-demo-play.is-loading{background:var(--ld-ink)}
.lv-run-card.is-3d{line-height:normal}
.lv-demo-chip{position:absolute; left:12px; top:12px; z-index:5; display:inline-flex; align-items:center; gap:8px;
  background:rgba(4,33,15,.85); color:#e7f3ec; font:700 .85rem Inter,system-ui,sans-serif; padding:8px 14px; border-radius:999px; pointer-events:none}
.lv-demo-chip i{width:11px; height:11px; border-radius:50%; display:inline-block}
.lv-demo-chip small{font-weight:600; color:#9fb3a6; margin-left:2px}
.lv-demo-hint{position:absolute; left:50%; bottom:12px; transform:translateX(-50%); z-index:5;
  background:rgba(11,18,32,.75); color:#cbd5e1; font:600 .76rem Inter,system-ui,sans-serif; padding:6px 13px; border-radius:999px; pointer-events:none}
@media (prefers-reduced-motion:reduce){ .lv-demo-play:hover{transform:translate(-50%,-50%)} }

/* ── Review collection (plan page) + landing note ── */
.lv-testi-note{text-align:center; font-size:.8rem; color:var(--ld-ink-3); margin:18px 0 0}
.ld-review-card form{display:flex; flex-direction:column; gap:12px; position:relative}
.ldr-stars{display:inline-flex; gap:4px}
.ldr-star{background:none; border:0; padding:4px; cursor:pointer; color:#d5d9d2; transition:color .15s var(--ld-ease), transform .15s var(--ld-ease); border-radius:8px}
.ldr-star:hover{transform:scale(1.12)}
.ldr-star.on{color:var(--ld-gold)}
.ldr-star:focus-visible{outline:2px solid var(--ld-accent); outline-offset:2px}
.ldr-row{display:flex; gap:10px; flex-wrap:wrap}
.ldr-row input{flex:1; min-width:160px}
.ld-review-card input[type=text], .ld-review-card textarea{font:inherit; padding:10px 12px; border:1px solid var(--ld-border); border-radius:9px; background:#fff; color:var(--ld-ink)}
.ld-review-card input[type=text]:focus, .ld-review-card textarea:focus{outline:none; border-color:var(--ld-accent); box-shadow:0 0 0 3px var(--ld-accent-ring)}
.ld-review-card textarea{resize:vertical}
.ld-review-card .btn-primary{align-self:flex-start}

/* ── Designer: compact sticky toolbar on mobile ── */
@media (max-width:820px){
  .ld-designer-bar{position:sticky; top:58px; z-index:45; flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; box-shadow:0 8px 22px -16px rgba(12,31,23,.4)}
  .ld-designer-bar::-webkit-scrollbar{display:none}
  .ld-designer-bar .ldb-addr{display:none}
  .ldb-tools{flex-wrap:nowrap; margin-left:0}
  .ldb-tools .ldt-btn,.ldb-tools .ldt-select{white-space:nowrap; flex:0 0 auto}
}

/* ===================== Admin v2: management + monitoring ===================== */
.mut{color:var(--ld-ink-3)}
.adm-card h3{margin:0 0 8px; font-size:.9rem; color:var(--ld-ink-2)}
.adm-toolbar{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:0 0 14px}
.adm-toolbar input[type=search]{flex:1 1 220px; min-width:160px; padding:9px 12px; border:1px solid var(--ld-border); border-radius:8px; font:inherit; background:#fff}
.adm-toolbar select{padding:9px 10px; border:1px solid var(--ld-border); border-radius:8px; font:inherit; background:#fff}
.adm-toolbar input:focus,.adm-toolbar select:focus{outline:none; border-color:var(--ld-accent); box-shadow:0 0 0 3px rgba(22,116,74,.15)}
.adm-actions{display:flex; gap:6px; flex-wrap:wrap; align-items:center}
.ldt-del{color:#991b1b; border-color:#fecaca}
.ldt-del:hover{background:#fef2f2; border-color:#f87171}
.adm-detail-row td{background:var(--ld-surface)}
.adm-detail{display:flex; flex-wrap:wrap; gap:8px 22px; font-size:.84rem; color:var(--ld-ink-2); padding:4px 2px}
.adm-detail b{color:var(--ld-ink); font-weight:700}
.adm-cols{display:grid; gap:20px; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); margin-top:12px}
.adm-toplist{list-style:none; margin:0; padding:0; font-size:.85rem}
.adm-toplist li{display:flex; justify-content:space-between; gap:12px; padding:5px 0; border-bottom:1px solid var(--ld-border)}
.adm-toplist li span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.adm-toplist li b{color:var(--ld-accent); flex:0 0 auto}
.adm-spark-wrap{margin:6px 0 2px}
.adm-spark{display:flex; align-items:flex-end; gap:3px; height:52px; padding:2px 0}
.adm-spark-bar{flex:1; min-width:4px; background:var(--ld-accent); border-radius:3px 3px 0 0; opacity:.9; transition:opacity .15s}
.adm-spark-bar:hover{opacity:.55}
.adm-spark-cap{font-size:.75rem; color:var(--ld-ink-3); margin-top:6px}
.adm-kv th{width:190px; text-align:left; color:var(--ld-ink-2); font-weight:600; text-transform:none; letter-spacing:0; font-size:.85rem}
.adm-kv td{font-size:.88rem}
.adm-kv code{font-family:var(--ld-mono); font-size:.82rem; background:var(--ld-surface); padding:1px 5px; border-radius:4px}
.adm-loghead{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:14px 0 6px}
.adm-loghead .mut{font-size:.78rem; font-family:var(--ld-mono)}
.adm-log{background:#0f172a; color:#cbd5e1; border-radius:8px; padding:12px 14px; font-family:var(--ld-mono); font-size:.76rem; line-height:1.5; max-height:280px; overflow:auto; white-space:pre-wrap; word-break:break-word; margin:0}
@media(max-width:640px){
  .adm-toolbar{flex-direction:column; align-items:stretch}
  .adm-toolbar .ldt-btn{width:100%; text-align:center}
  .adm-kv th{width:auto; display:block; padding:8px 8px 0; border-bottom:0}
  .adm-kv td{display:block; padding:2px 8px 8px}
  .adm-loghead form{margin-left:0 !important}
}
