/* Backyard Studio 2.0 — Project Compass, constraint intelligence, decision lab, phased execution, quotes, handoff, and recovery. */
:root {
  --v2-purple: #7557b7;
  --v2-purple-soft: #eee9fb;
  --v2-blue: #347f9f;
  --v2-orange: #c97835;
  --v2-green: #2f8465;
  --v2-red: #b83f50;
  --v2-gold: #b77a1e;
  --v2-surface: var(--paper);
  --v2-surface-2: color-mix(in srgb, var(--panel) 70%, var(--paper));
  --v2-border: var(--line);
  --v2-shadow: 0 26px 80px rgba(18, 34, 28, .25);
}

.v2-top-button {
  min-height: 34px;
  padding-inline: 12px;
  border-color: rgba(211,255,130,.42);
  background: rgba(211,255,130,.13);
  color: #f3ffe2;
}
.v2-top-button:hover { background: rgba(211,255,130,.22); }

.v2-compass-button {
  position: fixed;
  z-index: 86;
  left: max(16px, env(safe-area-inset-left));
  bottom: max(16px, env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 218px;
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--v2-purple) 55%, var(--line));
  border-radius: 13px;
  background: color-mix(in srgb, var(--paper) 94%, var(--v2-purple-soft));
  color: var(--ink);
  box-shadow: 0 14px 38px rgba(43, 32, 68, .22), 0 0 0 3px color-mix(in srgb, var(--v2-purple) 8%, transparent);
  text-align: left;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.v2-compass-button:hover { transform: translateY(-2px); box-shadow: 0 18px 44px rgba(43,32,68,.28), 0 0 0 5px color-mix(in srgb,var(--v2-purple) 12%,transparent); }
.v2-compass-button > span { width: 38px; height: 38px; display:grid; place-items:center; border-radius:10px; background:var(--v2-purple); color:white; font-size:22px; line-height:1; }
.v2-compass-button div { min-width:0; }
.v2-compass-button strong { display:block; font-size:calc(11.5px * var(--bs-font-scale)); white-space:nowrap; }
.v2-compass-button small { display:block; margin-top:2px; color:var(--muted); font-size:calc(8px * var(--bs-font-scale)); white-space:nowrap; }
.v2-compass-button b { min-width:28px; height:28px; display:grid; place-items:center; border-radius:99px; background:#e2f3e8; color:var(--success); font-size:calc(9px * var(--bs-font-scale)); }
.v2-compass-button.has-issues b { background:#fff1d6; color:#9b6410; }

.v2-phase-quick {
  display:flex;
  align-items:center;
  gap:5px;
  height:28px;
  padding:0 4px 0 8px;
  border:1px solid var(--line);
  border-radius:99px;
  background:var(--bs-surface-elevated,#fff);
  color:var(--muted);
  font-size:calc(8px * var(--bs-font-scale));
  font-weight:750;
}
.v2-phase-quick select { max-width:90px; height:22px; border:0; border-radius:99px; background:transparent; color:var(--ink); font-size:calc(8px * var(--bs-font-scale)); font-weight:750; }

/* Phase filtering dims unrelated proposed work without deleting or hiding it. */
#designCanvas[data-v2-phase-filter="phase-1"] .ls-object[data-ls-build-phase]:not([data-ls-build-phase="phase-1"]):not([data-ls-build-phase="existing"]),
#designCanvas[data-v2-phase-filter="phase-2"] .ls-object[data-ls-build-phase]:not([data-ls-build-phase="phase-2"]):not([data-ls-build-phase="existing"]),
#designCanvas[data-v2-phase-filter="phase-3"] .ls-object[data-ls-build-phase]:not([data-ls-build-phase="phase-3"]):not([data-ls-build-phase="existing"]),
#designCanvas[data-v2-phase-filter="future"] .ls-object[data-ls-build-phase]:not([data-ls-build-phase="future"]):not([data-ls-build-phase="existing"]) {
  opacity: .13;
  filter: grayscale(.72);
}
#designCanvas[data-v2-phase-filter]:not([data-v2-phase-filter="all"]) .ls-object[data-ls-build-phase="existing"] { opacity:.42; }
#designCanvas .ls-object { transition:opacity 150ms ease, filter 150ms ease; }

.v2-root { position:fixed; inset:0; z-index:10020; display:none; }
.v2-root.open { display:block; }
.v2-backdrop { position:absolute; inset:0; background:rgba(13,23,19,.66); backdrop-filter:blur(6px); }
.v2-studio {
  position:absolute;
  inset:clamp(12px,2.1vw,28px);
  display:grid;
  grid-template-rows:64px minmax(0,1fr);
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--v2-purple) 28%,var(--line));
  border-radius:18px;
  background:var(--v2-surface);
  color:var(--ink);
  box-shadow:var(--v2-shadow);
}
.v2-studio-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 40px;
  align-items:center;
  gap:16px;
  padding:0 13px 0 17px;
  border-bottom:1px solid var(--v2-border);
  background:linear-gradient(90deg,color-mix(in srgb,var(--v2-purple) 7%,var(--panel)),var(--panel));
}
.v2-brand-lockup { display:flex; align-items:center; gap:10px; min-width:0; }
.v2-brand-mark { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; color:white; background:var(--v2-purple); font-size:21px; }
.v2-brand-lockup strong { display:block; font-size:calc(14px * var(--bs-font-scale)); }
.v2-brand-lockup small { display:block; margin-top:2px; color:var(--muted); font-size:calc(8px * var(--bs-font-scale)); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v2-header-status { display:flex; align-items:center; gap:7px; }
.v2-header-status span,.v2-hero-badges span,.v2-version-badge { padding:5px 8px; border:1px solid var(--line); border-radius:99px; color:var(--muted); background:var(--paper); font-size:calc(7.8px * var(--bs-font-scale)); font-weight:750; white-space:nowrap; }
.v2-header-status span.good,.v2-hero-badges span.good { color:var(--success); background:#edf8f1; border-color:#c6e2d0; }
.v2-header-status span.warning,.v2-hero-badges span.warning { color:#98600c; background:#fff6df; border-color:#ead49a; }
.v2-hero-badges span.danger { color:var(--danger); background:#fff0f1; border-color:#edc2c7; }
.v2-close { width:36px; height:36px; border:0; border-radius:10px; background:transparent; color:var(--muted); font-size:26px; line-height:1; }
.v2-close:hover { background:color-mix(in srgb,var(--line) 44%,transparent); color:var(--ink); }

.v2-studio-layout { min-height:0; display:grid; grid-template-columns:210px minmax(0,1fr); }
.v2-studio-nav { min-height:0; display:flex; flex-direction:column; gap:4px; padding:12px 9px; border-right:1px solid var(--line); background:color-mix(in srgb,var(--panel) 88%,var(--paper)); overflow:auto; }
.v2-studio-nav button { display:flex; align-items:center; gap:9px; min-height:41px; padding:0 10px; border:1px solid transparent; border-radius:9px; background:transparent; color:var(--muted); font-size:calc(9px * var(--bs-font-scale)); font-weight:750; text-align:left; }
.v2-studio-nav button span { width:25px; height:25px; display:grid; place-items:center; border-radius:7px; background:color-mix(in srgb,var(--line) 44%,transparent); color:var(--ink); font-size:14px; }
.v2-studio-nav button:hover { background:var(--paper); color:var(--ink); border-color:var(--line); }
.v2-studio-nav button.active { background:color-mix(in srgb,var(--v2-purple) 10%,var(--paper)); color:color-mix(in srgb,var(--v2-purple) 76%,var(--ink)); border-color:color-mix(in srgb,var(--v2-purple) 32%,var(--line)); box-shadow:inset 3px 0 0 var(--v2-purple); }
.v2-studio-nav button.active span { background:var(--v2-purple); color:white; }
.v2-nav-spacer { flex:1; min-height:18px; }
.v2-studio-body { min-width:0; min-height:0; overflow:auto; background:color-mix(in srgb,var(--soft) 54%,var(--paper)); }
.v2-tab-page { max-width:1480px; margin:0 auto; padding:22px clamp(18px,2.4vw,36px) 48px; }
.v2-global-notice { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 18px; color:#275d47; background:#e6f4eb; border-bottom:1px solid #b9d9c4; font-size:calc(9px * var(--bs-font-scale)); font-weight:700; }
.v2-global-notice button { border:0; background:transparent; font-size:18px; }

.v2-eyebrow { color:var(--muted); font-size:calc(7.4px * var(--bs-font-scale)); font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.v2-page-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; margin-bottom:16px; padding:20px 22px; border-radius:16px; color:white; background:radial-gradient(circle at 88% 10%,rgba(211,255,130,.18),transparent 32%),linear-gradient(135deg,#193b31,#285c4c); box-shadow:0 14px 34px rgba(24,55,47,.16); }
.v2-page-hero.compact { min-height:132px; }
.v2-page-hero .v2-eyebrow { color:rgba(255,255,255,.66); }
.v2-page-hero h2 { margin:6px 0 5px; font-size:clamp(20px,2vw,30px); letter-spacing:-.025em; }
.v2-page-hero p { max-width:74ch; margin:0; color:rgba(255,255,255,.75); font-size:calc(9px * var(--bs-font-scale)); line-height:1.55; }
.v2-hero-badges { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }

.v2-compass-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:auto minmax(0,1fr) minmax(230px,360px); gap:24px; align-items:center; min-height:205px; padding:25px; border-radius:18px; color:white; background:radial-gradient(circle at 15% 20%,rgba(211,255,130,.17),transparent 30%),radial-gradient(circle at 92% 18%,rgba(144,112,218,.23),transparent 35%),linear-gradient(135deg,#173a30,#234d40 62%,#342b51); box-shadow:0 18px 44px rgba(24,55,47,.22); }
.v2-health-ring { --v2-score:0; width:142px; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:conic-gradient(#d3ff82 calc(var(--v2-score) * 1%),rgba(255,255,255,.15) 0); box-shadow:0 0 0 8px rgba(255,255,255,.05),0 0 42px rgba(211,255,130,.12); }
.v2-health-ring::before { content:""; position:absolute; width:118px; aspect-ratio:1; border-radius:50%; background:#1f4238; }
.v2-health-ring > div { position:relative; z-index:1; text-align:center; }
.v2-health-ring strong { display:block; font-size:38px; line-height:1; }
.v2-health-ring span { display:block; max-width:70px; margin:5px auto 0; color:rgba(255,255,255,.66); font-size:8px; line-height:1.2; text-transform:uppercase; letter-spacing:.08em; }
.v2-hero-copy h2 { margin:6px 0 6px; font-size:clamp(25px,3vw,38px); letter-spacing:-.035em; }
.v2-hero-copy p { max-width:62ch; margin:0; color:rgba(255,255,255,.72); font-size:calc(9.3px * var(--bs-font-scale)); line-height:1.55; }
.v2-hero-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.v2-compass-hero .v2-button:not(.primary) { color:white; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); }
.v2-hero-next { display:grid; gap:5px; padding:16px; border:1px solid rgba(255,255,255,.15); border-radius:13px; background:rgba(10,22,18,.22); backdrop-filter:blur(12px); }
.v2-hero-next span { color:#d3ff82; font-size:8px; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.v2-hero-next strong { font-size:calc(12px * var(--bs-font-scale)); }
.v2-hero-next small { color:rgba(255,255,255,.68); font-size:calc(8px * var(--bs-font-scale)); line-height:1.45; }

.v2-pillar-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; margin:12px 0; }
.v2-pillar-card { min-width:0; min-height:112px; display:grid; align-content:start; gap:8px; padding:13px; border:1px solid var(--line); border-radius:12px; background:var(--paper); color:var(--ink); text-align:left; box-shadow:0 5px 18px rgba(25,42,35,.05); }
.v2-pillar-card:hover { border-color:color-mix(in srgb,var(--v2-purple) 35%,var(--line)); transform:translateY(-1px); }
.v2-pillar-head { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.v2-pillar-head span { font-size:calc(9px * var(--bs-font-scale)); font-weight:800; }
.v2-pillar-head strong { font-size:calc(7px * var(--bs-font-scale)); text-transform:uppercase; letter-spacing:.06em; }
.v2-pillar-card.ready .v2-pillar-head strong,.v2-score-bar strong.ready { color:var(--success); }
.v2-pillar-card.strong .v2-pillar-head strong,.v2-score-bar strong.strong { color:#47815d; }
.v2-pillar-card.developing .v2-pillar-head strong,.v2-score-bar strong.developing { color:var(--warning); }
.v2-pillar-card.review .v2-pillar-head strong,.v2-score-bar strong.review { color:var(--danger); }
.v2-pillar-card small { color:var(--muted); font-size:calc(7.2px * var(--bs-font-scale)); line-height:1.4; }
.v2-soft-progress { height:6px; overflow:hidden; border-radius:99px; background:color-mix(in srgb,var(--line) 58%,transparent); }
.v2-soft-progress i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--v2-purple),#9b80d3); }

.v2-dashboard-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.v2-card { min-width:0; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--paper); box-shadow:0 6px 22px rgba(20,38,31,.055); }
.v2-card > header { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:13px; }
.v2-card h3 { margin:4px 0 0; font-size:calc(13px * var(--bs-font-scale)); letter-spacing:-.01em; }
.v2-card > p { color:var(--muted); font-size:calc(8.3px * var(--bs-font-scale)); line-height:1.55; }
.v2-span-2 { grid-column:span 2; }
.v2-card-icon { width:38px; height:38px; display:grid; place-items:center; margin-bottom:12px; border-radius:10px; background:var(--v2-purple-soft); color:var(--v2-purple); font-size:22px; }
.v2-metric-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; margin-bottom:12px; }
.v2-metric-row.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.v2-metric-row > div,.v2-stat-stack > div { padding:10px; border:1px solid var(--line); border-radius:9px; background:var(--v2-surface-2); }
.v2-metric-row span,.v2-stat-stack span { display:block; color:var(--muted); font-size:calc(6.7px * var(--bs-font-scale)); text-transform:uppercase; letter-spacing:.06em; }
.v2-metric-row strong,.v2-stat-stack strong { display:block; margin-top:4px; font-size:calc(11px * var(--bs-font-scale)); }
.v2-stat-stack { display:grid; gap:7px; margin-bottom:11px; }
.v2-preferred-preview { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(190px,.6fr); gap:12px; align-items:center; padding-top:12px; border-top:1px solid var(--line); }
.v2-preferred-preview > div:last-child p { margin:5px 0 10px; color:var(--muted); font-size:calc(7.6px * var(--bs-font-scale)); line-height:1.45; }
.v2-mini-plan { width:100%; height:170px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.v2-issue-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-bottom:12px; }
.v2-issue-count { display:grid; gap:2px; padding:10px 6px; border:1px solid var(--line); border-radius:9px; background:var(--v2-surface-2); text-align:center; }
.v2-issue-count strong { font-size:22px; }
.v2-issue-count span { color:var(--muted); font-size:7px; text-transform:uppercase; letter-spacing:.07em; }
.v2-issue-count.high strong { color:var(--danger); }.v2-issue-count.review strong { color:var(--warning); }.v2-issue-count.info strong { color:var(--v2-blue); }
.v2-phase-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.v2-phase-strip button { display:grid; grid-template-columns:30px 1fr auto; grid-template-rows:auto auto; align-items:center; gap:2px 8px; padding:11px; border:1px solid var(--line); border-top:3px solid var(--phase); border-radius:10px; background:var(--v2-surface-2); color:var(--ink); text-align:left; }
.v2-phase-strip b { grid-row:1/3; width:28px; height:28px; display:grid; place-items:center; border-radius:99px; color:white; background:var(--phase); }
.v2-phase-strip span { font-size:calc(8.5px * var(--bs-font-scale)); font-weight:800; }.v2-phase-strip strong { font-size:calc(7px * var(--bs-font-scale)); }.v2-phase-strip small { grid-column:2/4; color:var(--muted); font-size:calc(7px * var(--bs-font-scale)); }
.v2-disclaimer { margin:15px 2px 0; color:var(--muted); font-size:calc(7.4px * var(--bs-font-scale)); line-height:1.5; }

.v2-two-column { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin-bottom:12px; }
.v2-three-column { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.v2-range-row { display:grid; grid-template-columns:minmax(0,1fr) 70px; gap:10px; align-items:center; margin:8px 0 11px; }
.v2-range-row input { width:100%; accent-color:var(--v2-purple); }.v2-range-row output { padding:7px; border:1px solid var(--line); border-radius:7px; background:var(--v2-surface-2); text-align:center; font-size:calc(8px * var(--bs-font-scale)); font-weight:800; }
.v2-check { display:flex; align-items:flex-start; gap:7px; color:var(--muted); font-size:calc(8px * var(--bs-font-scale)); line-height:1.35; }.v2-check input { margin-top:1px; accent-color:var(--v2-purple); }
.v2-switch { position:relative; width:38px; height:22px; flex:none; }.v2-switch input { position:absolute; opacity:0; }.v2-switch span { position:absolute; inset:0; border-radius:99px; background:#cbd2ce; transition:.15s; }.v2-switch span::after { content:""; position:absolute; width:16px; height:16px; left:3px; top:3px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.18); transition:.15s; }.v2-switch input:checked + span { background:var(--v2-purple); }.v2-switch input:checked + span::after { transform:translateX(16px); }.v2-switch.compact { width:32px; height:18px; }.v2-switch.compact span::after { width:12px; height:12px; }.v2-switch.compact input:checked + span::after { transform:translateX(14px); }
.v2-envelope-graphic { position:relative; margin-top:12px; }.v2-envelope-graphic .v2-mini-plan { height:235px; opacity:.9; }.v2-envelope-legend { display:flex; flex-wrap:wrap; gap:9px; margin-top:7px; color:var(--muted); font-size:calc(7px * var(--bs-font-scale)); }.v2-envelope-legend span { display:flex; align-items:center; gap:4px; }.v2-envelope-legend i { width:15px; height:8px; border-radius:2px; }.v2-envelope-legend .buffer { background:rgba(117,87,183,.25); border:1px dashed var(--v2-purple); }.v2-envelope-legend .zone { background:rgba(194,86,102,.18); border:1px dashed #a8374b; }.v2-envelope-legend .conflict { width:8px; height:8px; border-radius:50%; background:#fff; border:2px solid var(--danger); }
.v2-note { margin-top:11px; padding:10px 11px; border:1px solid var(--line); border-radius:9px; background:var(--v2-surface-2); color:var(--muted); font-size:calc(7.6px * var(--bs-font-scale)); line-height:1.45; }.v2-note.warning { border-color:#e3ce94; background:#fff8e6; color:#765416; }.v2-note.success { border-color:#b9dac5; background:#eaf6ee; color:#2d684b; }
.v2-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.v2-field { display:grid; gap:4px; }.v2-field.span-2 { grid-column:span 2; }.v2-field > span { color:var(--muted); font-size:calc(7.4px * var(--bs-font-scale)); font-weight:750; }.v2-field input,.v2-field select,.v2-field textarea,.v2-phase-object select { width:100%; min-height:35px; padding:7px 8px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink); font-size:calc(8.3px * var(--bs-font-scale)); }.v2-field textarea { resize:vertical; }.v2-field input:focus,.v2-field select:focus,.v2-field textarea:focus { border-color:var(--v2-purple); outline:none; box-shadow:0 0 0 3px color-mix(in srgb,var(--v2-purple) 13%,transparent); }.v2-help { display:block; margin-top:10px; color:var(--muted); font-size:calc(7px * var(--bs-font-scale)); line-height:1.45; }
.v2-button-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.v2-button { min-height:35px; padding:0 12px; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink); font-size:calc(8.2px * var(--bs-font-scale)); font-weight:800; }.v2-button:hover { border-color:color-mix(in srgb,var(--v2-purple) 38%,var(--line)); background:color-mix(in srgb,var(--v2-purple) 5%,var(--paper)); }.v2-button.primary { color:white; background:var(--v2-purple); border-color:var(--v2-purple); }.v2-button.selected { color:var(--v2-purple); background:var(--v2-purple-soft); border-color:color-mix(in srgb,var(--v2-purple) 38%,var(--line)); }.v2-button.danger { color:var(--danger); }.v2-button.small { min-height:29px; padding-inline:9px; font-size:calc(7.4px * var(--bs-font-scale)); }.v2-button.full { width:100%; }.v2-text-button { border:0; background:transparent; color:var(--v2-purple); font-size:calc(7.5px * var(--bs-font-scale)); font-weight:800; }.v2-text-button:hover { text-decoration:underline; }.v2-icon-button { width:30px; height:30px; display:grid; place-items:center; flex:none; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--muted); }.v2-icon-button.danger { color:var(--danger); }
.v2-issue-list,.v2-audit-list { display:grid; gap:6px; }.v2-issue,.v2-audit-row { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:9px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:var(--v2-surface-2); }.v2-audit-row { grid-template-columns:10px minmax(0,1fr) auto auto; }.v2-severity-dot { width:8px; height:8px; border-radius:50%; background:var(--v2-blue); }.v2-issue.high .v2-severity-dot,.v2-audit-row.high .v2-severity-dot { background:var(--danger); box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 12%,transparent); }.v2-issue.review .v2-severity-dot,.v2-audit-row.review .v2-severity-dot { background:var(--warning); }.v2-audit-row.info .v2-severity-dot { background:var(--v2-blue); }.v2-issue strong,.v2-audit-row strong { display:block; font-size:calc(8.4px * var(--bs-font-scale)); }.v2-issue small,.v2-audit-row small { display:block; margin-top:2px; color:var(--muted); font-size:calc(7px * var(--bs-font-scale)); line-height:1.4; }.v2-audit-row.acknowledged { opacity:.55; }
.v2-clear-card { display:flex; align-items:center; gap:11px; padding:13px; border:1px solid #c5decf; border-radius:10px; background:#edf8f1; }.v2-clear-card > span { width:31px; height:31px; display:grid; place-items:center; border-radius:50%; color:white; background:var(--success); font-weight:900; }.v2-clear-card strong { display:block; font-size:calc(8.6px * var(--bs-font-scale)); }.v2-clear-card small { display:block; margin-top:2px; color:#52705f; font-size:calc(7px * var(--bs-font-scale)); line-height:1.4; }
.v2-empty { display:grid; gap:4px; padding:22px; border:1px dashed var(--line); border-radius:10px; color:var(--muted); text-align:center; }.v2-empty strong { color:var(--ink); font-size:calc(9px * var(--bs-font-scale)); }.v2-empty span { font-size:calc(7.4px * var(--bs-font-scale)); line-height:1.4; }.v2-empty.compact { padding:12px; }
.v2-zone-list { display:grid; gap:6px; }.v2-zone-row { display:grid; grid-template-columns:12px minmax(0,1fr) 34px 30px; gap:9px; align-items:center; padding:9px; border:1px solid var(--line); border-radius:9px; background:var(--v2-surface-2); }.v2-zone-row.disabled { opacity:.52; }.v2-zone-row strong { display:block; font-size:calc(8.3px * var(--bs-font-scale)); }.v2-zone-row small { display:block; margin-top:2px; color:var(--muted); font-size:calc(6.9px * var(--bs-font-scale)); }.v2-zone-swatch { width:10px; height:28px; border-radius:4px; background:#c25666; }.v2-zone-swatch.utility { background:#d8a442; }.v2-zone-swatch.drainage { background:#4b96b7; }.v2-zone-swatch.access { background:#4d8fb0; }.v2-zone-swatch.easement { background:#8a6ab0; }

.v2-preset-row { display:flex; flex-wrap:wrap; gap:6px; }.v2-preset-row.compact { justify-content:flex-end; }.v2-preset-row button,.v2-choice-chip { min-height:30px; padding:0 9px; border:1px solid var(--line); border-radius:99px; background:var(--v2-surface-2); color:var(--muted); font-size:calc(7.3px * var(--bs-font-scale)); font-weight:800; }.v2-preset-row button.active,.v2-preset-row button:hover { color:var(--v2-purple); border-color:color-mix(in srgb,var(--v2-purple) 35%,var(--line)); background:var(--v2-purple-soft); }
.v2-weight-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:11px; margin-top:12px; }.v2-weight-grid label { display:grid; gap:5px; }.v2-weight-grid label span { display:flex; justify-content:space-between; color:var(--muted); font-size:calc(7px * var(--bs-font-scale)); }.v2-weight-grid label b { color:var(--ink); }.v2-weight-grid input { width:100%; accent-color:var(--v2-purple); }
.v2-scenario-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:12px; margin:12px 0; }.v2-scenario-card { overflow:hidden; border:1px solid var(--line); border-radius:14px; background:var(--paper); box-shadow:0 6px 22px rgba(20,38,31,.05); }.v2-scenario-card.preferred { border-color:color-mix(in srgb,var(--v2-purple) 56%,var(--line)); box-shadow:0 0 0 2px color-mix(in srgb,var(--v2-purple) 12%,transparent),0 8px 24px rgba(65,45,105,.11); }.v2-scenario-preview { position:relative; height:180px; background:#fff; }.v2-scenario-preview .v2-mini-plan { height:100%; border:0; border-radius:0; }.v2-recommended-badge,.v2-preferred-badge { position:absolute; top:8px; padding:5px 7px; border-radius:99px; color:white; font-size:7px; font-weight:850; text-transform:uppercase; letter-spacing:.06em; box-shadow:0 3px 10px rgba(0,0,0,.15); }.v2-recommended-badge { left:8px; background:var(--success); }.v2-preferred-badge { right:8px; background:var(--v2-purple); }.v2-scenario-body { padding:13px; }.v2-scenario-body > header { display:flex; justify-content:space-between; gap:10px; align-items:start; }.v2-scenario-body h3 { margin:0; font-size:calc(11px * var(--bs-font-scale)); }.v2-scenario-body header > strong { font-size:calc(13px * var(--bs-font-scale)); }.v2-fit { display:inline-block; margin-top:3px; font-size:calc(6.5px * var(--bs-font-scale)); font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.v2-fit.ready,.v2-fit.strong { color:var(--success); }.v2-fit.developing { color:var(--warning); }.v2-fit.review { color:var(--danger); }.v2-scenario-metrics { display:flex; flex-wrap:wrap; gap:5px; margin:10px 0; }.v2-scenario-metrics span { padding:4px 6px; border-radius:99px; background:var(--v2-surface-2); color:var(--muted); font-size:calc(6.4px * var(--bs-font-scale)); }
.v2-score-bar { display:grid; grid-template-columns:45px minmax(0,1fr) 65px; gap:7px; align-items:center; margin:6px 0; }.v2-score-bar > span,.v2-score-bar > strong { font-size:calc(6.7px * var(--bs-font-scale)); }.v2-score-bar > strong { text-align:right; }.v2-score-bar > div { height:5px; border-radius:99px; background:color-mix(in srgb,var(--line) 60%,transparent); overflow:hidden; }.v2-score-bar i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--v2-purple),#6fa88f); }
.v2-variant-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }.v2-variant-grid button { display:grid; grid-template-columns:35px 1fr; grid-template-rows:auto auto; gap:3px 9px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--v2-surface-2); color:var(--ink); text-align:left; }.v2-variant-grid button:hover { border-color:var(--v2-purple); background:var(--v2-purple-soft); }.v2-variant-grid button > span { grid-row:1/3; width:34px; height:34px; display:grid; place-items:center; border-radius:9px; color:white; background:var(--v2-purple); font-size:18px; }.v2-variant-grid strong { font-size:calc(8.4px * var(--bs-font-scale)); }.v2-variant-grid small { color:var(--muted); font-size:calc(6.7px * var(--bs-font-scale)); line-height:1.35; }
.v2-alternative-list { display:grid; gap:6px; }.v2-alternative-row { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:9px; align-items:center; padding:8px; border:1px solid var(--line); border-radius:9px; background:var(--v2-surface-2); }.v2-alternative-symbol { width:37px; height:37px; display:grid; place-items:center; border-radius:9px; color:var(--v2-purple); background:var(--v2-purple-soft); font-size:calc(8px * var(--bs-font-scale)); font-weight:900; }.v2-alternative-row strong { display:block; font-size:calc(8.2px * var(--bs-font-scale)); }.v2-alternative-row small { display:block; margin-top:2px; color:var(--muted); font-size:calc(6.8px * var(--bs-font-scale)); line-height:1.35; }

.v2-phase-filter { display:flex; flex-wrap:wrap; gap:6px; }.v2-phase-filter button { min-height:32px; display:flex; align-items:center; gap:6px; padding:0 10px; border:1px solid var(--line); border-radius:99px; background:var(--v2-surface-2); color:var(--muted); font-size:calc(7.5px * var(--bs-font-scale)); font-weight:800; }.v2-phase-filter button i { width:8px; height:8px; border-radius:50%; background:var(--phase,var(--muted)); }.v2-phase-filter button.active { color:var(--ink); border-color:var(--phase,var(--v2-purple)); box-shadow:inset 0 0 0 1px var(--phase,var(--v2-purple)); }
.v2-phase-columns { display:grid; grid-template-columns:repeat(4,minmax(220px,1fr)); gap:10px; margin:12px 0; align-items:start; }.v2-phase-column { overflow:hidden; border:1px solid var(--line); border-top:4px solid var(--phase); border-radius:12px; background:var(--paper); }.v2-phase-column > header { display:grid; grid-template-columns:38px 1fr; gap:10px; align-items:start; padding:13px; }.v2-phase-column > header > b { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:white; background:var(--phase); }.v2-phase-column > header span { color:var(--muted); font-size:calc(6.5px * var(--bs-font-scale)); text-transform:uppercase; letter-spacing:.07em; }.v2-phase-column > header h3 { margin:2px 0; font-size:calc(10px * var(--bs-font-scale)); }.v2-phase-column > header small { display:block; color:var(--muted); font-size:calc(6.5px * var(--bs-font-scale)); line-height:1.35; }.v2-phase-totals { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; border-block:1px solid var(--line); background:var(--line); }.v2-phase-totals span { padding:7px 5px; background:var(--v2-surface-2); color:var(--muted); font-size:calc(6.2px * var(--bs-font-scale)); text-align:center; }.v2-phase-totals b { display:block; color:var(--ink); font-size:calc(8px * var(--bs-font-scale)); }.v2-phase-objects { display:grid; gap:5px; max-height:360px; overflow:auto; padding:8px; }.v2-phase-object { display:grid; grid-template-columns:minmax(0,1fr) 94px 30px; gap:6px; align-items:center; padding:7px; border:1px solid var(--line); border-radius:8px; background:var(--v2-surface-2); }.v2-phase-object strong { display:block; font-size:calc(7.5px * var(--bs-font-scale)); }.v2-phase-object small { display:block; margin-top:1px; color:var(--muted); font-size:calc(6.3px * var(--bs-font-scale)); }.v2-phase-object select { min-height:29px; padding:4px; font-size:calc(6.6px * var(--bs-font-scale)); }
.v2-dependency-rail { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; align-items:center; gap:8px; }.v2-dependency-rail > div { min-height:105px; display:grid; grid-template-columns:30px 1fr; grid-template-rows:auto 1fr; gap:3px 8px; align-content:start; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--v2-surface-2); }.v2-dependency-rail b { grid-row:1/3; width:29px; height:29px; display:grid; place-items:center; border-radius:50%; color:white; background:var(--v2-purple); }.v2-dependency-rail strong { font-size:calc(7.8px * var(--bs-font-scale)); }.v2-dependency-rail small { color:var(--muted); font-size:calc(6.6px * var(--bs-font-scale)); line-height:1.35; }.v2-dependency-rail > span { color:var(--muted); }

.v2-large-money { font-size:calc(19px * var(--bs-font-scale)); }.v2-budget-band { position:relative; height:12px; margin:12px 3px 17px; border-radius:99px; background:linear-gradient(90deg,#e4f0e8,#f3e6bc,#f0c9c4); }.v2-budget-band span { position:absolute; top:-4px; width:2px; height:20px; background:var(--muted); }.v2-budget-band i { position:absolute; top:-5px; width:4px; height:22px; border-radius:2px; background:var(--v2-purple); box-shadow:0 0 0 3px rgba(117,87,183,.15); }
.v2-quote-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:9px; }.v2-quote-card { padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--v2-surface-2); }.v2-quote-card.selected { border-color:var(--v2-purple); box-shadow:0 0 0 2px color-mix(in srgb,var(--v2-purple) 10%,transparent); }.v2-quote-card header { display:flex; justify-content:space-between; gap:10px; }.v2-quote-card header span { color:var(--muted); font-size:calc(6.3px * var(--bs-font-scale)); text-transform:uppercase; }.v2-quote-card h3 { margin:2px 0; font-size:calc(9px * var(--bs-font-scale)); }.v2-quote-card header small { color:var(--muted); font-size:calc(6.4px * var(--bs-font-scale)); }.v2-quote-card header > strong { font-size:calc(12px * var(--bs-font-scale)); }.v2-quote-card p { color:var(--muted); font-size:calc(7px * var(--bs-font-scale)); line-height:1.4; }.v2-quote-variance { margin:9px 0; padding:6px; border-radius:7px; background:#edf5ef; color:var(--success); font-size:calc(6.8px * var(--bs-font-scale)); font-weight:800; }.v2-quote-variance.over { background:#fff0ec; color:var(--danger); }.v2-quote-variance.under { background:#edf3fa; color:var(--v2-blue); }.field-end { align-self:end; min-height:35px; }.v2-form-grid.handoff { align-items:end; }

.v2-migration-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }.v2-migration-grid > div { padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--v2-surface-2); }.v2-migration-grid span { display:block; color:var(--muted); font-size:calc(6.7px * var(--bs-font-scale)); text-transform:uppercase; }.v2-migration-grid strong { display:block; margin-top:4px; font-size:calc(9px * var(--bs-font-scale)); }.v2-migration-notes { margin:13px 0; padding-left:20px; color:var(--muted); font-size:calc(7.5px * var(--bs-font-scale)); line-height:1.5; }.v2-version-badge { color:white; background:var(--v2-purple); border-color:var(--v2-purple); }

.v2-inspector-bridge { margin-top:8px; padding-top:12px; border-top:1px solid var(--line); }
.v2-inspector-bridge .section-heading { align-items:center; }
.v2-inspector-bridge .field > span { color:#66706b; font-size:calc(9.5px * var(--bs-font-scale)); font-weight:700; }
.v2-inspector-bridge .field small { color:var(--muted); font-size:calc(8.5px * var(--bs-font-scale)); }

.v2-toast-root { position:fixed; z-index:11000; right:18px; bottom:84px; display:grid; gap:7px; pointer-events:none; }
.v2-toast { max-width:360px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--paper); color:var(--ink); box-shadow:0 10px 28px rgba(15,30,24,.18); font-size:calc(8.2px * var(--bs-font-scale)); transition:.2s; }.v2-toast.success { border-color:#b9d9c5; background:#eaf6ee; color:#2f674c; }.v2-toast.warning { border-color:#e4d09a; background:#fff7e3; color:#795713; }.v2-toast.error { border-color:#e8b8be; background:#fff0f2; color:#8f2939; }.v2-toast.leaving { opacity:0; transform:translateY(5px); }
.v2-start-error { position:fixed; z-index:12000; left:20px; right:20px; bottom:20px; padding:12px; border-radius:9px; background:#9b2f3e; color:white; font:12px system-ui; }

/* Theme integrations. */
body[data-bs-theme="dark"] {
  --v2-purple:#a890e5;
  --v2-purple-soft:#2c2740;
  --v2-surface:#19211e;
  --v2-surface-2:#202a25;
  --v2-shadow:0 28px 92px rgba(0,0,0,.62);
}
body[data-bs-theme="dark"] :is(.v2-studio,.v2-card,.v2-pillar-card,.v2-scenario-card,.v2-phase-column,.v2-compass-button,.v2-field input,.v2-field select,.v2-field textarea,.v2-phase-object select) { background:var(--panel); color:var(--ink); }
body[data-bs-theme="dark"] .v2-studio-body { background:#111713; }
body[data-bs-theme="dark"] .v2-studio-nav { background:#171e1b; }
body[data-bs-theme="dark"] :is(.v2-metric-row>div,.v2-stat-stack>div,.v2-issue-count,.v2-phase-strip button,.v2-zone-row,.v2-issue,.v2-audit-row,.v2-alternative-row,.v2-phase-object,.v2-quote-card,.v2-migration-grid>div,.v2-dependency-rail>div) { background:#202925; }
body[data-bs-theme="dark"] :is(.v2-clear-card,.v2-note.success) { background:#173025; border-color:#2f5c44; color:#bce5cb; }
body[data-bs-theme="dark"] .v2-note.warning { background:#392f1d; border-color:#5a4b2b; color:#e7cf96; }
body[data-bs-theme="dark"] .v2-header-status span.good,body[data-bs-theme="dark"] .v2-hero-badges span.good { background:#173025; border-color:#2f5c44; }
body[data-bs-theme="dark"] .v2-header-status span.warning,body[data-bs-theme="dark"] .v2-hero-badges span.warning { background:#392f1d; border-color:#5a4b2b; }
body[data-bs-theme="dark"] .v2-compass-button > span { color:#17121f; }

body[data-bs-theme="minimal"] .v2-studio,
body[data-bs-theme="minimal"] :is(.v2-card,.v2-pillar-card,.v2-scenario-card,.v2-phase-column,.v2-compass-button) { border-radius:2px; box-shadow:none; }
body[data-bs-theme="minimal"] .v2-compass-button { min-width:195px; border-color:#bbb; }
body[data-bs-theme="minimal"] .v2-compass-button > span,
body[data-bs-theme="minimal"] .v2-brand-mark,
body[data-bs-theme="minimal"] .v2-button.primary,
body[data-bs-theme="minimal"] .v2-version-badge { background:#111; }
body[data-bs-theme="minimal"] .v2-studio-nav button.active { color:#111; background:#fff; border-color:#111; box-shadow:inset 3px 0 #111; }
body[data-bs-theme="minimal"] .v2-studio-nav button.active span { background:#111; }
body[data-bs-theme="minimal"] .v2-page-hero,
body[data-bs-theme="minimal"] .v2-compass-hero { border-radius:2px; background:#111; box-shadow:none; }
body[data-bs-theme="minimal"] .v2-health-ring { background:conic-gradient(#fff calc(var(--v2-score)*1%),rgba(255,255,255,.2) 0); box-shadow:none; }
body[data-bs-theme="minimal"] .v2-health-ring::before { background:#111; }
body[data-bs-theme="minimal"] .v2-soft-progress i,
body[data-bs-theme="minimal"] .v2-score-bar i { background:#111; }

body[data-bs-theme="architect"] {
  --v2-purple:#2f6091;
  --v2-purple-soft:#e7edf2;
  --v2-surface:#fbf8f0;
  --v2-surface-2:#f2eee5;
}
body[data-bs-theme="architect"] .v2-studio { border-radius:0; border:2px solid #242321; box-shadow:18px 18px 0 rgba(35,34,31,.18); }
body[data-bs-theme="architect"] .v2-brand-mark,.v2-compass-button > span { border-radius:0; }
body[data-bs-theme="architect"] .v2-page-hero,body[data-bs-theme="architect"] .v2-compass-hero { border-radius:0; background:linear-gradient(135deg,#242321,#41403c); }
body[data-bs-theme="architect"] .v2-card,body[data-bs-theme="architect"] .v2-pillar-card,body[data-bs-theme="architect"] .v2-scenario-card,body[data-bs-theme="architect"] .v2-phase-column { border-radius:0; box-shadow:none; }
body[data-bs-theme="architect"] .v2-button.primary { background:#a44735; border-color:#a44735; }

body[data-bs-motion="reduced"] :is(.v2-compass-button,#designCanvas .ls-object) { transition:none!important; }

@media (max-width: 1350px) {
  .v2-studio-layout { grid-template-columns:178px minmax(0,1fr); }
  .v2-studio-nav button { padding-inline:7px; }
  .v2-compass-hero { grid-template-columns:auto 1fr; }
  .v2-hero-next { grid-column:1/-1; }
  .v2-pillar-grid { grid-template-columns:repeat(3,1fr); }
  .v2-phase-columns { grid-template-columns:repeat(2,minmax(240px,1fr)); }
  .v2-variant-grid { grid-template-columns:repeat(2,1fr); }
  .v2-dependency-rail { grid-template-columns:1fr; }
  .v2-dependency-rail > span { display:none; }
}
@media (max-width: 980px) {
  .v2-studio { inset:6px; border-radius:12px; }
  .v2-studio-layout { grid-template-columns:66px minmax(0,1fr); }
  .v2-studio-nav button { justify-content:center; padding:0; font-size:0; }
  .v2-studio-nav button span { width:32px; height:32px; font-size:16px; }
  .v2-pillar-grid,.v2-dashboard-grid,.v2-two-column,.v2-three-column { grid-template-columns:1fr 1fr; }
  .v2-span-2 { grid-column:span 2; }
  .v2-phase-columns { grid-template-columns:1fr 1fr; }
  .v2-weight-grid { grid-template-columns:repeat(3,1fr); }
  .v2-header-status span:last-child { display:none; }
  .v2-phase-quick { display:none; }
}
@media (max-width: 700px) {
  .v2-studio { inset:0; border-radius:0; }
  .v2-studio-header { grid-template-columns:1fr 36px; }
  .v2-header-status { display:none; }
  .v2-studio-layout { grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) 58px; }
  .v2-studio-nav { grid-row:2; flex-direction:row; padding:5px; border-right:0; border-top:1px solid var(--line); overflow-x:auto; }
  .v2-studio-nav button { flex:1; min-width:48px; }
  .v2-nav-spacer,.v2-studio-nav button:nth-last-child(-n+2) { display:none; }
  .v2-studio-body { grid-row:1; }
  .v2-tab-page { padding:13px 10px 70px; }
  .v2-compass-hero { grid-template-columns:1fr; padding:18px; }
  .v2-health-ring { width:115px; justify-self:center; }.v2-health-ring::before { width:96px; }
  .v2-hero-next { grid-column:auto; }
  .v2-pillar-grid,.v2-dashboard-grid,.v2-two-column,.v2-three-column,.v2-phase-columns,.v2-variant-grid,.v2-weight-grid,.v2-migration-grid { grid-template-columns:1fr; }
  .v2-span-2 { grid-column:auto; }
  .v2-metric-row { grid-template-columns:repeat(2,1fr); }
  .v2-phase-strip { grid-template-columns:1fr 1fr; }
  .v2-preferred-preview { grid-template-columns:1fr; }
  .v2-page-hero { grid-template-columns:1fr; }
  .v2-hero-badges { justify-content:flex-start; }
  .v2-form-grid { grid-template-columns:1fr; }.v2-field.span-2 { grid-column:auto; }
  .v2-audit-row { grid-template-columns:10px 1fr; }.v2-audit-row > button { grid-column:2; justify-self:start; }
  .v2-compass-button { left:10px; bottom:10px; min-width:56px; width:56px; height:56px; padding:8px; grid-template-columns:1fr; border-radius:50%; }
  .v2-compass-button > span { width:38px; height:38px; border-radius:50%; }.v2-compass-button > div,.v2-compass-button > b { display:none; }
}
