/* ============================================================
   WPC — Visual system
   Elegant · soft · airy · premium
   ============================================================ */

:root {
  --ivory:      #FAF8F3;   /* clean warm-white background */
  --cream:      #F3EEE4;
  --sand:       #E6DCC8;
  --ink:        #3A2E23;   /* warm brown-espresso text */
  --ink-soft:   #786B59;
  --ink-faint:  #A89A84;
  --espresso:   #2A221B;   /* deep grounding tone (dark bands) */
  --espresso-2: #3A2F25;
  --olive:      #454B3A;
  --sage:       #4A6A8A;   /* legacy accent — now navy to match the blue scheme */
  --sage-deep:  #34506E;
  --gold:       #B68E4E;   /* antique brass / brown — primary brand & CTAs */
  --gold-deep:  #8C6A30;
  --gold-soft:  #EBDBBE;   /* pale champagne (icon tiles) */
  --blue:       #34506E;   /* navy — secondary accent / selected states */
  --blue-deep:  #283F57;
  --blue-soft:  #E5EBF2;   /* pale navy (tints, badges) */
  --green:      #5C7A4E;   /* sage-green — success accents only (booked/complete) */
  --green-deep: #46603B;
  --green-soft: #E7EFE2;
  --rose:       #C5A0A0;
  --line:       #EAE1D2;
  --line-soft:  #F1EADD;
  --line-dk:    rgba(245,236,222,0.16); /* lines on dark bands */
  --white:      #FFFFFF;
  --shadow-sm:  0 2px 12px rgba(74, 58, 38, 0.06);
  --shadow-md:  0 12px 34px rgba(74, 58, 38, 0.10);
  --shadow-lg:  0 24px 60px rgba(74, 58, 38, 0.14);
  --radius:     16px;
  --radius-sm:  12px;
  --radius-btn: 9px;
  --ok:         #6E8E68;
  --warn:       #BD8B3F;
  --danger:     #C0392B;
  --wait:       #B2A78F;
  --serif:      "Cormorant Garamond", Georgia, serif;  /* elegant display serif */
  --sans:       "Jost", -apple-system, BlinkMacSystemFont, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  background: var(--ivory);
  color: var(--ink);
  font-family: "Jost", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .serif {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  letter-spacing: 0.2px;
  color: var(--ink);
}

/* ---------- Line icons (Phosphor, brass) ---------- */
.ico { color: var(--gold-deep); font-size: 1.05em; line-height: 1; vertical-align: -0.12em; display: inline-block; }
.ico-lg { font-size: 1.5rem; }

button { font-family: inherit; cursor: pointer; border: none; background: none; }
input, select, textarea { font-family: inherit; font-size: 1rem; color: var(--ink); }
.hidden { display: none !important; }

/* ---------- App shell ---------- */
#app { min-height: 100vh; }

.topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 34px; border-bottom: 1px solid var(--line);
  background: rgba(250, 248, 243, 0.9); backdrop-filter: blur(10px);
  position: sticky; top: 0; z-index: 50;
}
.brand { display: flex; align-items: baseline; gap: 10px; }
.brand .mark {
  font-family: "Cormorant Garamond", serif; font-size: 1.7rem; font-weight: 700;
  letter-spacing: 1px; color: var(--ink);
}
.brand .mark .dot { color: var(--gold); }
.brand .tag { font-size: 0.72rem; letter-spacing: 2.5px; text-transform: uppercase; color: var(--ink-faint); }
.topbar .right { display: flex; align-items: center; gap: 18px; font-size: 0.85rem; color: var(--ink-soft); }
.pill-soft { background: var(--cream); border: 1px solid var(--line); padding: 6px 14px; border-radius: 999px; font-size: 0.8rem; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 14px 28px; border-radius: var(--radius-btn); font-size: 0.86rem; font-weight: 500;
  letter-spacing: 0.4px; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-primary { background: var(--blue); color: #fff; box-shadow: var(--shadow-sm); }
.btn-primary:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); background: var(--blue-deep); }
.btn-blue { background: var(--blue); color: #fff; box-shadow: var(--shadow-sm); }
.btn-blue:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); background: var(--blue-deep); }
.btn-green { background: var(--green); color: #fff; box-shadow: var(--shadow-sm); }
.btn-green:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); background: var(--green-deep); }
.btn-gold { background: var(--gold); color: #fff; box-shadow: var(--shadow-sm); }
.btn-gold:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); background: var(--gold-deep); }
.btn-ghost { background: var(--white); color: var(--ink-soft); border: 1px solid var(--line); }
.btn-ghost:hover { background: var(--cream); border-color: var(--sand); }
.btn-lg { padding: 17px 40px; font-size: 0.95rem; }
.btn:disabled { opacity: .4; cursor: not-allowed; transform: none; }
.btn .ico { color: inherit; }

/* ---------- Landing ---------- */
.landing {
  min-height: calc(100vh - 75px);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 40px 24px;
  background: radial-gradient(ellipse at top, #fff 0%, var(--ivory) 60%);
}
.landing .eyebrow { letter-spacing: 4px; text-transform: uppercase; font-size: 0.78rem; color: var(--gold-deep); margin-bottom: 22px; }
.landing h1 { font-size: clamp(2.6rem, 6vw, 4.6rem); line-height: 1.05; max-width: 16ch; margin-bottom: 22px; }
.landing h1 em { font-style: italic; color: var(--gold-deep); }
.landing p.lede { font-size: 1.18rem; color: var(--ink-soft); max-width: 56ch; margin-bottom: 36px; }
.landing .row { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
.landing .trust { margin-top: 46px; font-size: 0.85rem; color: var(--ink-faint); display: flex; gap: 26px; flex-wrap: wrap; justify-content: center; }
.landing .trust b { color: var(--ink); font-weight: 600; }
.landing .powered { margin-top: 14px; font-size: 0.78rem; letter-spacing: 1px; color: var(--ink-faint); }

/* ---------- Onboarding ---------- */
.wizard { max-width: 760px; margin: 0 auto; padding: 40px 24px 90px; }
.wiz-progress { display: flex; gap: 8px; margin-bottom: 36px; }
.wiz-progress .seg { flex: 1; height: 4px; border-radius: 4px; background: var(--sand); transition: background .3s; }
.wiz-progress .seg.done { background: var(--gold); }
.wiz-progress .seg.active { background: var(--sage); }
.wiz-step .kicker { letter-spacing: 3px; text-transform: uppercase; font-size: 0.72rem; color: var(--gold-deep); margin-bottom: 10px; }
.wiz-step h2 { font-size: 2.3rem; margin-bottom: 8px; }
.wiz-step .sub { color: var(--ink-soft); margin-bottom: 32px; font-size: 1.05rem; }

.card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 26px; box-shadow: var(--shadow-sm);
}

.field { margin-bottom: 22px; }
.field label { display: block; font-size: 0.82rem; font-weight: 600; color: var(--ink-soft); margin-bottom: 8px; letter-spacing: .3px; }
.field input[type=text], .field input[type=date], .field input[type=number], .field input[type=email], .field select, .field textarea {
  width: 100%; padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--ivory); transition: border .15s, box-shadow .15s;
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(52,80,110,.14); background: #fff;
}
input[type=range] { accent-color: var(--blue); }
.field textarea { min-height: 80px; resize: vertical; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 620px){ .grid-2 { grid-template-columns: 1fr; } }

/* selectable chips / cards */
.chip-grid { display: flex; flex-wrap: wrap; gap: 12px; }
.chip {
  padding: 11px 18px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--white); color: var(--ink-soft); font-size: 0.92rem;
  transition: all .15s; display: inline-flex; align-items: center; gap: 8px;
}
.chip:hover { border-color: var(--blue); }
.chip.on { background: var(--blue); border-color: var(--blue-deep); color: #fff; box-shadow: 0 0 0 2px rgba(52, 80, 110, 0.16), var(--shadow-sm); }
.chip.on::before { content: "✓"; font-weight: 700; margin-right: 2px; }
/* vibe = selectable feel cards (label + one-line description) */
.vibe-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(225px,1fr)); gap:10px; }
.vibe-card { position:relative; text-align:left; display:flex; flex-direction:column; gap:3px; padding:13px 16px; border:1.5px solid var(--line); border-radius:12px; background:#fff; cursor:pointer; transition:all .14s; }
.vibe-card:hover { border-color:var(--gold); }
.vibe-card.on { border-color:var(--blue); background:#FAFBFD; box-shadow:0 0 0 2px var(--blue-soft) inset; }
.vibe-card .vc-l { font-weight:600; font-size:0.92rem; color:var(--ink); padding-right:22px; }
.vibe-card .vc-d { font-size:0.76rem; color:var(--ink-soft); line-height:1.4; }
.vc-check { position:absolute; top:11px; right:11px; width:19px; height:19px; border-radius:50%; background:var(--blue); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .14s; }
.vc-check .ico { color:#fff; font-size:0.72rem; }
.vibe-card.on .vc-check { opacity:1; }
.vibe-examples { margin-top:7px; padding:0; background:none; border:0; display:inline-flex; align-items:center; gap:5px; font-size:0.74rem; color:var(--blue); cursor:pointer; align-self:flex-start; }
.vibe-examples:hover { text-decoration:underline; }
.vibe-examples .ico { font-size:0.9rem; }
.vibe-ex-img { width:100%; aspect-ratio:1/1; border-radius:12px; background-size:cover; background-position:center; box-shadow:var(--shadow-sm); }
.chip .info-tip { margin-left: 2px; }
.chip.on .info-tip { color: rgba(255,255,255,0.8); }
.chip.on .info-tip:hover, .chip.on .info-tip:focus { color: #fff; }
.select-hint { font-size: 0.8rem; color: var(--ink-faint); margin-bottom: 12px; }
.chip-add { border-style: dashed; border-color: var(--sand); color: var(--ink-soft); }
.chip-add:hover { border-color: var(--gold); color: var(--gold-deep); }
.addcat-form { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.addcat-form input { flex: 1; min-width: 200px; padding: 11px 14px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
.addcat-form input:focus { outline: none; border-color: var(--sage); }
.addcat-form .btn { padding: 11px 18px; }

/* priority ranked dropdowns */
.prio-selects { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.prio-slot { display: flex; align-items: center; gap: 9px; }
.ps-num { width: 26px; height: 26px; border-radius: 50%; background: var(--gold); color: #fff; font-weight: 700; font-size: 0.82rem; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.prio-select { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
.prio-select:focus { outline: none; border-color: var(--sage); }

/* budget remove button */
.bud-remove { width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--line); background: #fff; color: var(--ink-faint); }
.bud-remove:hover { background: #f3e7e7; color: #B06A6A; border-color: #e0c4c4; }
.bud-remove .ico { color: inherit; font-size: 0.95rem; }

.style-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 760px){ .style-grid { grid-template-columns: repeat(2, 1fr); } }
.style-card {
  border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden;
  background: #fff; cursor: pointer; transition: all .15s; text-align: left;
}
.style-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.style-card { position: relative; cursor: pointer; }
.style-card.on { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold); }
.style-card.on::after { content: "✓"; position: absolute; top: 8px; right: 8px; width: 26px; height: 26px; border-radius: 50%; background: var(--gold); color: #fff; font-size: 0.9rem; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-sm); z-index: 2; }
.style-card.on .swatch { filter: saturate(1.05); }
.style-examples { margin-top: 8px; font-size: 0.76rem; color: var(--sage-deep); font-weight: 600; padding: 4px 0; }
.style-examples:hover { color: var(--ink); }

/* ---------- Style example carousel ---------- */
.carousel { position: relative; border-radius: var(--radius-sm); overflow: hidden; background: #000; }
.car-stage { position: relative; aspect-ratio: 4 / 5; background: var(--sand); }
.car-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .6s ease; }
.car-img.on { opacity: 1; }
.car-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--ink); font-size: 1.3rem; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-sm); }
.car-nav:hover { background: #fff; }
.car-nav.prev { left: 10px; } .car-nav.next { right: 10px; }
.car-dots { position: absolute; bottom: 10px; left: 0; right: 0; display: flex; gap: 6px; justify-content: center; }
.car-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.5); cursor: pointer; }
.car-dot.on { background: #fff; }

.mini-pipe .mp .ml { display: inline-flex; align-items: center; gap: 7px; }
.style-card .swatch { height: 78px; }
.style-card .meta { padding: 12px 14px; }
.style-card .meta .name { font-weight: 600; font-size: 0.98rem; }
.style-card .meta .blurb { font-size: 0.78rem; color: var(--ink-faint); margin-top: 2px; }
.sw-light-airy  { background: linear-gradient(135deg,#FCF3F0,#F2D9D6); }
.sw-true-color  { background: linear-gradient(135deg,#DDE3DA,#A7B7A0); }
.sw-moody       { background: linear-gradient(135deg,#3A3A40,#6B6B73); }
.sw-editorial   { background: linear-gradient(135deg,#EAE0E6,#C9A9C0); }
.sw-documentary { background: linear-gradient(135deg,#DEE4E7,#AAB8C0); }

/* toggles */
.toggle-row { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--line); }
.toggle-row:last-child { border-bottom: none; }
.toggle-row .tl { font-weight: 600; font-size: 0.95rem; }
.toggle-row .td { font-size: 0.82rem; color: var(--ink-faint); }
.switch { width: 50px; height: 28px; border-radius: 999px; background: var(--sand); position: relative; transition: background .2s; flex: 0 0 auto; }
.switch.on { background: var(--blue); }
.switch .knob { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); transition: left .2s; }
.switch.on .knob { left: 25px; }

.slider-row { margin: 8px 0 18px; }
.slider-row input[type=range] { width: 100%; accent-color: var(--sage); }
.slider-labels { display: flex; justify-content: space-between; font-size: 0.76rem; color: var(--ink-faint); margin-top: 4px; }

.wiz-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 34px; }

/* review list */
.review-list { display: grid; gap: 2px; }
.review-list .r { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 0.95rem; }
.review-list .r .k { color: var(--ink-faint); }
.review-list .r .v { font-weight: 500; text-align: right; max-width: 60%; }

/* ---------- Deploy transition ---------- */
.deploy { min-height: calc(100vh - 75px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px; }
.deploy h2 { font-size: 2.6rem; margin-bottom: 10px; }
.deploy .sub { color: var(--ink-soft); margin-bottom: 40px; }
.deploy .agents { display: flex; flex-direction: column; gap: 12px; width: 100%; max-width: 460px; text-align: left; }
.deploy .agent-line {
  display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: #fff;
  border: 1px solid var(--line); border-radius: var(--radius-sm); opacity: 0; transform: translateY(8px);
  animation: rise .5s forwards;
}
.deploy .agent-line .spin { width: 18px; height: 18px; border: 2px solid var(--sand); border-top-color: var(--sage); border-radius: 50%; animation: spin 0.8s linear infinite; }
.deploy .agent-line.done .spin { border: none; }
.deploy .agent-line .check { color: var(--ok); }
@keyframes rise { to { opacity: 1; transform: translateY(0); } }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Dashboard ---------- */
.dash { width: 100%; }
.dash-main { min-width: 0; }
.hero-grid > * { min-width: 0; }
html, body { overflow-x: hidden; }
.dash-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-bottom: 8px; }
/* fixed couple header */
.dash-sticky { position: sticky; top: 0; z-index: 40; background: var(--ivory); padding: 18px 0 14px; margin-bottom: 16px; border-bottom: 1px solid var(--line); box-shadow: 0 12px 18px -16px rgba(58,46,35,.45); }
.ds-left { min-width: 0; }
.ds-right { display: flex; align-items: center; gap: 16px; }
.todo-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: var(--radius-btn); border: 1px solid var(--line); background: var(--white); font-weight: 500; font-size: 0.88rem; color: var(--ink); box-shadow: var(--shadow-sm); }
.todo-btn:hover { border-color: var(--gold); transform: translateY(-1px); }
.todo-btn .ico { color: var(--gold-deep); }
.todo-badge { background: var(--gold); color: #fff; border-radius: 20px; font-size: 0.72rem; padding: 2px 8px; font-weight: 600; }
.ds-act { padding: 9px 14px; font-size: 0.82rem; }
.dash-sticky { padding-top: 14px; }
.ds-utility { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--line-soft); flex-wrap: wrap; }
.ds-util-right { display: flex; align-items: center; gap: 12px; }
.ds-util-right .vsearch { width: 200px; }
.ds-couple { margin-bottom: 0; }
.toolbar-filters { margin-top: 4px; }
.tb-label { font-size: 0.74rem; text-transform: uppercase; letter-spacing: 1.5px; color: var(--ink-faint); margin-right: 6px; font-weight: 600; }
@media (max-width: 720px){ .dash-sticky { position: static; } .ds-right { flex-wrap: wrap; } .ds-util-right { flex-wrap: wrap; } .ds-util-right .vsearch { width: 140px; } }
.ds-flush { justify-content: flex-end; }
/* dashboard shell — mirrors the onboarding shell so the sidebar never jumps between screens */
.dash-shell { display: grid; grid-template-columns: 312px 1fr; min-height: 100vh; align-items: start; }
.dash-main { min-width: 0; padding: 30px 40px 70px; max-width: 1180px; }
.dash-side { background: var(--white); border-right: 1px solid var(--line); padding: 26px 20px; display: flex; flex-direction: column; gap: 18px; position: sticky; top: 0; height: 100vh; overflow: auto; }
.dash-side .ob-pathchip { margin-bottom: 0; }
.dash-side .ob-steps { display: flex; flex-direction: column; gap: 2px; }
.dash-side-photo { height: 130px; margin-top: 4px; }
.ds-setupdone { background: var(--green-soft); }
.ds-setupdone .ob-num { background: var(--green-deep); border-color: var(--green-deep); color: #fff; }
.ds-setupdone .ob-st { color: var(--green-deep); }
.dash-help { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px; }
.dash-help-h { display: flex; align-items: center; gap: 7px; font-weight: 600; font-size: 0.92rem; color: var(--ink); }
.dash-help-h .ico { color: var(--gold-deep); }
.dash-help-b { font-size: 0.8rem; color: var(--ink-soft); line-height: 1.45; margin: 7px 0 11px; }
.dash-help-cta { display: flex; width: 100%; align-items: center; justify-content: center; gap: 6px; font-size: 0.82rem; font-weight: 600; color: var(--gold-deep); background: var(--white); border: 1px solid var(--gold-soft); border-radius: 999px; padding: 8px 14px; transition: background .15s; }
.dash-help-cta:hover { background: var(--gold-soft); }
.dash-help-cta + .dash-help-cta { margin-top: 8px; }
@media (max-width: 900px){
  .dash-shell { grid-template-columns: 1fr; }
  .dash-side { position: static; height: auto; overflow: visible; border-right: none; border-bottom: 1px solid var(--line); }
  .dash-side .ob-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
  .dash-side-photo { display: none; }
  .dash-main { padding: 24px 18px 60px; }
}
.dash-head .couple { font-size: 2.1rem; }
.dash-head .meta { color: var(--ink-soft); font-size: 0.95rem; margin-top: 2px; }
.dash-head .countdown { text-align: right; }
.dash-head .countdown .num { font-family: "Cormorant Garamond", serif; font-size: 2.4rem; color: var(--gold-deep); line-height: 1; }
.dash-head .countdown .lbl { font-size: 0.74rem; letter-spacing: 2px; text-transform: uppercase; color: var(--ink-faint); }

/* stat pillars */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0; }
@media (max-width: 800px){ .pillars { grid-template-columns: 1fr; } }
.pillar { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; box-shadow: var(--shadow-sm); }
.pillar .ph { font-size: 0.74rem; letter-spacing: 2px; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 12px; }
.pillar .big { font-family: "Cormorant Garamond", serif; font-size: 2.6rem; line-height: 1; }
.pillar .big small { font-size: 1rem; color: var(--ink-faint); font-family: "Inter"; }
.mini-pipe { display: flex; flex-direction: column; gap: 7px; margin-top: 4px; }
.mini-pipe .mp { display: flex; align-items: center; justify-content: space-between; font-size: 0.84rem; }
.mini-pipe .mp .bar { flex: 1; height: 6px; background: var(--cream); border-radius: 6px; margin: 0 10px; overflow: hidden; }
.mini-pipe .mp .bar i { display: block; height: 100%; background: var(--sage); border-radius: 6px; transition: width .6s ease; }
.mini-pipe .mp .n { color: var(--ink); font-weight: 600; width: 20px; text-align: right; }
.mini-pipe .mp .pc { color: var(--ink-faint); font-size: 0.76rem; width: 38px; text-align: right; margin-left: 6px; }
/* subtle success/decline tones for booked & rejected */
.mini-pipe .mp.mp-ok .n, .mini-pipe .mp.mp-ok .pc { color: var(--ok); }
.mini-pipe .mp.mp-bad .n, .mini-pipe .mp.mp-bad .pc { color: #B4736E; }
.ov-stat b.stat-ok { color: var(--ok); }
.ov-stat b.stat-bad { color: #B4736E; }

/* layout: feed + vendors */
/* Pipeline is the hero (main); live activity is a collapsible right rail */
.dash-body { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
.dash.activity-collapsed .dash-body { grid-template-columns: minmax(0, 1fr); }
.dash.activity-collapsed .activity-rail { display: none; }
@media (max-width: 920px){ .dash-body { grid-template-columns: 1fr; } }

.feed { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow-sm); position: sticky; top: 92px; }
.feed h3 { font-size: 1.3rem; margin-bottom: 4px; }
.feed .live { font-size: 0.72rem; color: var(--ok); display: inline-flex; align-items: center; gap: 6px; margin-bottom: 14px; }
.feed .live .blip { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); animation: pulse 1.4s infinite; }
@keyframes pulse { 0%,100%{ opacity:1 } 50%{ opacity:.3 } }
.feed-items { display: flex; flex-direction: column; gap: 14px; max-height: 460px; overflow-y: auto; }
.feed-item { display: flex; gap: 10px; font-size: 0.85rem; opacity: 0; animation: rise .4s forwards; }
.feed-item .ico { flex: 0 0 auto; }
.feed-item .ft { color: var(--ink-soft); }
.feed-item .ft b { color: var(--ink); font-weight: 600; }
.feed-item .fz { font-size: 0.72rem; color: var(--ink-faint); margin-top: 2px; }

/* vendor controls */
.vctrl { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 14px; }
.cat-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.cat-filters .cf { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 0.82rem; color: var(--ink-soft); }
.cat-filters .cf.on { background: var(--ink); color: var(--ivory); border-color: var(--ink); }

/* vendor cards */
.vendors { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.vcard { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); cursor: pointer; transition: transform .15s, box-shadow .15s; display: flex; flex-direction: column; }
.vcard:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.vcard .cover { height: 96px; position: relative; }
.vcard .cover .score { position: absolute; top: 10px; right: 10px; background: rgba(255,255,255,.92); border-radius: 999px; padding: 4px 11px; font-size: 0.78rem; font-weight: 700; color: var(--gold-deep); box-shadow: var(--shadow-sm); }
.vcard .cover .cat { position: absolute; bottom: 10px; left: 12px; background: rgba(51,48,43,.78); color: #fff; font-size: 0.68rem; letter-spacing: 1px; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; }
.vcard .body { padding: 14px 16px; flex: 1; display: flex; flex-direction: column; }
.vcard .body .nm { font-family: "Cormorant Garamond", serif; font-size: 1.32rem; line-height: 1.1; }
.vcard .body .loc { font-size: 0.8rem; color: var(--ink-faint); margin-top: 2px; }
.tags { display: flex; flex-wrap: wrap; gap: 5px; margin: 10px 0; }
.tags .t { font-size: 0.68rem; background: var(--cream); border: 1px solid var(--line); color: var(--ink-soft); padding: 3px 9px; border-radius: 999px; }
.modal .tags .t { font-size: 0.74rem; }
.vcard .foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding-top: 10px; }
.status { font-size: 0.76rem; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.status .d { width: 8px; height: 8px; border-radius: 50%; }
.s-queued .d{background:var(--ink-faint)} .s-queued{color:var(--ink-faint)}
.s-contacted .d{background:var(--sage)} .s-contacted{color:var(--sage-deep)}
.s-waiting .d{background:var(--wait)} .s-waiting{color:var(--ink-soft)}
.s-replied .d{background:var(--ok)} .s-replied{color:var(--ok)}
.s-followup .d{background:var(--warn)} .s-followup{color:var(--warn)}
.s-scheduled .d{background:var(--gold)} .s-scheduled{color:var(--gold-deep)}
.s-noreply .d{background:#C98B8B} .s-noreply{color:#B06A6A}
.vcard .price { font-size: 0.82rem; color: var(--ink); font-weight: 600; }
.vcard.manual-add { border: 1.5px dashed var(--sand); background: var(--ivory); align-items: center; justify-content: center; display: flex; min-height: 220px; color: var(--ink-soft); text-align: center; flex-direction: column; gap: 8px; }
.vcard.manual-add:hover { border-color: var(--sage); color: var(--sage-deep); }
.vcard.manual-add .plus { font-size: 2rem; }

/* ---------- Modal ---------- */
.overlay { position: fixed; inset: 0; background: rgba(40,36,30,.45); backdrop-filter: blur(3px); z-index: 100; display: flex; align-items: flex-start; justify-content: center; padding: 40px 20px; overflow-y: auto; animation: fade .2s; }
@keyframes fade { from{opacity:0} to{opacity:1} }
.modal { background: var(--ivory); border-radius: 22px; max-width: 640px; width: 100%; box-shadow: var(--shadow-lg); overflow: hidden; animation: rise .25s; }
.modal .mcover { height: 150px; position: relative; overflow: hidden; background: var(--sand); }
.mcover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.modal .mcover .close { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.92); font-size: 1.1rem; color: var(--ink); display: flex; align-items: center; justify-content: center; z-index: 2; box-shadow: var(--shadow-sm); }
.modal .mbody { padding: 22px 26px 28px; position: relative; }
.modal h2 { font-size: 1.9rem; }
.modal .mloc { color: var(--ink-faint); font-size: 0.9rem; margin-bottom: 6px; }
.modal .scorebar { display: flex; align-items: center; gap: 10px; margin: 14px 0 18px; }
.modal .scorebar .track { flex: 1; height: 8px; background: var(--cream); border-radius: 8px; overflow: hidden; }
.modal .scorebar .track i { display: block; height: 100%; background: linear-gradient(90deg, var(--sage), var(--gold)); }
.modal .scorebar .pct { font-weight: 700; color: var(--gold-deep); }
.sect { margin-top: 22px; }
.sect h4 { font-size: 0.76rem; letter-spacing: 2px; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 12px; }
.timeline { display: flex; flex-direction: column; gap: 0; }
.tl-item { display: grid; grid-template-columns: 26px 1fr; gap: 10px; padding-bottom: 16px; position: relative; }
.tl-item:not(:last-child)::before { content:""; position: absolute; left: 12px; top: 22px; bottom: 0; width: 1px; background: var(--line); }
.tl-item .dot { width: 24px; height: 24px; border-radius: 50%; background: #fff; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; font-size: 0.8rem; z-index: 1; }
.tl-item .c .t { font-weight: 600; font-size: 0.92rem; }
.tl-item .c .z { font-size: 0.74rem; color: var(--ink-faint); }
.tl-item .c .quote { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; margin-top: 10px; font-size: 0.92rem; color: var(--ink-soft); line-height: 1.7; }
.tl-item .c .quote.sent { background: var(--cream); }

.infogrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 520px){ .infogrid { grid-template-columns: 1fr; } }
.infobox { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.infobox .l { font-size: 0.72rem; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 6px; }
.infobox .v { font-size: 1rem; font-weight: 600; }
.infobox .v.pending { color: var(--ink-faint); font-weight: 400; font-style: italic; }
.pkg { background:#fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin-bottom: 8px; display:flex; justify-content: space-between; align-items: center; }
.pkg .pn { font-weight: 600; } .pkg .pi { font-size: 0.8rem; color: var(--ink-faint); }
.pkg .pp { font-family:"Cormorant Garamond", serif; font-size: 1.4rem; color: var(--gold-deep); }
.note-area { width:100%; padding: 12px 14px; border:1px solid var(--line); border-radius:12px; background:#fff; min-height:64px; }
.note-tag { font-size:0.7rem; color: var(--sage-deep); margin-top:6px; }

.badge-soon { font-size: 0.66rem; letter-spacing: .5px; text-transform: uppercase; background: var(--sand); color: var(--ink-soft); padding: 2px 7px; border-radius: 999px; margin-left: 6px; }
.channels { display:flex; gap:8px; flex-wrap: wrap; }
.channel { display:flex; align-items:center; gap:7px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; font-size:0.85rem; }
.channel.active { border-color: var(--sage); background: rgba(52,80,110,.08); }
.channel.soon { opacity:.7; }

/* ---------- Budget allocation ---------- */
.alloc-toggle { margin-top: 10px; font-size: 0.85rem; color: var(--sage-deep); font-weight: 600; padding: 4px 0; }
.alloc-toggle:hover { color: var(--ink); }
.alloc-panel { margin-top: 12px; background: var(--ivory); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px 16px; }
.alloc-help { font-size: 0.78rem; color: var(--ink-faint); margin-bottom: 12px; }
.al-label { flex: 1; min-width: 0; width: auto; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 0.9rem; }
.al-label:focus { outline: none; border-color: var(--sage-deep); box-shadow: 0 0 0 2px rgba(120,140,110,0.14); }
.alloc-add { margin-top: 12px; font-size: 0.84rem; color: var(--sage-deep); font-weight: 600; }
.alloc-add:hover { color: var(--ink); }
.opt { font-weight: 400; color: var(--ink-faint); text-transform: none; letter-spacing: 0; }

/* ---- Premium budget cards (min · target · max) ---- */
.bcard-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 4px; }
.bcard { background: #fff; border: 1px solid var(--gold-soft, #E6D9BE); border-radius: 14px; padding: 14px 16px 13px; box-shadow: 0 1px 2px rgba(60,50,30,0.04); align-self: start; }
.bcard.open { border-color: var(--sage-deep); box-shadow: 0 2px 10px rgba(120,140,110,0.12); }
.bcard-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.bcard-name { display: flex; align-items: center; gap: 7px; font-size: 0.96rem; font-weight: 600; color: var(--ink); min-width: 0; flex: 1; }
.bcard-ico { display: inline-flex; flex: none; color: var(--ink-faint); }
.bcard-x { color: var(--ink-faint); width: 26px; height: 26px; border-radius: 7px; flex: none; display: inline-flex; align-items: center; justify-content: center; }
.bcard-x:hover { background: #f0e3e3; color: #B06A6A; }
.bcard-x-sp { width: 26px; flex: none; }
.bcard-target { display: flex; align-items: baseline; gap: 8px; }
.bcard-target-l { font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--ink-faint); font-weight: 700; }
.bcard-target-v { font-size: 1.5rem; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.bcard .al-band { margin-top: 10px; }
.bcard-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; }
.bcard-rangetxt { font-size: 0.78rem; color: var(--ink-faint); font-variant-numeric: tabular-nums; }
.bcard-edit { display: inline-flex; align-items: center; gap: 4px; font-size: 0.78rem; font-weight: 600; color: var(--sage-deep); padding: 3px 4px; border-radius: 7px; flex: none; }
.bcard-edit:hover { color: var(--ink); background: rgba(120,140,110,0.08); }
.bcard-edit .ico { font-size: 0.9rem; }
/* expanded edit area */
.bcard-edit-area { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }
.bcard-fields { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: 8px; }
.bcf { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.bcf-l { font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-faint); font-weight: 700; padding-left: 2px; }
.bcf-target .bcf-l { color: var(--sage-deep); }
.al-min-input, .al-max-input { width: 100%; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: right; font-size: 0.88rem; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.al-amt-input { width: 100%; padding: 7px 8px; border: 1px solid var(--sage-deep); border-radius: 8px; background: #fff; text-align: right; font-weight: 700; font-size: 0.9rem; color: var(--ink); font-variant-numeric: tabular-nums; }
.bcard-extra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 11px; }
.bcard-pct { font-size: 0.76rem; color: var(--ink-faint); display: inline-flex; align-items: center; gap: 4px; }
.al-input { width: 46px; padding: 4px 4px; border: 1px solid var(--line); border-radius: 7px; background: #fff; text-align: right; font-size: 0.82rem; }
.bcard-rename { display: inline-flex; align-items: center; gap: 5px; color: var(--ink-faint); font-size: 0.8rem; }
.bcard-rename .ico { font-size: 0.85rem; }
.bcard-rename input { width: 130px; padding: 5px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 0.84rem; }
.al-input:focus, .al-amt-input:focus, .al-min-input:focus, .al-max-input:focus, .bcard-rename input:focus { outline: none; border-color: var(--sage-deep); box-shadow: 0 0 0 2px rgba(120,140,110,0.14); }
/* flexible-reserve (misc / custom) cards */
.bcard-flat .bcard-flatrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bcard-flat-tag { font-size: 0.78rem; color: var(--ink-faint); }
.bcard-flat .al-amt-input { max-width: 130px; }
.bcard-flat-label { font-size: 0.92rem; font-weight: 600; }
/* the clean range bar */
.al-band { margin: 0; }
.alb-track { position: relative; width: 100%; height: 7px; border-radius: 99px; background: linear-gradient(90deg, var(--ivory), #EDE6D6); border: 1px solid var(--line); }
.alb-range { position: absolute; inset: 0; border-radius: 99px; background: linear-gradient(90deg, rgba(120,140,110,0.16), rgba(120,140,110,0.32)); }
.alb-dot { position: absolute; top: 50%; width: 13px; height: 13px; border-radius: 50%; background: var(--sage-deep); border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.22); transform: translate(-50%, -50%); }

/* ---- Budget summary card ---- */
.bsum { margin-top: 18px; background: #fff; border: 1px solid var(--gold-soft, #E6D9BE); border-radius: 14px; padding: 16px 18px; }
.bsum-h { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; color: var(--sage-deep); margin-bottom: 10px; }
.bsum-line { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 5px 0; font-size: 0.92rem; color: var(--ink-soft); }
.bsum-line b { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.bsum-sub { font-size: 0.84rem; color: var(--ink-faint); }
.bsum-sub span { display: inline-flex; align-items: center; gap: 5px; }
.bsum-final { border-top: 1px solid var(--line); margin-top: 4px; padding-top: 9px; font-weight: 700; color: var(--ink); }
.bsum-final.ok span, .bsum-final.ok b { color: var(--ok); }
.bsum-final.warn span, .bsum-final.warn b { color: var(--warn); }
.bsum-final.over span, .bsum-final.over b { color: var(--danger); }
.bsum-range { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.bsum-range-h { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; color: var(--sage-deep); margin-bottom: 10px; }
.abt-bar { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.abt-end, .abt-mid { background: var(--ivory); border: 1px solid var(--line); border-radius: 11px; padding: 10px 8px; text-align: center; }
.abt-mid { border-color: var(--sage-deep); background: rgba(120,140,110,0.07); }
.abt-end-l { font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-faint); font-weight: 700; line-height: 1.25; }
.abt-end-v { font-size: 1.05rem; font-weight: 700; color: var(--ink); margin-top: 4px; font-variant-numeric: tabular-nums; }
.abt-mid .abt-end-v { color: var(--sage-deep); }
.abt-note { font-size: 0.78rem; color: var(--ink-faint); margin-top: 10px; line-height: 1.45; }
@media (max-width: 560px) {
  .bcard-grid { grid-template-columns: 1fr; }
  .bcard-extra { flex-direction: column; align-items: flex-start; }
}

/* budget range woven into the dashboard snapshot + tracker */
.snap-range { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.snap-range-l { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; color: var(--sage-deep); margin-bottom: 8px; }
.snap-range-l span { display: block; text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--ink-faint); font-size: 0.72rem; margin-top: 1px; }
.snap-range .abt-bar { gap: 6px; }
.snap-range .abt-end, .snap-range .abt-mid { padding: 7px 5px; border-radius: 9px; }
.snap-range .abt-end-l { font-size: 0.56rem; }
.snap-range .abt-end-v { font-size: 0.86rem; margin-top: 2px; }
.bud-range { margin-top: 16px; }
.bud-range-h { font-size: 0.8rem; font-weight: 700; color: var(--sage-deep); display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.alloc-total { display: flex; justify-content: space-between; padding-top: 12px; font-size: 0.9rem; font-weight: 600; }
.alloc-total .ok { color: var(--ok); } .alloc-total .warn { color: var(--warn); }
.alloc-remain { text-align: right; font-size: 0.78rem; margin-top: 3px; }
.alloc-remain.ok { color: var(--ok); } .alloc-remain.warn { color: var(--warn); }
/* over budget — alarming */
.alloc-total .over { color: var(--danger); font-weight: 700; }
.alloc-remain.over { color: var(--danger); font-weight: 700; animation: alarmpulse 1.1s ease-in-out infinite; }
.alloc-remain.over .ico { color: var(--danger); }
@keyframes alarmpulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }

/* ---------- Calendar connect ---------- */
.cal-connect { display: flex; flex-direction: column; gap: 8px; margin: 14px 0 4px; }
.cal-btn { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; font-size: 0.9rem; color: var(--ink); transition: all .15s; }
.cal-btn:hover { border-color: var(--sage); }
.cal-btn.connected { border-color: var(--sage); background: rgba(52,80,110,.1); font-weight: 600; }
.cal-btn .cal-check { margin-left: auto; color: var(--ok); font-weight: 700; }
.cal-rules { margin: 16px 0 4px; padding: 16px; background: var(--ivory); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.cal-rules-h { font-weight: 600; font-size: 0.95rem; }
.cal-block { border-top: 1px solid var(--line); padding: 16px 0 4px; }
.cal-block-h { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 0.92rem; }
.cal-block-h .opt { font-weight: 400; }
.cal-sub2 { font-size: 0.82rem; color: var(--ink-soft); margin: 6px 0 10px; }
.cal-rules-sub { font-size: 0.8rem; color: var(--ink-faint); margin: 4px 0 14px; }
.cal-window { display: flex; align-items: center; gap: 10px; font-size: 0.9rem; color: var(--ink-soft); flex-wrap: wrap; }
.cal-window input[type=time] { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }

/* ---------- Multi-select filter dropdowns ---------- */
.filter-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filter-lbl { font-size: 0.74rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink-faint); }
.msel { position: relative; }
.msel-btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 0.86rem; color: var(--ink); }
.msel-btn:hover { border-color: var(--sage); }
.msel-btn .caret { color: var(--ink-faint); font-size: 0.7rem; }
/* active-filter indicators */
.msel-btn.filtered, .vsort.filtered { border-color: var(--blue); background: var(--blue-soft); color: var(--blue-deep); font-weight: 500; }
.msel-btn.filtered { position: relative; }
.msel-btn.filtered::after { content: ""; position: absolute; top: -3px; right: -3px; width: 9px; height: 9px; border-radius: 50%; background: var(--blue); border: 2px solid var(--ivory); }
.vfilter-clear { display: inline-flex; align-items: center; gap: 5px; padding: 9px 14px; border: 1px dashed var(--blue); border-radius: 999px; background: var(--blue-soft); color: var(--blue-deep); font-family: inherit; font-size: 0.84rem; cursor: pointer; }
.vfilter-clear:hover { background: #DCE6F0; }
.vfilter-clear .ico { font-size: 0.8rem; }
.vfilter-clear.hidden { display: none; }
.msel-menu { position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); padding: 8px; min-width: 220px; max-height: 320px; overflow-y: auto; }
.msel-opt { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border-radius: 8px; font-size: 0.88rem; cursor: pointer; }
.msel-opt:hover { background: var(--cream); }
.msel-opt.all { border-bottom: 1px solid var(--line); border-radius: 0; margin-bottom: 4px; font-weight: 600; }
.msel-opt input { accent-color: var(--sage); width: 16px; height: 16px; flex: 0 0 auto; }
.msel-opt .mo-l { flex: 1; }
.msel-opt .opt-n { color: var(--ink-faint); font-size: 0.8rem; }

/* planner mode */
.planner-box { background: var(--ivory); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 16px; margin-top: 4px; }
.planner-row { display: flex; gap: 10px; align-items: center; }
.planner-row select { flex: 1; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
.planner-row .btn { padding: 11px 16px; white-space: nowrap; }

/* booked column color */
.c-booked { background: var(--gold-deep); }

/* ---------- Booking ---------- */
.book-cta { display: flex; align-items: center; justify-content: space-between; gap: 14px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 16px 18px; margin-top: 16px; }
.book-cta .bc-t { font-weight: 600; font-size: 1rem; }
.book-cta .bc-d { font-size: 0.82rem; color: var(--ink-soft); margin-top: 2px; }
.book-banner { background: linear-gradient(135deg, rgba(194,168,120,.16), rgba(52,80,110,.16)); border: 1px solid var(--gold); border-radius: var(--radius-sm); padding: 16px 18px; margin-top: 16px; }
.book-banner .bb-top { font-family: "Cormorant Garamond", serif; font-size: 1.5rem; color: var(--gold-deep); }
.book-banner .bb-detail { font-size: 0.85rem; color: var(--ink-soft); margin-top: 4px; }
.book-banner .bb-undo { margin-top: 10px; font-size: 0.8rem; color: var(--ink-faint); text-decoration: underline; }
.book-banner .bb-undo:hover { color: var(--ink); }
.passed-banner { background: #EFEBE3; border-color: var(--ink-faint); }
.passed-banner .bb-top { color: var(--ink-soft); font-family: "Cormorant Garamond", serif; font-size: 1.5rem; }
.pass-wrap { text-align: center; margin-top: 18px; }
.pass-link { font-size: 0.9rem; font-weight: 600; color: #B0603F; background: #FBEAE3; border: 1px solid #E8C4B4; padding: 11px 24px; border-radius: 999px; transition: all .15s; }
.pass-link::before { content: "⊘ "; }
.pass-link:hover { background: #F6D8CB; border-color: #DDA78F; color: #8F4A2E; transform: translateY(-1px); }
.book-pkgs { display: flex; flex-direction: column; gap: 10px; }
.book-pkg { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; cursor: pointer; transition: border .15s; }
.book-pkg:has(input:checked) { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold); }
.book-pkg input { accent-color: var(--gold-deep); width: 18px; height: 18px; }
.book-pkg .bp-main { flex: 1; }
.book-pkg .bp-name { font-weight: 600; display: block; }
.book-pkg .bp-inc { font-size: 0.8rem; color: var(--ink-faint); }
.book-pkg .bp-price { font-family: "Cormorant Garamond", serif; font-size: 1.4rem; color: var(--gold-deep); }

/* ---------- Accordion headers (collapsible sections) ---------- */
.acc-head { width: 100%; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; gap: 10px; text-align: left; padding: 4px 6px; margin: -4px -6px; border-radius: 10px; font: inherit; color: inherit; transition: background .15s; }
.acc-head:hover { background: rgba(150, 120, 60, 0.06); }
.acc-toggle { margin-left: auto; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; font-family: "Jost", sans-serif; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--gold-deep); background: #fff; border: 1px solid var(--line); padding: 6px 13px; border-radius: 999px; box-shadow: var(--shadow-sm); transition: all .15s; }
.acc-toggle .ico { font-size: 0.9rem; color: inherit; vertical-align: -0.1em; }
.acc-head:hover .acc-toggle { background: var(--gold-soft); border-color: var(--gold); color: var(--gold-deep); transform: translateY(-1px); }
.ov-head { margin-bottom: 0; }
.overview:not(.collapsed) .ov-head { margin-bottom: 16px; }
.ov-title { font-family: "Cormorant Garamond", serif; font-size: 1.35rem; color: var(--ink); }
.ov-sum { font-size: 0.86rem; color: var(--ink-soft); }
.attention.collapsed { padding-bottom: 16px; }

/* ---------- Combined Overview card (stats + outreach status graph) ---------- */
.overview { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 24px; box-shadow: var(--shadow-sm); margin: 0 0 18px; }
.ov-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 8px; border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 16px; }
.ov-stat { text-align: center; padding: 2px 4px; }
.ov-stat b { font-family: "Cormorant Garamond", serif; font-size: 1.7rem; font-weight: 600; display: block; line-height: 1; }
.ov-stat span { font-size: 0.68rem; letter-spacing: 0.6px; text-transform: uppercase; color: var(--ink-faint); display: block; margin-top: 5px; line-height: 1.25; }
.ov-h { font-size: 0.72rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 12px; }
.mini-pipe.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 32px; }
@media (max-width: 720px){ .mini-pipe.two-col { grid-template-columns: 1fr; } .ov-stat b { font-size: 1.5rem; } }

/* ---------- Channels chip (compact, replaces the channels row) ---------- */
.ch-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 0.8rem; color: var(--sage-deep); background: rgba(52,80,110,.10); border: 1px solid var(--line); padding: 8px 13px; border-radius: 999px; cursor: default; white-space: nowrap; }
.ch-chip .ch-soon { color: var(--ink-faint); }

/* ---------- Tools dropdown ---------- */
.tools-menu { position: relative; }
.tools-pop { position: absolute; top: calc(100% + 6px); right: 0; z-index: 40; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); padding: 6px; min-width: 210px; display: flex; flex-direction: column; }
.tp-item { text-align: left; padding: 10px 12px; border-radius: 8px; font-size: 0.9rem; color: var(--ink); }
.tp-item:hover { background: var(--cream); }

/* ---------- Unified toolbar ---------- */
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px 18px; flex-wrap: wrap; margin-bottom: 14px; }
.tb-left, .tb-right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.act-toggle { display: inline-flex; align-items: center; gap: 8px; }
.act-toggle .live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ok); animation: pulse 1.4s infinite; }
.dash.activity-collapsed .act-toggle { background: var(--ink); color: var(--ivory); border-color: var(--ink); }

/* ---------- Action row (direct tool buttons) ---------- */
.action-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 16px; }
.action-spacer { flex: 1 1 auto; min-width: 0; }

/* ---------- Channels bar (slim) ---------- */
.channels-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }

/* ---------- Activity rail ---------- */
.dash-main { min-width: 0; }
.activity-rail { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow-sm); position: sticky; top: 158px; max-height: 74vh; overflow-y: auto; }
.ar-head { display: flex; align-items: center; justify-content: space-between; }
.ar-head h3 { font-size: 1.35rem; }
.ar-close { width: 28px; height: 28px; border-radius: 8px; color: var(--ink-faint); font-size: 0.9rem; }
.ar-close:hover { background: var(--cream); color: var(--ink); }
.activity-rail .live { margin: 6px 0 14px; }
@media (max-width: 920px){ .activity-rail { position: static; max-height: 420px; } }

/* ---------- Dashboard controls ---------- */
.btn-add { padding: 9px 16px; font-size: 0.85rem; }
.stage-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.stage-filters .sf { padding: 7px 13px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 0.8rem; color: var(--ink-soft); display: inline-flex; align-items: center; gap: 6px; }
.stage-filters .sf:hover { border-color: var(--sage); }
.stage-filters .sf.on { background: var(--sage); border-color: var(--sage); color: #fff; }
.stage-filters .sf .sf-n { background: var(--cream); color: var(--ink-soft); border-radius: 999px; min-width: 18px; text-align: center; font-size: 0.72rem; padding: 0 5px; }
.stage-filters .sf.on .sf-n { background: rgba(255,255,255,.3); color: #fff; }

/* ---------- Pipeline (Kanban) ---------- */
.pipeline { display: flex; gap: 12px; align-items: flex-start; overflow-x: auto; padding-bottom: 12px; }
.pipeline.single { display: block; }
.pcol { flex: 1 1 188px; min-width: 188px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); padding: 11px; }
.pipeline.single .pcol { min-width: 0; }
.pcol-head { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; font-weight: 600; letter-spacing: .3px; color: var(--ink-soft); margin-bottom: 12px; text-transform: uppercase; }
.pcol-meta { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.pcol-head .pcol-n { background: #fff; border: 1px solid var(--line); border-radius: 999px; min-width: 22px; text-align: center; padding: 1px 6px; font-size: 0.74rem; color: var(--ink); }
.pcol-pct { font-size: 0.68rem; color: var(--ink-faint); }
.pch-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.c-toreach { background: var(--ink-faint); } .c-contacted { background: var(--sage); }
.c-replied { background: var(--ok); } .c-followup { background: var(--warn); }
.c-scheduled { background: var(--gold); } .c-noreply { background: #C98B8B; }
.c-booked { background: var(--ok); } .c-passed { background: #B4736E; }
/* Passed column reads as a muted "set aside" pile */
.pcol[data-col="passed"] { background: #EFEBE3; opacity: .82; }
.pcol[data-col="passed"] .pcol-head { color: var(--ink-faint); }
.pcol[data-col="passed"] .pcard { opacity: .9; }
.pcol-body { display: flex; flex-direction: column; gap: 10px; min-height: 40px; max-height: 64vh; overflow-y: auto; padding-right: 2px; }
.pc-thumb { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; flex: 0 0 auto; background: var(--sand); }
.pipeline.single .pcol-body { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); }
.pcol-empty { color: var(--ink-faint); font-size: 0.85rem; text-align: center; padding: 10px 0; }
.pcard { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 11px 12px; box-shadow: var(--shadow-sm); cursor: pointer; display: flex; gap: 10px; transition: transform .12s, box-shadow .12s; animation: rise .35s; }
.pcard:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.pc-swatch { width: 6px; border-radius: 6px; flex: 0 0 auto; }
.pc-main { flex: 1; min-width: 0; }
.pc-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.pc-name { font-family: "Cormorant Garamond", serif; font-size: 1.12rem; line-height: 1.1; }
.pc-score { font-size: 0.74rem; font-weight: 700; color: var(--gold-deep); flex: 0 0 auto; }
.pc-meta { font-size: 0.76rem; color: var(--ink-faint); margin-top: 3px; }
.pc-foot { margin-top: 7px; }
.pc-price { font-size: 0.8rem; font-weight: 600; color: var(--ink); }

/* ---------- Top nav links ---------- */
.topnav { font-size: 0.85rem; color: var(--ink-soft); padding: 6px 10px; border-radius: 999px; }
.topnav:hover { color: var(--ink); background: var(--cream); }

/* ---------- field headings ---------- */
.field-h { font-size: 0.9rem; font-weight: 700; color: var(--ink); margin-bottom: 4px; }

/* ---------- Priorities ---------- */
.prio-pick { position: relative; }
.prio-rank { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: var(--gold); color: #fff; font-size: 0.7rem; font-weight: 700; margin-right: 6px; }
.prio-list { display: flex; flex-direction: column; gap: 8px; }
.prio-empty { color: var(--ink-faint); font-size: 0.86rem; }
.prio-row { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: var(--ivory); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.prio-num { width: 24px; height: 24px; border-radius: 50%; background: var(--gold); color: #fff; font-weight: 700; font-size: 0.8rem; display: flex; align-items: center; justify-content: center; }
.prio-name { flex: 1; font-weight: 500; }
.prio-moves { display: flex; gap: 4px; }
.prio-move { width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--line); background: #fff; color: var(--ink-soft); font-size: 0.75rem; }
.prio-move:hover:not(:disabled) { border-color: var(--sage); color: var(--ink); }
.prio-move:disabled { opacity: .35; cursor: not-allowed; }
.prio-move.rm:hover { background: #f0e3e3; color: #B06A6A; border-color: #e0c4c4; }

/* ---------- Preference blocks (tailoring) ---------- */
.pref-block { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow-sm); margin-bottom: 16px; }
.pref-h { font-family: "Cormorant Garamond", serif; font-size: 1.5rem; display: flex; align-items: center; gap: 10px; }
.pref-tag { font-family: "Inter"; font-size: 0.62rem; letter-spacing: 1px; text-transform: uppercase; background: var(--cream); border: 1px solid var(--line); color: var(--gold-deep); padding: 2px 8px; border-radius: 999px; }
.pref-sub { color: var(--ink-soft); font-size: 0.86rem; margin: 6px 0 12px; }

/* ---------- Custom questions ---------- */
.cq-list { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.cq-row { display: flex; gap: 8px; }
.cq-input, .tq-input { flex: 1; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--ivory); }
.cq-input:focus, .tq-input:focus { outline: none; border-color: var(--sage); background: #fff; }

/* per-vendor-type question accordion */
.tq-accordion { display: flex; flex-direction: column; gap: 8px; }
.tq-block { border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }
.tq-block.open { box-shadow: var(--shadow-sm); }
.tq-head { width: 100%; display: flex; align-items: center; gap: 9px; padding: 12px 14px; background: #fff; cursor: pointer; font: inherit; text-align: left; }
.tq-head:hover { background: var(--ivory); }
.tq-head .tq-name { font-weight: 500; }
.tq-head .acc-chev { margin-left: auto; color: var(--ink-faint); font-size: 0.85rem; }
.tq-head .att-n { background: var(--cream); color: var(--ink-soft); }
.tq-body { padding: 6px 14px 14px; background: var(--ivory); display: flex; flex-direction: column; gap: 8px; }
.cq-remove { width: 40px; border-radius: var(--radius-sm); border: 1px solid var(--line); background: #fff; color: var(--ink-faint); }
.cq-remove:hover { background: #f0e3e3; color: #B06A6A; }

/* ---------- Q&A in vendor modal ---------- */
.qa-block { margin-top: 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.qa-h { font-size: 0.74rem; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 10px; }
.qa-row { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 0.88rem; }
.qa-row:last-child { border-bottom: none; }
.qa-q { color: var(--ink-soft); } .qa-a { font-weight: 600; text-align: right; }

/* priority star on cards */
.pc-star { color: var(--gold); font-size: 0.85rem; }

/* ---------- Planner banner ---------- */
.planner-banner { display: flex; align-items: center; gap: 10px; background: linear-gradient(135deg, rgba(52,80,110,.16), rgba(194,168,120,.14)); border: 1px solid var(--sage); border-radius: var(--radius-sm); padding: 10px 16px; margin-bottom: 16px; font-size: 0.9rem; }
.planner-banner .pb-back { margin-left: auto; color: var(--sage-deep); font-weight: 600; font-size: 0.85rem; }
.planner-banner .pb-back:hover { color: var(--ink); }

/* ---------- Admin & Planner shared ---------- */
.admin { max-width: 1340px; margin: 0 auto; padding: 22px 22px 80px; }
.admin-head { margin-bottom: 18px; }
.admin-head .couple { font-size: 2rem; }
.admin-head .meta { color: var(--ink-soft); font-size: 0.92rem; margin-top: 2px; }
.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 22px; }
@media (max-width: 820px){ .admin-stats { grid-template-columns: 1fr 1fr; } }
.astat { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow-sm); }
.astat .as-l { font-size: 0.72rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink-faint); }
.astat .as-n { font-family: "Cormorant Garamond", serif; font-size: 2.4rem; line-height: 1.1; margin: 4px 0; }
.astat .as-s { font-size: 0.82rem; color: var(--ink-soft); }
.admin-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.admin-tab { padding: 9px 18px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 0.88rem; color: var(--ink-soft); }
.admin-tab.on { background: var(--ink); color: var(--ivory); border-color: var(--ink); }
.atable-wrap { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.atable { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.atable th { text-align: left; padding: 13px 16px; font-size: 0.7rem; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-faint); border-bottom: 1px solid var(--line); background: var(--ivory); }
.atable td { padding: 13px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.atable tr:last-child td { border-bottom: none; }
.atable tr:hover td { background: var(--ivory); }
.t-sub { font-size: 0.75rem; color: var(--ink-faint); }
.t-bar { width: 90px; height: 6px; background: var(--cream); border-radius: 6px; overflow: hidden; display: inline-block; vertical-align: middle; }
.t-bar i { display: block; height: 100%; background: var(--sage); }
.t-status { font-size: 0.74rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.s-active { background: rgba(110,156,115,.16); color: var(--ok); }
.s-onboarding { background: rgba(194,168,120,.18); color: var(--gold-deep); }
.s-wrappingup { background: rgba(52,80,110,.18); color: var(--sage-deep); }
.senti { font-size: 0.74rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.senti.s-positive { background: rgba(110,156,115,.16); color: var(--ok); }
.senti.s-booked { background: rgba(194,168,120,.2); color: var(--gold-deep); }
.senti.s-neutral { background: var(--cream); color: var(--ink-soft); }
.senti.s-noreply { background: #f0e3e3; color: #B06A6A; }

/* ---------- Operator Console (admin dashboard) ---------- */
.op-head .couple { display: flex; align-items: center; gap: 12px; }
.op-badge { font-size: 0.58rem; letter-spacing: 1.6px; text-transform: uppercase; background: var(--blue); color: #fff; padding: 4px 10px; border-radius: 999px; font-family: var(--sans); font-weight: 600; }
.op-tabs .admin-tab { display: inline-flex; align-items: center; gap: 6px; }
.op-tabs .admin-tab .ico { font-size: 0.95rem; }
.op-body { margin-top: 4px; }

/* Catastrophe strip */
.cata-strip { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin: 4px 0 22px; }
@media (max-width: 1100px){ .cata-strip { grid-template-columns: repeat(2, 1fr); } }
.cata-chip { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--ok); border-radius: 12px; padding: 13px 15px; box-shadow: var(--shadow-sm); position: relative; }
.cata-chip.warn { border-left-color: var(--warn); }
.cata-chip.crit { border-left-color: #C0603F; }
.cc-dot { position: absolute; top: 14px; right: 14px; width: 8px; height: 8px; border-radius: 50%; background: var(--ok); }
.cata-chip.warn .cc-dot { background: var(--warn); box-shadow: 0 0 0 3px rgba(189,139,63,.18); }
.cata-chip.crit .cc-dot { background: #C0603F; box-shadow: 0 0 0 3px rgba(192,96,63,.18); }
.cc-label { font-size: 0.68rem; letter-spacing: 0.5px; text-transform: uppercase; color: var(--ink-faint); padding-right: 14px; }
.cc-val { font-family: var(--serif); font-size: 1.7rem; line-height: 1.1; margin: 2px 0 4px; }
.cc-detail { font-size: 0.74rem; color: var(--ink-soft); }

/* KPI row */
.admin-kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 18px; }
@media (max-width: 1100px){ .admin-kpis { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px){ .admin-kpis { grid-template-columns: repeat(2, 1fr); } }
.kpi { padding: 14px 16px; }
.kpi .kpi-top { display: flex; align-items: center; gap: 7px; margin-bottom: 2px; }
.kpi-ic { color: var(--gold-deep); font-size: 1rem; }
.kpi .as-n { font-size: 2rem; margin: 2px 0; }

/* Insight cards grid */
.op-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
@media (max-width: 900px){ .op-grid { grid-template-columns: 1fr; } }
.op-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow-sm); }
.op-card-full { margin-bottom: 16px; }
.op-card h3 { font-family: var(--serif); font-size: 1.25rem; font-weight: 600; margin: 0 0 14px; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.oc-sub { font-family: var(--sans); font-size: 0.68rem; letter-spacing: 0.5px; text-transform: uppercase; color: var(--ink-faint); font-weight: 400; }

/* Horizontal bars (funnel / channel / distribution) */
.funnel-row, .cbar-row, .dist-row { display: flex; align-items: center; gap: 12px; margin-bottom: 11px; }
.funnel-row:last-child, .cbar-row:last-child, .dist-row:last-child { margin-bottom: 0; }
.fr-l, .dr-l { width: 96px; font-size: 0.82rem; color: var(--ink-soft); flex-shrink: 0; }
.cb-l { width: 120px; font-size: 0.82rem; color: var(--ink-soft); flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; }
.fr-bar, .cb-bar, .dr-bar { flex: 1; height: 9px; background: var(--cream); border-radius: 6px; overflow: hidden; }
.fr-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), var(--gold-deep)); }
.cb-bar i { display: block; height: 100%; background: var(--blue); border-radius: 6px; }
.dr-bar i { display: block; height: 100%; background: var(--sage); border-radius: 6px; }
.fr-n, .cb-n, .dr-n { width: 42px; text-align: right; font-weight: 600; font-size: 0.85rem; }

/* Sparkline */
.spark { display: flex; align-items: flex-end; gap: 5px; height: 92px; padding-top: 6px; }
.spark-col { flex: 1; background: linear-gradient(180deg, var(--gold), var(--gold-soft)); border-radius: 3px 3px 0 0; min-height: 3px; }

/* Queue lists */
.queue-list { display: flex; flex-direction: column; gap: 8px; }
.queue-item { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--ivory); width: 100%; text-align: left; cursor: default; transition: 0.15s; }
button.queue-item { cursor: pointer; }
button.queue-item:hover { background: #fff; box-shadow: var(--shadow-sm); }
.qi-ic { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; background: var(--cream); color: var(--ink-soft); flex-shrink: 0; }
.q-warn .qi-ic { background: rgba(189,139,63,.16); color: var(--warn); }
.q-crit .qi-ic { background: rgba(192,96,63,.14); color: #C0603F; }
.qi-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.qi-label { font-weight: 600; font-size: 0.88rem; }
.qi-desc { font-size: 0.76rem; color: var(--ink-faint); }
.qi-n { font-family: var(--serif); font-size: 1.5rem; color: var(--ink); }
.qi-meta { font-size: 0.76rem; color: var(--ink-faint); white-space: nowrap; }
.sev { font-size: 0.66rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; padding: 2px 8px; border-radius: 999px; }
.sev-high { background: rgba(192,96,63,.14); color: #C0603F; }
.sev-med { background: rgba(189,139,63,.16); color: var(--warn); }
.sev-low { background: var(--cream); color: var(--ink-soft); }

/* Activity / error feed */
.afeed { display: flex; flex-direction: column; }
.afeed-item { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line-soft); font-size: 0.85rem; }
.afeed-item:last-child { border-bottom: none; }
.af-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--ink-faint); }
.src-ai { background: var(--blue); } .src-admin { background: var(--gold); } .src-vendor { background: var(--green); }
.src-client { background: var(--rose); } .src-system { background: var(--ink-faint); }
.af-ic { color: var(--ink-faint); flex-shrink: 0; }
.af-tx { flex: 1; color: var(--ink-soft); }
.af-tx b { color: var(--ink); }
.af-time { font-size: 0.74rem; color: var(--ink-faint); white-space: nowrap; }

/* System health */
.svc-row { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line-soft); }
.svc-row:last-child { border-bottom: none; }
.svc-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ok); flex-shrink: 0; }
.svc-dot.degraded { background: var(--warn); } .svc-dot.down { background: #C0603F; }
.svc-l { flex: 1; font-weight: 600; font-size: 0.88rem; }
.svc-d { font-size: 0.78rem; color: var(--ink-soft); }
.j-success { color: var(--ok); font-weight: 600; text-transform: capitalize; }
.j-running { color: var(--blue); font-weight: 600; text-transform: capitalize; }
.j-failed { color: #C0603F; font-weight: 600; text-transform: capitalize; }

/* ---------- Operator Console — app shell ---------- */
.ac-shell { display: flex; min-height: 100vh; background: var(--ivory); }
.ac-sidebar { width: 250px; flex-shrink: 0; background: #fff; border-right: 1px solid var(--line); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.ac-brand { display: flex; align-items: baseline; gap: 9px; padding: 20px 22px 15px; border-bottom: 1px solid var(--line-soft); }
.ac-brand .mark { font-family: var(--serif); font-size: 1.5rem; font-weight: 700; color: var(--ink); }
.ac-brand .dot { color: var(--gold); }
.ac-brand-tag { font-size: 0.58rem; letter-spacing: 1.6px; text-transform: uppercase; color: var(--ink-faint); }
.ac-nav { flex: 1; overflow-y: auto; padding: 10px 12px 20px; }
.ac-nav-h { font-size: 0.62rem; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ink-faint); padding: 15px 10px 6px; }
.ac-nav-item { display: flex; align-items: center; gap: 11px; width: 100%; padding: 9px 11px; border-radius: 10px; font-size: 0.85rem; color: var(--ink-soft); text-align: left; transition: 0.13s; margin-bottom: 2px; }
.ac-nav-item:hover { background: var(--ivory); color: var(--ink); }
.ac-nav-item.on { background: var(--espresso); color: var(--ivory); }
.ac-nav-item.on .ac-nav-ic { color: var(--gold-soft); }
.ac-nav-ic { font-size: 1.15rem; display: grid; place-items: center; width: 20px; flex-shrink: 0; }
.ac-nav-label { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-nav-badge { font-size: 0.66rem; font-weight: 700; background: var(--gold-soft); color: var(--gold-deep); padding: 1px 7px; border-radius: 999px; }
.ac-nav-item.on .ac-nav-badge { background: rgba(255,255,255,.22); color: #fff; }
.ac-side-foot { padding: 12px; border-top: 1px solid var(--line-soft); }

.ac-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ac-header { position: sticky; top: 0; z-index: 20; background: rgba(250,248,243,.92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 26px; }
.ac-head-titles { min-width: 0; }
.ac-crumb { font-size: 0.64rem; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ink-faint); }
.ac-title { font-family: var(--serif); font-size: 1.55rem; font-weight: 700; line-height: 1.1; margin: 1px 0; color: var(--ink); }
.ac-desc { font-size: 0.8rem; color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 540px; }
.ac-head-tools { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.ac-search { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; width: 280px; color: var(--ink-faint); }
.ac-search input { border: none; background: none; outline: none; font-family: var(--sans); font-size: 0.85rem; color: var(--ink); width: 100%; }
.ac-icon-btn { position: relative; width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--line); background: #fff; display: grid; place-items: center; font-size: 1.15rem; color: var(--ink-soft); cursor: pointer; }
.ac-icon-btn:hover { background: var(--ivory); }
.ac-dot-badge { position: absolute; top: -5px; right: -5px; background: #C0603F; color: #fff; font-size: 0.6rem; font-weight: 700; min-width: 16px; height: 16px; border-radius: 999px; display: grid; place-items: center; padding: 0 4px; }
.ac-profile { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 4px 8px; border-radius: 10px; }
.ac-profile:hover { background: #fff; }
.ac-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; font-size: 0.78rem; font-weight: 600; }
.ac-profile-name { display: flex; flex-direction: column; font-size: 0.82rem; font-weight: 600; line-height: 1.15; color: var(--ink); }
.ac-profile-role { font-size: 0.66rem; color: var(--ink-faint); font-weight: 400; }
.ac-content { padding: 22px 26px 64px; max-width: 1540px; width: 100%; }

/* Metric tiles */
.ac-metrics { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 16px; }
.ac-metrics-4 { grid-template-columns: repeat(4, 1fr); }
.ac-metric { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; box-shadow: var(--shadow-sm); }
.acm-top { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; }
.acm-ic { color: var(--gold-deep); font-size: 1rem; }
.acm-label { font-size: 0.7rem; letter-spacing: 0.4px; text-transform: uppercase; color: var(--ink-faint); }
.acm-val { font-family: var(--serif); font-size: 1.95rem; line-height: 1; color: var(--ink); }
.acm-delta { font-size: 0.74rem; margin-top: 7px; color: var(--ink-soft); }
.acm-delta.d-up { color: var(--green-deep); } .acm-delta.d-down { color: #C0603F; } .acm-delta.d-warn { color: var(--warn); }
.ac-metric.m-warn { border-color: rgba(189,139,63,.4); }
.ac-metric.m-crit { border-color: rgba(192,96,63,.4); }
.ac-metric.m-good { border-color: rgba(92,122,78,.35); }

/* Line chart + legend */
.ac-chart { width: 100%; height: auto; display: block; }
.ac-legend { display: flex; gap: 16px; margin-top: 10px; font-size: 0.76rem; color: var(--ink-soft); }
.ac-legend span { display: inline-flex; align-items: center; gap: 6px; }
.lg-dot { width: 9px; height: 9px; border-radius: 3px; display: inline-block; }
.ac-note { font-size: 0.78rem; color: var(--ink-soft); margin-top: 10px; }
.oc-action { margin-left: auto; font-size: 0.74rem; color: var(--gold-deep); font-family: var(--sans); font-weight: 600; }
.ac-health-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ac-health-pill { font-size: 0.72rem; font-weight: 600; padding: 4px 11px; border-radius: 999px; background: var(--green-soft); color: var(--green-deep); }

/* Bar color variants + wider labels in admin context */
.op-card .dr-l { width: 116px; }
.dr-bar.gold i { background: linear-gradient(90deg, var(--gold), var(--gold-deep)); }
.dr-bar.blue i { background: var(--blue); }
.dr-bar.sage i { background: var(--sage); }

/* Responsive — desktop & tablet */
@media (max-width: 1200px) { .ac-metrics { grid-template-columns: repeat(3, 1fr); } .ac-metrics-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 1080px) { .ac-sidebar { width: 212px; } .ac-search { width: 200px; } }
@media (max-width: 900px) {
  .ac-desc { display: none; }
  .ac-search { width: 150px; }
  .op-grid { grid-template-columns: 1fr; }
  .ac-metrics, .ac-metrics-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .ac-sidebar { width: 64px; }
  .ac-nav-label, .ac-brand-tag, .ac-nav-h, .ac-nav-badge { display: none; }
  .ac-brand { justify-content: center; padding: 16px 0; }
  .ac-brand .mark { font-size: 1.05rem; }
  .ac-nav-item { justify-content: center; padding: 11px 0; }
  .ac-profile-name { display: none; }
}

/* ---------- Operator Console — refinements ---------- */
/* Unified status badge */
.ac-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 0.72rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.ac-badge.b-ok { background: var(--green-soft); color: var(--green-deep); }
.ac-badge.b-warn { background: rgba(189,139,63,.16); color: var(--gold-deep); }
.ac-badge.b-crit { background: #FBEAE4; color: #B0492B; }
.ac-badge.b-info { background: var(--blue-soft); color: var(--blue-deep); }
.ac-badge.b-neutral { background: var(--cream); color: var(--ink-soft); }

/* Metric tone accents */
.ac-metric { position: relative; overflow: hidden; }
.ac-metric::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: transparent; }
.ac-metric.m-warn::before { background: var(--warn); }
.ac-metric.m-crit::before { background: #C0603F; }
.ac-metric.m-good::before { background: var(--green); }
.acm-dot { position: absolute; top: 13px; right: 14px; width: 7px; height: 7px; border-radius: 50%; background: var(--ink-faint); }
.m-warn .acm-dot { background: var(--warn); }
.m-crit .acm-dot { background: #C0603F; box-shadow: 0 0 0 3px rgba(192,96,63,.14); }
.m-good .acm-dot { background: var(--green); }

/* Status banner */
.ac-status-banner { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--warn); border-radius: 12px; padding: 12px 16px; box-shadow: var(--shadow-sm); margin-bottom: 18px; }
.ac-status-banner.green { border-left-color: var(--ok); }
.ac-status-banner.red { border-left-color: #C0603F; }
.asb-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--warn); flex-shrink: 0; }
.ac-status-banner.green .asb-dot { background: var(--ok); }
.ac-status-banner.red .asb-dot { background: #C0603F; }
.asb-main { font-size: 0.9rem; color: var(--ink); }
.asb-chips { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
@media (max-width: 760px) { .asb-chips { display: none; } }

/* Section sub-headers */
.ac-sec-h { font-size: 0.7rem; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ink-faint); font-weight: 600; margin: 6px 2px 10px; }
.ac-sec-h + .op-grid, .ac-sec-h + .ac-metrics { margin-top: 0; }
.op-body .ac-sec-h, .ac-content .ac-sec-h { margin-top: 22px; }
.ac-content > .ac-sec-h:first-of-type { margin-top: 4px; }

/* Filter bar */
.ac-filterbar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.ac-filter { display: inline-flex; align-items: center; gap: 7px; padding: 6px 13px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 0.8rem; color: var(--ink-soft); cursor: pointer; transition: 0.13s; }
.ac-filter:hover { border-color: var(--gold); color: var(--ink); }
.ac-filter.on { background: var(--espresso); color: var(--ivory); border-color: var(--espresso); }
.ac-filter-n { font-size: 0.7rem; font-weight: 700; background: var(--cream); color: var(--ink-soft); padding: 0 6px; border-radius: 999px; min-width: 18px; text-align: center; }
.ac-filter.on .ac-filter-n { background: rgba(255,255,255,.22); color: #fff; }

/* Table refinements */
.atable-wrap { overflow-x: auto; }
.atable { min-width: 680px; }
.atable th, .atable td { padding: 11px 13px; }
.atable th { white-space: nowrap; }
.atable th.num, .atable td.num { text-align: right; font-variant-numeric: tabular-nums; }
.atable tbody tr { transition: background 0.12s; }
.atable td.cell-badges { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.atable tbody tr.row-stuck td { background: rgba(189,139,63,.05); }
.atable tbody tr.row-stuck:hover td { background: rgba(189,139,63,.1); }
.atable tbody tr.row-risk td { background: rgba(192,96,63,.05); }
.atable tbody tr.row-risk:hover td { background: rgba(192,96,63,.09); }
.atable tbody tr.row-risk td:first-child { box-shadow: inset 3px 0 0 #C0603F; }

/* Empty state */
.ac-empty { text-align: center; padding: 40px 20px; color: var(--ink-faint); }
.ac-empty .ace-ic { font-size: 2.1rem; color: var(--sand); display: block; margin-bottom: 8px; }
.ac-empty .ace-t { font-family: var(--serif); font-size: 1.2rem; color: var(--ink-soft); }
.ac-empty .ace-d { font-size: 0.82rem; margin-top: 3px; }

/* Chart gridlines */
.ac-grid { stroke: var(--line-soft); stroke-width: 1; }

/* Multi-group filters */
.ac-filters-multi { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-bottom: 14px; }
.afm-group { display: flex; align-items: center; gap: 9px; }
.afm-l { font-size: 0.64rem; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-faint); font-weight: 600; }
.afm-group .ac-filterbar { margin-bottom: 0; }

/* Clickable rows */
.atable-click tbody tr { cursor: pointer; }

/* Placeholder pages */
.ph-hero { display: flex; align-items: center; gap: 16px; background: linear-gradient(120deg, #fff, var(--ivory)); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; box-shadow: var(--shadow-sm); margin-bottom: 16px; }
.ph-ic { width: 48px; height: 48px; border-radius: 12px; background: var(--gold-soft); color: var(--gold-deep); display: grid; place-items: center; font-size: 1.5rem; flex-shrink: 0; }
.ph-txt { flex: 1; }
.ph-t { font-family: var(--serif); font-size: 1.4rem; font-weight: 700; color: var(--ink); }
.ph-d { font-size: 0.85rem; color: var(--ink-soft); margin-top: 2px; }
.ph-tag { font-size: 0.62rem; letter-spacing: 1.4px; text-transform: uppercase; font-weight: 600; color: var(--gold-deep); background: var(--gold-soft); padding: 4px 11px; border-radius: 999px; }
.ac-next { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 28px; }
@media (max-width: 760px) { .ac-next { columns: 1; } }
.ac-next li { display: flex; align-items: center; gap: 9px; padding: 7px 0; font-size: 0.88rem; color: var(--ink-soft); break-inside: avoid; }
.acn-ic { color: var(--green); font-size: 1rem; }

/* Detail drawer */
.drawer-ov { position: fixed; inset: 0; background: rgba(42,34,27,.32); z-index: 60; opacity: 0; transition: opacity .2s; }
.drawer-ov.open { opacity: 1; }
.drawer { position: absolute; top: 0; right: 0; height: 100%; width: 440px; max-width: 92vw; background: var(--ivory); box-shadow: -16px 0 50px rgba(74,58,38,.18); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .24s cubic-bezier(.3,.7,.3,1); }
.drawer-ov.open .drawer { transform: translateX(0); }
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--line); background: #fff; }
.drawer-head h3 { font-family: var(--serif); font-size: 1.35rem; font-weight: 700; color: var(--ink); margin: 0; }
.drawer-x { width: 34px; height: 34px; border-radius: 9px; border: 1px solid var(--line); background: #fff; display: grid; place-items: center; font-size: 1.1rem; color: var(--ink-soft); cursor: pointer; }
.drawer-x:hover { background: var(--ivory); }
.drawer-body { padding: 20px 22px 40px; overflow-y: auto; }
.dr-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.dr-meta { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 4px 14px; box-shadow: var(--shadow-sm); }
.dr-row { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--line-soft); font-size: 0.86rem; }
.dr-row:last-child { border-bottom: none; }
.dr-k { color: var(--ink-faint); white-space: nowrap; }
.dr-v { color: var(--ink); text-align: right; font-weight: 500; }
.chip-wrap { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-mini { font-size: 0.74rem; background: var(--cream); color: var(--ink-soft); padding: 4px 10px; border-radius: 999px; }
.chan { display: inline-flex; align-items: center; gap: 6px; font-size: 0.84rem; color: var(--ink); white-space: nowrap; }
.chan .ico { color: var(--ink-faint); }

/* ---------- Operator Console — review pass refinements ---------- */
/* Denser, more uniform metric tiles + hover */
.ac-metric { padding: 13px 15px; transition: box-shadow .15s, transform .15s, border-color .15s; }
.ac-metric:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.acm-top { margin-bottom: 5px; }
.acm-val { font-size: 1.7rem; }
.acm-delta { margin-top: 5px; }

/* Slightly denser admin tables so wide tables fit without clipping */
.atable th, .atable td { padding: 9px 10px; }
/* Compact inline bar+value for table cells */
.cellbar { display: inline-flex; align-items: center; gap: 7px; }
.mb { width: 42px; height: 6px; background: var(--cream); border-radius: 6px; overflow: hidden; flex-shrink: 0; }
.mb i { display: block; height: 100%; border-radius: 6px; }
.mb.blue i { background: var(--blue); }
.mb.gold i { background: linear-gradient(90deg, var(--gold), var(--gold-deep)); }
.mb.sage i { background: var(--sage); }
.mbv { font-size: 0.82rem; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }

/* Cleaner table rows */
.atable td.nowrap, .atable th.nowrap { white-space: nowrap; }
.atable td.vcell { min-width: 168px; max-width: 196px; }
.atable td.vcell b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.atable-click tbody tr:hover td:first-child { box-shadow: inset 3px 0 0 var(--gold); }
.atable-click tbody tr.row-risk:hover td:first-child { box-shadow: inset 3px 0 0 #C0603F; }

/* Tighter filter pills */
.ac-filters-multi { gap: 8px 20px; }
.ac-filter { padding: 5px 12px; font-size: 0.78rem; }

/* Chart axis + current-value callout */
.ac-axis { display: flex; justify-content: space-between; font-size: 0.66rem; letter-spacing: .3px; color: var(--ink-faint); margin-top: 6px; }
.ac-legend-now { margin-left: auto; font-weight: 600; color: var(--ink); }

/* Human review queue */
.op-grid-wide { grid-template-columns: 1.6fr 1fr; }
@media (max-width: 900px) { .op-grid-wide { grid-template-columns: 1fr; } }
.rev-break { display: flex; flex-direction: column; }
.rb-item { display: flex; align-items: center; gap: 11px; padding: 9px 0; border-bottom: 1px solid var(--line-soft); }
.rb-item:last-child { border-bottom: none; }
.rb-ic { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; background: var(--cream); color: var(--ink-soft); flex-shrink: 0; }
.rb-ic.t-warn { background: rgba(189,139,63,.16); color: var(--warn); }
.rb-ic.t-crit { background: rgba(192,96,63,.14); color: #C0603F; }
.rb-ic.t-neutral { background: var(--cream); color: var(--ink-soft); }
.rb-l { flex: 1; font-size: 0.88rem; color: var(--ink); }
.rb-n { font-family: var(--serif); font-size: 1.3rem; color: var(--ink); }
.rev-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.btn-rev { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 10px; border: 1px solid var(--line); background: #fff; font-size: 0.85rem; font-weight: 600; color: var(--ink); cursor: pointer; transition: 0.13s; }
.btn-rev:hover { background: var(--ivory); }
.btn-rev.ok { background: var(--green); border-color: var(--green); color: #fff; }
.btn-rev.ok:hover { background: var(--green-deep); }
.btn-rev.warn { border-color: var(--gold); color: var(--gold-deep); }
.btn-rev.warn:hover { background: var(--gold-soft); }

/* ---------- Header: wired search, notifications, profile ---------- */
.ac-head-tools { position: relative; }
.ac-search { font-family: var(--sans); cursor: pointer; text-align: left; }
.ac-search-ic { display: flex; color: var(--ink-faint); font-size: 1.05rem; }
.ac-search-ph { flex: 1; color: var(--ink-faint); font-size: 0.85rem; }
.ac-search-k { font-size: 0.64rem; color: var(--ink-faint); border: 1px solid var(--line); border-radius: 5px; padding: 1px 5px; background: var(--ivory); }
.ac-search:hover { border-color: var(--gold); }
@media (max-width: 980px) { .ac-search-ph, .ac-search-k { display: none; } .ac-search { width: auto; padding: 9px 11px; } }
.ac-icon-btn.on, .ac-profile.on { background: var(--ivory); border: 1px solid var(--line); }
.ac-profile { border: 1px solid transparent; font-family: var(--sans); }

/* Header popovers */
.ac-pop-ov { position: fixed; inset: 0; z-index: 40; }
.ac-pop { position: absolute; top: calc(100% + 8px); right: 0; z-index: 50; width: 330px; max-width: 86vw; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-md); padding: 8px; }
.ac-pop-notif { width: 344px; }
.ac-pop-h { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px 6px; font-size: 0.68rem; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-faint); }
.ac-pop-h span { color: var(--gold-deep); letter-spacing: 0; text-transform: none; font-weight: 600; }
.ac-pop-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 9px; text-align: left; font-size: 0.85rem; color: var(--ink); cursor: pointer; }
.ac-pop-item:hover { background: var(--ivory); }
.ac-pop-item .af-ic { color: var(--ink-faint); flex-shrink: 0; }
.ac-pop-tx { flex: 1; }
.ac-pop-time { font-size: 0.72rem; color: var(--ink-faint); white-space: nowrap; }
.ac-pop-foot { width: 100%; text-align: left; padding: 9px 10px; margin-top: 4px; border-top: 1px solid var(--line-soft); color: var(--gold-deep); font-weight: 600; font-size: 0.82rem; cursor: pointer; }
.ac-pop-foot:hover { background: var(--ivory); border-radius: 0 0 9px 9px; }
.ac-pop-id { display: flex; align-items: center; gap: 10px; padding: 8px 10px 12px; border-bottom: 1px solid var(--line-soft); margin-bottom: 4px; }
.ac-pop-id b { display: block; font-size: 0.9rem; }
.ac-pop-role { font-size: 0.72rem; color: var(--ink-faint); }

/* Command palette */
.cmdk-ov { position: fixed; inset: 0; background: rgba(42,34,27,.34); z-index: 70; display: flex; align-items: flex-start; justify-content: center; padding-top: 12vh; }
.cmdk { width: 560px; max-width: 92vw; background: var(--ivory); border-radius: 16px; box-shadow: var(--shadow-lg); overflow: hidden; }
.cmdk-top { display: flex; align-items: center; gap: 10px; padding: 15px 18px; border-bottom: 1px solid var(--line); background: #fff; }
.cmdk-top .ico { color: var(--ink-faint); font-size: 1.25rem; }
.cmdk-top input { flex: 1; border: none; background: none; outline: none; font-family: var(--sans); font-size: 1rem; color: var(--ink); }
.cmdk-results { max-height: 52vh; overflow-y: auto; padding: 8px; }
.cmdk-item { display: flex; align-items: center; gap: 11px; width: 100%; padding: 10px 12px; border-radius: 10px; text-align: left; cursor: pointer; }
.cmdk-item:hover { background: #fff; }
.cmdk-ic { width: 30px; height: 30px; border-radius: 8px; background: var(--cream); color: var(--ink-soft); display: grid; place-items: center; flex-shrink: 0; }
.cmdk-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.cmdk-name { font-weight: 600; font-size: 0.9rem; color: var(--ink); }
.cmdk-sub { font-size: 0.76rem; color: var(--ink-faint); }
.cmdk-tag { font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.5px; color: var(--ink-faint); background: var(--cream); padding: 2px 8px; border-radius: 999px; }
.cmdk-empty { padding: 26px; text-align: center; color: var(--ink-faint); font-size: 0.88rem; }

/* ---------- Planner roster ---------- */
.pl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.pl-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow-sm); }
.pl-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.pl-name { font-size: 1.3rem; }
.pl-meta { font-size: 0.8rem; color: var(--ink-faint); margin-top: 2px; }
.pl-bar { height: 6px; background: var(--cream); border-radius: 6px; overflow: hidden; margin: 14px 0 12px; }
.pl-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--sage), var(--gold)); }
.pl-stats { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 0.8rem; color: var(--ink-soft); margin-bottom: 14px; }

/* ---------- Needs your attention panel ---------- */
.attention { background: linear-gradient(135deg, rgba(194,168,120,.12), rgba(52,80,110,.10)); border: 1px solid var(--gold); border-radius: var(--radius); padding: 16px 18px; margin: 0 0 20px; }
.att-h { font-family: "Cormorant Garamond", serif; font-size: 1.4rem; color: var(--gold-deep); display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.att-n { font-family: "Inter"; font-size: 0.72rem; font-weight: 700; background: var(--gold); color: #fff; border-radius: 999px; min-width: 22px; text-align: center; padding: 2px 8px; }
.att-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
@media (max-width: 760px){ .att-list { grid-template-columns: 1fr; } }
.att-item { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); text-align: left; transition: all .15s; }
.att-item:hover { border-color: var(--gold); transform: translateX(2px); box-shadow: var(--shadow-sm); }
.att-ico { flex: 0 0 auto; }
.att-tx { flex: 1; font-size: 0.88rem; }
.att-go { color: var(--gold-deep); font-weight: 700; }

/* planner attention grouped by client */
.att-groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
@media (max-width: 760px){ .att-groups { grid-template-columns: 1fr; } }
.att-group { background: rgba(255,255,255,.55); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 12px; }
.att-gh { font-family: "Cormorant Garamond", serif; font-size: 1.15rem; margin-bottom: 8px; color: var(--ink); }
.att-group .att-item { margin-bottom: 8px; }
.att-group .att-item:last-child { margin-bottom: 0; }

/* comparison caption */
.cmp-caption { font-size: 0.8rem; color: var(--ink-faint); margin-bottom: 12px; }

/* approval inline edit */
.appr-editwrap { margin-bottom: 4px; }
.appr-edit { width: 100%; min-height: 150px; border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: var(--ivory); font-size: 0.84rem; line-height: 1.5; resize: vertical; }
.appr-edit:focus { outline: none; border-color: var(--sage); background: #fff; }
.appr-hint { font-size: 0.74rem; color: var(--ink-faint); margin-top: 4px; }

/* ---------- Dashboard tools ---------- */
.dash-tools { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.tool-btn { padding: 11px 18px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 0.9rem; color: var(--ink); box-shadow: var(--shadow-sm); transition: all .15s; }
.tool-btn:hover { border-color: var(--sage); transform: translateY(-1px); box-shadow: var(--shadow-md); }

/* ---------- Why this match + contract button ---------- */
.whymatch { font-size: 0.86rem; color: var(--ink-soft); background: var(--cream); border-radius: 10px; padding: 10px 12px; margin: 4px 0 0; line-height: 1.5; }
.whymatch b { color: var(--ink); }
.contract-btn { margin-top: 12px; width: 100%; padding: 12px; border-radius: var(--radius-sm); border: 1px solid var(--gold); background: rgba(194,168,120,.08); color: var(--gold-deep); font-weight: 600; font-size: 0.9rem; transition: all .15s; }
.contract-btn:hover { background: rgba(194,168,120,.16); }

/* ---------- Conversation thread ---------- */
.thread { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.bubble { max-width: 84%; padding: 13px 17px; border-radius: 16px; font-size: 0.92rem; line-height: 1.6; white-space: pre-wrap; }
.bubble.you { align-self: flex-end; background: var(--ink); color: var(--ivory); border-bottom-right-radius: 5px; }
.bubble.vendor { align-self: flex-start; background: #fff; border: 1px solid var(--line); border-bottom-left-radius: 5px; }
.composer { display: flex; gap: 10px; margin-top: 14px; align-items: flex-end; }
.composer textarea { flex: 1; min-height: 100px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 14px; background: #fff; font-size: 0.92rem; line-height: 1.65; resize: vertical; }
.composer textarea:focus { outline: none; border-color: var(--sage); box-shadow: 0 0 0 3px rgba(52,80,110,.15); }
.composer .btn { padding: 13px 24px; }

/* ---------- Recommendations ---------- */
.rec-block { border-bottom: 1px solid var(--line); padding: 14px 0; }
.rec-block:last-of-type { border-bottom: none; }
.rec-cat { font-size: 0.74rem; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 8px; }
.rec-none { color: var(--ink-faint); font-style: italic; font-size: 0.88rem; }
.rec-pick { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rec-name { font-family: "Cormorant Garamond", serif; font-size: 1.3rem; }
.rec-score { font-family: "Inter"; font-size: 0.74rem; font-weight: 700; color: var(--gold-deep); }
.rec-why { font-size: 0.82rem; color: var(--ink-soft); margin-top: 3px; }
.rec-fit { font-size: 0.82rem; color: var(--sage-deep); font-weight: 600; margin-top: 3px; }

/* ---------- Comparison ---------- */
.cmp-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.cmp-tab { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 0.82rem; color: var(--ink-soft); }
.cmp-tab.on { background: var(--ink); color: var(--ivory); border-color: var(--ink); }
.cmp-grid { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }
.cmp-corner, .cmp-headcell, .cmp-rl, .cmp-cell { background: #fff; padding: 10px 12px; font-size: 0.86rem; }
.cmp-headcell { text-align: center; position: relative; display: flex; flex-direction: column; align-items: center; padding: 24px 12px 12px; }
.cmp-headcell.best, .cmp-cell.best { background: rgba(194,168,120,.10); }
.cmp-rl.cmp-sorted, .cmp-cell.cmp-sorted { background: var(--blue-soft); }
.cmp-rl.cmp-sorted { color: var(--blue-deep); font-weight: 600; box-shadow: inset 3px 0 0 var(--blue); }
.cmp-cell.cmp-sorted { color: var(--blue-deep); font-weight: 600; }
.cmp-sortmark .ico { font-size: 0.66rem; color: var(--blue); }

/* Compare worksheet — shortlist, pros/cons, actions */
.cmp-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.cmp-tools { display: flex; align-items: center; gap: 12px; }
.cmp-headcell.shortlisted { box-shadow: inset 0 3px 0 var(--rose); }
.cmp-fav { display: inline-flex; align-items: center; gap: 5px; margin-top: auto; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 0.72rem; color: var(--ink-soft); cursor: pointer; }
.cmp-fav .ico { font-size: 0.8rem; }
.cmp-fav:hover { border-color: var(--rose); }
.cmp-fav.on { background: #F6E7E4; border-color: var(--rose); color: #B4736E; }
.cmp-rl-pros { color: var(--green-deep) !important; } .cmp-rl-cons { color: #B0716A !important; }
.cmp-cons { color: var(--ink-soft); }
.cmp-actcell { display: flex; flex-direction: column; gap: 7px; align-items: stretch; }
.cmp-bookbtn, .cmp-open, .cmp-meetbtn { width: 100%; padding: 8px 10px; font-size: 0.8rem; text-align: center; justify-content: center; }
.cmp-meettag { display: inline-flex; align-self: center; align-items: center; gap: 5px; font-size: 0.78rem; font-weight: 600; color: var(--ink-soft); background: #F0ECE2; padding: 6px 12px; border-radius: 999px; text-align: center; }
.cmp-meettag.ok { color: var(--ok, #5C7A4E); background: rgba(92,122,78,0.13); }
.cmp-meettag .ico { font-size: 0.85rem; }
.cmp-rl-act { display: flex; align-items: center; }
.cmp-bookedtag { display: inline-flex; align-self: center; align-items: center; gap: 5px; font-size: 0.8rem; font-weight: 600; color: var(--green-deep); background: var(--green-soft); padding: 6px 12px; border-radius: 999px; }
.cmp-bookedtag .ico { font-size: 0.85rem; }

/* Decisions summary modal */
.dec-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
.dec-stat { background: var(--ivory); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.dec-stat .ds-n { font-family: var(--serif); font-size: 1.7rem; color: var(--ink); line-height: 1; }
.dec-stat .ds-n span { font-size: 1rem; color: var(--ink-faint); }
.dec-stat .ds-l { font-size: 0.76rem; color: var(--ink-soft); margin-top: 4px; }
.dec-list { display: flex; flex-direction: column; gap: 8px; }
.dec-row { display: grid; grid-template-columns: 1.1fr 1.4fr auto auto; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.dec-cat { font-weight: 600; font-size: 0.9rem; display: flex; align-items: center; gap: 7px; }
.dec-detail { font-size: 0.84rem; color: var(--ink-soft); }
.dec-act { text-align: right; }
.dec-check .ico { color: var(--green); font-size: 1.2rem; } .dec-wait .ico { color: var(--ink-faint); font-size: 1.1rem; }
@media (max-width: 600px){ .dec-row { grid-template-columns: 1fr auto; } .dec-detail { display: none; } }
.cmp-badge { position: absolute; top: 7px; left: 50%; transform: translateX(-50%); font-size: 0.56rem; letter-spacing: .6px; text-transform: uppercase; background: var(--gold); color: #fff; border-radius: 999px; padding: 3px 9px; white-space: nowrap; box-shadow: var(--shadow-sm); }
.cmp-headcell.best { box-shadow: inset 0 3px 0 var(--gold); }
.cmp-vn { font-family: "Cormorant Garamond", serif; font-size: 1.05rem; line-height: 1.15; }
.cmp-rl { color: var(--ink-faint); font-size: 0.74rem; letter-spacing: .5px; text-transform: uppercase; display: flex; align-items: center; }
.cmp-cell { text-align: center; }
.cmp-why { font-size: 0.76rem; color: var(--ink-soft); }
.cmp-open { padding: 6px 14px; font-size: 0.8rem; }

/* ---------- Contract flags ---------- */
.flag { background: #fff; border: 1px solid var(--line); border-left: 3px solid var(--warn); border-radius: 10px; padding: 12px 14px; margin-bottom: 8px; }
.flag-t { font-weight: 600; font-size: 0.92rem; }
.flag-n { font-size: 0.82rem; color: var(--ink-soft); margin-top: 3px; }

/* ---------- Approval queue ---------- */
.appr { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px; margin-bottom: 12px; }
.appr-h { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.appr-msg { font-size: 0.84rem; color: var(--ink-soft); background: var(--ivory); border-radius: 10px; padding: 12px; line-height: 1.5; max-height: 150px; overflow-y: auto; }
.appr-actions { display: flex; gap: 8px; margin-top: 10px; }
.appr-actions .btn { padding: 9px 16px; font-size: 0.85rem; }

/* ---------- Budget tracker ---------- */
.bud-top { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.bud-stat { background: var(--cream); border-radius: var(--radius-sm); padding: 14px 16px; }
.bud-stat .as-l { font-size: 0.7rem; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-faint); }
.bud-stat .as-n { font-family: "Cormorant Garamond", serif; font-size: 1.8rem; }

/* section heading */
.section-h { font-family: "Cormorant Garamond", serif; font-size: 1.5rem; margin-bottom: 12px; }

/* ---------- Progress meter ---------- */
.progress-meter { display: flex; align-items: center; gap: 10px; margin-top: 12px; max-width: 380px; }
.pm-track { flex: 1; height: 7px; background: var(--cream); border-radius: 7px; overflow: hidden; }
.pm-track i { display: block; height: 100%; background: linear-gradient(90deg, var(--sage), var(--gold)); transition: width .6s ease; }
.pm-lbl { font-size: 0.78rem; color: var(--ink-soft); font-weight: 600; white-space: nowrap; }
.pm-sub { font-size: 0.76rem; color: var(--ink-faint); white-space: nowrap; }
.pm-info { position: relative; cursor: help; color: var(--ink-faint); font-size: 0.82rem; line-height: 1; outline: none; }
.pm-info:hover, .pm-info.open { color: var(--gold-deep); }
.pm-tip { position: absolute; bottom: calc(100% + 9px); left: 0; transform: translateX(-40%); width: 250px; background: var(--ink); color: var(--ivory); font-size: 0.78rem; line-height: 1.6; padding: 13px 15px; border-radius: 10px; box-shadow: var(--shadow-md); opacity: 0; visibility: hidden; transition: opacity .15s; z-index: 60; text-align: left; font-weight: 400; }
.pm-tip b { color: #fff; font-weight: 600; }
.pm-info:hover .pm-tip, .pm-info.open .pm-tip { opacity: 1; visibility: visible; }
.pm-tip::after { content: ""; position: absolute; top: 100%; left: 40%; transform: translateX(-50%); border: 6px solid transparent; border-top-color: var(--ink); }

/* ---------- Search & sort ---------- */
.vsearch { padding: 9px 16px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 0.85rem; min-width: 180px; }
.vsearch:focus { outline: none; border-color: var(--sage); }
.vsort { padding: 9px 32px 9px 16px; border: 1px solid var(--line); border-radius: 999px; background-color: #fff; font-size: 0.85rem; color: var(--ink); cursor: pointer; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23A89A84' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; }
.vsort:hover { border-color: var(--sage); }

/* ---------- Drag & drop ---------- */
.pcard[draggable="true"] { cursor: grab; }
.pcard.dragging { opacity: .4; }
.pcol.drag-over { outline: 2px dashed var(--sage); outline-offset: -2px; }
.pcol.drag-over .pcol-body { background: rgba(52,80,110,.08); border-radius: 10px; }

/* ---------- Confetti ---------- */
.confetti { position: fixed; inset: 0; pointer-events: none; z-index: 9999; overflow: hidden; }
.confetti i { position: absolute; top: -16px; width: 9px; height: 15px; border-radius: 2px; opacity: .92; animation-name: conffall; animation-timing-function: ease-in; animation-fill-mode: forwards; }
@keyframes conffall { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(108vh) rotate(620deg); } }

/* ---------- Mobile polish ---------- */
@media (max-width: 700px){
  .dash-head { flex-direction: column; align-items: flex-start; }
  .dash-head .countdown { text-align: left; }
  .composer { flex-direction: column; align-items: stretch; }
  .composer .btn { width: 100%; }
  .vsearch, .vsort { width: 100%; }
  .filter-row { width: 100%; }
  .overlay { padding: 16px 10px; }
  .modal { max-width: 100% !important; }
  .cmp-grid { font-size: 0.78rem; }
}

/* ---------- Sourcing & coaching ---------- */
.src-cat { border-bottom: 1px solid var(--line); padding: 16px 0; }
.src-cat:last-of-type { border-bottom: none; }
.src-head { display: flex; align-items: center; gap: 8px; font-family: "Cormorant Garamond", serif; font-size: 1.25rem; }
.src-head .src-count { font-family: "Jost", sans-serif; font-size: 0.76rem; color: var(--ink-faint); margin-left: auto; letter-spacing: .2px; }
.src-reach { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0; }
.src-reach .chip { font-size: 0.82rem; padding: 8px 14px; }
.src-customwrap { font-size: 0.82rem; color: var(--ink-faint); display: inline-flex; align-items: center; gap: 6px; }
.src-num { width: 58px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: center; }
.src-coach { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--ivory); font-size: 0.88rem; }
.src-coach:focus { outline: none; border-color: var(--sage); background: #fff; }
.src-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.src-status { font-size: 0.84rem; color: var(--ink-soft); }
.src-btn { padding: 9px 16px; font-size: 0.82rem; white-space: nowrap; flex: 0 0 auto; }

/* ---------- Icon placement in each context ---------- */
.chip .ico { font-size: 1.05rem; vertical-align: -0.15em; }
.chip.on .ico { color: #fff; }
.tool-btn .ico { font-size: 1.05rem; }
.tp-item .ico { font-size: 1.15rem; width: 1.3em; text-align: center; }
.feed-item .fi-ico { flex: 0 0 auto; }
.feed-item .fi-ico .ico { font-size: 1.2rem; }
.att-ico .ico { font-size: 1.25rem; }
.tl-item .dot .ico { font-size: 1.05rem; }
.cal-ico .ico { font-size: 1.3rem; color: var(--ink); }
.pref-h .ico { font-size: 1.3rem; }
.pc-meta .ico { font-size: 0.95em; vertical-align: -0.1em; }
.mloc .ico, .contract-btn .ico { font-size: 1.15rem; }
.ch-chip .ico { color: var(--gold-deep); font-size: 1.1rem; }
.style-examples .ico { font-size: 1.05rem; vertical-align: -0.15em; }
.btn-gold .ico, .btn-primary .ico, .btn-green .ico { color: inherit; }

/* disclaimer footer */
.disclaimer { text-align:center; font-size:0.74rem; color: var(--ink-faint); padding: 30px 20px; max-width: 60ch; margin: 0 auto; }

/* ============================================================
   WAVE 4 — Voice Studio, who-calls, sequence, calls, commitments
   ============================================================ */

/* ---- Voice Studio ---- */
.prem-tag { font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--gold-deep); background: var(--gold-soft); border:1px solid var(--gold); border-radius:4px; padding:2px 6px; margin-left:6px; vertical-align:1px; }
.voice-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:10px; margin-top:14px; }
.voice-card { display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left; padding:12px; border:1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--white); position:relative; transition: all .15s; }
.voice-card:hover { border-color: var(--gold); }
.voice-card.on { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-soft) inset; background: #FFFBF3; }
.vc-top { display:flex; align-items:center; justify-content:space-between; width:100%; }
.vc-name { font-weight:600; font-size:1.02rem; }
.vc-check { opacity:0; color:#fff; background: var(--gold); border-radius:50%; width:18px; height:18px; font-size:0.72rem; display:flex; align-items:center; justify-content:center; }
.voice-card.on .vc-check { opacity:1; }
.vc-vibe { font-size:0.82rem; color: var(--ink-soft); }
.vc-tone { font-size:0.7rem; color: var(--ink-faint); text-transform:uppercase; letter-spacing:0.05em; }
.vc-prev { margin-top:6px; font-size:0.76rem; color: var(--gold-deep); display:inline-flex; align-items:center; gap:3px; }
.vc-prev:hover { text-decoration:underline; }
.vc-prev.playing { color: var(--ok); }
.vs-panel { margin:14px 0; padding:16px; background: var(--cream); border-radius: var(--radius-sm); border:1px solid var(--line); }
.vs-script-h { font-weight:600; margin-bottom:12px; color: var(--ink); }
.vs-line { display:flex; gap:10px; margin-bottom:10px; }
.vs-n { flex:0 0 22px; height:22px; border-radius:50%; background: var(--gold); color:#fff; font-size:0.74rem; display:flex; align-items:center; justify-content:center; font-weight:600; }
.vs-lh { font-size:0.74rem; text-transform:uppercase; letter-spacing:0.06em; color: var(--gold-deep); }
.vs-lt { font-size:0.9rem; color: var(--ink-soft); line-height:1.5; }
.vs-coach { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }
.vs-chip { font-size:0.74rem; color: var(--ink-soft); background: var(--white); border:1px solid var(--line); border-radius:20px; padding:3px 10px; }

/* ---- Who-calls segmented control ---- */
.who-default { display:flex; align-items:center; justify-content:space-between; margin-top:14px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.who-lbl { font-weight:500; font-size:0.92rem; }
.who-grid { margin:12px 0; display:flex; flex-direction:column; gap:8px; }
.who-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.who-cat { font-size:0.92rem; color: var(--ink); display:flex; align-items:center; gap:6px; }
.seg { display:inline-flex; border:1px solid var(--line); border-radius: var(--radius-btn); overflow:hidden; background: var(--white); }
.seg-btn { padding:6px 12px; font-size:0.82rem; color: var(--ink-soft); border-right:1px solid var(--line); transition: all .12s; }
.seg-btn:last-child { border-right:none; }
.seg-btn.on { background: var(--blue); color:#fff; }
.seg-sm .seg-btn { padding:5px 10px; font-size:0.78rem; }

/* ---- Outreach sequence builder ---- */
.seq-modes { display:grid; grid-template-columns: repeat(3, 1fr); gap:8px; margin:14px 0 18px; }
/* Step 7 — "Who should we start with?" outreach pacing */
.sp-card { margin-bottom:18px; }
.sp-opts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:4px; }
@media (max-width:760px){ .sp-opts { grid-template-columns:1fr; } }
.sp-opt { display:flex; align-items:flex-start; gap:11px; text-align:left; padding:14px; border:1.5px solid var(--line); border-radius:var(--radius-sm); background:var(--white); cursor:pointer; transition:border-color .14s, box-shadow .14s, background .14s; }
.sp-opt:hover { border-color:var(--gold); }
.sp-opt.on { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-soft) inset; background:#FFFBF3; }
.sp-radio { flex:0 0 auto; width:17px; height:17px; border-radius:50%; border:2px solid var(--line); margin-top:2px; transition:border-color .14s; position:relative; }
.sp-opt.on .sp-radio { border-color:var(--gold-deep); }
.sp-opt.on .sp-radio::after { content:""; position:absolute; inset:3px; border-radius:50%; background:var(--gold-deep); }
.sp-opt-tx { display:flex; flex-direction:column; gap:4px; min-width:0; }
.sp-opt-t { font-weight:600; font-size:0.92rem; color:var(--ink); display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.sp-opt-d { font-size:0.79rem; color:var(--ink-soft); line-height:1.45; }
.sp-cap { display:flex; align-items:center; gap:7px; margin-top:14px; font-size:0.8rem; color:var(--ink-soft); }
.sp-cap .ico { color:var(--gold-deep); }
.sp-buckets { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:10px; }
@media (max-width:760px){ .sp-buckets { grid-template-columns:1fr; } }
.sp-bucket { border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--cream); padding:12px; }
.sp-bucket-h { display:flex; align-items:center; gap:6px; font-size:0.82rem; font-weight:700; color:var(--ink); margin-bottom:9px; }
.sp-bucket-h .ico { color:var(--gold-deep); }
.sp-bucket-n { margin-left:auto; font-size:0.72rem; font-weight:700; color:var(--ink-soft); background:var(--white); border:1px solid var(--line); border-radius:999px; padding:1px 8px; }
.sp-b-now { background:#FBF6EC; }
.sp-bucket-body { display:flex; flex-direction:column; gap:7px; }
.sp-chip { display:flex; align-items:center; gap:7px; width:100%; text-align:left; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:var(--white); font-family:'Jost',sans-serif; font-size:0.84rem; color:var(--ink); cursor:grab; transition:border-color .14s, box-shadow .14s, opacity .14s; }
.sp-chip:hover { border-color:var(--gold); box-shadow:var(--shadow-sm); }
.sp-chip:active { cursor:grabbing; }
.sp-chip.dragging { opacity:.4; border-style:dashed; }
.sp-chip .ico { color:var(--gold-deep); }
.sp-chip-move { margin-left:auto; color:var(--ink-faint); display:inline-flex; cursor:grab; }
.sp-chip:hover .sp-chip-move { color:var(--gold-deep); }
.sp-bucket.drag-over { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-soft) inset; background:#FFFBF3; }
.sp-bucket.drag-over .sp-bucket-body { outline:2px dashed var(--gold); outline-offset:3px; border-radius:8px; }
.sp-empty { font-size:0.78rem; color:var(--ink-faint); padding:10px 2px; text-align:center; border:1px dashed var(--line); border-radius:8px; }
/* Step 7 — recommended / everyone read-only preview (transparency) */
.sp-preview { margin-top:14px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--cream); padding:13px 15px; display:flex; flex-direction:column; gap:12px; }
.sp-pre-row { display:flex; flex-direction:column; gap:7px; }
.sp-pre-h { display:flex; align-items:center; gap:7px; font-size:0.8rem; font-weight:700; color:var(--ink); }
.sp-pre-h .ico { color:var(--gold-deep); }
.sp-pre-chips { display:flex; flex-wrap:wrap; gap:6px; }
.sp-prechip { display:inline-flex; align-items:center; gap:5px; font-size:0.8rem; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:999px; padding:4px 11px; }
.sp-prechip .ico { color:var(--gold-deep); font-size:0.9rem; }
.sp-pre-note { display:flex; align-items:center; gap:7px; font-size:0.79rem; color:var(--ink-soft); padding-top:2px; }
.sp-pre-note .ico { color:var(--gold-deep); }
/* dashboard chart — paced (next/later) categories read calm, not stalled */
.wsc-seg.wsc-soft { background:#E7EAE1 !important; }
.wsc-col:hover .wsc-seg.wsc-soft { filter:none; }
.wsc-total.paced { color:var(--ink-faint); }
.wsc-total.paced .ico { font-size:0.95rem; color:var(--ink-soft); }
/* chart footer: view dropdown + legend + pace key */
.ws-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; }
.ws-viewsel-wrap { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:999px; padding:5px 12px; background:var(--white); color:var(--ink-soft); font-size:0.82rem; }
.ws-viewsel-wrap .ico { color:var(--gold-deep); }
.ws-viewsel { border:none; background:transparent; font-family:'Jost',sans-serif; font-size:0.84rem; font-weight:600; color:var(--ink); cursor:pointer; outline:none; }
.ws-pacekey { display:inline-flex; align-items:center; gap:14px; margin-left:8px; padding-left:14px; border-left:1px solid var(--line-soft); }
.ws-pk { display:inline-flex; align-items:center; gap:5px; font-size:0.78rem; color:var(--ink-soft); }
.ws-pk .ico { color:var(--ink-faint); font-size:0.92rem; }
.ws-dot-pace { display:inline-flex; align-items:center; justify-content:center; width:auto; height:auto; background:none; }
.ws-dot-pace .ico { color:var(--ink-soft); font-size:0.95rem; }
.ws-empty { padding:30px 10px; color:var(--ink-faint); font-size:0.88rem; align-self:center; }
@media (max-width:680px){ .ws-foot { flex-direction:column; align-items:flex-start; } }
/* dashboard "Needs your attention" — next-wave reminder */
.nd-wave { display:flex; align-items:center; gap:11px; padding:11px 13px; border:1px solid var(--gold); border-radius:12px; background:var(--gold-soft); margin-bottom:8px; }
.nd-wave-ic { flex:0 0 auto; display:inline-flex; color:var(--gold-deep); }
.nd-wave-tx { flex:1; min-width:0; font-size:0.86rem; color:var(--ink); }
.nd-wave-cta { flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; font-size:0.82rem; font-weight:600; color:var(--gold-deep); background:none; border:none; cursor:pointer; white-space:nowrap; }
.nd-wave-cta:hover { text-decoration:underline; }
.seq-mode { text-align:left; padding:12px; border:1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.seq-mode:hover { border-color: var(--gold); }
.seq-mode.on { border-color: var(--gold); box-shadow:0 0 0 2px var(--gold-soft) inset; background:#FFFBF3; }
.seq-mode .sm-l { font-weight:600; font-size:0.92rem; }
.seq-mode .sm-d { font-size:0.78rem; color: var(--ink-soft); margin-top:3px; line-height:1.4; }
.seq-list { display:flex; flex-direction:column; gap:0; margin-top:6px; }
.seq-step { display:flex; align-items:flex-start; gap:12px; padding:12px 0; border-bottom:1px dashed var(--line); position:relative; }
.seq-step:last-child { border-bottom:none; }
.seq-day { flex:0 0 64px; }
.seq-daynum { font-family:"Cormorant Garamond",serif; font-size:1.5rem; font-weight:600; color: var(--gold-deep); line-height:1; }
.seq-daylbl { font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; color: var(--ink-faint); }
.seq-mid { flex:1; }
.seq-ch { display:inline-flex; align-items:center; gap:5px; font-weight:600; font-size:0.92rem; }
.seq-ch .pill-ch { font-size:0.66rem; text-transform:uppercase; letter-spacing:0.05em; padding:2px 7px; border-radius:20px; background: var(--gold-soft); color: var(--gold-deep); }
.seq-desc { font-size:0.82rem; color: var(--ink-soft); margin-top:3px; line-height:1.45; }
.seq-tag { display:inline-block; font-size:0.68rem; color: var(--ink-faint); margin-top:4px; }
.seq-remove { flex:0 0 auto; color: var(--ink-faint); font-size:0.95rem; padding:4px 8px; border-radius:6px; }
.seq-remove:hover { color: var(--rose); background: var(--cream); }
.seq-addrow { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.seq-note { font-size:0.78rem; color: var(--ink-soft); background: var(--cream); border-radius: var(--radius-sm); padding:10px 12px; margin-top:14px; line-height:1.5; }
/* Step 7 — inline "add a step" form (uses the app's standard .field / .field-h / .chip / .btn) */
.seq-addform { margin-top:12px; padding:16px; background: var(--ivory); border:1px solid var(--line); border-radius: var(--radius-sm); }
.seq-addform .field-h { display:flex; align-items:center; gap:7px; margin-bottom:14px; }
.seq-addform .field-h .ico { color: var(--gold-deep); }
.seq-addform .field { margin-bottom:14px; }
.seq-addform .saf-row { display:flex; gap:12px; }
.seq-addform .saf-day { flex:0 0 104px; margin-bottom:0; }
.seq-addform .saf-label { flex:1; margin-bottom:0; }
.seq-addform .saf-off { font-size:0.66rem; color: var(--ink-faint); font-style:italic; }
.seq-addform .saf-actions { display:flex; gap:8px; margin-top:16px; }
.seq-addform .saf-actions .btn { padding:10px 16px; font-size:0.86rem; white-space:nowrap; }
.chan-toggles { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.chan-chip { display:flex; align-items:center; gap:8px; padding:9px 12px; border:1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.chan-chip.on { border-color: var(--gold); background:#FFFBF3; }
.chan-chip .cc-mid { display:inline-flex; align-items:baseline; gap:7px; flex-wrap:wrap; }
.chan-chip .cc-l { font-weight:600; font-size:0.9rem; }
.chan-chip .cc-sep { font-size:0.7rem; color: var(--ink-faint); }
.chan-chip .cc-cost { font-size:0.7rem; color: var(--ink-faint); }
.chan-chip .cc-rank { font-size:0.7rem; color:#fff; background: var(--gold); border-radius:50%; width:18px; height:18px; display:flex; align-items:center; justify-content:center; }

/* ---- Calls view (modal) ---- */
.calls-aggr { display:grid; grid-template-columns: repeat(4, 1fr); gap:10px; margin:6px 0 18px; }
.ca-stat { text-align:center; padding:12px; background: var(--cream); border-radius: var(--radius-sm); }
.ca-stat b { display:block; font-family:"Cormorant Garamond",serif; font-size:1.7rem; color: var(--ink); }
.ca-stat span { font-size:0.74rem; color: var(--ink-soft); }
.callcat { border:1px solid var(--line); border-radius: var(--radius-sm); margin-bottom:10px; overflow:hidden; }
.callcat-h { width:100%; display:flex; align-items:center; justify-content:space-between; padding:12px 14px; background: var(--white); font-weight:600; }
.callcat-h .cc-n { font-size:0.8rem; color: var(--ink-soft); font-weight:400; }
.callrow { display:flex; align-items:center; gap:10px; padding:10px 14px; border-top:1px solid var(--line); width:100%; text-align:left; background: var(--white); }
.callrow:hover { background: var(--cream); }
.callrow .cr-name { flex:1; font-weight:500; font-size:0.9rem; }
.call-badge { font-size:0.72rem; padding:2px 9px; border-radius:20px; }
.call-badge.ok { background:#E7F0E4; color: var(--ok); }
.call-badge.warn { background:#F6ECD8; color: var(--warn); }
.call-badge.muted { background: var(--cream); color: var(--ink-faint); }
.cr-dur { font-size:0.74rem; color: var(--ink-faint); }

/* call transcript (vendor modal) */
.call-block { background: var(--cream); border-radius: var(--radius-sm); padding:12px 14px; margin-top:10px; }
.call-block-h { display:flex; align-items:center; justify-content:space-between; font-weight:600; font-size:0.9rem; }
.call-sum { font-size:0.86rem; color: var(--ink-soft); line-height:1.5; margin:8px 0; padding:8px 10px; background: var(--white); border-left:3px solid var(--gold); border-radius:4px; }
.tx-toggle { font-size:0.78rem; color: var(--gold-deep); margin-top:4px; }
.tx-line { font-size:0.84rem; margin:6px 0; line-height:1.45; }
.tx-who { font-weight:600; color: var(--ink); }
.tx-line.agent .tx-who { color: var(--gold-deep); }

/* ---- Commitments ---- */
.commit-line { display:flex; align-items:center; gap:8px; padding:10px 12px; border-radius: var(--radius-sm); margin-top:8px; font-size:0.88rem; }
.commit-line.ok { background:#E7F0E4; color: var(--ok); }
.commit-line.due { background:#FBF1DC; color: var(--warn); }
.commit-line.over { background:#F6E2DF; color:#B4736E; }
.commit-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }

/* ---- Tabbed "Needs your attention" ---- */
.att-h-static { font-family:"Cormorant Garamond",serif; font-size:1.3rem; font-weight:600; color:var(--gold-deep); display:flex; align-items:center; gap:8px; padding:2px 2px 6px; }
.att-h-static .att-n { background:var(--gold); color:#fff; }
.att-tab-empty { opacity:.5; }
.att-tab-empty .att-n { background:var(--ink-faint); }
.att-tabs { display:flex; gap:4px; margin:10px 0 4px; flex-wrap:wrap; }
.att-tab { padding:6px 12px; font-size:0.82rem; color: var(--ink-soft); border-radius:20px; border:1px solid var(--line); background: var(--white); display:inline-flex; align-items:center; gap:6px; }
.att-tab.on { background: var(--espresso); color: var(--gold-soft); border-color: var(--espresso); }
.att-tab .att-n { background: var(--gold); color:#fff; }
.att-tab.on .att-n { background: var(--gold); color:#fff; }
.ig-item { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius: var(--radius-sm); margin-top:8px; background: var(--white); }
.ig-item .ig-tx { flex:1; font-size:0.88rem; }
.gone-note { font-size:0.82rem; color: var(--ink-soft); padding:8px 0; }
.att-prompt { font-size:0.86rem; color: var(--ink-faint); padding:18px 8px; text-align:center; display:flex; align-items:center; justify-content:center; gap:8px; }

/* Overview header dropdown */
.ovmenu { position:relative; }
.ov-pop { position:absolute; top:calc(100% + 8px); right:0; width:440px; max-width:92vw; max-height:72vh; overflow-y:auto; overflow-x:hidden; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-lg); padding:18px; z-index:60; }
.ov-pop .reason-row { display:flex; flex-wrap:wrap; gap:7px; }
.ov-pop .mini-pipe .mp .ml { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ov-pop-h { font-family:"Cormorant Garamond",serif; font-size:1.3rem; font-weight:600; display:flex; align-items:center; gap:8px; margin-bottom:12px; }
@media (max-width:560px){ .ov-pop { position:fixed; left:8px; right:8px; width:auto; } }

/* dashboard brand mark (top-left of utility row) */
.db-mark { font-family:"Cormorant Garamond",serif; font-size:1.5rem; font-weight:700; letter-spacing:0.5px; color:var(--ink); }
.db-dot { color:var(--gold); }

/* days-to-go on the left, under the couple info */
.ds-days { display:inline-flex; align-items:center; gap:6px; margin-top:8px; font-size:0.84rem; color:var(--gold-deep); }
.ds-days b { font-family:"Cormorant Garamond",serif; font-size:1.15rem; font-weight:700; color:var(--ink); }
.ds-days .ico { color:var(--gold-deep); }

/* Activity dropdown */
.actmenu { position:relative; }
.act-pop { position:absolute; top:calc(100% + 8px); right:0; width:340px; max-width:92vw; max-height:70vh; overflow-y:auto; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-lg); padding:16px; z-index:60; }
.act-pop-h { font-weight:600; font-size:0.9rem; display:flex; align-items:center; gap:8px; margin-bottom:10px; color:var(--ink); }
.feed-empty { font-size:0.82rem; color:var(--ink-soft); line-height:1.5; display:flex; gap:8px; align-items:flex-start; padding:6px 2px; }
@media (max-width:560px){ .act-pop { position:fixed; left:8px; right:8px; width:auto; } }

/* Search results dropdown */
.searchmenu { position:relative; }
.search-pop { position:absolute; top:calc(100% + 8px); left:0; width:360px; max-width:92vw; max-height:60vh; overflow-y:auto; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow-lg); padding:6px; z-index:60; }
.search-row { display:flex; align-items:center; gap:10px; width:100%; text-align:left; padding:8px 10px; border-radius:10px; }
.search-row:hover { background:var(--cream); }
.sr-thumb { flex:0 0 38px; width:38px; height:38px; border-radius:8px; background-size:cover; background-position:center; }
.sr-text { flex:1; min-width:0; display:flex; flex-direction:column; }
.sr-name { font-weight:600; font-size:0.9rem; }
.sr-meta { font-size:0.76rem; color:var(--ink-soft); }
.sr-stage { font-size:0.72rem; color:var(--ink-faint); white-space:nowrap; }
.search-empty { font-size:0.84rem; color:var(--ink-soft); padding:12px; }
@media (max-width:560px){ .search-pop { position:fixed; left:8px; right:8px; width:auto; } }

@media (max-width: 720px) {
  .voice-grid { grid-template-columns: repeat(2, 1fr); }
  .seq-modes { grid-template-columns: 1fr; }
  .calls-aggr { grid-template-columns: repeat(2, 1fr); }
  .who-row { flex-direction:column; align-items:flex-start; gap:4px; }
}

/* ---- Step 4 collapsible "dropdown" cards ---- */
.s4card { padding-top: 4px; padding-bottom: 4px; }
.s4card.open { padding-bottom: 20px; }
.s4head { width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 2px; text-align:left; }
.s4title { font-family:"Cormorant Garamond",serif; font-size:1.32rem; font-weight:600; color: var(--ink); display:flex; align-items:center; gap:8px; }
.s4right { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.s4sum { font-size:0.82rem; color: var(--ink-faint); }
.s4body { padding-top: 4px; }
@media (max-width:600px){ .s4sum { display:none; } .s4title { font-size:1.15rem; } }

/* ============================================================
   ONBOARDING REDESIGN — sidebar shell + Step layouts
   ============================================================ */
.ob { display:grid; grid-template-columns: 312px 1fr; min-height:100vh; }
.ob-side { background: var(--white); border-right:1px solid var(--line); padding:26px 20px; display:flex; flex-direction:column; gap:20px; position:sticky; top:0; height:100vh; }
/* Step 0 · Planning path (pre-step) */
.ob-prestep { display:inline-flex; align-items:center; gap:7px; align-self:flex-start; font-size:0.68rem; text-transform:uppercase; letter-spacing:1px; font-weight:700; color:var(--gold-deep); background:var(--gold-soft); border-radius:999px; padding:6px 12px; }
.ob-prestep .ico { color:var(--gold-deep); font-size:0.95rem; }
.ob-step.upcoming { opacity:0.55; }
.ob-step.upcoming:hover { background:transparent; }
.pp-kicker { display:inline-flex; align-items:center; gap:6px; font-size:0.72rem; text-transform:uppercase; letter-spacing:1px; font-weight:700; color:var(--gold-deep); margin-bottom:6px; }
.pp-kicker .ico { color:var(--gold-deep); }
.pp-doors { display:flex; flex-direction:column; gap:14px; margin-top:24px; max-width:740px; }
.pp-door { position:relative; display:flex; align-items:center; gap:18px; text-align:left; width:100%; background:var(--white); border:1.5px solid var(--line); border-radius:var(--radius); padding:20px 22px; box-shadow:var(--shadow-sm); cursor:pointer; transition:border-color .15s, box-shadow .15s, transform .15s; }
.pp-door:hover { border-color:var(--gold); box-shadow:var(--shadow-md); transform:translateY(-1px); }
.pp-door-ic { flex:0 0 52px; height:52px; border-radius:14px; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; }
.pp-door-ic .ico { color:var(--gold-deep); font-size:1.5rem; }
.pp-door-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; padding-right:18px; }
.pp-door-title { font-family:var(--serif); font-size:1.3rem; font-weight:600; color:var(--ink); line-height:1.15; }
.pp-door-sub { font-size:0.9rem; color:var(--ink-soft); line-height:1.45; }
.pp-door-go { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; font-size:0.85rem; font-weight:600; color:var(--gold-deep); white-space:nowrap; }
.pp-door-go .ico { transition:transform .15s; }
.pp-door:hover .pp-door-go .ico { transform:translateX(3px); }
.pp-skip { display:inline-flex; align-items:center; gap:6px; margin-top:20px; font-size:0.9rem; font-weight:600; color:var(--ink-soft); background:transparent; border:none; cursor:pointer; }
.pp-skip:hover { color:var(--gold-deep); }
@media (max-width:560px){ .pp-door { flex-wrap:wrap; gap:12px; } .pp-door-go { width:100%; } }
.ob-brand { display:flex; align-items:center; gap:12px; }
.ob-brandtext { display:flex; flex-direction:column; }
.ob-name { font-family:"Cormorant Garamond",serif; font-size:1.5rem; font-weight:700; letter-spacing:1px; color:var(--ink); line-height:1; }
.ob-tag { font-size:0.58rem; letter-spacing:2px; text-transform:uppercase; color:var(--ink-faint); margin-top:4px; }
.crest { display:block; flex:0 0 auto; }
.ob-steps { display:flex; flex-direction:column; gap:2px; }
.ob-step { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:12px; text-align:left; transition:background .15s; position:relative; }
.ob-step:hover { background:var(--cream); }
.ob-step.active { background:var(--gold-soft); }
.ob-step.active::before { content:""; position:absolute; left:0; top:9px; bottom:9px; width:3px; border-radius:0 3px 3px 0; background:var(--gold); }
.ob-num { position:relative; flex:0 0 30px; height:30px; border-radius:50%; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:0.85rem; color:var(--ink-faint); background:var(--ivory); }
.ob-step.active .ob-num { background:var(--gold); border-color:var(--gold); color:#fff; }
.ob-step.done .ob-num { background:var(--green); border-color:var(--green); color:#fff; }
.ob-step.done .ob-num .ico { color:#fff; }
/* completed steps keep their number + a small corner check badge */
.ob-check { position:absolute; top:-4px; right:-4px; width:15px; height:15px; border-radius:50%; background:var(--green-deep); border:2px solid #fff; display:flex; align-items:center; justify-content:center; }
.ob-check .ico { font-size:0.58rem; color:#fff; }
.ob-stxt { display:flex; flex-direction:column; line-height:1.25; }
.ob-st { font-weight:600; font-size:0.9rem; color:var(--ink); }
.ob-step.active .ob-st { color:var(--gold-deep); }
.ob-ss { font-size:0.72rem; color:var(--ink-faint); }
.ob-why { background:var(--cream); border-radius:14px; padding:14px 15px; margin-top:auto; }
.ob-why-h { font-weight:600; font-size:0.85rem; display:flex; align-items:center; gap:6px; margin-bottom:5px; color:var(--ink); }
.ob-why-t { font-size:0.77rem; color:var(--ink-soft); line-height:1.5; }
.ob-photo { height:150px; border-radius:14px; background-size:cover; background-position:center; box-shadow: var(--shadow-sm); filter: sepia(0.28) saturate(1.1) brightness(1.04); }

.ob-main { padding:30px 40px 70px; max-width:1140px; }
.ob-top { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:26px; flex-wrap:wrap; }
.ob-progress { flex:1; min-width:200px; }
.ob-step-of { font-size:0.72rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold-deep); }
.ob-bar { display:flex; gap:8px; margin-top:9px; max-width:420px; }
.ob-bar i { flex:1; height:4px; border-radius:4px; background:var(--sand); }
.ob-bar i.done { background:var(--gold); }
.ob-bar i.active { background:var(--gold); opacity:.45; }
.ob-actions { display:flex; gap:10px; }
.ob-actions .btn { padding:11px 20px; }
.ob-body .kicker { display:none; }
.ob-body .wiz-step h2 { font-size:2.6rem; margin-bottom:6px; }
.ob-body .wiz-step .sub { margin-bottom:26px; }
.ob-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.card-h { font-family:"Cormorant Garamond",serif; font-size:1.4rem; font-weight:600; display:flex; align-items:center; gap:9px; margin-bottom:18px; color:var(--ink); }
.lbl-mini { font-size:0.72rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--gold-deep); margin-bottom:8px; }
.ob-fieldnote { font-size:0.75rem; color:var(--ink-faint); margin-top:7px; }
.date-seg { display:inline-flex; margin-bottom:10px; }
.date-body { display:flex; flex-direction:column; gap:8px; }
.dateopt-row { display:flex; gap:8px; align-items:center; }
.dateopt-row .dateopt-input { flex:1; }
.cd-tbd { font-size:1.6rem !important; }
.date-note { font-size:0.78rem; color:var(--gold-deep); background:var(--gold-soft); border-radius:10px; padding:9px 12px; margin-top:8px; line-height:1.45; display:flex; gap:7px; align-items:flex-start; }
.date-note .ico { color:var(--gold-deep); flex:0 0 auto; margin-top:1px; }
.snap-edit { font-size:0.78rem; color:var(--gold-deep); display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border-radius:8px; }
.snap-edit:hover { background:var(--cream); }
.ds-reset { color:var(--ink-faint); }
.ob-sub2 { font-size:0.88rem; color:var(--ink-soft); margin-bottom:16px; }
.ob-grid-budget { display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:16px; align-items:start; }
.ob-note-card { background:var(--gold-soft); border-radius:12px; padding:13px 15px; font-size:0.82rem; color:var(--ink-soft); line-height:1.5; }
.ob-footnote { background:var(--cream); border-radius:14px; padding:16px 18px; margin-top:18px; font-size:0.88rem; color:var(--ink-soft); line-height:1.55; }
.ob-nav { display:flex; justify-content:space-between; margin-top:28px; }
@media (max-width: 900px) {
  .ob { grid-template-columns:1fr; }
  .ob-side { position:static; height:auto; }
  .ob-photo { display:none; }
  .ob-grid2, .ob-grid-budget { grid-template-columns:1fr; }
  .ob-main { padding:24px 18px 60px; }
  .ob-body .wiz-step h2 { font-size:2rem; }
}

/* ---- Step 2: vendor tiles + priorities ---- */
.pill-count { font-size:0.74rem; background:var(--blue-soft); color:var(--blue-deep); border-radius:20px; padding:4px 11px; font-family:"Jost",sans-serif; font-weight:500; }
.vtile-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(98px, 1fr)); gap:10px; align-items:stretch; }
/* each vendor is a cell: the find-toggle tile + an optional "Booked?" footer */
.vcell { display:flex; flex-direction:column; gap:6px; }
.vcell .vtile { flex:1 1 auto; }
.vt-book { display:flex; align-items:center; justify-content:center; gap:5px; width:100%; padding:6px 6px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:0.68rem; color:var(--ink-soft); cursor:pointer; transition:all .14s; line-height:1.15; }
.vt-book:hover { border-color:var(--green); color:var(--green); background:#FAFBF7; }
.vt-book .ico { font-size:0.82rem; }
.vt-book.on { border-color:var(--green); background:#FAFBF7; color:var(--green); font-weight:600; }
.vt-book.on .ico { color:var(--green); }
.vtile { position:relative; display:flex; flex-direction:column; align-items:center; gap:8px; padding:16px 8px; border:1.5px solid var(--line); border-radius:14px; background:var(--white); transition:all .14s; text-align:center; }
.vtile:hover { border-color:var(--gold); }
.vtile.on { border-color:var(--blue); background:#FAFBFD; box-shadow:0 0 0 2px var(--blue-soft) inset; }
.vt-ico .ico { font-size:1.6rem; color:var(--gold-deep); }
.vt-l { font-size:0.8rem; color:var(--ink); line-height:1.2; }
.vt-check { position:absolute; top:7px; right:7px; width:19px; height:19px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .14s; }
.vt-check .ico { color:#fff; font-size:0.74rem; }
.vtile.on .vt-check { opacity:1; }
.vtile-add { border-style:dashed; border-color:var(--sand); color:var(--gold-deep); flex-direction:row; margin-top:10px; width:100%; padding:13px; }
.vtile-add .vt-ico .ico { font-size:1.1rem; }
.vtile-add .vt-l { font-size:0.88rem; color:var(--gold-deep); }

/* ---- Step 3: palette + vibe + inspiration ---- */
.pref-stack { display:flex; flex-direction:column; gap:18px; margin-top:18px; }
.swatch-row { display:flex; flex-wrap:wrap; gap:12px; }
.swatch-btn { position:relative; width:46px; height:46px; border-radius:50%; border:2px solid transparent; padding:3px; transition:transform .12s; }
.swatch-btn:hover { transform:scale(1.06); }
.swatch-btn .sw-dot { display:block; width:100%; height:100%; border-radius:50%; background:var(--sw); box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); }
.swatch-btn.on { border-color:var(--green); }
.swatch-btn .sw-check { position:absolute; top:-4px; right:-4px; width:20px; height:20px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; opacity:0; }
.swatch-btn .sw-check .ico { color:#fff; font-size:0.72rem; }
.swatch-btn.on .sw-check { opacity:1; }
.upload-zone { display:flex; align-items:center; gap:14px; border:1.5px dashed var(--sand); border-radius:14px; padding:22px; background:var(--ivory); color:var(--ink-soft); }
.upload-zone .ico { color:var(--gold-deep); }
.uz-txt { font-weight:600; color:var(--ink); }
.uz-note { display:block; font-weight:400; font-size:0.78rem; color:var(--ink-faint); margin-top:2px; }

/* ---- Step 6: review card grid ---- */
.rv-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.rv-card { padding:20px; }
.rv-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.rv-head .card-h { font-size:1.18rem; }
.rv-edit { font-size:0.78rem; color:var(--gold-deep); display:inline-flex; align-items:center; gap:4px; padding:4px 8px; border-radius:8px; }
.rv-edit:hover { background:var(--cream); }
.rv-list { display:flex; flex-direction:column; gap:9px; }
.rv-row { display:flex; flex-direction:column; gap:1px; }
.rv-k { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-faint); }
.rv-v { font-size:0.9rem; color:var(--ink); line-height:1.4; }
.gs-list { display:flex; flex-direction:column; gap:12px; }
.gs-row { display:flex; align-items:flex-start; gap:10px; font-size:0.88rem; color:var(--ink-soft); line-height:1.4; }
.gs-ic { flex:0 0 30px; height:30px; border-radius:50%; background:var(--blue-soft); display:flex; align-items:center; justify-content:center; }
.gs-ic .ico { color:var(--blue-deep); }
.gs-soon { display:flex; align-items:flex-start; gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid var(--line); font-size:0.82rem; color:var(--ink-soft); line-height:1.45; }
.gs-soon .ico { color:var(--gold-deep); flex:0 0 auto; margin-top:1px; }
@media (max-width: 1000px){ .rv-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width: 680px){ .rv-grid { grid-template-columns:1fr; } }

/* ---- Dashboard: concierge briefing + recommends row ---- */
.brief-card { display:flex; gap:16px; align-items:flex-start; background:linear-gradient(135deg, #FFFCF6, var(--gold-soft)); border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; margin-bottom:18px; box-shadow:var(--shadow-sm); }
.brief-ic { flex:0 0 46px; height:46px; border-radius:50%; background:var(--white); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); }
.brief-body { flex:1; }
.brief-body h3 { font-family:"Cormorant Garamond",serif; font-size:1.4rem; font-weight:600; margin-bottom:5px; }
.brief-body p { font-size:0.92rem; color:var(--ink-soft); line-height:1.5; margin-bottom:14px; }
.brief-actions { display:flex; gap:10px; flex-wrap:wrap; }
.brief-actions .btn { padding:10px 18px; font-size:0.84rem; }
.recs-row { margin:18px 0; }
.recs-head { font-family:"Cormorant Garamond",serif; font-size:1.4rem; font-weight:600; display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.recs-sub { font-family:"Jost",sans-serif; font-size:0.78rem; font-weight:400; color:var(--ink-faint); letter-spacing:0; }
.recs-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.rec-card { display:flex; flex-direction:column; align-items:stretch; text-align:left; background:var(--white); border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:all .15s; box-shadow:var(--shadow-sm); }
.rec-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:var(--gold); }
.rec-thumb { display:block; height:120px; background-size:cover; background-position:center; }
.rec-body { display:flex; flex-direction:column; gap:3px; padding:12px 14px; flex:1; }
.rec-tag { font-size:0.64rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold-deep); }
.rec-card .rec-name { font-family:"Jost",sans-serif; font-weight:600; font-size:0.98rem; color:var(--ink); padding:0; }
.rec-fitline { display:flex; align-items:center; gap:6px; font-size:0.78rem; color:var(--ink-soft); margin-top:2px; }
.rec-dot { width:7px; height:7px; border-radius:50%; background:var(--green); }
.rec-fitline.bad .rec-dot { background:var(--warn); }
.rec-cardfoot { display:flex; justify-content:space-between; align-items:center; margin-top:8px; }
.rec-match { font-size:0.78rem; color:var(--blue-deep); font-weight:600; }
.rec-view { font-size:0.78rem; color:var(--gold-deep); font-weight:600; }
@media (max-width: 1000px){ .recs-cards { grid-template-columns:repeat(2,1fr); } }
@media (max-width: 560px){ .recs-cards { grid-template-columns:1fr; } .brief-card { flex-direction:column; } }

/* ---- Deploy / transition screen ---- */
.deploy2 { max-width:760px; margin:0 auto; padding:48px 24px 80px; text-align:center; }
.dep-brand { display:flex; flex-direction:column; align-items:center; margin-bottom:18px; }
.dep-h { font-size:2.6rem; margin-bottom:8px; }
.dep-sub { color:var(--ink-soft); max-width:48ch; margin:0 auto 30px; font-size:1.02rem; line-height:1.5; }
.dep-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-md); padding:24px 26px; text-align:left; }
.dep-card-head { display:flex; align-items:center; gap:14px; padding-bottom:18px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.dch-ic { flex:0 0 46px; height:46px; border-radius:50%; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; }
.dch-text { flex:1; }
.dch-t { font-family:"Cormorant Garamond",serif; font-size:1.4rem; font-weight:600; }
.dch-s { font-size:0.82rem; color:var(--ink-faint); }
.dep-pill { display:inline-flex; align-items:center; gap:7px; font-size:0.8rem; color:var(--green-deep); background:var(--green-soft); border-radius:20px; padding:6px 13px; white-space:nowrap; }
.dep-steps { display:flex; flex-direction:column; }
.dep-row { display:flex; align-items:center; gap:14px; padding:16px 4px; border-bottom:1px solid var(--line-soft); position:relative; }
.dep-row:last-child { border-bottom:none; }
.dep-node { flex:0 0 40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1.5px solid var(--line); background:var(--ivory); }
.dep-node .ico { color:var(--ink-faint); }
.dep-row.complete .dep-node { background:var(--gold); border-color:var(--gold); }
.dep-row.complete .dep-node .ico { color:#fff; }
.dep-row.active .dep-node { border-color:var(--gold); background:var(--white); }
.dep-rtext { flex:1; }
.dep-rt { font-weight:600; font-size:0.98rem; color:var(--ink); }
.dep-rs { font-size:0.84rem; color:var(--ink-soft); }
.dep-stat { font-size:0.84rem; white-space:nowrap; display:inline-flex; align-items:center; gap:6px; }
.dep-stat.ok { color:var(--green-deep); }
.dep-stat.ok .ico { color:var(--green); }
.dep-stat.active { color:var(--gold-deep); }
.dep-stat.pending { color:var(--ink-faint); }
.dep-spin { width:14px; height:14px; border-radius:50%; border:2px solid var(--gold-soft); border-top-color:var(--gold); display:inline-block; animation:depspin .8s linear infinite; }
.dep-spin.gold { width:18px; height:18px; }
@keyframes depspin { to { transform:rotate(360deg); } }
.dep-mid { margin:30px 0; }
.dep-mid-ic { width:40px; height:40px; border-radius:50%; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; margin:0 auto 10px; }
.dep-mid-t { font-family:"Cormorant Garamond",serif; font-size:1.5rem; font-weight:600; }
.dep-mid-s { font-size:0.9rem; color:var(--ink-soft); margin-top:4px; }
.dep-foot { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; background:var(--cream); border-radius:var(--radius); padding:18px; text-align:left; }
.dep-fcard { display:flex; gap:10px; align-items:flex-start; }
.dep-fic { flex:0 0 34px; height:34px; border-radius:50%; background:var(--white); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); }
.dep-fh { font-weight:600; font-size:0.86rem; }
.dep-ft { font-size:0.78rem; color:var(--ink-soft); line-height:1.4; }
@media (max-width: 620px){ .dep-foot { grid-template-columns:1fr; } .dep-h { font-size:2rem; } }

/* ---- Dashboard: Budget Snapshot + Coming Up ---- */
.dash-info { display:flex; flex-direction:column; gap:16px; }
.dash-info .card { padding:18px 20px; }
.dash-info .card-h { font-size:1.18rem; margin-bottom:14px; }
.snap-rows { display:flex; flex-direction:column; gap:9px; }
.snap-row { display:flex; justify-content:space-between; align-items:center; font-size:0.9rem; color:var(--ink-soft); }
.snap-row b { color:var(--ink); font-size:1rem; }
.snap-bar { height:7px; border-radius:7px; background:var(--cream); overflow:hidden; margin-top:14px; }
.snap-bar i { display:block; height:100%; background:linear-gradient(90deg, var(--gold), var(--gold-deep)); border-radius:7px; transition:width .5s; }
.snap-btn { width:100%; margin-top:14px; padding:10px; font-size:0.84rem; }
.cu-row { display:flex; gap:12px; align-items:center; padding:9px 0; border-bottom:1px solid var(--line-soft); }
.cu-row:last-child { border-bottom:none; }
.cu-date { flex:0 0 48px; text-align:center; background:var(--cream); border-radius:10px; padding:7px 0; }
.cu-mo { display:block; font-size:0.62rem; letter-spacing:1px; color:var(--gold-deep); font-weight:600; }
.cu-dy { display:block; font-family:"Cormorant Garamond",serif; font-size:1.3rem; font-weight:600; line-height:1; color:var(--ink); }
.cu-t { font-weight:600; font-size:0.9rem; }
.cu-s { font-size:0.78rem; color:var(--ink-soft); }
.cu-empty { font-size:0.86rem; color:var(--ink-soft); display:flex; align-items:center; gap:8px; padding:8px 0; }
@media (max-width: 760px){ .dash-info { grid-template-columns:1fr; } }

/* ---- Not pursuing: reason tags, breakdown chips, picker ---- */
.reason-tag { display:inline-flex; align-items:center; gap:4px; font-size:0.72rem; color:#9C6B66; background:#F6E7E4; border-radius:20px; padding:2px 9px; }
.reason-tag .ico { color:#9C6B66; font-size:0.85rem; }
.ov-hint { font-weight:400; font-size:0.78rem; color:var(--ink-faint); }
.reason-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.reason-chip { display:inline-flex; align-items:center; gap:6px; font-size:0.8rem; color:var(--ink-soft); background:var(--white); border:1px solid var(--line); border-radius:20px; padding:6px 12px; transition:all .14s; }
.reason-chip:hover { border-color:var(--blue); }
.reason-chip.on { background:var(--blue); border-color:var(--blue-deep); color:#fff; }
.reason-chip.on .ico { color:#fff; }
.reason-chip .rc-n { background:var(--cream); color:var(--ink); border-radius:20px; font-size:0.7rem; padding:1px 7px; font-weight:600; }
.reason-chip.on .rc-n { background:rgba(255,255,255,.25); color:#fff; }
.reason-chip.clear { color:var(--ink-faint); border-style:dashed; }
.ro-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ro-opt { display:flex; align-items:center; gap:9px; padding:13px 14px; border:1.5px solid var(--line); border-radius:var(--radius-sm); background:var(--white); text-align:left; font-size:0.9rem; color:var(--ink); transition:all .14s; }
.ro-opt:hover { border-color:var(--blue); background:#FAFBFD; }
.ro-opt .ico { color:var(--gold-deep); }
.bb-row { display:flex; gap:10px; flex-wrap:wrap; }
.bb-alt { background:transparent; }
@media (max-width:520px){ .ro-grid { grid-template-columns:1fr; } }

/* ---- Dashboard mockup match: hero grid, thumbnail, favorites, pipeline section ---- */
.ds-id { display:flex; align-items:center; gap:14px; }
.ds-thumb { flex:0 0 64px; width:64px; height:64px; border-radius:14px; background-size:cover; background-position:center; box-shadow:var(--shadow-sm); filter:sepia(.18) saturate(1.08); }
.ds-idtext { min-width:0; }
.fav-btn .ico { color:#B4736E; }
.fav-badge { background:#B4736E; }

.hero-grid {
  display:grid;
  grid-template-columns: 1.3fr 1.05fr 1fr;
  grid-template-areas:
    "brief attn rail"
    "recs  recs rail";
  gap:18px; align-items:stretch; margin-bottom:18px;
}
.hg-brief { grid-area:brief; } .hg-attn { grid-area:attn; } .hg-recs { grid-area:recs; } .hg-rail { grid-area:rail; }
.hero-brief .brief-card { margin-bottom:0; height:100%; }
.hero-attn .attention { margin:0; height:100%; }
.hero-attn .att-list { max-height:300px; overflow-y:auto; }
.hg-rail { justify-content:flex-start; }
.hg-recs .recs-row { margin:0; }
@media (max-width: 1100px){
  .hero-grid { grid-template-columns:1fr 1fr; grid-template-areas:"brief attn" "recs recs" "rail rail"; }
  .dash-info { flex-direction:row; } .dash-info .card { flex:1; }
}
@media (max-width: 720px){
  .hero-grid { grid-template-columns:1fr; grid-template-areas:"brief" "attn" "recs" "rail"; }
  .dash-info { flex-direction:column; }
}

.pipeline-section { margin-top:6px; }
.pipe-head { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:12px; }
.pipe-head h3 { font-family:"Cormorant Garamond",serif; font-size:1.5rem; font-weight:600; display:flex; align-items:center; gap:8px; }
.pipe-head .toolbar-filters { margin:0; display:flex; gap:10px; flex-wrap:wrap; }
.pipe-head-l { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
/* Outreach / Readiness toggle */
.pipe-toggle { display:inline-flex; background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:3px; }
.pt-seg { display:inline-flex; align-items:center; gap:6px; padding:7px 15px; border:none; background:none; border-radius:999px; cursor:pointer; font-family:inherit; font-size:0.85rem; color:var(--ink-soft); }
.pt-seg .ico { font-size:1rem; }
.pt-seg.on { background:var(--white); color:var(--ink); box-shadow:var(--shadow-sm); font-weight:600; }
.pt-seg.on .ico { color:var(--gold-deep); }

/* ===== Readiness scorecard ===== */
.readiness-board { min-width:560px; }
.rc-headrow, .rc-row { display:grid; grid-template-columns:1fr 84px 128px 92px 116px; align-items:center; gap:10px; }
.rc-pricecell { justify-self:center; min-width:0; }
.rc-headrow { padding:0 8px 10px; }
.rc-row .rc-cell { text-align:center; justify-self:center; }
.rc-h { background:var(--white); border:1px solid var(--line); cursor:pointer; font-family:var(--sans); font-size:0.66rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); padding:6px 12px; border-radius:999px; display:inline-flex; align-items:center; gap:5px; justify-self:center; transition:all .12s; }
.rc-h:first-child { justify-self:start; }
.rc-h:hover { border-color:var(--gold); color:var(--gold-deep); }
.rc-h.on { background:var(--gold-soft); border-color:var(--gold-soft); color:var(--gold-deep); font-weight:700; }
.rc-h .rc-arrow { display:inline-flex; }
.rc-h .rc-arrow .ico { font-size:0.85rem; }
.rc-h .rc-arrow.dim { opacity:.4; }
.rc-h:hover .rc-arrow.dim { opacity:.7; }

/* Compare tool sort control */
.cmp-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 0 12px; }
.cmp-toolbar .cmp-caption { margin:0; flex:1; min-width:200px; }
.cmp-sortwrap { display:inline-flex; align-items:center; gap:7px; font-size:0.8rem; color:var(--ink-soft); white-space:nowrap; }
.cmp-sort { padding:7px 12px; }
.rc-cat { font-family:"Cormorant Garamond",serif; font-size:1.15rem; color:var(--gold-deep); display:flex; align-items:center; gap:8px; margin:16px 0 8px; padding:0 2px; }
.rc-cat .ico { color:var(--gold-deep); }
.rc-catn { font-size:0.72rem; font-family:var(--sans); color:var(--ink-faint); background:var(--cream); border-radius:20px; padding:1px 9px; }
.rc-row { width:100%; text-align:left; background:var(--white); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:8px; cursor:pointer; }
.rc-row:hover { border-color:var(--gold); box-shadow:var(--shadow-sm); }
.rc-row.is-ready { background:#FAFBF7; border-color:#D8E4CF; }
.rc-name { font-weight:600; font-size:0.92rem; display:flex; flex-direction:column; gap:1px; }
.rc-name .pc-star { color:var(--gold); }
.rc-city { font-weight:400; font-size:0.76rem; color:var(--ink-faint); }
.rc-cell { width:30px; height:30px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:0.95rem; }
.rc-cell.ok { background:var(--green-soft); color:var(--green-deep); }
.rc-cell.bad { background:#FBE9E3; color:#A6543F; }
.rc-cell.none { background:var(--cream); color:var(--ink-faint); }
.rc-status { justify-self:center; }
.rc-badge { font-size:0.74rem; font-weight:600; padding:4px 11px; border-radius:20px; background:var(--cream); color:var(--ink-soft); white-space:nowrap; display:inline-flex; align-items:center; gap:4px; }
.rc-badge.ready { background:var(--green-soft); color:var(--green-deep); }
.rc-badge.gate { background:#FBE9E3; color:#A6543F; }
.rc-empty { text-align:center; color:var(--ink-faint); padding:30px; }
.dash-foot { text-align:center; font-size:0.82rem; color:var(--ink-soft); padding:16px 12px 0; display:flex; align-items:center; justify-content:center; gap:8px; }
.dash-foot .ico { color:#B4736E; }

/* pipeline card favorite heart */
.pcard { position:relative; }
.pc-fav { position:absolute; top:8px; right:8px; z-index:2; width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.86); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); opacity:.85; }
.pc-fav .ico { color:var(--ink-faint); font-size:0.95rem; }
.pc-fav:hover { opacity:1; }
.pc-fav.on { background:#F6E7E4; }
.pc-fav.on .ico { color:#B4736E; }
.m-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:6px 0 4px; }
.m-fav.on { border-color:#D9B7B1; color:#B4736E; background:#FBF2F0; }
.m-fav.on .ico { color:#B4736E; }

/* favorites shortlist modal */
.fav-list { display:flex; flex-direction:column; gap:8px; }
.fav-row { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--white); transition:all .14s; }
.fav-row:hover { border-color:var(--gold); }
.fav-thumb { flex:0 0 48px; width:48px; height:48px; border-radius:10px; background-size:cover; background-position:center; }
.fav-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.fav-name { font-weight:600; font-size:0.95rem; }
.fav-meta { font-size:0.78rem; color:var(--ink-soft); }
.fav-price { font-size:0.84rem; color:var(--ink); white-space:nowrap; }
.fav-x { flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:#F6E7E4; display:flex; align-items:center; justify-content:center; }
.fav-x .ico { color:#B4736E; }

/* ============================================================
   FULL-PAGE VENDOR VIEW
   ============================================================ */
.vpage-overlay { background: var(--ivory); display:block; padding:0; overflow-y:auto; }
.vpage { max-width:1180px; margin:0 auto; padding:22px 24px 70px; }
.vpage-bar { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:6px 0 14px; flex-wrap:wrap; }
.vp-back { display:inline-flex; align-items:center; gap:7px; font-weight:600; font-size:0.9rem; color:var(--gold-deep); padding:8px 12px; border-radius:var(--radius-btn); }
.vp-back:hover { background:var(--cream); }
.vp-crumb { font-size:0.82rem; color:var(--ink-faint); flex:1; text-align:center; }
.vp-crumb span { margin:0 6px; }
.vp-crumb b { color:var(--ink); }

.vpage-hero { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:center; margin:8px 0 26px; }
.vp-title { font-size:2.8rem; line-height:1.05; margin:6px 0 6px; }
.vp-statusline { font-size:0.92rem; color:var(--ink-soft); }
.vp-matchpct { color:var(--blue-deep); font-weight:600; }
.vp-status-booked { color:var(--green-deep); } .vp-status-passed { color:#B4736E; }
.vp-lede { font-size:1.02rem; color:var(--ink-soft); line-height:1.5; margin:12px 0 18px; max-width:48ch; }
.vp-cta-row { display:flex; gap:10px; flex-wrap:wrap; }
.vp-gallery {}
.vp-cover { height:300px; border-radius:16px; background-size:cover; background-position:center; box-shadow:var(--shadow-md); }
.vp-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:8px; }
.vp-th { height:62px; border-radius:9px; background-size:cover; background-position:center; }

/* ---------- Location autocomplete ---------- */
.ac-field { position: relative; }
.ac-sugg { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 40; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); padding: 6px; display: none; }
.ac-sugg.open { display: block; }
.ac-sugg-opt { display: flex; align-items: center; gap: 9px; width: 100%; padding: 9px 11px; border-radius: 9px; text-align: left; font-size: 0.92rem; color: var(--ink); cursor: pointer; background: none; border: none; }
.ac-sugg-opt:hover { background: var(--ivory); }
.ac-sugg-opt .ico { color: var(--gold-deep); font-size: 1rem; flex-shrink: 0; }
.ac-sugg-empty { padding: 12px; color: var(--ink-faint); font-size: 0.85rem; }

/* ---------- Branded vendor visuals (gradient + category icon) ---------- */
.vthumb { position: relative; display: grid !important; place-items: center; overflow: hidden; }
.vthumb-ic { display: grid; place-items: center; line-height: 0; }
.vthumb-ic .ico { color: rgba(255,255,255,.6); }
.rec-thumb.vthumb { height: 120px; }
.rec-thumb .vthumb-ic .ico { font-size: 2.7rem; }
.pc-thumb .vthumb-ic .ico { font-size: 1.3rem; }
.sr-thumb .vthumb-ic .ico { font-size: 1.05rem; }
.fav-thumb .vthumb-ic .ico { font-size: 1.35rem; }
.vp-cover .vthumb-ic .ico { font-size: 4.6rem; }

/* Pipeline card readability: clamp long names, clear the favorite heart */
.pc-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pc-top { padding-right: 22px; }

.vpage-body { display:grid; grid-template-columns:1fr 344px; gap:24px; align-items:start; }
.vp-main { min-width:0; }
.vp-main .sect:first-child { margin-top:0; }
.vp-rail { position:sticky; top:16px; display:flex; flex-direction:column; gap:16px; }
.vp-reco-h, .vp-next-h { font-family:"Cormorant Garamond",serif; font-size:1.3rem; font-weight:600; display:flex; align-items:center; gap:8px; margin-bottom:14px; }
.vp-ring-row { display:flex; flex-direction:column; align-items:center; gap:6px; margin-bottom:14px; }
.vp-ring { width:92px; height:92px; border-radius:50%; background:conic-gradient(var(--green) calc(var(--p)*1%), var(--line) 0); display:flex; align-items:center; justify-content:center; }
.vp-ring span { width:70px; height:70px; border-radius:50%; background:var(--white); display:flex; align-items:center; justify-content:center; font-family:"Cormorant Garamond",serif; font-size:1.5rem; font-weight:700; color:var(--green-deep); }
.vp-ring-lbl { font-size:0.74rem; text-transform:uppercase; letter-spacing:1px; color:var(--ink-faint); }
.vp-why { list-style:none; display:flex; flex-direction:column; gap:8px; margin:0 0 14px; }
.vp-why li { display:flex; align-items:flex-start; gap:8px; font-size:0.86rem; color:var(--ink-soft); line-height:1.4; }
.vp-why li .ico { color:var(--green); flex:0 0 auto; margin-top:1px; }
.vp-facts { display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.vp-fact { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line-soft); font-size:0.86rem; }
.vp-fact span { color:var(--ink-soft); } .vp-fact b { color:var(--ink); text-align:right; }
.vp-next-t { font-size:0.88rem; color:var(--ink-soft); line-height:1.5; margin-bottom:14px; }
.vp-next-btn { width:100%; }
.vp-stars { font-family:"Jost",sans-serif; font-size:0.78rem; font-weight:400; color:var(--gold-deep); margin-left:6px; }
.vp-reviews { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.vp-rev { background:var(--cream); border-radius:12px; padding:14px; }
.vp-rev-stars { color:var(--gold); font-size:0.8rem; letter-spacing:1px; }
.vp-rev-q { font-size:0.86rem; color:var(--ink); line-height:1.45; margin:6px 0; font-style:italic; }
.vp-rev-a { font-size:0.78rem; color:var(--ink-faint); }
@media (max-width: 980px){
  .vpage-hero { grid-template-columns:1fr; }
  .vpage-body { grid-template-columns:1fr; }
  .vp-rail { position:static; }
  .vp-reviews { grid-template-columns:1fr; }
  .vp-title { font-size:2.1rem; }
}

/* ===== Onboarding v2 ===== */
/* connected-circle progress (Step-7 style) */
.ob-dots { display:flex; align-items:center; gap:5px; margin-top:9px; }
.ob-dot { width:25px; height:25px; border-radius:50%; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:0.76rem; color:var(--ink-faint); background:var(--white); flex:0 0 auto; transition:all .2s; }
.ob-dot.active { background:var(--gold); border-color:var(--gold); color:#fff; box-shadow:0 0 0 3px var(--gold-soft); }
.ob-dot.done { background:var(--green); border-color:var(--green); color:#fff; }
.ob-dot.done .ico { color:#fff; }
.ob-dline { flex:1 1 auto; height:2px; background:var(--line); min-width:6px; }
.ob-dline.done { background:var(--green); }

/* three-column layouts for Priorities / Outreach Plan */
.ob-grid3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; }
@media(max-width:1000px){ .ob-grid3{ grid-template-columns:1fr; } }

/* search breadth (Step 2) */
.breadth-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.breadth-card { position:relative; text-align:left; border:1.5px solid var(--line); border-radius:12px; padding:14px; background:var(--white); display:flex; flex-direction:column; gap:4px; cursor:pointer; transition:all .15s; }
.bc-rec { position:absolute; top:9px; right:9px; font-size:0.56rem; letter-spacing:0.5px; text-transform:uppercase; color:var(--gold-deep); background:var(--gold-soft); border:1px solid var(--gold); border-radius:999px; padding:2px 7px; font-weight:700; }
.breadth-card:hover { border-color:var(--gold); }
.breadth-card.on { border-color:var(--green); background:#FAFBF7; box-shadow:0 0 0 2px var(--green-soft) inset; }
.bc-ic .ico { font-size:1.3rem; color:var(--gold-deep); }
.bc-l { font-weight:600; font-size:0.92rem; }
.bc-d { font-size:0.8rem; color:var(--ink-soft); line-height:1.35; }
@media(max-width:700px){ .breadth-row{ grid-template-columns:1fr; } }

/* ranked value priorities (Step 3) */
.rank-list { display:flex; flex-direction:column; gap:8px; }
.rank-row { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--white); }
.rank-num { flex:0 0 24px; height:24px; border-radius:50%; background:var(--gold-soft); color:var(--gold-deep); font-weight:600; font-size:0.8rem; display:flex; align-items:center; justify-content:center; }
.rank-ic .ico { color:var(--gold-deep); }
.rank-l { flex:1; font-size:0.9rem; }
.rank-moves { display:flex; flex-direction:column; gap:2px; }
.rank-mv { width:22px; height:18px; display:flex; align-items:center; justify-content:center; color:var(--ink-faint); border-radius:4px; cursor:pointer; }
.rank-mv:hover:not(:disabled) { background:var(--cream); color:var(--ink); }
.rank-mv:disabled { opacity:.3; cursor:default; }
.rank-grip { display:inline-flex; align-items:center; color:var(--ink-faint); cursor:grab; flex:0 0 auto; margin-right:-2px; }
.rank-grip:active { cursor:grabbing; }
.rank-grip .ico { font-size:1.1rem; }
.rank-row.dragging { opacity:0.45; }
.rank-row.drag-over { border-color:var(--gold); box-shadow:0 -2px 0 var(--gold) inset; }

/* must-have vendor priority chips (Step 3) */
.prio-grid { display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.prio-chip { display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border:1.5px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; font-size:0.9rem; color:var(--ink); transition:all .15s; }
.prio-chip:hover { border-color:var(--gold); }
.prio-chip.on { border-color:var(--gold); background:var(--gold-soft); font-weight:600; }
.prio-chip .pm-ic .ico { color:var(--gold-deep); }
.prio-chip .pm-star .ico { color:var(--ink-faint); font-size:0.95rem; }
.prio-chip.on .pm-star .ico { color:var(--gold-deep); }

/* Welcome / planning-path screen */
.welcome { min-height: calc(100vh - 62px); display:flex; align-items:center; justify-content:center; padding:48px 24px; background:var(--ivory); }
.wel-inner { max-width:1040px; width:100%; text-align:center; }
.wel-kicker { letter-spacing:3px; text-transform:uppercase; font-size:0.72rem; color:var(--gold-deep); margin-bottom:18px; display:inline-flex; align-items:center; gap:7px; }
.wel-title { font-family:var(--serif); font-size:2.6rem; color:var(--ink); line-height:1.12; margin-bottom:14px; }
.wel-sub { color:var(--ink-soft); font-size:1rem; max-width:580px; margin:0 auto 36px; line-height:1.6; }
.wel-doors { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; text-align:left; }
.wel-door { display:flex; flex-direction:column; align-items:flex-start; gap:11px; padding:26px 22px; border:1.5px solid var(--line); border-radius:16px; background:var(--white); cursor:pointer; transition:all .18s; min-height:210px; }
.wel-door:hover { border-color:var(--gold); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.wd-ic { width:46px; height:46px; border-radius:50%; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; }
.wd-ic .ico { font-size:1.5rem; color:var(--gold-deep); }
.wd-title { font-family:var(--serif); font-size:1.35rem; color:var(--ink); font-weight:600; line-height:1.2; }
.wd-sub { color:var(--ink-soft); font-size:0.9rem; line-height:1.5; flex:1; }
.wd-go { color:var(--gold-deep); font-weight:600; font-size:0.85rem; display:inline-flex; align-items:center; gap:6px; margin-top:2px; }
.wel-skip { margin-top:28px; color:var(--ink-soft); font-size:0.92rem; display:inline-flex; align-items:center; gap:6px; }
.wel-skip:hover { color:var(--ink); }
@media (max-width:880px){ .wel-doors{ grid-template-columns:1fr; } .wel-door{ min-height:0; } .wel-title{ font-size:2.1rem; } }

/* onboarding planning-path chip (change your door) */
.ob-pathchip { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; text-align:left; background:var(--gold-soft); border:1px solid var(--gold); border-radius:10px; padding:8px 12px; margin-bottom:14px; cursor:pointer; transition:filter .15s; }
.ob-pathchip:hover { filter:brightness(0.97); }
.ob-pathchip .opc-main { display:flex; flex-direction:column; line-height:1.25; }
.ob-pathchip .opc-l { font-size:0.6rem; text-transform:uppercase; letter-spacing:0.5px; color:var(--gold-deep); }
.ob-pathchip .opc-v { font-size:0.88rem; font-weight:600; color:var(--ink); }
.ob-pathchip .opc-edit { font-size:0.72rem; color:var(--gold-deep); font-weight:600; display:inline-flex; align-items:center; gap:3px; flex:0 0 auto; }
.ob-pathchip { position:relative; }
.ob-pathchip .opc-edit { align-items:center; gap:4px; }
.ob-pathchip .opc-edit .ico { font-size:0.78rem; }
.opc-tip { position:absolute; left:calc(100% + 14px); top:50%; transform:translateY(-50%) translateX(-4px); width:240px; background:var(--ink); color:#fff; border-radius:10px; padding:11px 13px; font-size:0.76rem; line-height:1.5; font-weight:400; opacity:0; visibility:hidden; transition:opacity .15s, transform .15s; z-index:60; box-shadow:var(--shadow-md); text-align:left; pointer-events:none; }
.opc-tip::before { content:""; position:absolute; left:-6px; top:50%; transform:translateY(-50%); border:6px solid transparent; border-right-color:var(--ink); border-left:0; }
.ob-pathchip:hover .opc-tip { opacity:1; visibility:visible; transform:translateY(-50%) translateX(0); }
@media (max-width:980px){ .opc-tip { display:none; } }

/* welcome door eye-icon explainer tooltip */
.wel-door { position:relative; }
.wd-info { position:absolute; top:14px; right:14px; color:var(--ink-faint); cursor:help; display:inline-flex; z-index:5; }
.wd-info .ico { font-size:1.05rem; }
.wd-info:hover { color:var(--gold-deep); }
.wd-tip { position:absolute; top:135%; right:0; width:270px; background:var(--ink); color:#fff; border-radius:10px; padding:12px 14px; font-size:0.78rem; line-height:1.5; opacity:0; visibility:hidden; transform:translateY(-4px); transition:all .15s; z-index:40; box-shadow:var(--shadow-md); text-align:left; font-weight:400; }
.wd-info:hover .wd-tip { opacity:1; visibility:visible; transform:translateY(0); }
.wd-tip-eg { display:flex; gap:6px; align-items:flex-start; margin-top:8px; padding-top:8px; border-top:1px solid rgba(255,255,255,.18); color:var(--gold-soft); }
.wd-tip-eg .ico { color:var(--gold-soft); font-size:0.9rem; flex:0 0 auto; }

/* budget manual entry + common-amounts dropdown */
/* custom budget combo — brand-styled */
.budget-input { width:100%; padding:13px 15px; padding-right:42px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--ivory); font-family:var(--sans); font-size:1rem; color:var(--ink); transition:border .15s, box-shadow .15s; }
.budget-input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(52,80,110,.14); background:#fff; }
.budget-combo { position:relative; }
.budget-combo-toggle { position:absolute; right:1px; top:1px; bottom:1px; width:40px; display:flex; align-items:center; justify-content:center; color:var(--ink-faint); border-radius:0 var(--radius-sm) var(--radius-sm) 0; cursor:pointer; }
.budget-combo-toggle:hover { color:var(--gold-deep); }
.budget-combo-toggle .ico { transition:transform .15s; }
.budget-combo.open .budget-combo-toggle .ico { transform:rotate(180deg); }
.budget-menu { position:absolute; top:calc(100% + 6px); left:0; right:0; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow-md); z-index:50; padding:6px; max-height:300px; overflow:auto; display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.budget-opt { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:10px 12px; border-radius:8px; font-family:var(--sans); font-size:0.92rem; color:var(--ink); text-align:left; cursor:pointer; transition:background .12s; }
.budget-opt:hover { background:var(--cream); }
.budget-opt.on { background:var(--gold-soft); color:var(--gold-deep); font-weight:600; }
.budget-opt .bo-ck .ico { color:var(--gold-deep); font-size:0.9rem; }

/* ===== Availability outlook + timeline expectations ===== */
/* outlook band chip */
.olk-chip { display:inline-flex; align-items:center; gap:5px; font-size:0.72rem; font-weight:600; letter-spacing:.2px;
  padding:3px 9px; border-radius:999px; border:1px solid transparent; white-space:nowrap; }
.olk-chip .ico { font-size:0.82rem; }
.olk-chip.t-ok     { background:rgba(110,142,104,0.12); color:#557050; border-color:rgba(110,142,104,0.28); }
.olk-chip.t-warn   { background:rgba(189,139,63,0.13);  color:var(--gold-deep); border-color:rgba(189,139,63,0.30); }
.olk-chip.t-scarce { background:#f6e9e2; color:#9a5b43; border-color:#e7cdbe; }

/* Step 2 "What to expect" card */
.olk-card .olk-list { margin-top:14px; display:flex; flex-direction:column; gap:2px; }
.olk-row { display:grid; grid-template-columns:minmax(0,1.1fr) auto minmax(0,1.7fr); align-items:center; gap:14px;
  padding:11px 4px; border-bottom:1px solid var(--line-soft); }
.olk-row:last-child { border-bottom:0; }
.olk-cat { display:flex; align-items:center; gap:9px; font-weight:600; color:var(--ink); font-size:0.92rem; }
.olk-ico { width:26px; height:26px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  background:var(--gold-soft); border-radius:7px; }
.olk-ico .ico { font-size:0.9rem; color:var(--gold-deep); }
.olk-band { display:flex; justify-content:flex-start; }
.olk-blurb { font-size:0.8rem; color:var(--ink-soft); line-height:1.45; }
.olk-lever { display:block; margin-top:4px; font-size:0.74rem; color:var(--gold-deep); font-weight:600; }
.olk-lever .ico { font-size:0.82rem; }

/* timeline expectation banner (Step 1 / Review / dashboard) */
.tl-banner { display:flex; gap:11px; align-items:flex-start; border-radius:var(--radius-sm,12px);
  padding:13px 15px; line-height:1.45; border:1px solid transparent; }
.tl-banner .ico { flex:0 0 auto; margin-top:2px; font-size:1.05rem; }
.tl-banner b { display:block; font-size:0.86rem; margin-bottom:2px; }
.tl-banner span { font-size:0.82rem; color:var(--ink-soft); }
.tl-banner.t-warn   { background:rgba(189,139,63,0.10);  border-color:rgba(189,139,63,0.28); }
.tl-banner.t-warn .ico, .tl-banner.t-warn b { color:var(--gold-deep); }
.tl-banner.t-scarce { background:#f8ece5; border-color:#e7cdbe; }
.tl-banner.t-scarce .ico, .tl-banner.t-scarce b { color:#9a5b43; }
.tl-inline { margin-top:12px; }
.tl-dash { margin:0 0 18px; }

/* outlook chip inside the Details table category cell */
.dvt-catmain { display:flex; align-items:center; gap:8px; }
.dvt-outlook { display:block; margin-top:5px; }
.dvt-outlook .olk-chip { font-size:0.68rem; padding:2px 7px; }

@media (max-width:640px) {
  .olk-row { grid-template-columns:1fr auto; row-gap:6px; }
  .olk-blurb { grid-column:1/-1; }
}

/* disclaimers, launch acknowledgment & legal footers */
.ob-disclaimer { display:flex; gap:7px; align-items:flex-start; font-size:0.74rem; color:var(--ink-faint); line-height:1.45; margin-top:8px; }
.ob-disclaimer .ico { color:var(--gold-deep); flex:0 0 auto; margin-top:1px; font-size:0.85rem; }
.vh-foot { display:flex; gap:8px; align-items:flex-start; font-size:0.76rem; color:var(--ink-faint); line-height:1.5; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.vh-foot .ico { color:var(--gold-deep); flex:0 0 auto; margin-top:1px; }
.launch-ack { margin-top:18px; border:1.5px solid var(--line); border-radius:12px; padding:16px 18px; background:var(--ivory); }
.launch-ack.err { border-color:var(--danger); background:#FBF2F0; }
.lack-check { display:flex; gap:11px; align-items:flex-start; cursor:pointer; font-size:0.9rem; line-height:1.5; color:var(--ink); }
.lack-check input[type=checkbox] { width:18px; height:18px; flex:0 0 auto; margin-top:2px; accent-color:var(--gold-deep); cursor:pointer; }
.lack-terms { font-size:0.8rem; color:var(--ink-soft); margin-top:10px; padding-left:29px; }
.lack-err { font-size:0.8rem; color:var(--danger); font-weight:600; margin-top:8px; padding-left:29px; display:flex; align-items:center; gap:5px; }
.lack-err .ico { color:var(--danger); }
.link-inline { color:var(--gold-deep); font-weight:600; text-decoration:underline; }
.link-inline:hover { color:var(--ink); }
.lp-foot-disclaimer { font-size:0.74rem; color:var(--ink-faint); line-height:1.5; margin-top:14px; max-width:680px; }
.legal-footer { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-top:8px; padding:14px 4px 28px; font-size:0.74rem; color:var(--ink-faint); }
.legal-footer .lf-links { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.legal-footer .lf-links button { color:var(--gold-deep); font-weight:600; }
.legal-footer .lf-links button:hover { color:var(--ink); }
.legal-footer .lf-dot { color:var(--ink-faint); }

/* field-label info "i" tooltip */
.info-tip { position:relative; display:inline-flex; align-items:center; cursor:help; color:var(--ink-faint); margin-left:5px; vertical-align:middle; }
.info-tip .ico { font-size:0.85rem; }
.info-tip:hover, .info-tip:focus { color:var(--gold-deep); outline:none; }
.it-pop { position:absolute; bottom:calc(100% + 9px); left:50%; transform:translateX(-50%) translateY(4px); width:240px; background:var(--ink); color:#fff; border-radius:10px; padding:11px 13px; font-size:0.74rem; line-height:1.5; font-weight:400; opacity:0; visibility:hidden; transition:opacity .15s, transform .15s; z-index:60; box-shadow:var(--shadow-md); text-align:left; pointer-events:none; text-transform:none; letter-spacing:0; }
.it-pop::after { content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--ink); }
.info-tip:hover .it-pop, .info-tip:focus .it-pop { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }

/* calendar section type badges */
.cal-badge { font-size:0.62rem; letter-spacing:0.5px; text-transform:uppercase; font-weight:700; border-radius:999px; padding:3px 9px; display:inline-flex; align-items:center; gap:4px; flex:0 0 auto; }
.cal-badge .ico { font-size:0.8rem; }
.cal-badge.calls { background:var(--blue-soft); color:var(--blue-deep); }
.cal-badge.calls .ico { color:var(--blue-deep); }
.cal-badge.visit { background:var(--green-soft); color:var(--green); }
.cal-badge.visit .ico { color:var(--green); }

/* Pinterest "coming soon" placeholder (Step 4) */
.pin-soon { position:relative; display:flex; align-items:center; gap:12px; margin-top:12px; padding:14px 16px; border:1.5px dashed var(--line); border-radius:12px; background:var(--cream); opacity:0.72; cursor:not-allowed; }
.pin-soon-badge { position:absolute; top:8px; right:10px; font-size:0.56rem; letter-spacing:0.5px; text-transform:uppercase; font-weight:700; color:var(--gold-deep); background:var(--gold-soft); border:1px solid var(--gold); border-radius:999px; padding:2px 8px; }
.pin-soon-ic { flex:0 0 auto; display:inline-flex; }
.pin-soon-ic .ico { font-size:1.7rem; color:#C8203B; }
.pin-soon-txt { display:flex; flex-direction:column; gap:1px; }
.pin-soon-txt b { font-size:0.9rem; color:var(--ink); }
.pin-soon-txt span { font-size:0.78rem; color:var(--ink-soft); line-height:1.4; }

/* Phase 1 — vendor activity log */
.vp-activity h4 { display:flex; align-items:center; }
.vp-activity .vp-prov { font-size:0.66rem; font-weight:500; color:var(--ink-faint); text-transform:none; letter-spacing:0; margin-left:auto; display:inline-flex; align-items:center; gap:4px; }
.vp-activity .vp-prov .ico { font-size:0.78rem; }
.va-sub { font-size:0.82rem; color:var(--ink-soft); margin:-4px 0 12px; line-height:1.45; }
.va-quick { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.va-qbtn { display:inline-flex; align-items:center; gap:6px; font-size:0.82rem; padding:8px 13px; border:1px solid var(--line); border-radius:999px; background:var(--white); color:var(--ink); cursor:pointer; transition:all .15s; }
.va-qbtn:hover { border-color:var(--gold); background:var(--gold-soft); }
.va-qbtn .ico { color:var(--gold-deep); }
.va-compose { display:flex; flex-direction:column; gap:8px; }
.va-compose .note-area { min-height:62px; }
.va-compose-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:space-between; }
.va-quote { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:9px; background:var(--white); padding:0 10px; }
.va-quote .va-q-pre { color:var(--ink-faint); font-size:0.9rem; }
.va-quote input { border:none; background:transparent; padding:9px 6px; width:150px; font-size:0.9rem; color:var(--ink); }
.va-quote input:focus { outline:none; }
.va-compose-btns { display:inline-flex; gap:8px; }
.va-list { display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.va-item { display:flex; align-items:flex-start; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--ivory); }
.va-ic { flex:0 0 auto; display:inline-flex; margin-top:1px; }
.va-ic .ico { color:var(--gold-deep); }
.va-body { flex:1; min-width:0; }
.va-t { font-size:0.86rem; color:var(--ink); line-height:1.45; }
.va-txt { color:var(--ink-soft); }
.va-z { font-size:0.72rem; color:var(--ink-faint); margin-top:2px; }
.va-you { color:var(--gold-deep); font-weight:600; }
.va-rm { flex:0 0 auto; color:var(--ink-faint); width:24px; height:24px; border-radius:6px; }
.va-rm:hover { background:#f0e3e3; color:#B06A6A; }

/* Phase 2 — overrides, take-over comms, reschedule */
.prov-tag { font-size:0.56rem; letter-spacing:0.4px; text-transform:uppercase; font-weight:700; color:var(--gold-deep); background:var(--gold-soft); border:1px solid var(--gold); border-radius:999px; padding:1px 6px; margin-left:5px; vertical-align:middle; }
.vp-editprice { margin-top:12px; font-size:0.82rem; color:var(--sage-deep); font-weight:600; display:inline-flex; align-items:center; gap:5px; }
.vp-editprice:hover { color:var(--ink); }
.vp-resched { display:flex; gap:8px; margin-top:10px; }
.vp-resched .btn { flex:1; padding:8px 10px; font-size:0.82rem; }
.vp-takeover { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:100%; margin-top:12px; padding:8px; font-size:0.8rem; font-weight:600; color:var(--ink-soft); border:1px dashed var(--line); border-radius:9px; }
.vp-takeover:hover { border-color:var(--gold); color:var(--ink); }
.comms-paused { display:flex; align-items:flex-start; gap:9px; background:var(--cream); border:1px solid var(--gold); border-left:3px solid var(--gold); border-radius:10px; padding:12px 14px; font-size:0.85rem; color:var(--ink-soft); line-height:1.45; margin-bottom:14px; }
.comms-paused .ico { color:var(--gold-deep); flex:0 0 auto; margin-top:1px; }
.budget-edit-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.budget-edit-row .ber-l { font-size:0.85rem; color:var(--ink-soft); flex:0 0 auto; }
.budget-edit-row .budget-field2 { flex:1; min-width:240px; }

/* adaptive date range + guest range (Step 1) */
.date-range2, .guest-range { display:flex; align-items:center; gap:10px; }
.date-range2 input, .guest-range input { flex:1; min-width:0; }
.date-range2 > span, .guest-range > span { color:var(--ink-faint); font-size:0.85rem; flex:0 0 auto; }
.mini-link { font-size:0.7rem; color:var(--gold-deep); font-weight:600; margin-left:8px; text-transform:none; letter-spacing:0; }
.mini-link:hover { color:var(--ink); }

/* Step 2 — booked vendors, venue lead, committed budget */
.vtile.booked { opacity:0.78; background:#FAF7F1; border:1.5px dashed var(--line) !important; cursor:default; }
.vtile.booked .vt-lock .ico { color:var(--ink-faint); }
.vtile.booked .vt-bk { font-size:0.6rem; letter-spacing:0.5px; text-transform:uppercase; color:var(--green); font-weight:700; }
/* "what does your venue include?" — real checkbox checklist (native :checked drives the mark) */
.vincl-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(185px, 1fr)); gap:8px; }
.vincl-item { display:flex; align-items:center; gap:10px; padding:10px 13px; border:1.5px solid var(--line); border-radius:11px; background:#fff; cursor:pointer; transition:all .14s; user-select:none; }
.vincl-item:hover { border-color:var(--gold); }
.vincl-item.on { border-color:var(--green); background:#FAFBF7; }
.vincl-cb { position:absolute; opacity:0; width:1px; height:1px; }
.vincl-box { flex:none; width:20px; height:20px; border:1.5px solid var(--sand); border-radius:6px; display:flex; align-items:center; justify-content:center; background:#fff; transition:all .12s; }
.vincl-box .ico { opacity:0; color:#fff; font-size:0.78rem; }
.vincl-cb:checked ~ .vincl-box { background:var(--green); border-color:var(--green); }
.vincl-cb:checked ~ .vincl-box .ico { opacity:1; }
.vincl-cb:focus-visible ~ .vincl-box { box-shadow:0 0 0 3px var(--green-soft); }
.vincl-l { font-size:0.9rem; color:var(--ink); }
/* preferred vendor list — upload → ingest → editable rows */
.pvl-upload { width:100%; }
.pvl-or { text-align:center; font-size:0.84rem; color:var(--ink-faint); margin-top:10px; }
.pvl-link { background:none; border:0; color:var(--blue); cursor:pointer; font-size:0.84rem; text-decoration:underline; padding:0; }
.pvl-processing { display:flex; align-items:center; gap:10px; padding:18px 4px; font-size:0.9rem; color:var(--ink-soft); }
.pvl-spin { flex:none; width:18px; height:18px; border:2px solid var(--gold-soft); border-top-color:var(--gold-deep); border-radius:50%; animation:pvlspin .7s linear infinite; }
@keyframes pvlspin { to { transform:rotate(360deg); } }
.pvl-list { display:flex; flex-direction:column; gap:8px; }
.pvl-row { display:flex; align-items:center; gap:8px; }
.pvl-row .pvl-src { flex:none; width:24px; height:24px; border-radius:6px; display:flex; align-items:center; justify-content:center; background:var(--gold-soft); }
.pvl-row .pvl-src .ico { color:var(--gold-deep); font-size:0.85rem; }
.pvl-row .pvl-src.manual { background:var(--cream); }
.pvl-row .pvl-name { flex:1 1 auto; min-width:0; padding:9px 11px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:0.9rem; }
.pvl-row .pvl-cat { flex:0 0 165px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:0.86rem; }
.pvl-row .pvl-rm { flex:none; width:28px; height:28px; border-radius:7px; color:var(--ink-faint); background:none; border:0; cursor:pointer; font-size:0.95rem; }
.pvl-row .pvl-rm:hover { background:#f0e3e3; color:#B06A6A; }
.pvl-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:2px; }
/* AI research dossier (vendor page) */
.doss-cta { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:14px 16px; border:1.5px dashed var(--gold); border-radius:12px; background:var(--cream); }
.doss-cta-txt { font-size:0.88rem; color:var(--ink-soft); flex:1 1 240px; }
.doss-loading { display:flex; align-items:center; gap:10px; padding:16px; font-size:0.9rem; color:var(--ink-soft); }
.doss-tag { font-size:0.58rem; letter-spacing:0.4px; text-transform:uppercase; font-weight:700; color:var(--gold-deep); background:var(--gold-soft); border:1px solid var(--gold); border-radius:999px; padding:2px 8px; margin-left:8px; vertical-align:middle; }
.doss { border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:#fff; }
.doss-top { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; padding-bottom:10px; border-bottom:1px solid var(--line); }
.doss-rate { display:flex; align-items:baseline; gap:8px; }
.doss-stars { font-size:1.25rem; font-weight:700; color:var(--gold-deep); }
.doss-rev { font-size:0.82rem; color:var(--ink-faint); }
.doss-meta { font-size:0.82rem; color:var(--ink-soft); }
.doss-cols { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:12px; }
@media (max-width:560px){ .doss-cols { grid-template-columns:1fr; } }
.doss-col-h { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.5px; font-weight:700; color:var(--ink-soft); display:flex; align-items:center; gap:5px; margin-bottom:6px; }
.doss-col-h .ico { color:var(--green); }
.doss-col.watch .doss-col-h .ico { color:var(--gold-deep); }
.doss-col ul { margin:0; padding-left:18px; }
.doss-col li { font-size:0.86rem; color:var(--ink); margin-bottom:3px; }
.doss-sources { margin-top:12px; font-size:0.78rem; color:var(--ink-faint); }
.doss-src { color:var(--blue); text-decoration:underline; cursor:pointer; }
.doss-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
.doss-note { font-size:0.74rem; color:var(--ink-faint); flex:1 1 240px; }
.doss-note .ico { color:var(--gold-deep); vertical-align:-0.1em; }
.doss-refresh { flex:none; background:none; border:1px solid var(--line); border-radius:8px; padding:5px 11px; font-size:0.78rem; color:var(--ink-soft); cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
.doss-refresh:hover { border-color:var(--gold); color:var(--gold-deep); }
/* full-page modal (Compare) */
.modal.modal-full { width:96vw; max-width:1240px; max-height:92vh; display:flex; flex-direction:column; }
.modal.modal-full .mbody { flex:1 1 auto; min-height:0; overflow-y:auto; }
.cmp-research { background:var(--gold-soft); border:1px solid var(--gold); border-radius:8px; padding:3px 9px; font-size:0.72rem; color:var(--gold-deep); font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.cmp-research:hover { background:var(--gold); color:#fff; }
.cmp-research .ico { font-size:0.8rem; }
.cmp-revn { color:var(--ink-faint); font-size:0.85em; }
/* batch research → completion state */
.br-donelist { display:flex; flex-direction:column; gap:6px; }
.br-doneitem { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 12px; border:1px solid var(--green-soft); background:#FAFBF7; border-radius:9px; }
.br-doneitem.more { justify-content:center; border-style:dashed; color:var(--ink-faint); font-size:0.84rem; }
.br-di-n { font-size:0.9rem; color:var(--ink); font-weight:600; }
.addv-form { display:grid; grid-template-columns:1fr 150px; gap:8px; margin-top:4px; }
.addv-form input, .addv-form select { padding:9px 11px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:0.9rem; }
.addv-form #avName { grid-column:1; }
.addv-form #avCat { grid-column:2; }
.addv-form #avContact { grid-column:1 / -1; }
.addv-form .btn { grid-column:1 / -1; }
.vp-fact-link { background:none; border:0; padding:0; color:var(--blue); font-size:0.82rem; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:4px; }
.vp-fact-link:hover { text-decoration:underline; }
/* batch research modal */
.br-filter { position:relative; margin-bottom:9px; }
.br-filter .br-search-ic { position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--ink-faint); display:flex; }
.br-filter .br-search-ic .ico { font-size:0.95rem; }
.br-filter #brSearch { width:100%; padding:9px 12px 9px 32px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:0.88rem; }
.br-cats { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:9px; }
.br-catchip { font-size:0.76rem; padding:5px 11px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink-soft); cursor:pointer; transition:all .12s; }
.br-catchip:hover { border-color:var(--blue); }
.br-catchip.on { background:var(--blue); border-color:var(--blue-deep); color:#fff; }
.br-count { color:var(--ink-faint); }
.br-tools { font-size:0.82rem; color:var(--ink-faint); margin-bottom:8px; }
.br-list { display:flex; flex-direction:column; gap:6px; max-height:46vh; overflow-y:auto; }
.br-row { display:flex; align-items:center; gap:10px; padding:9px 12px; border:1.5px solid var(--line); border-radius:10px; cursor:pointer; transition:all .12s; }
.br-row:hover { border-color:var(--gold); }
.br-row.on { border-color:var(--green); background:#FAFBF7; }
.br-cb { position:absolute; opacity:0; width:1px; height:1px; }
.br-box { flex:none; width:20px; height:20px; border:1.5px solid var(--sand); border-radius:6px; display:flex; align-items:center; justify-content:center; background:#fff; }
.br-box .ico { opacity:0; color:#fff; font-size:0.78rem; }
.br-cb:checked ~ .br-box { background:var(--green); border-color:var(--green); }
.br-cb:checked ~ .br-box .ico { opacity:1; }
.br-main { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.br-name { font-size:0.9rem; color:var(--ink); font-weight:600; }
.br-cat { font-size:0.74rem; color:var(--ink-faint); }
.br-done { flex:none; font-size:0.8rem; font-weight:700; color:var(--gold-deep); }
.br-pending { flex:none; font-size:0.74rem; color:var(--ink-faint); }
.btn.is-disabled { opacity:0.45; pointer-events:none; }
.vtile.included { opacity:0.9; background:#FAFBF7; border:1.5px dashed var(--green-soft) !important; cursor:default; }
.vtile.included .vt-lock .ico { color:var(--green); }
.vtile.included .vt-inc { font-size:0.6rem; letter-spacing:0.5px; text-transform:uppercase; color:var(--green); font-weight:700; }
.vtile.lead { border-color:var(--gold); box-shadow:0 0 0 1.5px var(--gold); }
.vt-lead { font-size:0.58rem; letter-spacing:0.5px; text-transform:uppercase; color:var(--gold-deep); border:1px solid var(--gold); border-radius:999px; padding:1px 6px; margin-left:5px; }
.ob-note-card.vlead { background:var(--gold-soft); border-color:var(--gold); }
/* Step 2 orienting note — a quick map of the four concepts on the page */
.vorient-card { background:var(--cream); border-color:var(--line); }
.vorient-h { display:flex; align-items:center; gap:8px; font-family:var(--serif); font-size:1.05rem; font-weight:600; color:var(--ink); margin-bottom:12px; }
.vorient-h .ico { color:var(--gold-deep); }
.vorient-list { display:grid; gap:10px; }
.vorient-item { display:flex; align-items:flex-start; gap:10px; font-size:0.86rem; color:var(--ink-soft); line-height:1.45; }
.vorient-item .ico { flex:0 0 auto; color:var(--gold-deep); margin-top:1px; }
.vorient-item b { color:var(--ink); font-weight:600; }
@media (min-width:760px) { .vorient-list { grid-template-columns:1fr 1fr; gap:10px 22px; } }
.bk-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.bk-row { border:1px solid var(--line); border-radius:10px; padding:9px 11px; }
.bk-row.on { border-color:var(--green); background:#FAFBF7; }
.bk-toggle { display:flex; align-items:center; gap:8px; width:100%; text-align:left; font-size:0.9rem; color:var(--ink); cursor:pointer; }
.bk-toggle .bk-ck .ico { color:var(--ink-faint); font-size:1.15rem; }
.bk-row.on .bk-toggle .bk-ck .ico { color:var(--green); }
.bk-toggle .bk-ic .ico { color:var(--gold-deep); }
.bk-fields { display:flex; gap:8px; margin-top:9px; }
.bk-fields input { flex:1; min-width:0; padding:7px 9px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:0.85rem; }
.bk-nudge { display:flex; align-items:center; gap:8px; margin-top:10px; font-size:0.78rem; color:var(--ink-soft); background:var(--cream); border-radius:8px; padding:8px 11px; }
.bk-nudge .ico { color:var(--gold-deep); flex:0 0 auto; }
.bk-nudge-x { margin-left:auto; font-size:0.74rem; color:var(--gold-deep); font-weight:600; flex:0 0 auto; }
.alloc-committed { font-size:0.82rem; color:var(--ink-soft); padding:0 0 9px; border-bottom:1px solid var(--line); margin-bottom:8px; }
.alloc-committed .ico { color:var(--green); }
.alloc-committed .ac-note { color:var(--warn); }
/* two titled sections inside the budget split: "Already booked" + "Still to book" */
.alloc-sec { margin-bottom:12px; }
.alloc-sec.booked { background:#FAFBF7; border:1px solid var(--green-soft); border-radius:12px; padding:9px 12px 5px; }
.alloc-sec-head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.6px; font-weight:700; color:var(--ink-soft); margin:0 0 5px; }
.alloc-sec-head .ico { color:var(--gold-deep); vertical-align:-0.15em; margin-right:3px; }
.alloc-sec.booked .alloc-sec-head .ico { color:var(--green); }
.alloc-sec-head.tobook { margin-top:2px; padding-top:2px; }
.alloc-sec-head .ash-note { text-transform:none; letter-spacing:0; font-weight:400; color:var(--ink-faint); font-size:0.74rem; }
/* footer summary — P&L-style waterfall: budget → deductions → what's left */
/* "we send from your email" connected-account row (Calendar step) */
.email-connect { display:flex; align-items:center; gap:12px; padding:12px 14px; border:1.5px solid var(--green-soft); background:#FAFBF7; border-radius:12px; margin-top:4px; }
.email-connect .ec-ic .ico { font-size:1.4rem; color:var(--gold-deep); }
.email-connect .ec-mid { flex:1; min-width:0; }
.email-connect .ec-input { width:100%; border:0; background:transparent; font-size:0.98rem; font-weight:600; color:var(--ink); padding:0; }
.email-connect .ec-input:focus { outline:none; }
.email-connect .ec-s { font-size:0.76rem; color:var(--ink-faint); margin-top:2px; }
.email-connect .ec-badge { flex:none; display:inline-flex; align-items:center; gap:4px; font-size:0.72rem; font-weight:700; color:var(--green); white-space:nowrap; }
.email-connect .ec-badge .ico { color:var(--green); }
.alloc-foot.pl { margin-top:10px; padding-top:10px; border-top:1px solid var(--line); display:flex; flex-direction:column; }
.pl-line { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:3px 0; font-size:0.86rem; }
.pl-line .pl-lbl { color:var(--ink-soft); display:flex; align-items:baseline; gap:6px; }
.pl-line .pl-lbl .ico { color:var(--ink-faint); font-size:0.9rem; align-self:center; }
.pl-line .pl-val { font-variant-numeric:tabular-nums; color:var(--ink); white-space:nowrap; }
.pl-note { font-size:0.64rem; color:var(--ink-faint); font-style:normal; text-transform:uppercase; letter-spacing:0.4px; }
.pl-budget { font-size:0.95rem; }
.pl-budget .pl-lbl, .pl-budget .pl-val { color:var(--ink); font-weight:700; }
.pl-comp .pl-lbl { padding-left:16px; }
.pl-subtotal { border-top:1px dashed var(--line); margin-top:3px; padding-top:6px; }
.pl-subtotal .pl-lbl, .pl-subtotal .pl-val { font-weight:600; color:var(--ink); }
.pl-final { border-top:2px solid var(--line); margin-top:3px; padding-top:8px; font-size:0.95rem; }
.pl-final .pl-lbl, .pl-final .pl-val { font-weight:700; }
.pl-final.ok .pl-lbl, .pl-final.ok .pl-val { color:var(--ok); }
.pl-final.warn .pl-lbl, .pl-final.warn .pl-val { color:var(--warn); }
.pl-final.over .pl-lbl, .pl-final.over .pl-val { color:var(--danger); }
.pl-final.over { animation:alarmpulse 1.1s ease-in-out infinite; }
.ab-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:5px 0; }
.ab-name { display:flex; align-items:center; gap:6px; font-size:0.9rem; color:var(--ink); min-width:0; }
.ab-name .al-ico { color:var(--ink-faint); display:inline-flex; flex:none; }
.ab-who { color:var(--ink-faint); font-size:0.82rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ab-tag { flex:none; font-size:0.58rem; letter-spacing:0.5px; text-transform:uppercase; color:var(--green); font-weight:700; border:1px solid var(--green-soft); border-radius:999px; padding:1px 7px; }
.ab-val { flex:none; background:none; border:0; cursor:pointer; font-size:0.85rem; }
.ab-edit { color:var(--ink); font-weight:600; }
.ab-edit:hover { text-decoration:underline; }
.ab-add { color:var(--gold-deep); border:1px dashed var(--sand); border-radius:8px; padding:3px 10px; }
.ab-add:hover { border-color:var(--gold); background:var(--cream); }
.alloc-why { margin-top:10px; font-size:0.8rem; color:var(--sage-deep); font-weight:600; }
.alloc-why:hover { color:var(--ink); }
.alloc-why-body { font-size:0.8rem; color:var(--ink-soft); line-height:1.55; margin-top:6px; }

/* Phase B — venue-first decision view */
.vh { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:24px; margin-bottom:18px; box-shadow:var(--shadow-sm); }
.vh-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.vh-kicker { letter-spacing:2px; text-transform:uppercase; font-size:0.7rem; color:var(--gold-deep); display:inline-flex; align-items:center; gap:6px; margin-bottom:8px; }
.vh-title { font-family:var(--serif); font-size:1.9rem; color:var(--ink); margin-bottom:6px; }
.vh-sub { color:var(--ink-soft); font-size:0.92rem; line-height:1.55; max-width:640px; }
.vh-toggle { display:flex; gap:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; flex:0 0 auto; }
.vh-seg { padding:8px 14px; font-size:0.85rem; color:var(--ink-soft); background:var(--white); }
.vh-seg.on { background:var(--gold-soft); color:var(--gold-deep); font-weight:600; }
.vh-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:1000px){ .vh-cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px){ .vh-cards{ grid-template-columns:1fr; } }
.vh-card { border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--white); display:flex; flex-direction:column; transition:all .15s; }
.vh-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.vh-cover { height:96px; position:relative; display:flex; align-items:center; justify-content:center; }
.vh-cover-ic .ico { font-size:2rem; color:rgba(255,255,255,.9); }
.vh-price { position:absolute; bottom:8px; right:10px; background:rgba(255,255,255,.92); border-radius:999px; padding:3px 10px; font-size:0.78rem; font-weight:700; color:var(--gold-deep); }
.vh-body { padding:14px 16px 16px; display:flex; flex-direction:column; gap:6px; flex:1; }
.vh-name { font-family:var(--serif); font-size:1.2rem; font-weight:600; color:var(--ink); }
.vh-city { font-size:0.8rem; color:var(--ink-faint); display:flex; align-items:center; gap:5px; }
.vh-city .ico { font-size:0.95rem; }
.vh-blurb { font-size:0.84rem; color:var(--ink-soft); line-height:1.45; }
.vh-fit { font-size:0.8rem; display:flex; align-items:center; gap:5px; margin-top:2px; }
.vh-fit.ok { color:var(--green); } .vh-fit.warn { color:var(--warn); }
.vh-dates-l { font-size:0.68rem; text-transform:uppercase; letter-spacing:0.5px; color:var(--ink-faint); margin-top:6px; }
.vh-dates { display:flex; flex-wrap:wrap; gap:6px; }
.vh-date { font-size:0.74rem; background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:3px 9px; color:var(--ink-soft); }
.vh-date.none { background:transparent; color:var(--ink-faint); }
.vh-book { margin-top:10px; width:100%; }
.vh-bydate { display:flex; flex-direction:column; gap:14px; }
.vh-dgroup { border:1px solid var(--line); border-radius:12px; padding:12px 14px; }
.vh-dgh { font-family:var(--serif); font-size:1.05rem; color:var(--ink); margin-bottom:8px; }
.vh-dgn { font-size:0.74rem; color:var(--ink-faint); font-family:var(--sans); }
.vh-dgv { display:flex; flex-wrap:wrap; gap:8px; }
.vh-chip { font-size:0.82rem; border:1px solid var(--line); border-radius:999px; padding:6px 13px; background:var(--white); color:var(--ink); transition:all .15s; }
.vh-chip:hover { border-color:var(--gold); background:var(--gold-soft); }
.vh-empty { color:var(--ink-faint); font-size:0.9rem; padding:20px; text-align:center; }
.staged { background:var(--cream); border:1px dashed var(--line); border-radius:var(--radius); padding:18px 22px; margin-bottom:18px; }
.staged-h { font-family:var(--serif); font-size:1.15rem; color:var(--ink); display:flex; align-items:center; gap:8px; }
.staged-sub { font-size:0.85rem; color:var(--ink-soft); margin-top:4px; line-height:1.5; }
.staged-grid { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.staged-chip { font-size:0.82rem; background:var(--white); border:1px solid var(--line); border-radius:999px; padding:5px 12px; color:var(--ink-soft); display:inline-flex; align-items:center; gap:6px; }
.staged-chip .ico { color:var(--gold-deep); }
.staged-star .ico { color:var(--gold-deep); font-size:0.8rem; }
.vbk-dates { display:flex; flex-direction:column; gap:8px; }
.vbk-date { text-align:left; padding:11px 14px; border:1.5px solid var(--line); border-radius:10px; background:var(--white); font-size:0.92rem; color:var(--ink); transition:all .15s; }
.vbk-date:hover { border-color:var(--gold); }
.vbk-date.on { border-color:var(--gold); background:var(--gold-soft); font-weight:600; }
.vlock-modal { text-align:center; }
.vlock-seal { font-size:2.6rem; color:var(--green); margin-bottom:6px; }
.vlock-seal .ico { color:var(--green); }
.vlock-note { background:var(--cream); border-radius:10px; padding:12px 14px; font-size:0.86rem; color:var(--ink-soft); line-height:1.5; }
.vlock-note .ico { color:var(--gold-deep); }
.vh-locked { background:#FAFBF7; border-color:var(--green); }
.vh-locked-row { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.vh-locked-seal .ico { font-size:2.2rem; color:var(--green); }
.vh-locked-row > div { flex:1; min-width:240px; }
.vh-golaunch { flex:0 0 auto; }

/* trade-off sliders (Step 3) */
.tradeoffs { display:flex; flex-direction:column; gap:16px; }
.tradeoff .to-labels { display:flex; justify-content:space-between; font-size:0.78rem; color:var(--ink-soft); margin-bottom:4px; }
.tradeoff input[type=range] { width:100%; accent-color:var(--blue); }

/* flexibility toggles (Step 3) */
.flex-list { display:flex; flex-direction:column; gap:8px; }
.flex-row { display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:var(--white); text-align:left; cursor:pointer; width:100%; }
.flex-row.on { border-color:var(--green); background:#FAFBF7; }
.fx-ic .ico { color:var(--gold-deep); }
.fx-l { flex:1; font-size:0.88rem; }
.fx-check .ico { color:var(--ink-faint); font-size:1.15rem; }
.flex-row.on .fx-check .ico { color:var(--green); }

/* style cards w/ real photos (Step 4) */
.style-grid { grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
.style-card { overflow:hidden; padding:0; cursor:pointer; }
.style-card .sc-img { height:140px; background-size:cover; background-position:center; position:relative; }
/* inspiration laid out side-by-side when the card runs full width */
.insp-2col { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; margin-top:4px; }
@media (max-width:760px){ .insp-2col { grid-template-columns:1fr; } }
.insp-2col .pin-soon { margin-top:0; height:100%; }
.sc-check { position:absolute; top:8px; right:8px; width:22px; height:22px; border-radius:50%; background:var(--green); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .15s; }
.sc-check .ico { color:#fff; font-size:0.8rem; }
.style-card.on .sc-check { opacity:1; }
.sc-meta { padding:9px 11px; }
.sc-meta .name { font-weight:600; font-size:0.88rem; }
.sc-meta .ex { font-size:0.74rem; color:var(--blue); margin-top:1px; }
.style-other-btn { display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding:11px 16px; border:1.5px dashed var(--sand); border-radius:12px; background:#fff; color:var(--gold-deep); font-size:0.9rem; cursor:pointer; transition:all .14s; }
.style-other-btn:hover { border-color:var(--gold); background:var(--cream); }
.style-other-btn.on { border-style:solid; border-color:var(--gold); background:var(--cream); color:var(--ink); }
.style-other-btn .ico { font-size:1rem; }
.sc-other { display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--cream); min-height:120px; }
.sc-other .ico { font-size:1.7rem; color:var(--gold-deep); }
.sc-other-t { font-size:0.76rem; color:var(--ink-soft); margin-top:3px; text-align:center; padding:0 8px; }

/* inspiration upload (Step 4) */
.upload-zone { width:100%; cursor:pointer; }
.insp-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px; }
.insp-th { height:58px; border-radius:8px; background-size:cover; background-position:center; }

/* "+ more" expander chip */
.chip.chip-more { border-style:dashed; color:var(--gold-deep); border-color:var(--sand); background:transparent; }

/* vertical channel + sequence-mode columns (Step 7) */
.chan-toggles.col { flex-direction:column; }
.chan-toggles.col .chan-chip { width:100%; }
.seq-modes.col { grid-template-columns:1fr; }

/* ===== Step 5 — Outreach Voice & Questions ===== */
.ob-grid-voice { display:grid; grid-template-columns:1.1fr 0.9fr; gap:18px; align-items:start; }
@media(max-width:1000px){ .ob-grid-voice{ grid-template-columns:1fr; } }
.vcol { display:flex; flex-direction:column; gap:18px; }
.vsec { padding:20px 22px; }
.vsec-head { display:flex; align-items:center; gap:11px; width:100%; background:none; border:none; padding:0; text-align:left; cursor:default; }
.vsec-btn { cursor:pointer; }
.vsec-num { width:28px; height:28px; border-radius:50%; border:1.5px solid var(--gold); color:var(--gold-deep); background:var(--gold-soft); display:flex; align-items:center; justify-content:center; font-weight:600; font-size:0.86rem; flex:0 0 auto; }
.vsec-ic { display:inline-flex; align-items:center; flex:0 0 auto; }
.vsec-ic .ico { font-size:1.4rem; color:var(--gold-deep); }
.vsec-title { font-family:var(--serif); font-size:1.4rem; color:var(--ink); font-weight:600; }
.vsec-caret { margin-left:auto; color:var(--ink-faint); }
.vsec-caret .ico { font-size:1.1rem; }

/* two-button "reach out as" selector */
.as-toggle { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
.as-btn { display:flex; align-items:center; gap:9px; padding:13px 15px; border:1.5px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; transition:all .15s; position:relative; }
.as-btn:hover { border-color:var(--gold); }
.as-btn.on { border-color:var(--green); background:#FAFBF7; box-shadow:0 0 0 2px var(--green-soft) inset; }
.as-btn .as-ic .ico { font-size:1.2rem; color:var(--gold-deep); }
.as-btn .as-l { font-size:0.92rem; font-weight:500; flex:1; }
.as-btn .as-ck { width:20px; height:20px; border-radius:50%; background:var(--green); color:#fff; display:none; align-items:center; justify-content:center; flex:0 0 auto; }
.as-btn .as-ck .ico { color:#fff; font-size:0.72rem; }
.as-btn.on .as-ck { display:flex; }
.as-note { font-size:0.82rem; color:var(--ink-soft); margin-top:8px; }
@media(max-width:520px){ .as-toggle{ grid-template-columns:1fr; } }

.vtoggles { margin-top:8px; border-top:1px solid var(--line); }
.vtoggles .toggle-row { border-bottom:1px solid var(--line); }
.vtoggles .toggle-row:last-child { border-bottom:none; }
.tl-ic { display:flex; align-items:center; gap:10px; }
.tl-ic .ico { font-size:1.2rem; color:var(--gold-deep); }

/* questions list — drag handle + trash */
.cq-handle { color:var(--ink-faint); cursor:grab; display:flex; align-items:center; }
.cq-handle .ico { font-size:1.1rem; }
.cq-row .cq-remove .ico { font-size:1rem; }

/* nested collapsibles inside Phone agent identity */
.subcol-list { display:flex; flex-direction:column; gap:10px; margin-top:14px; }
.subcol { border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.subcol.open { border-color:var(--sand); }
.subcol-head { display:flex; align-items:center; gap:11px; width:100%; padding:13px 14px; background:var(--white); border:none; cursor:pointer; text-align:left; }
.subcol-head:hover { background:var(--ivory); }
.subcol-ic .ico { font-size:1.25rem; color:var(--gold-deep); }
.subcol-txt { display:flex; flex-direction:column; flex:1; }
.subcol-t { font-weight:600; font-size:0.92rem; }
.subcol-s { font-size:0.79rem; color:var(--ink-soft); }
.subcol-caret { color:var(--ink-faint); }
.subcol-body { padding:4px 16px 16px; border-top:1px solid var(--line); }

/* ===== Step 6 — Calendar & Availability ===== */
.cal-connect.col { display:flex; flex-direction:column; gap:10px; margin:4px 0 12px; }
.cal-btn { display:flex; align-items:center; gap:12px; padding:13px 15px; border:1.5px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; width:100%; text-align:left; transition:all .15s; }
.cal-btn:hover { border-color:var(--gold); }
.cal-btn.connected { border-color:var(--green); background:#FAFBF7; }
.cal-brand { width:26px; height:26px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.cal-btn .cal-lbl { flex:1; font-size:0.93rem; font-weight:500; }
.cal-btn .cal-go { color:var(--ink-faint); }
.cal-btn .cal-check .ico { color:var(--green); font-size:1.25rem; }
.cal-sub2 { font-size:0.84rem; color:var(--ink-soft); margin-top:-4px; }

/* dual-calendar connect (one per partner) */
.cal-howto { display:flex; gap:9px; align-items:flex-start; background:var(--cream); border:1px solid var(--line); border-radius:12px; padding:12px 14px; font-size:0.82rem; line-height:1.5; color:var(--ink-soft); margin:4px 0 14px; }
.cal-howto .ico { color:var(--gold-deep); flex:0 0 auto; margin-top:1px; }
.cal-person { border:1.5px solid var(--line); border-radius:12px; padding:13px 14px; margin-bottom:10px; transition:all .15s; }
.cal-person.connected { border-color:var(--green); background:#FAFBF7; }
.cal-person-top { display:flex; align-items:center; gap:9px; margin-bottom:11px; }
.cal-ava { width:26px; height:26px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:0.75rem; font-weight:700; flex:0 0 auto; }
.cal-ava.p-a { background:var(--gold); } .cal-ava.p-b { background:var(--blue); }
.cal-person-name { font-weight:600; font-size:0.95rem; color:var(--ink); }
.cal-you { font-size:0.62rem; letter-spacing:0.5px; text-transform:uppercase; color:var(--ink-faint); border:1px solid var(--line); border-radius:999px; padding:1px 7px; margin-left:4px; vertical-align:1px; }
.cal-person-sub { font-weight:400; font-size:0.8rem; color:var(--ink-faint); }
.cal-person-status { margin-left:auto; font-size:0.78rem; color:var(--ink-faint); display:inline-flex; align-items:center; gap:4px; }
.cal-person-status.ok { color:var(--green); font-weight:600; }
.cal-person-status .ico { color:var(--green); }
.cal-prov-row { display:flex; gap:8px; flex-wrap:wrap; }
.cal-prov { display:inline-flex; align-items:center; gap:7px; padding:8px 12px; border:1.5px solid var(--line); border-radius:10px; background:var(--white); cursor:pointer; font-size:0.85rem; color:var(--ink); transition:all .15s; }
.cal-prov:hover { border-color:var(--gold); }
.cal-prov.on { border-color:var(--green); background:#F2F6EC; font-weight:600; }
.cal-prov .cp-ck .ico { color:var(--green); font-size:1rem; }
.cal-prov .cp-l { white-space:nowrap; }

.day-row { display:flex; gap:10px; flex-wrap:wrap; }
.day-chip { display:inline-flex; align-items:center; gap:7px; padding:9px 14px; border:1.5px solid var(--line); border-radius:10px; background:var(--white); cursor:pointer; font-size:0.88rem; transition:all .15s; }
.day-chip:hover { border-color:var(--gold); }
.day-chip .ico { color:var(--ink-soft); }
.day-chip.on { border-color:var(--green); background:#FAFBF7; }
.day-chip.on .ico { color:var(--green-deep); }
.day-chip .dc-ck { width:18px; height:18px; border-radius:50%; background:var(--green); display:inline-flex; align-items:center; justify-content:center; }
.day-chip .dc-ck .ico { color:#fff; font-size:0.66rem; }

.time-range { display:flex; align-items:center; gap:10px; }
.time-range select, .time-range input[type=time] { flex:1; min-width:0; }
.time-range span { color:var(--ink-soft); font-size:0.85rem; flex:0 0 auto; }
.chip-opt { font-size:0.72rem; color:var(--ink-faint); font-weight:400; margin-left:4px; }

/* review widget step number */
.rv-num { width:22px; height:22px; border-radius:50%; background:var(--gold-soft); color:var(--gold-deep); font-weight:600; font-size:0.76rem; display:inline-flex; align-items:center; justify-content:center; margin-right:8px; vertical-align:middle; }

/* ===== Dashboard value features ===== */
/* Impact stats card ("concierge at work") */
.impact-card .impact-hero { display:flex; align-items:center; gap:14px; padding:12px 0 4px; }
.impact-hero .ih-num { font-family:var(--serif); font-size:2.7rem; font-weight:600; color:var(--gold-deep); line-height:1; }
.impact-hero .ih-unit { font-size:1.1rem; margin-left:3px; color:var(--gold); }
.impact-hero .ih-lbl { font-size:0.84rem; color:var(--ink-soft); line-height:1.35; }
.impact-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.impact-tile { display:flex; flex-direction:column; gap:1px; padding:10px 11px; border:1px solid var(--line); border-radius:10px; background:var(--white); }
.impact-tile .it-ic .ico { color:var(--gold-deep); font-size:1.1rem; }
.impact-tile b { font-family:var(--serif); font-size:1.3rem; color:var(--ink); line-height:1.1; }
.impact-tile .it-l { font-size:0.74rem; color:var(--ink-soft); line-height:1.25; }
.impact-foot { font-size:0.74rem; color:var(--ink-faint); margin-top:10px; }
.impact-foot-btn { display:inline-flex; align-items:center; gap:5px; background:none; border:none; cursor:pointer; font-family:inherit; text-align:left; padding:0; color:var(--blue); }
.impact-foot-btn .ico { font-size:0.8rem; }
.impact-foot-btn:hover { text-decoration:underline; }

/* time-saved estimate breakdown (Activity report) */
.est-intro { font-size:0.82rem; color:var(--ink-soft); margin:2px 0 10px; line-height:1.45; }
.est-list { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.est-row { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:14px; padding:10px 14px; border-top:1px solid var(--line); }
.est-row:first-child { border-top:none; }
.est-l { font-size:0.86rem; color:var(--ink); }
.est-calc { font-size:0.78rem; color:var(--ink-faint); font-variant-numeric:tabular-nums; }
.est-h { font-size:0.86rem; font-weight:600; color:var(--ink); white-space:nowrap; min-width:54px; text-align:right; }
.est-total { background:var(--gold-soft); border-top:1.5px solid var(--gold); }
.est-total .est-l { font-weight:700; }
.est-total .est-h { font-family:var(--serif); font-size:1.15rem; color:var(--gold-deep); }

/* ===== Needs-your-attention launcher (dashboard box) ===== */
.att-openall { background:none; border:none; cursor:pointer; color:var(--blue); font-family:inherit; font-size:0.82rem; display:inline-flex; align-items:center; gap:4px; padding:0; }
.att-openall:hover { text-decoration:underline; }
.att-openall .ico { font-size:0.85rem; }
.att-allclear { display:flex; align-items:center; gap:8px; color:var(--green-deep); font-size:0.9rem; padding:8px 2px; }
.att-allclear .ico { color:var(--green); }
.att-teaser { display:flex; align-items:center; gap:10px; width:100%; text-align:left; margin-top:12px; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; }
.att-teaser:hover { border-color:var(--gold); box-shadow:var(--shadow-sm); }
.att-teaser .att-ico { flex:0 0 auto; }
.att-teaser .att-tx { flex:1; font-size:0.9rem; color:var(--ink); }
.att-teaser .att-go { color:var(--blue); }

/* ===== Needs-your-attention overlay ===== */
.ato-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.ato-tab { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border:1px solid var(--line); border-radius:20px; background:var(--white); cursor:pointer; font-family:inherit; font-size:0.85rem; color:var(--ink-soft); }
.ato-tab:hover { border-color:var(--gold); }
.ato-tab.on { background:var(--blue); border-color:var(--blue); color:#fff; }
.ato-tab.att-tab-empty { opacity:0.5; }
.ato-tab.on.att-tab-empty { opacity:1; }
.ato-tab .att-n { background:rgba(0,0,0,.08); border-radius:20px; padding:0 7px; font-size:0.72rem; }
.ato-tab.on .att-n { background:rgba(255,255,255,.25); }
.ato-list { display:flex; flex-direction:column; gap:9px; }
.ato-item, .ato-row { display:flex; align-items:center; gap:12px; padding:13px 15px; border:1px solid var(--line); border-radius:12px; background:var(--white); width:100%; text-align:left; }
.ato-item { cursor:pointer; }
.ato-item:hover { border-color:var(--gold); box-shadow:var(--shadow-sm); }
.ato-item .att-ico, .ato-row .att-ico { flex:0 0 auto; font-size:1.1rem; }
.ato-tx { flex:1; font-size:0.9rem; color:var(--ink); line-height:1.4; }
.ato-item .att-go { color:var(--blue); }
.ato-actions { display:flex; gap:7px; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; }
.ato-act { padding:6px 13px; font-size:0.8rem; }

/* ===== Optional couple photo (Step 1) + avatar variants ===== */
.opu { display:flex; align-items:center; gap:14px; padding:4px 0 16px; margin-bottom:6px; border-bottom:1px solid var(--line); }
.opu-ava { width:60px; height:60px; border-radius:50%; flex:0 0 auto; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1.4rem; background-size:cover; background-position:center; }
.opu-ava.has { color:transparent; }
.opu-txt { display:flex; flex-direction:column; gap:4px; align-items:flex-start; }
.opu-btn { display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border:1px solid var(--line); border-radius:var(--radius-btn); background:var(--white); cursor:pointer; font-size:0.86rem; color:var(--ink); }
.opu-btn:hover { border-color:var(--gold); }
.opu-btn .ico { color:var(--gold-deep); }
.opu-remove { background:none; border:none; cursor:pointer; color:var(--ink-faint); font-family:inherit; font-size:0.78rem; padding:0; text-decoration:underline; }
.opu-note { font-size:0.76rem; color:var(--ink-faint); }
.acct-ava.has-photo { background-size:cover; background-position:center; color:transparent; }
.ds-thumb.ds-thumb-ph { display:flex; align-items:center; justify-content:center; background:var(--blue); filter:none; }
.ds-thumb.ds-thumb-ph span { color:#fff; font-family:var(--serif); font-size:1.5rem; }

/* Coming Up embedded in the Concierge Briefing */
.brief-coming { margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }
.brief-coming-h { display:flex; align-items:center; justify-content:space-between; font-family:var(--serif); font-size:1.25rem; color:var(--ink); margin-bottom:10px; }
.brief-coming-h > span { display:inline-flex; align-items:center; gap:8px; }
.brief-coming-h .ico { color:var(--gold-deep); font-size:1.05rem; }
.brief-coming-all { background:none; border:none; cursor:pointer; color:var(--blue); font-family:inherit; font-size:0.8rem; display:inline-flex; align-items:center; gap:4px; padding:0; }
.brief-coming-all:hover { text-decoration:underline; }
.brief-coming-all .ico { font-size:0.85rem; }

/* premium duotone landing icons */
.ph-duotone.ico { opacity:1; }

/* ===== Partner collaboration ===== */
/* partner avatars */
.fi-ava { display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; border-radius:50%; color:#fff; font-size:0.6rem; font-weight:700; vertical-align:-3px; }
.fi-ava.p-a, .pn-ava.p-a, .va-btn .fi-ava.p-a { background:var(--gold); }
.fi-ava.p-b, .pn-ava.p-b, .va-btn .fi-ava.p-b { background:var(--blue); }
.fi-by { display:inline-flex; align-items:center; gap:4px; }
.fi-by .fi-ava { margin-right:1px; }
.own-chip { display:inline-flex; align-items:center; margin:0 6px 0 auto; }
.own-chip .fi-ava { margin-left:-5px; box-shadow:0 0 0 1.5px var(--white); }
.own-chip .fi-ava:first-child { margin-left:0; }

/* attention scope chips */
.att-scope { display:flex; gap:6px; margin:0 0 10px; }
.scope-chip { padding:4px 12px; border:1px solid var(--line); border-radius:20px; background:var(--white); cursor:pointer; font-size:0.78rem; font-family:inherit; color:var(--ink-soft); }
.scope-chip:hover { border-color:var(--gold); }
.scope-chip.on { background:var(--blue); border-color:var(--blue); color:#fff; }

/* account menu: viewing-as + badge */
.acct-viewas { padding:8px 8px 10px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.acct-viewas-l { font-size:0.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:6px; }
.acct-viewas-seg { display:flex; gap:6px; }
.va-btn { flex:1; display:flex; align-items:center; gap:6px; padding:6px 8px; border:1px solid var(--line); border-radius:9px; background:var(--white); cursor:pointer; font-family:inherit; font-size:0.8rem; color:var(--ink); }
.va-btn.on { border-color:var(--blue); background:var(--blue-soft); }
.tp-badge { margin-left:auto; font-size:0.66rem; background:var(--gold-soft); color:var(--gold-deep); padding:2px 8px; border-radius:20px; font-weight:600; }
.tp-item { display:flex; align-items:center; gap:9px; }

/* partner hub modal */
.pn-intro { display:flex; gap:14px; align-items:flex-start; margin:6px 0 16px; }
.pn-intro .ico-lg { color:var(--gold-deep); }
.pn-intro p { font-size:0.92rem; color:var(--ink-soft); line-height:1.5; }
.pn-sent { background:var(--green-soft); border:1px solid #CADBC0; border-radius:10px; padding:12px 14px; font-size:0.88rem; color:var(--green-deep); }
.pn-sent .ico { color:var(--green-deep); }
.pn-team { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:6px 0 4px; }
.pn-person { display:flex; align-items:center; gap:11px; padding:13px; border:1px solid var(--line); border-radius:12px; background:var(--ivory); }
.pn-ava { width:38px; height:38px; border-radius:50%; color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.pn-name { font-weight:600; font-size:0.95rem; }
.pn-role { font-size:0.76rem; color:var(--ink-soft); }
.pn-joined { color:var(--green-deep); }
.pn-joined .ico { vertical-align:-2px; }
.pn-sect { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.pn-fair-bar { display:flex; height:12px; border-radius:7px; overflow:hidden; background:var(--line); }
.pn-fair-bar i { display:block; height:100%; }
.pn-fair-bar i.p-a { background:var(--gold); } .pn-fair-bar i.p-b { background:var(--blue); }
.pn-fair-legend { display:flex; justify-content:space-between; margin-top:8px; font-size:0.82rem; color:var(--ink-soft); }
.pn-fair-legend span { display:inline-flex; align-items:center; gap:6px; }
.asg-list { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
.asg-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.asg-cat { font-size:0.9rem; display:flex; align-items:center; gap:7px; }
.asg-cat .ico { color:var(--gold-deep); }
.asg-seg { display:flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; flex:0 0 auto; }
.asg-btn { padding:6px 12px; background:var(--white); border:none; border-left:1px solid var(--line); cursor:pointer; font-family:inherit; font-size:0.78rem; color:var(--ink-soft); }
.asg-btn:first-child { border-left:none; }
.asg-btn.on { background:var(--blue); color:#fff; }
@media(max-width:560px){ .pn-team{ grid-template-columns:1fr; } .asg-row{ flex-direction:column; align-items:flex-start; gap:6px; } }

/* ===== Actor (who-acts-next) badge on pipeline cards ===== */
.pc-actor { display:inline-flex; align-items:center; gap:4px; font-size:0.68rem; font-weight:600; padding:2px 8px; border-radius:20px; white-space:nowrap; }
.pc-actor .ico { font-size:0.78rem; }
.pc-actor.ac-you { background:var(--blue-soft); color:var(--blue-deep); }
.pc-actor.ac-concierge { background:var(--gold-soft); color:var(--gold-deep); }
.pcard:has(.ac-you) { box-shadow:inset 3px 0 0 var(--blue); }

/* ===== Activity report ===== */
.ar-split { display:flex; height:14px; border-radius:8px; overflow:hidden; background:var(--line); margin-top:4px; }
.ar-split i { display:block; height:100%; }
.ar-split i.ar-c { background:var(--gold); }
.ar-split i.ar-y { background:var(--blue); }
.ar-legend { display:flex; justify-content:space-between; margin-top:8px; font-size:0.83rem; color:var(--ink-soft); }
.ar-legend span { display:inline-flex; align-items:center; gap:6px; }
.ar-dot { width:9px; height:9px; border-radius:50%; }
.ar-dot.ar-c { background:var(--gold); } .ar-dot.ar-y { background:var(--blue); }
.ar-your { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.ar-yrow { display:flex; align-items:center; gap:10px; padding:11px 13px; border:1px solid var(--line); border-radius:10px; background:var(--white); }
.ar-yrow .ar-yic { width:30px; height:30px; border-radius:8px; background:var(--blue-soft); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.ar-yrow .ar-yic .ico { color:var(--blue-deep); font-size:1rem; }
.ar-yrow b { font-family:var(--serif); font-size:1.3rem; }
.ar-yrow span:last-child { font-size:0.8rem; color:var(--ink-soft); }
.ar-empty { font-size:0.85rem; color:var(--ink-faint); margin-top:8px; }
@media(max-width:560px){ .ar-your{ grid-template-columns:1fr; } }

/* activity dropdown header link */
.act-pop-h { display:flex; align-items:center; justify-content:space-between; }
.act-report-link { background:none; border:none; cursor:pointer; color:var(--blue); font-family:inherit; font-size:0.78rem; display:inline-flex; align-items:center; gap:3px; padding:0; }
.act-report-link:hover { text-decoration:underline; }
.act-report-link .ico { font-size:0.85rem; }

/* ===== Work-split strip (dashboard) ===== */
.work-strip { display:flex; align-items:center; gap:14px; padding:10px 18px; margin:0 0 16px; background:var(--white); border:1px solid var(--line); border-radius:12px; flex-wrap:wrap; }
.ws-label { display:inline-flex; align-items:center; gap:7px; font-size:0.82rem; font-weight:600; color:var(--ink); }
.ws-label .ico { color:var(--gold-deep); }
.ws-bar { flex:1; min-width:120px; display:flex; height:10px; border-radius:6px; overflow:hidden; background:var(--line); }
.ws-bar i { display:block; height:100%; }
.ws-bar i.ws-c { background:var(--gold); } .ws-bar i.ws-y { background:var(--blue); }
.ws-legend { display:inline-flex; align-items:center; gap:6px; font-size:0.8rem; color:var(--ink-soft); }
.ws-legend b { color:var(--ink); }
.ws-dot { width:9px; height:9px; border-radius:50%; }
.ws-dot.ws-c { background:var(--gold); } .ws-dot.ws-y { background:var(--blue); }
.ws-link { background:none; border:none; cursor:pointer; color:var(--blue); font-family:inherit; font-size:0.8rem; display:inline-flex; align-items:center; gap:3px; padding:0; }
.ws-link:hover { text-decoration:underline; }
.ws-link .ico { font-size:0.85rem; }

/* ===== Printable shortlist (Save as PDF) ===== */
.print-sheet { display:none; }
.ps-head { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:2px solid #C2A878; padding-bottom:14px; }
.ps-brand { display:flex; align-items:center; gap:10px; }
.ps-mark { font-family:"Cormorant Garamond",serif; font-size:1.5rem; font-weight:600; color:#3A2E23; }
.ps-tag { font-size:0.6rem; letter-spacing:.18em; text-transform:uppercase; color:#A89A84; }
.ps-meta { text-align:right; }
.ps-couple { font-family:"Cormorant Garamond",serif; font-size:1.3rem; color:#3A2E23; }
.ps-sub { font-size:0.72rem; color:#786B59; }
.ps-title { font-family:"Cormorant Garamond",serif; font-weight:600; font-size:1.9rem; color:#3A2E23; margin:18px 0 12px; }
.ps-scope { font-size:0.8rem; color:#8C6A30; font-style:italic; }
.ps-table { width:100%; border-collapse:collapse; }
.ps-table th { text-align:left; font-size:0.62rem; letter-spacing:.06em; text-transform:uppercase; color:#A89A84; border-bottom:1px solid #EAE1D2; padding:8px 10px; }
.ps-table td { font-size:0.82rem; color:#3A2E23; border-bottom:1px solid #F1EADD; padding:9px 10px; vertical-align:top; }
.ps-foot { margin-top:18px; font-size:0.68rem; color:#A89A84; }
@media print {
  body.printing > #app, body.printing .overlay, body.printing #toast { display:none !important; }
  body.printing .print-sheet { display:block !important; position:absolute; left:0; top:0; width:100%; padding:8px 4px; }
  @page { margin:1.4cm; }
}

/* ===== Contract review ===== */
.ct-tabs { display:flex; gap:8px; margin:0 0 14px; }
.ct-tab { padding:7px 14px; border:1px solid var(--line); border-radius:20px; background:var(--white); cursor:pointer; font-family:inherit; font-size:0.84rem; color:var(--ink-soft); }
.ct-tab:hover { border-color:var(--gold); }
.ct-tab.on { background:var(--blue); border-color:var(--blue); color:#fff; }
.ct-list { display:flex; flex-direction:column; gap:9px; }
.ct-card { display:flex; align-items:center; gap:12px; padding:13px 15px; border:1px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; text-align:left; width:100%; }
.ct-card:hover { border-color:var(--gold); box-shadow:var(--shadow-sm); }
.ct-c-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.ct-c-top { display:flex; align-items:center; gap:9px; }
.ct-c-name { font-weight:600; font-size:0.96rem; }
.ct-badge { font-size:0.64rem; letter-spacing:.04em; text-transform:uppercase; font-weight:700; padding:2px 8px; border-radius:20px; }
.ct-badge.signed { background:var(--green-soft); color:var(--green-deep); }
.ct-badge.prop { background:var(--gold-soft); color:var(--gold-deep); }
.ct-c-meta { font-size:0.8rem; color:var(--ink-soft); }
.ct-c-meta .ico { color:var(--gold-deep); }
.ct-flags { display:flex; align-items:center; gap:12px; margin-top:3px; font-size:0.8rem; }
.ct-fl { display:inline-flex; align-items:center; gap:4px; font-weight:600; }
.ct-fl.green { color:var(--green-deep); } .ct-fl.red { color:#A6543F; }
.ct-verdict { font-size:0.72rem; font-weight:600; padding:2px 9px; border-radius:20px; }
.ct-verdict.ok { background:var(--green-soft); color:var(--green-deep); }
.ct-verdict.warn { background:var(--gold-soft); color:var(--gold-deep); }
.ct-verdict.bad { background:#FBE9E3; color:#A6543F; }
.ct-read { color:var(--blue); font-size:0.82rem; font-weight:600; white-space:nowrap; display:inline-flex; align-items:center; gap:4px; flex:0 0 auto; }
.ct-read .ico { font-size:0.9rem; }

/* compare tab */
.ct-cats { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.ct-cchip { display:inline-flex; align-items:center; gap:6px; padding:7px 13px; border:1px solid var(--line); border-radius:20px; background:var(--white); cursor:pointer; font-family:inherit; font-size:0.82rem; color:var(--ink-soft); }
.ct-cchip:hover { border-color:var(--gold); }
.ct-cchip.on { border-color:var(--blue); background:var(--blue-soft); color:var(--blue-deep); }
.ct-cchip .ico { color:var(--gold-deep); }
.ct-cmp-wrap { overflow-x:auto; }

/* deep read */
.ct-back { background:none; border:none; cursor:pointer; color:var(--blue); font-family:inherit; font-size:0.85rem; display:inline-flex; align-items:center; gap:5px; padding:0; margin-bottom:4px; text-decoration:none; }
.ct-back:hover, .ct-back:focus-visible { text-decoration:underline; }
.ct-read-h { display:flex; align-items:center; gap:10px; }
.ct-terms { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px; }
.ct-term { display:flex; justify-content:space-between; gap:10px; padding:9px 12px; border:1px solid var(--line); border-radius:9px; background:var(--ivory); font-size:0.85rem; }
.ct-term span { color:var(--ink-soft); }
.ct-term b { text-align:right; }
.ct-flagcols { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ct-flagcol { border:1px solid var(--line); border-radius:12px; padding:13px 15px; }
.ct-flagcol.green { background:#FAFBF7; border-color:#D8E4CF; }
.ct-flagcol.red { background:#FCF4F1; border-color:#E8D2C8; }
.ct-flagh { font-weight:600; font-size:0.88rem; display:flex; align-items:center; gap:7px; margin-bottom:9px; }
.ct-flagcol.green .ct-flagh { color:var(--green-deep); } .ct-flagcol.green .ct-flagh .ico { color:var(--green); }
.ct-flagcol.red .ct-flagh { color:#A6543F; } .ct-flagcol.red .ct-flagh .ico { color:#C2543F; }
.ct-flagrow { font-size:0.84rem; color:var(--ink); padding:5px 0; border-top:1px solid rgba(0,0,0,.04); line-height:1.4; }
.ct-flagrow:first-of-type { border-top:none; }
.ct-flagrow.muted { color:var(--ink-faint); }

/* empty + disclaimer */
.ct-empty { text-align:center; padding:34px 20px; color:var(--ink-soft); }
.ct-empty .ico-lg { color:var(--gold); display:block; margin:0 auto 10px; }
.ct-empty-sub { font-size:0.85rem; color:var(--ink-faint); max-width:32em; margin:6px auto 0; line-height:1.5; }
.ct-disclaimer { display:flex; align-items:flex-start; gap:8px; margin-top:16px; padding:10px 13px; background:var(--ivory); border:1px solid var(--line); border-radius:9px; font-size:0.78rem; color:var(--ink-soft); line-height:1.45; }
.ct-disclaimer .ico { color:var(--gold-deep); flex:0 0 auto; margin-top:1px; }
@media(max-width:600px){ .ct-terms, .ct-flagcols { grid-template-columns:1fr; } }

/* ===== Tools mega-menu (grouped, 2-column) ===== */
.tools-pop.tools-mega { flex-direction:row; gap:16px; padding:16px 16px 14px; width:540px; min-width:0; }
.tools-mega .tp-col { flex:1; min-width:0; display:flex; flex-direction:column; gap:15px; }
.tools-mega .tp-group { display:flex; flex-direction:column; }
.tools-mega .tp-gh { font-size:0.66rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gold-deep); font-weight:700; padding:0 8px; }
.tools-mega .tp-gd { font-size:0.7rem; color:var(--ink-faint); padding:0 8px; margin:1px 0 6px; line-height:1.3; }
.tools-mega .tp-item { font-size:0.86rem; padding:7px 8px; }
.tools-mega .tp-item .ico { color:var(--gold-deep); }
@media(max-width:600px){ .tools-pop.tools-mega { flex-direction:column; width:min(86vw,300px); gap:14px; } }
.pm-view { background:none; border:none; color:var(--blue); font-size:0.8rem; cursor:pointer; padding:0; display:inline-flex; align-items:center; gap:3px; font-family:inherit; }
.pm-view:hover { text-decoration:underline; }
.pm-view .ico { font-size:0.85rem; }

/* Planning Progress overlay */
.pp-top { display:flex; align-items:center; gap:22px; margin:6px 0 18px; }
.pp-ring { position:relative; width:96px; height:96px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.pp-ring::before { content:""; position:absolute; width:72px; height:72px; border-radius:50%; background:var(--white); }
.pp-ring span { position:relative; font-family:var(--serif); font-weight:600; font-size:1.3rem; color:var(--gold-deep); }
.pp-top-stats { display:flex; gap:24px; flex-wrap:wrap; }
.pp-ts { display:flex; flex-direction:column; }
.pp-ts b { font-family:var(--serif); font-size:1.5rem; line-height:1; }
.pp-ts span { font-size:0.8rem; color:var(--ink-soft); margin-top:3px; }
.pp-legend { display:flex; flex-wrap:wrap; gap:12px; font-size:0.74rem; color:var(--ink-soft); margin-bottom:8px; }
.pp-legend span { display:inline-flex; align-items:center; gap:5px; }
.pp-ldot { width:9px; height:9px; border-radius:50%; background:var(--line); }
.pp-rows { display:flex; flex-direction:column; gap:7px; }
.pp-row { display:grid; grid-template-columns:160px 1fr 130px; align-items:center; gap:12px; padding:9px 12px; border:1px solid var(--line); border-radius:10px; background:var(--white); cursor:pointer; text-align:left; width:100%; }
.pp-row:hover { border-color:var(--gold); }
.pp-cat { font-size:0.88rem; font-weight:500; display:flex; align-items:center; gap:6px; }
.pp-cat .ico { color:var(--gold-deep); }
.pp-track { display:flex; gap:3px; }
.pp-seg { height:6px; flex:1; border-radius:3px; background:var(--line); }
.pp-status { font-size:0.8rem; color:var(--ink-soft); text-align:right; }
.pp-status.done { color:var(--green-deep); font-weight:600; }
.pp-status .ico { vertical-align:-2px; }
.pp-sect { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.pp-sect-h { font-weight:600; font-size:0.95rem; margin-bottom:10px; display:flex; align-items:center; gap:7px; }
.pp-sect-h .ico { color:var(--gold-deep); }
.pp-need { display:flex; align-items:center; gap:9px; font-size:0.86rem; color:var(--ink-soft); padding:5px 0; }
.pp-clear { color:var(--green-deep); font-size:0.9rem; display:flex; align-items:center; gap:7px; }
.pp-clear .ico { color:var(--green); }
.pp-impact { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.pp-it { display:flex; flex-direction:column; align-items:center; text-align:center; gap:1px; padding:11px 8px; border:1px solid var(--line); border-radius:10px; background:var(--ivory); }
.pp-it .it-ic .ico { color:var(--gold-deep); font-size:1.15rem; }
.pp-it b { font-family:var(--serif); font-size:1.25rem; }
.pp-it span:last-child { font-size:0.72rem; color:var(--ink-soft); }
@media(max-width:640px){ .pp-row{ grid-template-columns:1fr; gap:6px; } .pp-status{ text-align:left; } .pp-impact{ grid-template-columns:1fr 1fr; } }

/* Calendar overlay */
.cal-head { display:flex; align-items:center; justify-content:space-between; }
.cal-nav { display:flex; gap:6px; }
.cal-navbtn { width:34px; height:34px; border:1px solid var(--line); border-radius:9px; background:var(--white); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; color:var(--ink); }
.cal-navbtn.cal-today { width:auto; padding:0 12px; font-size:0.82rem; font-family:inherit; }
.cal-navbtn:hover { border-color:var(--gold); }
.cal-legend { display:flex; flex-wrap:wrap; gap:14px; font-size:0.76rem; color:var(--ink-soft); margin-bottom:12px; }
.cal-legend span { display:inline-flex; align-items:center; gap:5px; }
.cal-dot { width:7px; height:7px; border-radius:50%; background:var(--gold); }
.cal-dot.t-blue { background:var(--blue); } .cal-dot.t-gold { background:var(--gold); } .cal-dot.t-green { background:var(--green); } .cal-dot.t-red { background:#C2543F; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.cal-dow { text-align:center; font-size:0.7rem; color:var(--ink-faint); font-weight:600; padding-bottom:2px; }
.cal-cell { min-height:52px; border:1px solid var(--line); border-radius:8px; padding:5px 6px; background:var(--white); position:relative; }
.cal-cell.empty { border:none; background:transparent; }
.cal-cell.has { background:var(--ivory); }
.cal-cell.today { border-color:var(--gold); box-shadow:0 0 0 1.5px var(--gold) inset; }
.cal-dnum { font-size:0.76rem; color:var(--ink-soft); }
.cal-cell.today .cal-dnum { color:var(--gold-deep); font-weight:700; }
.cal-dots { display:flex; gap:3px; position:absolute; bottom:6px; left:6px; }
.cal-agenda-h { font-weight:600; font-size:0.9rem; margin:18px 0 8px; }
.cal-agenda { display:flex; flex-direction:column; gap:8px; }
.cal-ev { display:flex; align-items:flex-start; gap:12px; padding:11px 13px; border:1px solid var(--line); border-left-width:3px; border-radius:10px; background:var(--white); }
.cal-ev.t-blue { border-left-color:var(--blue); } .cal-ev.t-gold { border-left-color:var(--gold); } .cal-ev.t-green { border-left-color:var(--green); } .cal-ev.t-red { border-left-color:#C2543F; }
.cal-ev-date { display:flex; flex-direction:column; align-items:center; width:38px; flex:0 0 auto; }
.cal-ev-date .ce-mo { font-size:0.62rem; color:var(--ink-faint); font-weight:600; letter-spacing:.04em; }
.cal-ev-date .ce-dy { font-family:var(--serif); font-size:1.3rem; line-height:1; }
.cal-ev-ic .ico { font-size:1.3rem; color:var(--gold-deep); }
.cal-ev.t-blue .cal-ev-ic .ico { color:var(--blue); }
.cal-ev.t-red .cal-ev-ic .ico { color:#C2543F; }
.cal-ev.t-green .cal-ev-ic .ico { color:var(--green-deep); }
.cal-ev-tx { flex:1; }
.cal-ev-tx .ce-t { font-weight:600; font-size:0.9rem; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cal-ev-tx .ce-s { font-size:0.78rem; color:var(--ink-soft); margin-top:1px; }
.cal-ev-ic { padding-top:1px; }

/* Calendar — interactive (views, availability, confirm/reschedule, sync) */
.cal-headright { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.cal-viewtabs { display:inline-flex; background:var(--cream); border-radius:999px; padding:3px; }
.cal-vtab { padding:6px 14px; border-radius:999px; font-size:0.82rem; color:var(--ink-soft); background:none; border:none; cursor:pointer; }
.cal-vtab.on { background:#fff; color:var(--ink); box-shadow:var(--shadow-sm); font-weight:600; }
.cal-cell.has { cursor:pointer; }
.cal-cell.has:hover { border-color:var(--gold); }
.cal-cell.sel { background:var(--blue-soft); border-color:var(--blue); box-shadow:0 0 0 1.5px var(--blue) inset; }
.cal-avail { display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:0.78rem; color:var(--ink-soft); background:var(--ivory); border:1px solid var(--line); border-radius:10px; padding:9px 12px; margin-bottom:12px; }
.cal-avail .ico { color:var(--gold-deep); }
.cal-avail b { color:var(--ink); }
.cev-badge { display:inline-flex; align-items:center; gap:4px; font-size:0.66rem; font-weight:600; padding:2px 8px; border-radius:999px; }
.cev-badge.ok { background:var(--green-soft); color:var(--green-deep); }
.cev-badge.warn { background:rgba(189,139,63,.16); color:var(--gold-deep); }
.cev-actions { display:flex; gap:7px; flex-wrap:wrap; margin-top:9px; }
.cev-btn { padding:5px 11px; font-size:0.78rem; }
.cev-slots { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:9px; padding-top:9px; border-top:1px dashed var(--line); }
.cev-slots-l { font-size:0.76rem; color:var(--ink-faint); }
.cev-slot { padding:5px 11px; border-radius:999px; border:1px solid var(--line); background:#fff; font-size:0.78rem; color:var(--ink); cursor:pointer; }
.cev-slot:hover { border-color:var(--gold); background:var(--gold-soft); }
.cal-clearday { margin-left:8px; font-size:0.76rem; color:var(--gold-deep); background:none; border:none; cursor:pointer; font-weight:600; }
.cal-sync { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.cal-sync-l { font-size:0.82rem; color:var(--ink-soft); }
.cal-syncbtn { display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; font-size:0.82rem; }
.cal-syncbtn:hover { border-color:var(--gold); }
.cal-syncbtn.synced { border-color:var(--green); background:var(--green-soft); }
.cal-syncbtn .syncok { color:var(--green-deep); font-weight:700; }

/* Account menu */
.acctmenu { position:relative; }
.acct-btn { display:inline-flex; align-items:center; gap:5px; background:none; border:none; cursor:pointer; padding:2px; }
.acct-ava { width:32px; height:32px; border-radius:50%; background:var(--blue); color:#fff; font-size:0.8rem; font-weight:600; display:inline-flex; align-items:center; justify-content:center; letter-spacing:.02em; }
.acct-ava.lg { width:42px; height:42px; font-size:1rem; }
.acct-pop { position:absolute; top:calc(100% + 8px); right:0; width:264px; background:var(--white); border:1px solid var(--line); border-radius:14px; box-shadow:0 16px 40px rgba(0,0,0,.14); padding:8px; z-index:60; }
.acct-pop.hidden { display:none; }
.acct-head { display:flex; align-items:center; gap:11px; padding:8px 8px 12px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.acct-id { min-width:0; }
.acct-name { font-weight:600; font-size:0.9rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acct-sub { font-size:0.76rem; color:var(--ink-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acct-div { height:1px; background:var(--line); margin:6px 4px; }
.tp-item.danger { color:#A6543F; }
.tp-item.danger:hover { background:#FBF1ED; }

/* Notification preferences */
.nfy-list { display:flex; flex-direction:column; gap:8px; }
.nfy-opt { display:flex; align-items:center; gap:11px; padding:12px 14px; border:1.5px solid var(--line); border-radius:11px; background:var(--white); cursor:pointer; text-align:left; }
.nfy-opt:hover { border-color:var(--gold); }
.nfy-opt.on { border-color:var(--green); background:#FAFBF7; }
.nfy-radio { width:18px; height:18px; border-radius:50%; border:2px solid var(--line); flex:0 0 auto; }
.nfy-opt.on .nfy-radio { border-color:var(--green); background:radial-gradient(var(--green) 42%, transparent 46%); }
.nfy-tx { display:flex; flex-direction:column; flex:1; }
.nfy-l { font-weight:600; font-size:0.92rem; }
.nfy-d { font-size:0.78rem; color:var(--ink-soft); }
.nfy-ck { width:20px; height:20px; border-radius:50%; background:var(--green); color:#fff; display:inline-flex; align-items:center; justify-content:center; }
.nfy-ck .ico { color:#fff; font-size:0.72rem; }
.nfy-sect { margin-top:18px; padding-top:14px; border-top:1px solid var(--line); }

/* Account & plan / Privacy */
.acct-plan { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:12px; background:var(--ivory); border:1px solid var(--line); }
.ap-badge { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:20px; background:var(--gold-soft); color:var(--gold-deep); font-weight:600; font-size:0.85rem; }
.ap-desc { font-size:0.86rem; color:var(--ink-soft); }
.priv-list { display:flex; flex-direction:column; gap:12px; }
.priv-row { display:flex; gap:12px; align-items:flex-start; }
.priv-ic { width:36px; height:36px; border-radius:9px; background:var(--ivory); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.priv-ic .ico { color:var(--gold-deep); font-size:1.2rem; }
.priv-t { font-weight:600; font-size:0.9rem; }
.priv-d { font-size:0.82rem; color:var(--ink-soft); line-height:1.4; }

/* recommendation "why" line */
.rec-why { font-size:0.73rem; color:var(--blue-deep); margin-top:3px; display:block; line-height:1.3; }
.rec-why .ico { font-size:0.8rem; vertical-align:-1px; }

/* ============================================================
   LANDING PAGE v2 (marketing)
   ============================================================ */
html { scroll-behavior:smooth; }
.lp { max-width:1180px; margin:0 auto; padding:0 28px 0; color:var(--ink); }
.lp section { scroll-margin-top:80px; }

/* nav */
.lp-nav { position:sticky; top:0; z-index:40; display:flex; align-items:center; justify-content:space-between; padding:18px 0 16px; background:var(--ivory); }
.lp-brand { display:flex; align-items:baseline; gap:11px; }
.lp-mark { font-family:var(--serif); font-size:1.6rem; font-weight:600; letter-spacing:.01em; }
.lp-dot { color:var(--gold); }
.lp-tag { font-size:0.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-faint); }
.lp-links { display:flex; align-items:center; gap:26px; }
.lp-navlink { background:none; border:none; cursor:pointer; font-family:inherit; font-size:0.9rem; color:var(--ink-soft); text-decoration:none; padding:0; transition:color .15s; }
.lp-navlink:hover { color:var(--gold-deep); }
.lp-navcta { padding:9px 20px; font-size:0.88rem; }
@media(max-width:760px){ .lp-links .lp-navlink:not(.lp-navcta){ display:none; } }

/* hero */
.lp-hero { display:grid; grid-template-columns:1fr 1.05fr; gap:42px; align-items:center; padding:46px 0 56px; }
.lp-eyebrow { font-size:0.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:18px; }
.lp-h1 { font-family:var(--serif); font-weight:600; font-size:3.5rem; line-height:1.06; letter-spacing:-0.01em; margin:0 0 20px; }
.lp-h1 em { font-style:italic; color:var(--gold); }
.lp-lede { font-size:1.06rem; line-height:1.6; color:var(--ink-soft); max-width:30em; margin:0 0 26px; }
.lp-hero-cta { display:flex; gap:13px; flex-wrap:wrap; align-items:center; }
.lp-hero-cta .btn-lg { text-decoration:none; }
.lp-hero-note { display:flex; align-items:center; gap:8px; margin-top:18px; font-size:0.84rem; color:var(--ink-faint); }
.lp-hero-note .ico { color:var(--gold-deep); }
@media(max-width:880px){ .lp-hero{ grid-template-columns:1fr; gap:34px; } .lp-h1{ font-size:2.7rem; } }

/* hero shortlist card */
.lp-hero-r { position:relative; }
.lp-hero-r::before { content:""; position:absolute; inset:-30px -40px -30px 30px; background:url('assets/hero-florals.png') center/cover; border-radius:18px; opacity:.62; z-index:0; }
.lp-shortlist { position:relative; z-index:1; background:var(--white); border:1px solid var(--line); border-radius:16px; box-shadow:0 24px 60px rgba(60,46,30,.16); padding:20px; }
.lp-sl-head { margin-bottom:14px; }
.lp-sl-title { font-family:var(--serif); font-size:1.25rem; font-weight:600; }
.lp-sl-meta { font-size:0.74rem; color:var(--ink-faint); margin-top:3px; }
.lp-sl-cols, .lp-sl-row { display:grid; grid-template-columns:1.7fr 0.7fr 1fr 0.9fr 1.2fr; gap:8px; align-items:center; }
.lp-sl-cols { font-size:0.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); padding:0 0 8px; border-bottom:1px solid var(--line); }
.lp-sl-row { padding:11px 0; border-bottom:1px solid var(--line); }
.lp-sl-vendor { display:flex; align-items:center; gap:9px; }
.lp-sl-thumb { width:30px; height:30px; border-radius:7px; background-size:cover; background-position:center; flex:0 0 auto; }
.lp-sl-name { display:block; font-size:0.82rem; font-weight:600; line-height:1.15; }
.lp-sl-cat { display:block; font-size:0.7rem; color:var(--ink-faint); }
.lp-sl-price { font-size:0.84rem; font-weight:600; }
.lp-sl-av { font-size:0.76rem; color:var(--ink-soft); display:flex; align-items:center; gap:5px; }
.lp-av-dot { width:7px; height:7px; border-radius:50%; flex:0 0 auto; }
.lp-av-dot.ok { background:var(--green); } .lp-av-dot.warn { background:#D9A441; }
.lp-sl-fit { font-size:0.72rem; letter-spacing:1px; white-space:nowrap; }
.lp-star { color:var(--line); } .lp-star.on { color:var(--gold); } .lp-star.half { color:var(--gold); opacity:.5; }
.lp-sl-note { font-size:0.72rem; color:var(--ink-soft); line-height:1.25; }
.lp-sl-view { margin-top:14px; background:none; border:none; cursor:pointer; color:var(--gold-deep); font-family:inherit; font-size:0.84rem; font-weight:600; display:inline-flex; align-items:center; gap:5px; padding:0; }
.lp-sl-view .ico { font-size:0.9rem; }
@media(max-width:560px){ .lp-sl-cols{ display:none; } .lp-sl-row{ grid-template-columns:1fr 1fr; row-gap:4px; } .lp-sl-note{ grid-column:1/3; } }

/* trust bar */
.lp-trust { display:flex; align-items:center; justify-content:center; gap:34px; padding:26px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.lp-trust-item { display:flex; align-items:center; gap:13px; position:relative; }
.lp-trust-item .ico-lg, .lp-trust-item .ico { color:var(--gold); font-size:1.9rem; }
.lp-trust-item b { font-family:var(--serif); font-size:1.7rem; display:block; line-height:1; }
.lp-trust-item span { font-size:0.84rem; color:var(--ink-soft); }
.lp-trust-sep { width:1px; height:42px; background:var(--line); }
.lp-trust-byline { position:absolute; bottom:-20px; left:50%; transform:translateX(-50%); font-size:0.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }
.lp-trust-long { font-size:0.88rem; color:var(--ink-soft); line-height:1.3; }
@media(max-width:760px){ .lp-trust{ flex-wrap:wrap; gap:18px; } .lp-trust-sep{ display:none; } }

/* section shared */
.lp-kicker, .lp-vs-kicker { text-align:center; font-size:0.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.lp-h2 { font-family:var(--serif); font-weight:600; font-size:2.2rem; line-height:1.12; text-align:center; margin:10px 0 0; }
.lp-h2 em { font-style:italic; color:var(--gold); }
.lp-h2-l { text-align:left; }
.lp-p { font-size:0.98rem; line-height:1.6; color:var(--ink-soft); }
.lp-p-center { text-align:center; max-width:34em; margin:10px auto 0; }
.lp-accent { font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--gold-deep); margin-top:14px; line-height:1.4; }

/* how it works */
.lp-how { padding:64px 0 56px; }
.lp-steps { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:stretch; gap:14px; margin-top:34px; }
.lp-step { background:var(--white); border:1px solid var(--line); border-radius:14px; padding:24px 22px; text-align:center; display:flex; flex-direction:column; align-items:center; }
.lp-step-num { width:26px; height:26px; border-radius:50%; border:1.5px solid var(--gold); color:var(--gold-deep); font-size:0.8rem; font-weight:600; display:flex; align-items:center; justify-content:center; }
.lp-step-ic { margin:14px 0 10px; } .lp-step-ic .ico { font-size:2rem; color:var(--gold-deep); }
.lp-step-t { font-family:var(--serif); font-size:1.2rem; font-weight:600; margin-bottom:8px; }
.lp-step-d { font-size:0.86rem; color:var(--ink-soft); line-height:1.5; }
.lp-step-arrow { display:flex; align-items:center; color:var(--gold); }
.lp-step-arrow .ico { font-size:1.3rem; }
@media(max-width:880px){ .lp-steps{ grid-template-columns:1fr; } .lp-step-arrow{ display:none; } }

/* not a directory */
.lp-dir { display:grid; grid-template-columns:0.9fr 1fr 1fr; gap:26px; align-items:center; padding:14px 0 56px; }
.lp-dir-photo { height:300px; border-radius:16px; background-size:cover; background-position:center; }
.lp-dir-copy .lp-h2 { margin-top:0; }
.lp-dir-card { background:var(--white); border:1px solid var(--line); border-radius:16px; padding:22px; display:flex; flex-direction:column; gap:14px; box-shadow:0 14px 36px rgba(60,46,30,.06); }
.lp-do { display:flex; align-items:flex-start; gap:11px; font-size:0.92rem; color:var(--ink); line-height:1.4; }
.lp-do-ck { width:24px; height:24px; border-radius:50%; background:var(--gold-soft); color:var(--gold-deep); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.lp-do-ck .ico { font-size:0.82rem; }
@media(max-width:980px){ .lp-dir{ grid-template-columns:1fr; } .lp-dir-photo{ height:220px; } }

/* usual vs WPC */
.lp-vs { padding:0 0 56px; }
.lp-vs-table { max-width:880px; margin:22px auto 0; border:1px solid var(--line); border-radius:16px; background:var(--white); padding:8px 26px; }
.lp-vs-headrow, .lp-vs-row { display:grid; grid-template-columns:1fr 48px 1fr; align-items:center; gap:14px; }
.lp-vs-headrow { padding:16px 0 12px; }
.lp-vs-h { font-family:var(--serif); font-size:1.25rem; text-align:center; }
.lp-vs-row { padding:14px 0; border-top:1px solid var(--line); }
.lp-vs-bad { text-align:center; color:var(--ink-faint); font-size:0.92rem; }
.lp-vs-good { text-align:center; color:var(--ink); font-size:0.92rem; font-weight:500; }
.lp-vs-arrow { width:32px; height:32px; border-radius:50%; background:var(--gold); color:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto; }
.lp-vs-arrow .ico { color:#fff; font-size:0.95rem; }

/* we handle the search */
.lp-control { display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:center; padding:14px 0 60px; }
.lp-control-l .lp-h2 { margin-top:0; }
.lp-control-l .lp-p { margin-top:16px; max-width:32em; }
.lp-control-l u { text-decoration-color:var(--gold); text-underline-offset:2px; }
.lp-control-card { background:var(--cream); border:1px solid var(--line); border-radius:16px; padding:26px; position:relative; }
.lp-cc-h { font-family:var(--serif); font-size:1.3rem; font-weight:600; margin-bottom:16px; }
.lp-cc-row { display:flex; align-items:center; gap:12px; padding:9px 0; font-size:0.94rem; }
.lp-cc-ic { width:34px; height:34px; border-radius:9px; background:var(--white); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.lp-cc-ic .ico { color:var(--gold-deep); font-size:1.15rem; }
.lp-cc-photo { height:130px; border-radius:12px; background-size:cover; background-position:center; margin-top:16px; }
@media(max-width:880px){ .lp-control{ grid-template-columns:1fr; } }

/* final CTA */
.lp-cta { position:relative; text-align:center; padding:54px 0; border-top:1px solid var(--line); overflow:hidden; }
.lp-cta::before { content:""; position:absolute; left:0; top:0; bottom:0; width:34%; background:url('assets/rings-flatlay.png') left center/cover; opacity:.32; -webkit-mask-image:linear-gradient(to right, #000 30%, transparent 100%); mask-image:linear-gradient(to right, #000 30%, transparent 100%); pointer-events:none; }
.lp-cta > * { position:relative; z-index:1; }
.lp-cta-btns { display:flex; gap:13px; justify-content:center; flex-wrap:wrap; margin-top:24px; }

/* footer */
.lp-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 0 36px; border-top:1px solid var(--line); flex-wrap:wrap; }
.lp-foot-links { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.lp-foot-links a, .lp-foot-link { color:var(--ink-soft); font-size:0.86rem; text-decoration:none; background:none; border:none; cursor:pointer; font-family:inherit; padding:0; }
.lp-foot-links a:hover, .lp-foot-link:hover { color:var(--gold-deep); }
.lp-foot-social { display:flex; gap:12px; }
.lp-foot-social .ico { color:var(--ink-faint); font-size:1.3rem; }

/* ============================================================
   REFRESH — calm briefing dashboard (Pass 1)
   ============================================================ */
.nd { max-width:1140px; margin:0 auto; padding:8px 22px 48px; }
.nd-toolsbtn { }
.nd-ibtn { width:38px; height:38px; border-radius:10px; border:1px solid var(--line); background:var(--white); color:var(--ink-soft); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:all .14s; }
.nd-ibtn:hover { border-color:var(--gold); color:var(--gold-deep); }
.nd-ibtn.nav { background:transparent; border-color:transparent; }
.nd-ibtn .ico { font-size:1.2rem; }

/* 2 · Wedding header */
.nd-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:22px 4px 18px; }
.nd-h-id { display:flex; align-items:center; gap:16px; }
.nd-thumb { width:62px; height:62px; border-radius:16px; background-size:cover; background-position:center; flex:none; box-shadow:var(--shadow-sm); }
.nd-thumb.ph { background:linear-gradient(135deg,var(--blue),var(--blue-deep)); display:flex; align-items:center; justify-content:center; }
.nd-thumb.ph span { color:#fff; font-weight:600; font-size:1.1rem; letter-spacing:1px; }
.nd-couple { font-size:1.85rem; line-height:1.1; color:var(--ink); }
.nd-meta { font-size:0.92rem; color:var(--ink-soft); margin-top:3px; }
.nd-h-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:9px; }
.nd-tag { display:inline-flex; align-items:center; gap:6px; font-size:0.78rem; color:var(--ink-soft); background:var(--white); border:1px solid var(--line); border-radius:999px; padding:4px 11px; }
.nd-tag.ok { color:var(--green-deep); border-color:var(--green-soft); background:#FAFBF7; }
.nd-tag .ico { font-size:0.9rem; }
.nd-tag .nd-days { font-weight:700; color:var(--gold-deep); margin-right:2px; }
.nd-h-actions { display:flex; align-items:center; gap:8px; }

/* 3 · Concierge briefing hero */
.nd-brief { background:linear-gradient(135deg,#FBF6EC,#F6EEDD); border:1px solid var(--gold-soft); border-radius:20px; padding:26px 28px; box-shadow:var(--shadow-sm); }
.nd-brief-kicker { display:inline-flex; align-items:center; gap:6px; font-size:0.72rem; text-transform:uppercase; letter-spacing:1px; font-weight:700; color:var(--gold-deep); }
.nd-brief-kicker .ico { color:var(--gold-deep); }
.nd-brief-head { font-size:1.9rem; line-height:1.15; color:var(--ink); margin:8px 0 0; max-width:30ch; }
.nd-brief-body { font-size:1rem; line-height:1.6; color:var(--ink-soft); margin:10px 0 0; max-width:62ch; }
.nd-brief-cta { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.nd-brief-note { display:inline-flex; align-items:center; gap:7px; margin-top:14px; font-size:0.84rem; color:var(--gold-deep); }
.nd-brief-note .ico { color:var(--gold-deep); }

/* 4 · Status snapshot */
.nd-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:18px; }
.nd-stat { background:var(--white); border:1px solid var(--line); border-radius:16px; padding:16px 16px 14px; display:flex; flex-direction:column; gap:2px; }
.nd-stat.primary { background:#FAFBF7; border-color:var(--green-soft); }
.nd-stat-ic { color:var(--ink-faint); font-size:1.05rem; margin-bottom:4px; }
.nd-stat.primary .nd-stat-ic { color:var(--green); }
.nd-stat-big { font-size:1.65rem; font-weight:700; color:var(--ink); font-family:'Cormorant Garamond',serif; line-height:1; }
.nd-stat-unit { font-size:0.8rem; font-weight:600; color:var(--ink-faint); margin-left:3px; font-family:'Jost',sans-serif; }
.nd-stat-l { font-size:0.78rem; color:var(--ink-soft); }
.nd-stat.warn .nd-stat-big { color:var(--gold-deep); }
.nd-stat.ok .nd-stat-big { color:var(--green-deep); }

/* ---- Editorial hero (concierge briefing) ---- */
.nd-hero { display:flex; gap:24px; align-items:stretch; background:linear-gradient(135deg,#FBF6EC,#F6EEDD); border:1px solid var(--gold-soft); border-radius:20px; padding:28px 30px; box-shadow:var(--shadow-sm); overflow:hidden; }
.nd-hero-l { flex:1; min-width:0; }
.nd-hero-welcome { display:inline-flex; align-items:center; gap:6px; font-size:0.72rem; text-transform:uppercase; letter-spacing:1px; font-weight:700; color:var(--gold-deep); }
.nd-hero-welcome .ico { color:var(--gold-deep); }
.nd-hero-title { font-size:2.2rem; line-height:1.08; color:var(--ink); margin:6px 0 0; }
.nd-hero-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; margin-top:12px; }
.nd-hero-couple { font-family:var(--serif); font-size:1.2rem; font-weight:600; color:var(--ink); }
.nd-hero-line { font-size:0.86rem; color:var(--ink-soft); }
.nd-hero-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.nd-hero-chips .nd-tag { display:inline-flex; align-items:center; gap:5px; font-size:0.76rem; font-weight:600; color:var(--ink-soft); background:#fff; border:1px solid var(--line); border-radius:999px; padding:5px 12px; }
.nd-hero-chips .nd-tag.ok { color:var(--green-deep); border-color:var(--green-soft); background:var(--green-soft); }
.nd-hero-chips .nd-tag .ico { font-size:0.9rem; }
.nd-hero-chips .nd-days { font-weight:700; color:var(--ink); }
.nd-tag-hours { cursor:pointer; color:var(--gold-deep); border-color:var(--gold) !important; background:var(--gold-soft) !important; transition:background .14s, box-shadow .14s; }
.nd-tag-hours .ico { color:var(--gold-deep); }
.nd-tag-hours b { color:var(--gold-deep); }
.nd-tag-hours:hover { box-shadow:var(--shadow-sm); background:#F3E6CC !important; }
.nd-hero-ribbon { font-size:0.96rem; line-height:1.55; color:var(--ink-soft); margin:16px 0 0; max-width:60ch; }
.nd-hero-ribbon b { color:var(--ink); font-weight:700; }
/* Phase 5 refine · quiet proof rail under the concierge paragraph (Apple-metadata feel) */
.nd-proof { margin-top:24px; padding-top:22px; border-top:1px solid var(--line-soft); }
.nd-proof-h { font-size:0.72rem; font-weight:600; letter-spacing:0.04em; color:var(--ink-faint); margin-bottom:14px; }
.nd-proof-chips { display:flex; flex-wrap:wrap; gap:11px 26px; max-width:62ch; }
.nd-proof-chip { display:inline-flex; align-items:center; gap:7px; font-size:0.82rem; line-height:1.5; color:var(--ink-soft); white-space:nowrap; }
.nd-proof-chip .ico { font-size:0.78rem; color:var(--green-deep); opacity:0.7; }
/* hero action column — compact stacked CTAs (right side) */
.nd-hero-actions { flex:0 0 244px; align-self:center; display:flex; flex-direction:column; gap:10px; }
.nd-hero-actions .btn { width:100%; justify-content:center; }
/* "Quick access" shortcut cluster — labeled, customizable, separated from the primary CTAs by a hairline */
.nd-hero-quick { display:flex; flex-direction:column; gap:7px; padding-bottom:12px; margin-bottom:2px; border-bottom:1px solid var(--gold-soft); }
.nd-hero-quick-top { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.nd-hero-quick-l { font-size:0.62rem; text-transform:uppercase; letter-spacing:1px; font-weight:700; color:var(--gold-deep); opacity:.8; }
.nd-hero-quick-edit { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; padding:0; border:none; background:none; color:var(--ink-faint); cursor:pointer; border-radius:6px; transition:color .14s, background .14s; }
.nd-hero-quick-edit .ico { font-size:0.92rem; }
.nd-hero-quick-edit:hover { color:var(--gold-deep); background:var(--gold-soft); }
.nd-hero-iconrow { display:flex; justify-content:flex-end; gap:8px; }
.nd-ibtn-empty { border-style:dashed; color:var(--ink-faint); }
/* visible hover tooltip on hero shortcut icons (anchored right + below so the hero's overflow:hidden never clips it) */
.nd-hero-iconrow .nd-ibtn { position:relative; }
.nd-hero-iconrow .nd-ibtn[data-tip]::after {
  content:attr(data-tip); position:absolute; top:calc(100% + 8px); right:0;
  background:var(--ink); color:#fff; font-size:0.72rem; font-weight:600; white-space:nowrap;
  padding:5px 9px; border-radius:7px; box-shadow:var(--shadow-md); z-index:60;
  opacity:0; visibility:hidden; transform:translateY(-4px); pointer-events:none;
  transition:opacity .14s, transform .14s;
}
.nd-hero-iconrow .nd-ibtn[data-tip]:hover::after { opacity:1; visibility:visible; transform:translateY(0); }
@media (max-width:920px){
  .nd-hero { flex-direction:column; }
  .nd-hero-actions { flex-basis:auto; align-self:stretch; }
  .nd-hero-fav { align-self:flex-end; }
}
@media (max-width:760px){
  .nd-hero { padding:20px 18px; }
  .nd-hero-title { font-size:1.7rem; }
}
/* supporting grid below the chart — Needs attention · What WPC is doing · Planning snapshot */
.nd-cols2 { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px; align-items:start; }
.nd-cols3 { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:20px; margin-top:24px; align-items:stretch; }
.nd-cols3 > .nd-card { display:flex; flex-direction:column; }
.nd-cols3 .nd-cardbtn { margin-top:auto; }
@media (max-width:1040px){ .nd-cols2, .nd-cols3 { grid-template-columns:1fr; } }

/* ---- "Where everything stands" — stacked-bar chart (dashboard focal point) ---- */
.ws-card { margin-top:18px; padding:24px 26px; }
.ws-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.ws-head-l { flex:1; min-width:240px; }
.ws-title { display:flex; align-items:center; gap:9px; font-size:1.5rem; color:var(--ink); }
.ws-title .ico { color:var(--gold-deep); }
.ws-summary { font-size:0.92rem; line-height:1.55; color:var(--ink-soft); margin:6px 0 0; }
.ws-learn { display:inline-flex; align-items:center; gap:6px; font-size:0.8rem; font-weight:500; color:var(--gold-deep); background:transparent; border:none; white-space:nowrap; }
.ws-learn:hover, .ws-learn.on { text-decoration:underline; }
/* learn-how panel — clean stage definition list */
.ws-learnbox { margin-top:14px; padding:15px 17px; background:var(--cream); border-radius:var(--radius-sm); display:grid; gap:9px; }
.ws-learn-h { font-weight:600; font-size:0.9rem; color:var(--ink); margin-bottom:1px; }
.ws-learn-intro { margin:0 0 3px; font-size:0.84rem; color:var(--ink-soft); line-height:1.5; }
.ws-learn-row { display:flex; align-items:flex-start; gap:10px; font-size:0.84rem; color:var(--ink-soft); line-height:1.45; }
.ws-learn-row .ws-dot { margin-top:4px; }
.ws-learn-tx b { color:var(--ink); font-weight:600; }
/* chart header right column — Learn link with filter tabs beneath it */
.ws-head-r { display:flex; flex-direction:column; align-items:flex-end; gap:10px; flex:0 0 auto; }
/* filter tabs */
.ws-tabs { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
@media (max-width:680px){ .ws-head-r { align-items:flex-start; width:100%; } .ws-tabs { justify-content:flex-start; } }
.ws-tab { font-size:0.78rem; font-weight:500; color:var(--ink-soft); background:transparent; border:1px solid var(--line); border-radius:999px; padding:6px 13px; transition:all .15s; }
.ws-tab:hover { border-color:var(--gold); color:var(--gold-deep); }
.ws-tab.on { background:var(--ink); border-color:var(--ink); color:#fff; }
/* legend with hover info tooltips */
.ws-legend { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }
.ws-foot { border-top:1px solid var(--line-soft); padding-top:14px; }
.ws-leg { position:relative; display:inline-flex; align-items:center; gap:6px; font-size:0.78rem; font-weight:500; color:var(--ink-soft); cursor:default; outline:none; }
.ws-dot { width:12px; height:12px; border-radius:4px; flex:0 0 auto; }
.ws-dot.d { background:#8FA98C; } .ws-dot.c { background:#8FA6C0; } .ws-dot.i { background:#C2A9C4; } .ws-dot.rec { background:var(--gold); } .ws-dot.b { background:var(--green-deep); }
.ws-leg-i { display:inline-flex; color:var(--ink-faint); font-size:0.82em; }
.ws-leg:hover .ws-leg-i, .ws-leg:focus .ws-leg-i { color:var(--gold-deep); }
.ws-leg-tip { position:absolute; bottom:calc(100% + 9px); left:-6px; width:212px; background:var(--ink); color:#fff; font-size:0.74rem; font-weight:400; line-height:1.45; padding:9px 11px; border-radius:9px; box-shadow:var(--shadow-md); opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s, transform .15s; z-index:30; pointer-events:none; }
.ws-leg-tip::after { content:""; position:absolute; top:100%; left:18px; border:6px solid transparent; border-top-color:var(--ink); }
.ws-leg:hover .ws-leg-tip, .ws-leg:focus .ws-leg-tip { opacity:1; visibility:visible; transform:translateY(0); }
/* chart */
.wsc { display:flex; gap:12px; margin-top:18px; }
.wsc-yaxis { flex:0 0 24px; display:flex; flex-direction:column; justify-content:space-between; height:240px; }
.wsc-tick { display:flex; align-items:center; height:0; }
.wsc-tnum { font-size:0.68rem; color:var(--ink-faint); transform:translateY(-50%); }
.wsc-plot { position:relative; flex:1; min-width:0; overflow-x:auto; overflow-y:visible; }
.wsc-grid { position:absolute; top:0; left:0; right:0; height:240px; display:flex; flex-direction:column; justify-content:space-between; pointer-events:none; }
.wsc-gl { height:1px; background:var(--line-soft); width:100%; }
.wsc-bars { position:relative; display:flex; align-items:flex-start; gap:6px; min-width:460px; }
.wsc-col { flex:1 1 0; min-width:52px; display:flex; flex-direction:column; align-items:center; background:transparent; border:none; cursor:pointer; padding:0; }
.wsc-stack { width:100%; max-width:40px; height:240px; display:flex; flex-direction:column; justify-content:flex-end; }
.wsc-total { flex:0 0 auto; text-align:center; font-family:var(--serif); font-size:0.95rem; font-weight:700; color:var(--ink); line-height:1; margin-bottom:5px; }
.wsc-total.ok { color:var(--green-deep); }
.wsc-total .ico { font-size:0.95rem; }
.wsc-seg { width:100%; display:flex; align-items:center; justify-content:center; min-height:16px; transition:filter .15s; }
.wsc-seg:first-of-type { border-radius:5px 5px 0 0; }
.wsc-seg.d { background:#8FA98C; } .wsc-seg.c { background:#8FA6C0; } .wsc-seg.i { background:#C2A9C4; } .wsc-seg.rec { background:var(--gold); } .wsc-seg.b { background:var(--green-deep); }
.wsc-seg.empty { background:var(--line-soft); height:3px !important; border-radius:3px; }
.wsc-n { font-size:0.72rem; font-weight:600; color:#fff; }
.wsc-seg.i .wsc-n { color:rgba(58,46,35,.72); }
.wsc-col:hover .wsc-seg { filter:brightness(1.05); }
.wsc-xlabel { display:flex; flex-direction:column; align-items:center; gap:3px; margin-top:10px; font-size:0.73rem; color:var(--ink-soft); text-align:center; line-height:1.2; }
.wsc-xlabel .ico { color:var(--gold-deep); font-size:1rem; }
.wsc-xl-t { max-width:74px; }
.ws-expand { display:inline-flex; align-items:center; gap:5px; margin-top:14px; font-size:0.82rem; font-weight:600; color:var(--gold-deep); background:transparent; border:1px solid var(--line); border-radius:999px; padding:7px 14px; transition:all .15s; }
.ws-expand:hover { border-color:var(--gold); background:var(--gold-soft); }
@media (max-width:760px){
  .ws-card { padding:18px 16px; }
  .wsc-bars { min-width:440px; }
}
/* "What WPC is doing now" list */
.nd-doing { display:flex; flex-direction:column; gap:11px; }
.nd-doing-row { display:flex; align-items:flex-start; gap:10px; font-size:0.9rem; color:var(--ink-soft); line-height:1.45; }
.nd-doing-row .ico { color:var(--gold-deep); flex:0 0 auto; margin-top:1px; }
/* attention card gets a soft primary accent among the supporting cards */
.nd-attn-card { border-color:var(--gold-soft); box-shadow:0 4px 18px rgba(140,106,48,.07); }

/* layout columns */
.nd-cols { display:grid; grid-template-columns:1.5fr 1fr; gap:18px; margin-top:18px; align-items:start; }
.nd-col-main, .nd-col-rail { display:flex; flex-direction:column; gap:18px; }
@media (max-width:880px){ .nd-cols { grid-template-columns:1fr; } .nd-stats { grid-template-columns:repeat(2,1fr); } }

/* generic refresh card */
.nd-card { background:var(--white); border:1px solid var(--line); border-radius:18px; padding:18px 20px; box-shadow:var(--shadow-sm); }
.nd-card-h { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:1.02rem; font-weight:600; color:var(--ink); margin-bottom:12px; font-family:'Cormorant Garamond',serif; font-size:1.25rem; }
.nd-card-h > span { display:inline-flex; align-items:center; gap:8px; }
.nd-card-h .ico { color:var(--gold-deep); font-size:1.05rem; }
.nd-viewall { background:none; border:0; color:var(--blue); font-size:0.82rem; font-weight:600; cursor:pointer; font-family:'Jost',sans-serif; display:inline-flex; align-items:center; gap:4px; }
.nd-viewall:hover { text-decoration:underline; }
.nd-cardbtn { width:100%; margin-top:14px; padding:10px; border:1px solid var(--line); border-radius:11px; background:var(--white); color:var(--ink-soft); font-size:0.86rem; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:6px; transition:all .14s; }
.nd-cardbtn:hover { border-color:var(--gold); color:var(--gold-deep); background:var(--cream); }
.nd-empty { display:flex; align-items:center; gap:8px; color:var(--ink-faint); font-size:0.88rem; padding:8px 2px; }
.nd-empty.sm { font-size:0.82rem; padding:4px 2px; }
.nd-empty .ico { color:var(--green); }

/* 5 · needs attention */
.nd-attn-row { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; transition:all .14s; margin-bottom:8px; }
.nd-attn-row:last-child { margin-bottom:0; }
.nd-attn-row:hover { border-color:var(--gold); background:var(--cream); }
.nd-attn-ic { flex:none; font-size:1.1rem; }
.nd-attn-tx { flex:1; font-size:0.9rem; color:var(--ink); }
.nd-attn-go { flex:none; color:var(--ink-faint); }
.nd-attn-row:hover .nd-attn-go { color:var(--gold-deep); }

/* 6 · recommends */
.nd-rec-featured { border:1px solid var(--gold-soft); background:#FBF7EE; border-radius:14px; padding:16px; }
.nd-rec-top { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.nd-rec-cat { font-size:0.68rem; text-transform:uppercase; letter-spacing:0.6px; font-weight:700; color:var(--ink-faint); }
.nd-strength { font-size:0.64rem; text-transform:uppercase; letter-spacing:0.4px; font-weight:700; border-radius:999px; padding:2px 9px; }
.nd-strength.high { color:var(--green-deep); background:var(--green-soft); }
.nd-strength.good { color:var(--gold-deep); background:var(--gold-soft); }
.nd-strength.soft { color:var(--ink-soft); background:var(--cream); border:1px solid var(--line); }
.nd-rec-decision { font-size:1.25rem; color:var(--ink); line-height:1.2; }
.nd-rec-reason { font-size:0.88rem; color:var(--ink-soft); line-height:1.5; margin-top:6px; }
.nd-rec-cta { margin-top:14px; }
.nd-rec-supporting { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
@media (max-width:560px){ .nd-rec-supporting { grid-template-columns:1fr; } }
.nd-rec-sm { border:1px solid var(--line); border-radius:12px; padding:13px; }
.nd-rec-decision-sm { font-size:0.92rem; font-weight:600; color:var(--ink); margin-top:2px; }
.nd-rec-reason-sm { font-size:0.8rem; color:var(--ink-faint); line-height:1.45; margin-top:5px; }
.nd-rec-link { margin-top:9px; background:none; border:0; padding:0; color:var(--blue); font-size:0.8rem; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:4px; }
.nd-rec-link:hover { text-decoration:underline; }

/* 7 · planning snapshot */
.nd-snap { display:flex; flex-direction:column; }
.nd-snap-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:0.88rem; }
.nd-snap-row:last-child { border-bottom:0; }
.nd-snap-l { display:inline-flex; align-items:center; gap:8px; color:var(--ink-soft); }
.nd-snap-l .ico { color:var(--ink-faint); }
.nd-snap-v { font-weight:600; color:var(--ink); text-align:right; }
.nd-snap-v.ok { color:var(--green-deep); }
.nd-snap-v.warn { color:var(--gold-deep); }
.nd-snap-link { background:transparent; border:none; cursor:pointer; color:var(--gold-deep); font:inherit; font-weight:600; padding:0; }
.nd-snap-link:hover { text-decoration:underline; }

/* 8 · proof */
.nd-proof-hero { display:flex; align-items:baseline; gap:10px; padding:6px 0 12px; border-bottom:1px solid var(--line); }
.nd-proof-big { font-family:'Cormorant Garamond',serif; font-size:2.4rem; font-weight:700; color:var(--green-deep); line-height:1; }
.nd-proof-l { font-size:0.86rem; color:var(--ink-soft); }
.nd-proof-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; }
.nd-proof-i { display:flex; flex-direction:column; }
.nd-proof-i b { font-size:1.15rem; color:var(--ink); font-family:'Cormorant Garamond',serif; }
.nd-proof-i span { font-size:0.72rem; color:var(--ink-faint); }

/* 9 · upcoming */
.nd-upcoming { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:680px){ .nd-upcoming { grid-template-columns:1fr; } }
.nd-up-h { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.7px; font-weight:700; color:var(--ink-faint); margin-bottom:9px; }
.nd-up-row { display:flex; align-items:flex-start; gap:10px; padding:7px 0; }
.nd-up-ic { flex:none; color:var(--gold-deep); margin-top:1px; }
.nd-up-row.concierge .nd-up-ic { color:var(--blue); }
.nd-up-t { font-size:0.86rem; color:var(--ink); line-height:1.35; }
.nd-up-s { font-size:0.76rem; color:var(--ink-faint); margin-top:1px; }

/* 10 · quick tools */
/* Tools center — quieter secondary footer shelf (not a competing content card) */
.nd-quick { margin-top:24px; background:var(--cream); border-color:var(--line); box-shadow:none; }
.nd-quick .nd-card-h { font-size:1.1rem; }
.nd-quick-row { display:flex; flex-wrap:wrap; gap:9px; }
.nd-quick-btn { display:inline-flex; align-items:center; gap:7px; padding:10px 14px; border:1px solid var(--line); border-radius:11px; background:var(--white); color:var(--ink); font-size:0.86rem; font-weight:500; cursor:pointer; transition:all .14s; }
.nd-quick-btn:hover { border-color:var(--gold); color:var(--gold-deep); background:var(--cream); }
.nd-quick-btn .ico { color:var(--gold-deep); }

/* 11 · Tools Center */
.tc-body { max-width:none; }
.tc-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:680px){ .tc-grid { grid-template-columns:1fr; } }
.tc-gh { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.7px; font-weight:700; color:var(--gold-deep); margin-bottom:10px; }
.tc-items { display:flex; flex-direction:column; gap:7px; }
.tc-item { display:flex; align-items:center; gap:11px; width:100%; text-align:left; padding:11px 13px; border:1px solid var(--line); border-radius:11px; background:var(--white); color:var(--ink); font-size:0.9rem; cursor:pointer; transition:all .14s; }
.tc-item:hover { border-color:var(--gold); background:var(--cream); }
.tc-item .ico { color:var(--gold-deep); font-size:1.05rem; flex:none; }

/* 11b · Tools Center — searchable, grouped cards (Pass 3) */
.tc-body { position:relative; }
.tc-close { position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:10px; border:1px solid var(--line); background:var(--white); color:var(--ink-soft); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:all .14s; z-index:3; }
.tc-close:hover { border-color:var(--ink); color:var(--ink); background:var(--cream); }
.tc-close .ico { font-size:1.05rem; }
.tc-search { display:flex; align-items:center; gap:9px; padding:10px 13px; border:1px solid var(--line); border-radius:11px; background:var(--white); margin-bottom:12px; }
.tc-search:focus-within { border-color:var(--gold); }
.tc-search-ic .ico { color:var(--ink-faint); font-size:1.05rem; }
.tc-search-in { flex:1; border:0; outline:0; background:transparent; font-family:'Jost',sans-serif; font-size:0.92rem; color:var(--ink); }
.tc-search-in::placeholder { color:var(--ink-faint); }

.tc-tabs { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }
.tc-tab { padding:7px 13px; border:1px solid var(--line); border-radius:999px; background:var(--white); color:var(--ink-soft); font-family:'Jost',sans-serif; font-size:0.82rem; cursor:pointer; transition:all .14s; }
.tc-tab:hover { border-color:var(--gold); color:var(--gold-deep); }
.tc-tab.on { background:var(--ink); border-color:var(--ink); color:#fff; }

.tc-mostused { margin-bottom:20px; }
.tc-mu-label { display:flex; align-items:center; gap:6px; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.7px; font-weight:700; color:var(--gold-deep); margin-bottom:9px; }
.tc-mu-label .ico { font-size:0.9rem; }
.tc-mu-row { display:flex; flex-wrap:wrap; gap:8px; }
.tc-mu-card { display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border:1px solid var(--gold); border-radius:999px; background:var(--gold-soft); color:var(--gold-deep); font-family:'Jost',sans-serif; font-size:0.85rem; font-weight:500; cursor:pointer; transition:all .14s; }
.tc-mu-card:hover { background:var(--gold); color:#fff; }
.tc-mu-card .ico { font-size:1rem; }

.tc-sections { display:flex; flex-direction:column; gap:22px; }
.tc-section .tc-gh { display:flex; align-items:center; gap:7px; }
.tc-section .tc-gh .ico { font-size:0.95rem; }
.tc-section { margin-top:22px; }
.tc-section-h { display:flex; align-items:baseline; gap:10px; padding-bottom:10px; margin-bottom:13px; border-bottom:1px solid var(--line); }
.tc-section-t { font-family:var(--serif); font-size:1.12rem; font-weight:600; color:var(--ink); }
.tc-section-s { font-size:0.82rem; color:var(--ink-soft); }
@media (max-width:560px){ .tc-section-h { flex-direction:column; gap:2px; } }
.tc-cards { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:680px){ .tc-cards { grid-template-columns:1fr; } }
.tc-card { display:flex; align-items:flex-start; gap:12px; width:100%; text-align:left; padding:13px 14px; border:1px solid var(--line); border-radius:13px; background:var(--white); cursor:pointer; transition:all .14s; }
.tc-card:hover { border-color:var(--gold); background:var(--cream); }
.tc-card-ic { flex:none; width:36px; height:36px; border-radius:10px; background:var(--gold-soft); display:inline-flex; align-items:center; justify-content:center; }
.tc-card-ic .ico { color:var(--gold-deep); font-size:1.15rem; }
.tc-card-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.tc-card-name { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:0.92rem; font-weight:600; color:var(--ink); }
.tc-card-desc { font-size:0.8rem; color:var(--ink-soft); line-height:1.45; }
.tc-card-go { flex:none; align-self:center; color:var(--ink-faint); opacity:0; transition:opacity .14s; }
.tc-card:hover .tc-card-go { opacity:1; color:var(--gold-deep); }
.tc-badge { flex:none; font-size:0.68rem; font-weight:600; padding:2px 8px; border-radius:999px; letter-spacing:0.02em; }
.tc-badge.neutral { background:var(--cream); color:var(--ink-soft); border:1px solid var(--line); }
.tc-badge.gold { background:var(--gold-soft); color:var(--gold-deep); }
.tc-badge.warn { background:var(--warn-soft, #FBF1E3); color:var(--warn, #9A6A1E); }
.tc-badge.ok { background:var(--green-soft); color:var(--green-deep); }
.tc-empty { padding:26px; text-align:center; color:var(--ink-soft); font-size:0.92rem; }
.tc-empty .ico { color:var(--ink-faint); margin-right:6px; }

/* customizable quick tools */
.nd-quick-hdr { display:inline-flex; align-items:center; gap:14px; }
.nd-quick-add { border-style:dashed !important; border-color:var(--sand) !important; color:var(--gold-deep) !important; }
.nd-quick-add:hover { border-color:var(--gold) !important; background:var(--cream) !important; }
.qt-list { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
@media (max-width:520px){ .qt-list { grid-template-columns:1fr; } }
.qt-opt { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1.5px solid var(--line); border-radius:11px; background:#fff; cursor:pointer; transition:all .14s; }
.qt-opt:hover { border-color:var(--gold); }
.qt-opt.on { border-color:var(--green); background:#FAFBF7; }
.qt-cb { position:absolute; opacity:0; width:1px; height:1px; }
.qt-box { flex:none; width:20px; height:20px; border:1.5px solid var(--sand); border-radius:6px; display:flex; align-items:center; justify-content:center; background:#fff; }
.qt-box .ico { opacity:0; color:#fff; font-size:0.78rem; }
.qt-cb:checked ~ .qt-box { background:var(--green); border-color:var(--green); }
.qt-cb:checked ~ .qt-box .ico { opacity:1; }
.qt-ic { flex:none; color:var(--gold-deep); display:inline-flex; }
.qt-l { font-size:0.9rem; color:var(--ink); }
.qt-count { font-size:0.82rem; color:var(--ink-faint); }
.qt-limit { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 12px; margin-bottom:12px; border:1px solid var(--gold-soft); background:var(--gold-soft); border-radius:10px; }
.qt-limit-l { display:inline-flex; align-items:center; gap:6px; font-size:0.85rem; font-weight:600; color:var(--gold-deep); }
.qt-limit-l .ico { font-size:0.95rem; }
.qt-limit-c { font-size:0.82rem; color:var(--ink-soft); }
.qt-limit-c.full { color:var(--gold-deep); font-weight:600; }
.qt-opt.disabled { opacity:0.45; cursor:not-allowed; }
.qt-opt.disabled .qt-box { background:var(--cream); }

/* ===== Pass 2: adaptive states + decision queue ===== */
/* prototype demo control — clearly marked as not part of the real product */
.nd-protodemo { display:inline-flex; align-items:stretch; border:1px dashed var(--gold); border-radius:9px; overflow:hidden; background:var(--gold-soft); }
.nd-protodemo-tag { display:inline-flex; align-items:center; gap:4px; padding:0 8px; font-size:0.64rem; font-weight:600; letter-spacing:0.07em; text-transform:uppercase; color:#fff; background:var(--gold-deep); }
.nd-protodemo-tag .ico { font-size:0.82rem; }
.nd-protoswitch { font-size:0.76rem; padding:7px 9px; border:0; background:transparent; color:var(--gold-deep); cursor:pointer; font-family:'Jost',sans-serif; }

/* attention rows: explicit action button + resolve check */
.nd-attn-row { display:flex; align-items:center; gap:11px; width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:var(--white); margin-bottom:8px; transition:border-color .14s; }
.nd-attn-row:hover { border-color:var(--gold); }
.nd-attn-row:last-child { margin-bottom:0; }
.nd-attn-ic { flex:none; font-size:1.1rem; color:var(--gold-deep); display:inline-flex; }
.nd-attn-tx { flex:1; font-size:0.9rem; color:var(--ink); }
.nd-attn-cta { flex:none; display:inline-flex; align-items:center; gap:5px; padding:7px 13px; border-radius:9px; border:1px solid var(--gold); background:var(--gold-soft); color:var(--gold-deep); font-family:'Jost',sans-serif; font-size:0.82rem; font-weight:500; cursor:pointer; transition:all .14s; white-space:nowrap; }
.nd-attn-cta:hover { background:var(--gold); color:#fff; }
.nd-attn-cta .ico { font-size:0.9rem; }
.nd-attn-done { flex:none; width:34px; height:34px; border-radius:9px; border:1px solid var(--line); background:var(--white); color:var(--ink-faint); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all .14s; }
.nd-attn-done:hover { border-color:var(--green); color:var(--green); background:#FAFBF7; }

.nd-resolved { display:flex; align-items:center; gap:8px; padding:11px 13px; border-radius:11px; background:#FAFBF7; border:1px solid var(--green-soft); color:var(--green-deep); font-size:0.88rem; margin-bottom:10px; }
.nd-resolved .ico { color:var(--green); }

.nd-empty-rich { padding:6px 2px; }
.nd-empty-h { display:flex; align-items:center; gap:8px; font-size:0.95rem; font-weight:600; color:var(--ink); }
.nd-empty-h .ico { color:var(--green); }
.nd-empty-b { font-size:0.88rem; color:var(--ink-soft); margin-top:6px; line-height:1.5; }
.nd-empty-cta { display:flex; flex-wrap:wrap; gap:9px; margin-top:14px; }

.nd-rec-wait { padding:6px 2px; }
.nd-rec-wait-h { display:flex; align-items:center; gap:8px; font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-weight:600; color:var(--ink); }
.nd-rec-wait-h .ico { color:var(--gold-deep); }
.nd-rec-wait-b { font-size:0.88rem; color:var(--ink-soft); margin-top:6px; line-height:1.55; }

/* decision queue modal */
.dq-list { display:flex; flex-direction:column; gap:8px; max-height:54vh; overflow-y:auto; }
.dq-row { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:11px; background:var(--white); }
.dq-ic { flex:none; font-size:1.05rem; color:var(--gold-deep); }
.dq-tx { flex:1; font-size:0.9rem; color:var(--ink); }
.dq-acts { flex:none; display:flex; gap:6px; }
.dq-open { background:none; border:1px solid var(--line); border-radius:8px; padding:5px 11px; font-size:0.78rem; color:var(--ink-soft); cursor:pointer; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.dq-open .ico { font-size:0.86rem; }
.dq-open:hover { border-color:var(--gold); color:var(--gold-deep); }
.dq-done { background:var(--green-soft); border:1px solid var(--green-soft); border-radius:8px; padding:5px 11px; font-size:0.78rem; color:var(--green-deep); font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:4px; }
.dq-done:hover { background:var(--green); color:#fff; border-color:var(--green); }
.dq-empty { padding:18px; text-align:center; color:var(--ink-soft); font-size:0.9rem; }

/* ===== Pass 4 · guided decision screens ===== */
/* shared strength / status badge tones */
.rec2-strength, .dq2-urg, .cmp-ready, .vp-strength { font-size:0.7rem; font-weight:600; padding:3px 9px; border-radius:999px; letter-spacing:0.02em; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.s-ok { background:var(--green-soft); color:var(--green-deep); }
.s-gold { background:var(--gold-soft); color:var(--gold-deep); }
.s-info, .s-neutral { background:var(--cream); color:var(--ink-soft); border:1px solid var(--line); }
.s-warn { background:#FBF1E3; color:var(--warn); }

/* --- Decision Queue (curated decision center) --- */
.dq2-list { display:flex; flex-direction:column; gap:11px; max-height:60vh; overflow-y:auto; padding-right:2px; }
.dq2-card { border:1px solid var(--line); border-radius:14px; background:var(--white); padding:15px 16px; transition:border-color .14s; }
.dq2-card.lead { border-color:var(--gold); background:linear-gradient(180deg,var(--gold-soft),var(--white) 70%); }
.dq2-top { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:9px; }
.dq2-type { display:inline-flex; align-items:center; gap:6px; font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; color:var(--gold-deep); }
.dq2-type .ico { font-size:0.95rem; }
.dq2-cat { font-size:0.74rem; color:var(--ink-soft); background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:2px 9px; }
.dq2-urg { margin-left:auto; }
.dq2-title { font-size:1.12rem; color:var(--ink); line-height:1.3; }
.dq2-why { font-size:0.86rem; color:var(--ink-soft); line-height:1.5; margin-top:5px; }
.dq2-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:13px; flex-wrap:wrap; }
.dq2-rec { font-size:0.8rem; color:var(--ink-soft); display:inline-flex; align-items:center; gap:5px; }
.dq2-rec .ico { color:var(--gold-deep); }
.dq2-rec b { color:var(--ink); font-weight:600; }
.dq2-acts { display:flex; gap:8px; }
.dq2-go { display:inline-flex; align-items:center; gap:5px; padding:8px 15px; border-radius:10px; border:1px solid var(--gold); background:var(--gold); color:#fff; font-family:'Jost',sans-serif; font-size:0.84rem; font-weight:500; cursor:pointer; transition:all .14s; white-space:nowrap; }
.dq2-go:hover { background:var(--gold-deep); border-color:var(--gold-deep); }
.dq2-go .ico { font-size:0.9rem; }
.dq2-done { display:inline-flex; align-items:center; gap:5px; padding:8px 13px; border-radius:10px; border:1px solid var(--line); background:var(--white); color:var(--ink-soft); font-family:'Jost',sans-serif; font-size:0.84rem; cursor:pointer; transition:all .14s; white-space:nowrap; }
.dq2-done:hover { border-color:var(--green); color:var(--green-deep); background:#FAFBF7; }
.dq2-empty { padding:30px 18px; text-align:center; color:var(--ink-soft); font-size:0.95rem; }
.dq2-empty .ico { color:var(--green); margin-right:6px; }

/* --- Recommendations (Who we'd book) --- */
.rec2-cat { display:inline-flex; align-items:center; gap:5px; font-size:0.76rem; font-weight:600; color:var(--ink-soft); }
.rec2-cat .ico { color:var(--gold-deep); }
.rec2-tag { font-size:0.7rem; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; color:var(--gold-deep); background:var(--gold-soft); border-radius:999px; padding:2px 9px; }
.rec2-featured { border:1px solid var(--gold); border-radius:16px; background:linear-gradient(180deg,var(--gold-soft),var(--white) 60%); padding:18px 18px 16px; }
.rec2-fhead { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.rec2-fhead .rec2-strength { margin-left:auto; }
.rec2-name { font-size:1.5rem; color:var(--ink); margin-top:8px; }
.rec2-why { font-size:0.92rem; color:var(--ink-soft); line-height:1.5; margin-top:4px; }
.rec2-fits { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.rec2-fit { display:inline-flex; align-items:center; gap:5px; font-size:0.78rem; padding:5px 10px; border-radius:999px; border:1px solid var(--line); background:var(--white); color:var(--ink); }
.rec2-fit.ok { border-color:var(--green-soft); color:var(--green-deep); background:#FAFBF7; }
.rec2-fit.ok .ico { color:var(--green); }
.rec2-fit.warn { border-color:#EADBC2; color:var(--warn); background:#FCF6EC; }
.rec2-fit.warn .ico { color:var(--warn); }
.rec2-watch { display:flex; align-items:flex-start; gap:7px; margin-top:11px; font-size:0.83rem; color:var(--ink-soft); line-height:1.45; }
.rec2-watch .ico { color:var(--warn); margin-top:1px; flex:none; }
.rec2-watch b { color:var(--ink); font-weight:600; }
.rec2-ctas { display:flex; flex-wrap:wrap; gap:9px; margin-top:15px; }
.rec2-cta { font-size:0.85rem; }
.rec2-sub-h { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.7px; font-weight:700; color:var(--gold-deep); margin:22px 0 11px; }
.rec2-card { border:1px solid var(--line); border-radius:14px; background:var(--white); padding:15px 16px; margin-bottom:11px; }
.rec2-chead { display:flex; align-items:center; gap:8px; }
.rec2-chead .rec2-strength { margin-left:auto; }
.rec2-name-sm { font-size:1.1rem; font-weight:600; color:var(--ink); margin-top:6px; font-family:'Cormorant Garamond',serif; }
.rec2-why-sm { font-size:0.85rem; color:var(--ink-soft); line-height:1.45; margin-top:3px; }
.rec2-waiting { margin-top:16px; padding:11px 13px; border:1px dashed var(--line); border-radius:11px; font-size:0.84rem; color:var(--ink-soft); display:flex; align-items:center; gap:7px; }
.rec2-waiting .ico { color:var(--gold-deep); }
.rec2-wait { padding:8px 2px 4px; }
.rec2-wait-h { display:flex; align-items:center; gap:8px; font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-weight:600; color:var(--ink); }
.rec2-wait-h .ico { color:var(--gold-deep); }
.rec2-wait p { font-size:0.9rem; color:var(--ink-soft); line-height:1.55; margin:8px 0 14px; }

/* --- Compare guided summary --- */
.cmp-take { border:1px solid var(--gold); border-radius:14px; background:linear-gradient(180deg,var(--gold-soft),var(--white) 70%); padding:15px 16px; margin:14px 0 4px; }
.cmp-take-h { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.cmp-take-h > span:first-child { display:inline-flex; align-items:center; gap:6px; font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; color:var(--gold-deep); }
.cmp-take-b { font-size:0.92rem; color:var(--ink); line-height:1.55; margin:10px 0 0; }
.cmp-take-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:13px; }
.cmp-take-pick { flex:1; min-width:160px; border:1px solid var(--line); border-radius:11px; background:var(--white); padding:9px 12px; display:flex; flex-direction:column; gap:3px; }
.ctp-l { display:inline-flex; align-items:center; gap:5px; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.4px; color:var(--ink-faint); font-weight:600; }
.ctp-l .ico { color:var(--gold-deep); }
.ctp-v { font-size:0.92rem; font-weight:600; color:var(--ink); }

/* --- Vendor Detail additions --- */
.vp-strength { margin:0 0 12px; }
.vp-watch { margin-top:12px; border-top:1px solid var(--line); padding-top:11px; }
.vp-watch-h { display:flex; align-items:center; gap:6px; font-size:0.8rem; font-weight:600; color:var(--ink); margin-bottom:6px; }
.vp-watch-h .ico { color:var(--warn); }
.vp-watch ul { margin:0; padding-left:2px; list-style:none; display:flex; flex-direction:column; gap:5px; }
.vp-watch li { font-size:0.82rem; color:var(--ink-soft); line-height:1.4; padding-left:14px; position:relative; }
.vp-watch li::before { content:"·"; position:absolute; left:4px; color:var(--warn); font-weight:700; }
.vp-needinfo { display:flex; align-items:flex-start; gap:9px; padding:13px 15px; border:1px solid #EADBC2; background:#FCF6EC; border-radius:13px; margin-bottom:16px; font-size:0.88rem; color:var(--ink); line-height:1.5; }
.vp-needinfo .ico { color:var(--warn); font-size:1.15rem; flex:none; margin-top:1px; }
.vp-qta-sub { font-size:0.84rem; color:var(--ink-soft); margin-bottom:10px; }
.vp-qta { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.vp-qta li { display:flex; align-items:flex-start; gap:8px; font-size:0.9rem; color:var(--ink); line-height:1.45; }
.vp-qta li .ico { color:var(--gold-deep); margin-top:2px; flex:none; }

/* Compare table — qualitative fit headline + muted % */
.cmp-fitlbl { display:inline-block; font-size:0.74rem; font-weight:600; padding:3px 10px; border-radius:999px; line-height:1.3; }
.cmp-fitconf { display:block; font-size:0.68rem; font-weight:600; margin-top:4px; letter-spacing:0.01em; }
.cmp-fitpct { display:block; font-size:0.72rem; color:var(--ink-faint); margin-top:3px; letter-spacing:0.02em; }
.cmp-next { font-size:0.8rem; color:var(--ink); line-height:1.4; }
.cmp-take-next { margin-top:8px; font-size:0.85rem; color:var(--ink); line-height:1.45; }
.cmp-take-next-l { font-weight:600; color:var(--gold-deep); }
.cmp-take-next-l .ico { font-size:0.85rem; }

/* ===== Recommendation unit — Status · Reasoning · Confidence · Next step ===== */
/* confidence chip (shared) */
.recu-conf { display:inline-flex; align-items:center; font-size:0.7rem; font-weight:600; padding:3px 9px; border-radius:999px; letter-spacing:0.01em; white-space:nowrap; }
.recu-conf.c-high   { background:var(--green-soft); color:var(--green-deep); }
.recu-conf.c-medium { background:var(--gold-soft);  color:var(--gold-deep); }
.recu-conf.c-low    { background:var(--cream);      color:var(--ink-faint); }
.cmp-fitconf.c-high   { color:var(--green-deep); }
.cmp-fitconf.c-medium { color:var(--gold-deep); }
.cmp-fitconf.c-low    { color:var(--ink-faint); }
/* full stacked unit (vendor detail / recommendation surfaces) */
.recu-full { display:flex; flex-direction:column; gap:7px; }
.recu-row { display:grid; grid-template-columns:74px 1fr; gap:10px; align-items:start; font-size:0.85rem; line-height:1.45; }
.recu-k { font-size:0.7rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-faint); padding-top:2px; }
.recu-v { color:var(--ink); }
.recu-fit { font-size:0.74rem; font-weight:600; padding:2px 9px; border-radius:999px; }
.recu-fit.s-ok   { background:var(--green-soft); color:var(--green-deep); }
.recu-fit.s-gold { background:var(--gold-soft);  color:var(--gold-deep); }
.recu-fit.s-info { background:var(--cream);      color:var(--ink-soft); }
/* compact unit (cards / compact summaries) */
.recu-compact { display:flex; flex-direction:column; gap:6px; }
.recu-compact .recu-top { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.recu-reason { font-size:0.82rem; color:var(--ink-soft); line-height:1.45; }
.recu-next { font-size:0.82rem; color:var(--ink); line-height:1.45; }
.recu-next-l { font-weight:600; color:var(--gold-deep); }
.recu-next-l .ico { font-size:0.82rem; }

/* vendor detail "Your concierge's take" — status meta line under the badge */
.vp-take-meta { margin-top:8px; font-size:0.78rem; color:var(--ink-faint); font-weight:600; letter-spacing:0.01em; }
.vp-take-lead { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

/* Phase 3 · top-of-page next-step banner (brief, complementary to the sidebar) */
.vp-nextbanner { display:flex; align-items:center; gap:10px; background:var(--gold-soft); border:1px solid rgba(182,142,78,0.28);
  border-radius:13px; padding:11px 15px; margin-bottom:16px; }
.vp-nextbanner > .ico { color:var(--gold-deep); font-size:1.05rem; flex:0 0 auto; }
.vp-nb-tag { font-size:0.66rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-deep);
  background:var(--white); border:1px solid rgba(182,142,78,0.3); border-radius:999px; padding:3px 9px; flex:0 0 auto; }
.vp-nb-t { font-size:0.88rem; color:var(--ink); line-height:1.4; }

/* Phase 3 · "still needed before booking" checklist */
.vp-checklist { }
.vp-cl-h { display:flex; align-items:center; gap:8px; font-size:0.82rem; font-weight:600; color:var(--ink); margin-bottom:10px; letter-spacing:0.01em; }
.vp-cl-h .ico { color:var(--gold-deep); }
.vp-cl-list { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.vp-cl-list li { display:flex; align-items:center; gap:9px; font-size:0.85rem; line-height:1.35; }
.vp-cl-list li .ico { font-size:1rem; flex:0 0 auto; }
.vp-cl-list li.done { color:var(--ink); }
.vp-cl-list li.done .ico { color:var(--green-deep); }
.vp-cl-list li.todo { color:var(--ink-soft); }
.vp-cl-list li.todo .ico { color:var(--ink-faint); }

/* recommendations modal — next-step line */
.rec2-next { margin-top:10px; font-size:0.86rem; color:var(--ink); line-height:1.45; }
.rec2-next-l { font-weight:600; color:var(--gold-deep); }
.rec2-next-l .ico { font-size:0.85rem; }

/* compact fit signal on vendor cards */
.plv-fit { font-size:0.68rem; font-weight:600; padding:2px 8px; border-radius:999px; white-space:nowrap; }
.plv-fit.s-ok   { background:var(--green-soft); color:var(--green-deep); }
.plv-fit.s-gold { background:var(--gold-soft);  color:var(--gold-deep); }
.plv-fit.s-info { background:var(--cream);      color:var(--ink-soft); }
.plvb-c-fit { display:block; margin:2px 0; }

/* ===== Pass 5 · protection & proof tools ===== */
/* Budget Tracker — calm health view */
.bud-health { display:flex; flex-direction:column; gap:6px; padding:13px 15px; border-radius:13px; margin-bottom:14px; border:1px solid var(--line); background:var(--white); }
.bud-health.bh-ok { border-color:var(--green-soft); background:#FAFBF7; }
.bud-health.bh-warn { border-color:#EADBC2; background:#FCF6EC; }
.bud-health-badge { display:inline-flex; align-items:center; gap:5px; font-size:0.8rem; font-weight:600; padding:4px 11px; border-radius:999px; }
.bud-health-note { font-size:0.88rem; color:var(--ink-soft); line-height:1.5; }
.bud-top { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.bud-stat { border:1px solid var(--line); border-radius:11px; background:var(--white); padding:11px 13px; }
.bud-stat .as-l { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.4px; color:var(--ink-faint); font-weight:600; }
.bud-stat .as-n { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:600; color:var(--ink); margin-top:2px; }
.bud-stat .as-n.pos { color:var(--green-deep); }
.bud-stt { display:inline-flex; align-items:center; gap:4px; font-size:0.74rem; font-weight:600; padding:2px 8px; border-radius:999px; white-space:nowrap; }
.bud-stt.ok { background:var(--green-soft); color:var(--green-deep); }
.bud-stt.warn { background:var(--gold-soft); color:var(--gold-deep); }
.bud-note { font-size:0.8rem; color:var(--ink-soft); }
.bud-dim { color:var(--ink-faint); }
@media (max-width:680px){ .bud-top { grid-template-columns:repeat(2,1fr); } }

/* Activity Report — proof of work hero */
.ar-hero { display:flex; align-items:center; gap:18px; padding:18px 20px; border:1px solid var(--gold); border-radius:16px; background:linear-gradient(135deg,var(--gold-soft),var(--white) 75%); margin-bottom:18px; }
.ar-hero-num { font-family:'Cormorant Garamond',serif; font-size:3.4rem; font-weight:700; color:var(--gold-deep); line-height:1; flex:none; }
.ar-hero-u { font-size:1.2rem; margin-left:4px; color:var(--ink-soft); }
.ar-hero-l { font-size:1.05rem; color:var(--ink); font-weight:500; }
.ar-deleg { font-size:0.86rem; color:var(--ink-soft); margin-top:6px; line-height:1.45; display:flex; align-items:flex-start; gap:6px; }
.ar-deleg .ico { color:var(--gold-deep); margin-top:2px; flex:none; }

/* Concierge Activity — tabs */
.ar-tabs { display:flex; gap:8px; margin:4px 0 18px; border-bottom:1px solid var(--line); }
.ar-tab { display:inline-flex; align-items:center; gap:7px; padding:9px 4px; margin-bottom:-1px; background:none; border:none; border-bottom:2px solid transparent; font-family:'Jost',sans-serif; font-size:0.92rem; font-weight:600; color:var(--ink-soft); cursor:pointer; transition:color .14s, border-color .14s; }
.ar-tab + .ar-tab { margin-left:12px; }
.ar-tab .ico { font-size:1rem; }
.ar-tab:hover { color:var(--ink); }
.ar-tab.on { color:var(--gold-deep); border-bottom-color:var(--gold); }
/* Work Summary → Activity Report drill-down link */
.ar-drill { display:inline-flex; align-items:center; gap:7px; width:100%; justify-content:center; margin-top:18px; padding:11px; border:1px solid var(--line); border-radius:12px; background:var(--white); color:var(--gold-deep); font-family:'Jost',sans-serif; font-size:0.88rem; font-weight:600; cursor:pointer; transition:all .14s; }
.ar-drill:hover { border-color:var(--gold); background:var(--gold-soft); }
.ar-drill .ico:last-child { transition:transform .14s; }
.ar-drill:hover .ico:last-child { transform:translateX(3px); }

/* Activity Report — chronological log */
.arl-intro { font-size:0.9rem; color:var(--ink-soft); line-height:1.5; margin-bottom:12px; }
.arl-proof { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px; border:1px solid var(--gold); border-radius:12px; background:linear-gradient(135deg,var(--gold-soft),var(--white) 80%); margin-bottom:16px; }
.arl-proof-h { display:inline-flex; align-items:center; gap:8px; font-size:0.9rem; color:var(--ink); }
.arl-proof-h .ico { color:var(--gold-deep); }
.arl-proof-h b { color:var(--gold-deep); }
.arl-proof-link { display:inline-flex; align-items:center; gap:5px; background:none; border:none; font-size:0.85rem; font-weight:600; color:var(--gold-deep); cursor:pointer; white-space:nowrap; }
.arl-proof-link .ico { transition:transform .14s; }
.arl-proof-link:hover .ico { transform:translateX(3px); }
/* Activity Report — category filter + vendor search */
.arl-filters { display:flex; gap:10px; margin-bottom:6px; }
.arl-search { flex:1; display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:10px; padding:8px 12px; background:var(--white); }
.arl-search-ic .ico { color:var(--ink-faint); font-size:1rem; }
.arl-search-in { flex:1; border:none; outline:none; background:transparent; font-family:'Jost',sans-serif; font-size:0.9rem; color:var(--ink); }
.arl-catsel-wrap { flex:0 0 auto; display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:10px; padding:8px 12px; background:var(--white); color:var(--ink-soft); }
.arl-catsel-wrap .ico { color:var(--gold-deep); font-size:0.95rem; }
.arl-catsel { border:none; background:transparent; outline:none; font-family:'Jost',sans-serif; font-size:0.88rem; font-weight:600; color:var(--ink); cursor:pointer; max-width:160px; }
.arl-empty { display:flex; align-items:center; gap:8px; padding:24px 4px; color:var(--ink-faint); font-size:0.9rem; }
@media (max-width:560px){ .arl-filters { flex-direction:column; } .arl-catsel { max-width:none; } }
.arl { display:flex; flex-direction:column; }
.arl-item { display:flex; align-items:flex-start; gap:12px; padding:13px 2px; border-bottom:1px solid var(--line); }
.arl-item:last-child { border-bottom:none; }
.arl-ic { flex:none; width:32px; height:32px; border-radius:9px; background:var(--gold-soft); display:inline-flex; align-items:center; justify-content:center; }
.arl-ic .ico { color:var(--gold-deep); font-size:1.02rem; }
.arl-ic.tone-ok { background:rgba(95,138,95,0.14); } .arl-ic.tone-ok .ico { color:var(--green-deep,#3f6b3f); }
.arl-ic.tone-warn { background:rgba(176,120,60,0.12); } .arl-ic.tone-warn .ico { color:#a4702f; }
.arl-ic.tone-gold { background:var(--gold-soft); } .arl-ic.tone-gold .ico { color:var(--gold-deep); }
.arl-ic.tone-neutral { background:var(--cream); } .arl-ic.tone-neutral .ico { color:var(--ink-soft); }
.arl-body { flex:1; min-width:0; }
.arl-tx { font-size:0.92rem; color:var(--ink); line-height:1.4; }
.arl-tx b { font-weight:600; }
.arl-meta { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-top:4px; font-size:0.76rem; color:var(--ink-faint); }
.arl-cat { color:var(--gold-deep); font-weight:600; }
.arl-status { color:var(--ink-soft); }
.arl-time { margin-left:auto; color:var(--ink-faint); white-space:nowrap; }
.arl-dot { color:var(--ink-faint); }
/* clickable history rows (outreach / follow-up) */
.arl-click { width:100%; text-align:left; background:none; border:none; border-bottom:1px solid var(--line); cursor:pointer; transition:background .14s; }
.arl-click:hover { background:var(--cream); }
.arl-go { flex:none; align-self:center; color:var(--ink-faint); transition:transform .14s, color .14s; }
.arl-click:hover .arl-go { color:var(--gold-deep); transform:translateX(3px); }
/* booked vendors list */
.bv-list { display:flex; flex-direction:column; gap:10px; }
.bv-card { display:flex; align-items:center; gap:13px; width:100%; text-align:left; padding:12px 14px; border:1px solid var(--line); border-radius:13px; background:var(--white); cursor:pointer; transition:border-color .14s, box-shadow .14s; }
.bv-card:hover { border-color:var(--gold); box-shadow:var(--shadow-sm); }
.bv-thumb { flex:none; width:46px; height:46px; border-radius:11px; }
.bv-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.bv-name { font-family:var(--serif); font-size:1.08rem; font-weight:600; color:var(--ink); line-height:1.15; }
.bv-cat { display:inline-flex; align-items:center; gap:5px; font-size:0.8rem; color:var(--ink-soft); }
.bv-cat .ico { color:var(--gold-deep); }
.bv-pkg { font-size:0.82rem; color:var(--ink-faint); margin-top:1px; }
.bv-go { flex:none; display:inline-flex; align-items:center; gap:5px; font-size:0.84rem; font-weight:600; color:var(--gold-deep); white-space:nowrap; }
.bv-go .ico { transition:transform .14s; }
.bv-card:hover .bv-go .ico { transform:translateX(3px); }
/* dashboard preview timestamps */
.nd-doing-tx { display:flex; flex-direction:column; }
.nd-doing-z { font-size:0.74rem; color:var(--ink-faint); margin-top:1px; }

/* Call Log — proof rows */
.cl-row { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; transition:all .14s; margin-bottom:8px; }
.cl-row:hover { border-color:var(--gold); background:var(--cream); }
.cl-ic { flex:none; width:34px; height:34px; border-radius:9px; background:var(--gold-soft); display:inline-flex; align-items:center; justify-content:center; }
.cl-ic .ico { color:var(--gold-deep); }
.cl-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.cl-name { font-size:0.94rem; font-weight:600; color:var(--ink); }
.cl-meta { font-size:0.78rem; color:var(--ink-faint); }
.cl-outcome { font-size:0.84rem; color:var(--ink-soft); margin-top:3px; line-height:1.4; }
.cl-right { flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.cl-view { font-size:0.78rem; color:var(--ink-faint); display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.cl-row:hover .cl-view { color:var(--gold-deep); }

/* Contract Review — list cards */
.ct-overview { font-size:0.86rem; color:var(--ink-soft); margin-bottom:13px; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.ct-overview .ct-ov { display:inline-flex; align-items:center; gap:4px; }
.ct-overview .ct-ov.ok { color:var(--green-deep); }
.ct-overview .ct-ov.warn { color:var(--warn); }
.ct-list { display:flex; flex-direction:column; gap:10px; }
.ct-card2 { display:flex; flex-direction:column; gap:7px; width:100%; text-align:left; padding:14px 15px; border:1px solid var(--line); border-radius:13px; background:var(--white); cursor:pointer; transition:all .14s; }
.ct-card2:hover { border-color:var(--gold); background:var(--cream); }
.ct-c2-top { display:flex; align-items:center; gap:9px; }
.ct-c2-name { font-size:1.05rem; font-weight:600; color:var(--ink); font-family:'Cormorant Garamond',serif; }
.ct-c2-top .ct-verdict { margin-left:auto; }
.ct-c2-meta { font-size:0.84rem; color:var(--ink-soft); }
.ct-c2-flags { display:flex; gap:16px; font-size:0.82rem; }
.ct-c2-rec { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:3px; padding-top:9px; border-top:1px solid var(--line); font-size:0.84rem; color:var(--ink); }
.ct-c2-rec > span:first-child { display:inline-flex; align-items:center; gap:6px; }
.ct-c2-rec .ico { color:var(--gold-deep); }
.ct-c2-go { color:var(--ink-faint); display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.ct-card2:hover .ct-c2-go { color:var(--gold-deep); }

/* Planning Progress — guided summary */
.pp-summary { border:1px solid var(--gold); border-radius:14px; background:linear-gradient(180deg,var(--gold-soft),var(--white) 70%); padding:14px 16px; margin-bottom:16px; }
.pp-sum-line { display:flex; align-items:flex-start; gap:8px; font-size:0.95rem; color:var(--ink); line-height:1.55; }
.pp-sum-line .ico { color:var(--gold-deep); margin-top:3px; flex:none; }
.pp-sum-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.pp-chip { display:inline-flex; align-items:center; gap:5px; font-size:0.78rem; padding:5px 10px; border-radius:999px; border:1px solid var(--line); background:var(--white); color:var(--ink-soft); }
.pp-chip .ico { color:var(--gold-deep); font-size:0.9rem; }
.pp-chip.ok { border-color:var(--green-soft); background:#FAFBF7; color:var(--green-deep); }
.pp-chip.ok .ico { color:var(--green); }
.pp-chip.warn { border-color:#EADBC2; background:#FCF6EC; color:var(--warn); }
.pp-chip.warn .ico { color:var(--warn); }

/* Pass 5 clarity fixes */
.bud-stat .as-n.warn { color:var(--warn); }
.pp-ts-cap { flex-basis:100%; width:100%; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.5px; font-weight:600; color:var(--ink-faint); margin-bottom:-6px; }
.pp-actcap { display:flex; align-items:flex-start; gap:7px; font-size:0.8rem; color:var(--ink-soft); line-height:1.45; margin:10px 0 4px; }
.pp-actcap .ico { color:var(--gold-deep); margin-top:1px; flex:none; }

/* ===== Pass 6 · operational tools ===== */
/* Add Vendors */
.addv-btns { display:flex; flex-wrap:wrap; gap:8px; grid-column:1 / -1; }
.addv-btns .btn { flex:1; min-width:160px; }

/* Search depth status pill */
.src-pill { font-size:0.7rem; font-weight:600; padding:2px 9px; border-radius:999px; margin-left:8px; }

/* Approval queue extras */
.appr-type { margin-left:auto; display:inline-flex; align-items:center; gap:5px; font-size:0.74rem; font-weight:600; color:var(--gold-deep); background:var(--gold-soft); border-radius:999px; padding:2px 9px; }
.appr-type .ico { font-size:0.85rem; }
.appr-why { display:flex; align-items:flex-start; gap:6px; font-size:0.83rem; color:var(--ink-soft); line-height:1.45; margin:8px 0 10px; }
.appr-why .ico { color:var(--gold-deep); margin-top:1px; flex:none; }

/* Outreach Settings */
.os-group { border:1px solid var(--line); border-radius:14px; background:var(--white); padding:6px 16px 14px; margin-bottom:14px; }
.os-gh { display:flex; align-items:center; gap:7px; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.7px; font-weight:700; color:var(--gold-deep); padding:12px 0 8px; }
.os-gh .ico { font-size:0.95rem; }
.os-row { display:flex; align-items:center; gap:14px; padding:11px 0; border-top:1px solid var(--line); }
.os-l { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.os-l b { font-size:0.9rem; color:var(--ink); font-weight:600; }
.os-l span { font-size:0.8rem; color:var(--ink-soft); line-height:1.4; }
.os-seg { display:inline-flex; border:1px solid var(--line); border-radius:10px; overflow:hidden; flex:none; }
.os-segbtn { padding:7px 13px; border:0; background:var(--white); color:var(--ink-soft); font-family:'Jost',sans-serif; font-size:0.82rem; cursor:pointer; transition:all .14s; white-space:nowrap; }
.os-segbtn.on { background:var(--ink); color:#fff; }
.os-input { flex:none; width:240px; max-width:48%; padding:8px 11px; border:1px solid var(--line); border-radius:9px; font-family:'Jost',sans-serif; font-size:0.86rem; }
.os-range { flex:none; width:200px; accent-color:var(--gold-deep); }
.os-field { padding:11px 0; border-top:1px solid var(--line); }
.os-field label { display:block; font-size:0.84rem; font-weight:600; color:var(--ink); margin-bottom:6px; }
.os-area { width:100%; min-height:58px; padding:9px 11px; border:1px solid var(--line); border-radius:10px; font-family:'Jost',sans-serif; font-size:0.86rem; color:var(--ink); line-height:1.45; resize:vertical; }
.os-edit { flex:none; font-size:0.82rem; }

/* Vendor Pipeline */
.plv-sect { margin-bottom:18px; }
.plv-sh { display:flex; align-items:center; gap:8px; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.7px; font-weight:700; color:var(--gold-deep); margin-bottom:9px; }
.plv-n { background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:1px 8px; font-size:0.72rem; color:var(--ink-soft); }
.plv-rows { display:flex; flex-direction:column; gap:8px; }
.plv-row { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; transition:all .14s; }
.plv-row:hover { border-color:var(--gold); background:var(--cream); }
.plv-ic { flex:none; width:32px; height:32px; border-radius:9px; background:var(--gold-soft); display:inline-flex; align-items:center; justify-content:center; }
.plv-ic .ico { color:var(--gold-deep); }
.plv-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.plv-name { font-size:0.92rem; font-weight:600; color:var(--ink); }
.plv-meta { font-size:0.78rem; color:var(--ink-faint); }
.plv-next { font-size:0.82rem; color:var(--ink-soft); display:inline-flex; align-items:center; gap:5px; margin-top:2px; }
.plv-next .ico { color:var(--gold-deep); font-size:0.85rem; }
.plv-side { flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.plv-owner { display:inline-flex; align-items:center; gap:4px; font-size:0.74rem; font-weight:600; padding:2px 9px; border-radius:999px; background:var(--cream); color:var(--ink-soft); border:1px solid var(--line); white-space:nowrap; }
.plv-owner.you { background:var(--gold-soft); color:var(--gold-deep); border-color:var(--gold-soft); }
.plv-owner .ico { font-size:0.82rem; }
.plv-view { font-size:0.76rem; color:var(--ink-faint); display:inline-flex; align-items:center; gap:3px; white-space:nowrap; }
.plv-row:hover .plv-view { color:var(--gold-deep); }

/* Pass 6 refinement — calendar buckets, deadline dot, pipeline tabs */
.cal-dot.t-warn { background:var(--warn); }
.cal-buckets { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; margin-bottom:12px; }
@media (max-width:680px){ .cal-buckets { grid-template-columns:1fr; } }
.cal-bucket { border:1px solid var(--line); border-radius:11px; background:var(--white); padding:10px 12px; }
.cal-bucket.warn { border-color:#EADBC2; background:#FCF6EC; }
.cb-h { display:flex; align-items:center; gap:6px; font-size:0.78rem; font-weight:600; color:var(--ink); }
.cb-h .ico { color:var(--gold-deep); font-size:0.95rem; }
.cal-bucket.warn .cb-h .ico { color:var(--warn); }
.cb-b { font-size:0.8rem; color:var(--ink-soft); line-height:1.4; margin-top:4px; }

.plv-tabs { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }
.plv-tab { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border:1px solid var(--line); border-radius:999px; background:var(--white); color:var(--ink-soft); font-family:'Jost',sans-serif; font-size:0.8rem; cursor:pointer; transition:all .14s; }
.plv-tab:hover { border-color:var(--gold); color:var(--gold-deep); }
.plv-tab.on { background:var(--ink); border-color:var(--ink); color:#fff; }
.plv-tn { font-size:0.72rem; padding:0 6px; border-radius:999px; background:var(--cream); color:var(--ink-soft); }
.plv-tab.on .plv-tn { background:rgba(255,255,255,0.2); color:#fff; }

/* Pass 6 refinement — Vendor Pipeline polish */
.plv-sub { font-size:0.9rem; color:var(--ink-soft); line-height:1.5; margin:6px 0 14px; }
.plvb-hint { display:flex; align-items:center; gap:6px; font-size:0.76rem; color:var(--ink-faint); margin:0 0 8px; }
.plvb-hint .ico { font-size:0.9rem; }
.plv-summary { border:1px solid var(--gold); border-radius:14px; background:linear-gradient(180deg,var(--gold-soft),var(--white) 70%); padding:14px 16px; margin-bottom:14px; }
.plv-sum-line { display:flex; align-items:flex-start; gap:8px; font-size:0.92rem; color:var(--ink); line-height:1.55; }
.plv-sum-line .ico { color:var(--gold-deep); margin-top:2px; flex:none; }
.plv-sum-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
@media (max-width:680px){ .plv-sum-stats { grid-template-columns:repeat(2,1fr); } }
.plv-stat { display:flex; flex-direction:column; align-items:flex-start; gap:1px; border:1px solid var(--line); border-radius:11px; background:var(--white); padding:9px 12px; }
.plv-stat-ic .ico { color:var(--gold-deep); font-size:1rem; }
.plv-stat b { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:600; color:var(--ink); line-height:1.1; }
.plv-stat-l { font-size:0.74rem; color:var(--ink-soft); }

.plv-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.plv-search { flex:1; min-width:180px; display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; background:var(--white); }
.plv-search:focus-within { border-color:var(--gold); }
.plv-search-ic .ico { color:var(--ink-faint); }
.plv-search-in { flex:1; border:0; outline:0; background:transparent; font-family:'Jost',sans-serif; font-size:0.88rem; color:var(--ink); }
.plv-sel { padding:8px 11px; border:1px solid var(--line); border-radius:10px; background:var(--white); font-family:'Jost',sans-serif; font-size:0.84rem; color:var(--ink); cursor:pointer; }
.plv-noresults { padding:24px; text-align:center; color:var(--ink-soft); font-size:0.92rem; }
.plv-noresults .ico { color:var(--ink-faint); margin-right:6px; }

/* refined row hierarchy */
.plv-name { font-size:1rem; font-weight:600; color:var(--ink); }
.plv-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:0.8rem; color:var(--ink-faint); margin-top:1px; }
.plv-status { display:inline-flex; align-items:center; gap:5px; color:var(--ink-soft); }
.plv-sdot { width:7px; height:7px; border-radius:50%; background:var(--gold); flex:none; }
.plv-sdot.you { background:var(--gold-deep); }
.plv-sdot.con { background:var(--green); }

/* Final correction — Vendor Detail qualitative-first */
.vp-statusline { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.vp-fitbadge { display:inline-flex; align-items:center; gap:5px; font-size:0.78rem; font-weight:600; padding:4px 11px; border-radius:999px; letter-spacing:0.01em; }
.vp-fitbadge.s-ok { background:var(--green-soft); color:var(--green-deep); }
.vp-fitbadge.s-gold { background:var(--gold-soft); color:var(--gold-deep); }
.vp-fitbadge.s-info { background:var(--cream); color:var(--ink-soft); border:1px solid var(--line); }
.vp-fitbadge .ico { font-size:0.85rem; }
.vp-fitbadge.lg { font-size:1rem; padding:6px 15px; }
.vp-take-lead { margin-bottom:10px; }
.vp-take-line { font-size:0.9rem; color:var(--ink-soft); line-height:1.5; margin:0 0 12px; }
.vp-fact.subtle span, .vp-fact.subtle b { color:var(--ink-faint); font-weight:400; font-size:0.8rem; }

/* Final correction — Approval Queue category metadata badge */
.appr-cat { margin-left:10px; font-size:0.72rem; font-weight:500; color:var(--ink-soft); background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:2px 9px; white-space:nowrap; }

/* ===== Step 8 · Tools Center parent hub ===== */
.tcp-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:680px){ .tcp-grid { grid-template-columns:1fr; } }
.tcp-card { display:flex; align-items:flex-start; gap:14px; width:100%; text-align:left; padding:16px 17px; border:1px solid var(--line); border-radius:15px; background:var(--white); cursor:pointer; transition:all .14s; }
.tcp-card:hover { border-color:var(--gold); background:var(--cream); }
.tcp-ic { flex:none; width:44px; height:44px; border-radius:12px; background:var(--gold-soft); display:inline-flex; align-items:center; justify-content:center; }
.tcp-ic .ico { color:var(--gold-deep); font-size:1.4rem; }
.tcp-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; }
.tcp-title { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-weight:600; color:var(--ink); line-height:1.15; }
.tcp-desc { font-size:0.84rem; color:var(--ink-soft); line-height:1.5; }
.tcp-go { flex:none; align-self:center; display:inline-flex; align-items:center; gap:4px; font-size:0.78rem; color:var(--ink-faint); white-space:nowrap; }
.tcp-card:hover .tcp-go { color:var(--gold-deep); }
.tcp-children { margin-top:2px; }
.tc-start { font-size:0.62rem; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--green-deep); background:var(--green-soft); border-radius:999px; padding:2px 7px; }

/* ===== Favorites / Shortlist refinement ===== */
.fav-summary { display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:0.84rem; color:var(--ink-soft); background:var(--cream); border:1px solid var(--line); border-radius:11px; padding:9px 13px; margin-bottom:14px; }
.fav-summary .ico { color:var(--gold-deep); }
.fav-summary b { color:var(--ink); font-weight:600; }
.fav-list2 { display:flex; flex-direction:column; gap:11px; }
.fav-card { border:1px solid var(--line); border-radius:14px; background:var(--white); padding:14px 16px; transition:border-color .14s; }
.fav-card:hover { border-color:var(--gold); }
.fav-c-top { display:flex; align-items:center; gap:9px; }
.fav-c-name { font-size:1.15rem; font-weight:600; color:var(--ink); }
.fav-fit { font-size:0.72rem; font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap; }
.fav-heart { margin-left:auto; flex:none; width:34px; height:34px; border-radius:9px; border:1px solid var(--line); background:var(--white); color:var(--gold-deep); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all .14s; }
.fav-heart .ico { font-size:1.05rem; }
.fav-heart:hover { border-color:var(--danger,#B4564B); color:var(--danger,#B4564B); background:#FCF2F0; }
.fav-c-meta { font-size:0.82rem; color:var(--ink-soft); margin-top:5px; display:inline-flex; align-items:center; gap:5px; }
.fav-c-meta .ico { color:var(--gold-deep); }
.fav-c-facts { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.fav-fact { display:inline-flex; align-items:center; gap:5px; font-size:0.76rem; padding:4px 9px; border-radius:999px; border:1px solid var(--line); background:var(--white); color:var(--ink); }
.fav-fact .ico { font-size:0.85rem; color:var(--gold-deep); }
.fav-fact.ok { border-color:var(--green-soft); color:var(--green-deep); background:#FAFBF7; }
.fav-fact.ok .ico { color:var(--green); }
.fav-fact.warn { border-color:#EADBC2; color:var(--warn); background:#FCF6EC; }
.fav-fact.warn .ico { color:var(--warn); }
.fav-c-why { display:flex; align-items:flex-start; gap:7px; font-size:0.86rem; color:var(--ink-soft); line-height:1.5; margin-top:11px; }
.fav-c-why .ico { color:var(--gold-deep); margin-top:2px; flex:none; }
.fav-c-acts { display:flex; flex-wrap:wrap; gap:9px; margin-top:13px; }
.fav-act { font-size:0.82rem; }
/* empty state */
.fav-empty { text-align:center; padding:26px 12px 10px; }
.fav-empty-ic { width:52px; height:52px; border-radius:14px; background:var(--gold-soft); display:inline-flex; align-items:center; justify-content:center; margin-bottom:12px; }
.fav-empty-ic .ico { color:var(--gold-deep); font-size:1.6rem; }
.fav-empty-h { font-size:1.4rem; font-weight:600; color:var(--ink); }
.fav-empty-b { font-size:0.9rem; color:var(--ink-soft); line-height:1.55; margin-top:6px; max-width:340px; margin-left:auto; margin-right:auto; }
.fav-empty-cta { display:flex; flex-wrap:wrap; gap:9px; justify-content:center; margin-top:18px; }

/* ===== Vendor Pipeline · summary polish + List/Board toggle ===== */
.plv-sum-line { line-height:1.55; }
.plv-sum-line > span { font-size:0.92rem; color:var(--ink); }
.plv-sum-stats { grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px; }
@media (max-width:680px){ .plv-sum-stats { grid-template-columns:repeat(2,1fr); } }
.plv-stat { padding:11px 13px; gap:3px; }

/* view segmented control */
.plv-viewseg { margin-left:auto; display:inline-flex; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--white); }
.plv-vbtn { display:inline-flex; align-items:center; gap:5px; padding:7px 13px; border:0; background:transparent; color:var(--ink-soft); font-family:'Jost',sans-serif; font-size:0.82rem; cursor:pointer; transition:all .14s; }
.plv-vbtn .ico { font-size:0.95rem; }
.plv-vbtn:hover { color:var(--gold-deep); }
.plv-vbtn.on { background:var(--ink); color:#fff; }

/* board view */
.plvb-board { display:flex; gap:12px; overflow-x:auto; padding:2px 2px 12px; }
.plvb-col { flex:0 0 238px; background:var(--cream); border:1px solid var(--line); border-radius:13px; padding:10px; display:flex; flex-direction:column; }
.plvb-col-h { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.5px; font-weight:700; color:var(--gold-deep); padding:3px 4px 10px; }
.plvb-col-h .plv-n { background:var(--white); }
.plvb-col-body { display:flex; flex-direction:column; gap:8px; }
.plvb-card { display:flex; flex-direction:column; gap:6px; width:100%; text-align:left; border:1px solid var(--line); border-radius:11px; background:var(--white); padding:11px 12px; cursor:pointer; transition:all .14s; }
.plvb-card:hover { border-color:var(--gold); }
.plvb-c-top { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.plvb-c-name { font-size:0.9rem; font-weight:600; color:var(--ink); line-height:1.25; }
.plvb-c-top .plv-owner { flex:none; }
.plvb-c-cat { font-size:0.76rem; color:var(--ink-faint); display:inline-flex; align-items:center; gap:5px; }
.plvb-c-cat .ico { color:var(--gold-deep); }
.plvb-c-next { font-size:0.78rem; color:var(--ink-soft); display:inline-flex; align-items:flex-start; gap:5px; line-height:1.4; }
.plvb-c-next .ico { color:var(--gold-deep); flex:none; margin-top:2px; font-size:0.85rem; }
.plvb-c-view { font-size:0.74rem; color:var(--ink-faint); display:inline-flex; align-items:center; gap:3px; margin-top:1px; }
.plvb-card:hover .plvb-c-view { color:var(--gold-deep); }
.plvb-empty { font-size:0.78rem; color:var(--ink-faint); padding:10px 4px; text-align:center; }

/* ===== Vendor Pipeline · Readiness view ===== */
/* Readiness — aligned matrix: vendor · Available? · Pricing? · Proposal? · Status (fixed last col so header + rows line up exactly) */
.rdy-head { display:grid; grid-template-columns: minmax(0,1.6fr) 1fr 1fr 1fr 150px; align-items:center; gap:12px; padding:0 15px 8px; }
.rdy-h { font-size:0.66rem; text-transform:uppercase; letter-spacing:0.6px; font-weight:700; color:var(--ink-soft); text-align:center; }
.rdy-h-r { text-align:right; }
.rdy-cat { margin-bottom:18px; }
.rdy-cat-h { display:flex; align-items:center; gap:7px; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.5px; font-weight:700; color:var(--gold-deep); margin-bottom:9px; }
.rdy-cat-h .ico { font-size:0.95rem; }
.rdy-list { display:flex; flex-direction:column; gap:8px; }
.rdy-row { display:grid; grid-template-columns: minmax(0,1.6fr) 1fr 1fr 1fr 150px; align-items:center; gap:12px; width:100%; text-align:left; border:1px solid var(--line); border-radius:12px; background:var(--white); padding:12px 14px; cursor:pointer; transition:all .14s; }
.rdy-row:hover { border-color:var(--gold); background:var(--cream); }
.rdy-main { min-width:0; display:flex; flex-direction:column; gap:2px; }
.rdy-name { font-size:0.94rem; font-weight:600; color:var(--ink); }
.rdy-loc { font-size:0.78rem; color:var(--ink-faint); }
.rdy-cell { display:inline-flex; align-items:center; justify-content:center; gap:5px; font-size:0.8rem; white-space:nowrap; }
.rdy-cell-l { display:none; }
.rdy-cell-v { display:inline-flex; align-items:center; gap:5px; }
.rdy-cell-v .ico { font-size:0.9rem; }
.rdy-cell.ok { color:var(--green-deep); }
.rdy-cell.ok .ico { color:var(--green); }
.rdy-cell.miss { color:var(--ink-faint); }
.rdy-right { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.rdy-status { font-size:0.74rem; font-weight:600; padding:3px 11px; border-radius:999px; white-space:nowrap; }
.rdy-view { font-size:0.76rem; color:var(--ink-faint); display:inline-flex; align-items:center; gap:3px; white-space:nowrap; }
.rdy-row:hover .rdy-view { color:var(--gold-deep); }
@media (max-width:680px){
  .rdy-head { display:none; }
  .rdy-row { display:flex; flex-wrap:wrap; gap:8px 14px; }
  .rdy-main { flex:1 1 100%; }
  .rdy-cell { justify-content:flex-start; }
  .rdy-cell-l { display:inline; font-weight:600; color:var(--ink-soft); }
  .rdy-right { flex:1 1 100%; justify-content:space-between; }
}

/* ===== Favorites / Shortlist · elevated intro + curated cards ===== */
.fav-panel { border:1px solid var(--gold); border-radius:14px; background:linear-gradient(180deg,var(--gold-soft),var(--white) 72%); padding:14px 16px; margin-bottom:16px; }
.fav-panel-line { display:flex; align-items:flex-start; gap:8px; font-size:0.92rem; color:var(--ink); line-height:1.55; }
.fav-panel-line .ico { color:var(--gold-deep); margin-top:3px; flex:none; }
.fav-panel-stats { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:11px; font-size:0.82rem; color:var(--ink-soft); }
.fav-panel-stats b { color:var(--ink); font-weight:600; }
.fav-dot { color:var(--ink-faint); }
/* curated card layout */
.fav-c-top { display:flex; align-items:flex-start; gap:12px; }
.fav-c-ic { flex:none; width:40px; height:40px; border-radius:11px; background:var(--gold-soft); display:inline-flex; align-items:center; justify-content:center; }
.fav-c-ic .ico { color:var(--gold-deep); font-size:1.2rem; }
.fav-c-head { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.fav-c-titlerow { display:flex; align-items:center; flex-wrap:wrap; gap:9px; }
.fav-c-meta { font-size:0.8rem; color:var(--ink-soft); }
.fav-heart.on { color:var(--gold-deep); background:var(--gold-soft); border-color:var(--gold-soft); }

/* Vendor Pipeline · view helper line */
.plv-viewhelp { display:flex; align-items:flex-start; gap:6px; font-size:0.8rem; color:var(--ink-soft); line-height:1.45; margin:-2px 0 13px; }
.plv-viewhelp .ico { color:var(--ink-faint); font-size:0.9rem; margin-top:2px; flex:none; }

/* ============================================================
   Dashboard view toggle (Progress | Readiness | Meetings)
   + Readiness / Meetings summary tables + Ready-to-meet queue
   ============================================================ */
.ws-viewtoggle { display:inline-flex; gap:2px; background:var(--ivory); border:1px solid var(--line); border-radius:999px; padding:3px; }
.wsvt { font-size:0.82rem; font-weight:600; color:var(--ink-soft); padding:6px 14px; border-radius:999px; white-space:nowrap; transition:all .12s; }
.wsvt:hover { color:var(--ink); }
.wsvt.on { background:#fff; color:var(--ink); box-shadow:0 1px 3px rgba(60,50,30,0.12); border:1px solid var(--gold-soft,#E6D9BE); }
/* toggle pinned to a fixed top-right slot — identical position in all three views */
.ws-head > .ws-viewtoggle { flex:0 0 auto; align-self:flex-start; }
/* progress-only controls (Learn + stage filters) live on their own row below the header */
.ws-subbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 14px; margin-top:14px; }

/* summary tables shared */
.dvtable { margin-top:6px; }
.dvt-headrow, .dvt-row { display:grid; align-items:center; gap:8px; }
.dvtable.readiness .dvt-headrow, .dvtable.readiness .dvt-row { grid-template-columns:minmax(0,1.5fr) .8fr .8fr .9fr 1.35fr 1.3fr; }
.dvtable.meetings .dvt-headrow, .dvtable.meetings .dvt-row { grid-template-columns:minmax(0,1.6fr) .9fr .95fr .9fr .9fr 1.3fr; }
.dvtable.team .dvt-headrow, .dvtable.team .dvt-row { grid-template-columns:minmax(0,1fr) 1.3fr 1.2fr .85fr .95fr 1.05fr 1fr .9fr; }
/* roster reads better left-aligned than centered */
.dvtable.team .dvt-headrow span { text-align:left; }
.dvtable.team .dvt-headrow span:last-child { text-align:right; }
.dvtable.team .dvt-c { justify-content:flex-start; text-align:left; }
.dvtable.team .dvt-next-c { justify-content:flex-end; }
.team-vn { color:var(--ink); font-weight:700; }
.team-pay { display:inline-flex; align-items:center; gap:4px; font-size:0.8rem; font-weight:600; color:var(--ok,#5C7A4E); }
.team-pay .ico { font-size:0.8rem; }
.dvte-cta { margin-top:14px; }
.dvt-headrow { padding:6px 10px; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; font-weight:700; color:var(--ink-faint); }
.dvt-headrow span:not(:first-child) { text-align:center; }
.dvt-headrow span:last-child { text-align:right; }
.dvt-row { padding:11px 10px; border-top:1px solid var(--line); }
.dvt-cat { display:flex; align-items:center; gap:8px; font-size:0.92rem; font-weight:600; color:var(--ink); min-width:0; }
.dvt-ico { color:var(--ink-faint); flex:none; display:inline-flex; }
.dvt-c { display:flex; align-items:center; justify-content:center; min-width:0; }
.dvt-next-c { justify-content:flex-end; }
.dvt-cap { display:none; }
.dvt-count { font-variant-numeric:tabular-nums; font-weight:700; font-size:0.92rem; color:var(--ink); }
.dvt-count .dvt-of { color:var(--ink-faint); font-weight:400; font-size:0.8rem; }
.dvt-count.full { color:var(--ok,#5C7A4E); }
.dvt-count.ok { color:var(--ok,#5C7A4E); }
.dvt-count.ready { color:var(--blue,#34506E); }
.dvt-count.zero { color:var(--ink-faint); font-weight:400; }
.dvt-status { font-size:0.74rem; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; background:#F0ECE2; color:var(--ink-soft); }
.dvt-status.s-ready { background:rgba(52,80,110,0.10); color:var(--blue,#34506E); }
.dvt-status.s-ok { background:rgba(92,122,78,0.14); color:var(--ok,#5C7A4E); }
.dvt-status.s-warn { background:rgba(176,120,60,0.14); color:#9A6B2E; }
.dvt-status.s-neutral { background:#F0ECE2; color:var(--ink-soft); }
.dvt-next { display:inline-flex; align-items:center; gap:5px; font-size:0.8rem; font-weight:600; color:var(--brass,#B68E4E); padding:5px 10px; border-radius:8px; white-space:nowrap; }
.dvt-next:hover { background:rgba(182,142,78,0.10); }
.dvt-next.ghost { color:var(--ink-soft); }
.dvt-next .ico { font-size:0.85rem; }
.dvt-nextnone { color:var(--ink-faint); }
.dvt-status.s-muted { background:transparent; color:var(--ink-faint); font-weight:600; }

/* ===== Phase 4 · Wedding Team roadmap ===== */
.team-wrap { display:flex; flex-direction:column; gap:18px; }
/* top summary: progress · still to book · next best action */
.team-summary { display:grid; grid-template-columns:auto 1.3fr 1.4fr; gap:22px; align-items:center;
  background:var(--white); border:1px solid var(--line); border-radius:14px; padding:16px 18px; }
.ts-progress { min-width:120px; }
.ts-count { font-family:"Cormorant Garamond",serif; font-size:2.1rem; font-weight:600; color:var(--ink); line-height:1; }
.ts-count span { font-size:1.1rem; color:var(--ink-faint); }
.ts-label { font-size:0.74rem; color:var(--ink-soft); margin-top:3px; letter-spacing:0.01em; }
.ts-bar { height:6px; border-radius:999px; background:var(--cream); margin-top:9px; overflow:hidden; }
.ts-bar span { display:block; height:100%; background:var(--green-deep); border-radius:999px; }
.ts-block { display:flex; flex-direction:column; gap:7px; }
.ts-cap { font-size:0.66rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); }
.ts-chips { display:flex; flex-wrap:wrap; gap:6px; }
.ts-chip { display:inline-flex; align-items:center; gap:5px; font-size:0.76rem; font-weight:600; color:var(--ink-soft);
  background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:3px 10px; }
.ts-chip .ico { font-size:0.82rem; color:var(--gold-deep); }
.ts-allin { display:inline-flex; align-items:center; gap:6px; font-size:0.8rem; font-weight:600; color:var(--green-deep); }
.ts-next-btn { display:inline-flex; align-items:center; gap:6px; align-self:flex-start; font-size:0.84rem; font-weight:600;
  color:#fff; background:var(--gold); border-radius:9px; padding:8px 13px; box-shadow:var(--shadow-sm); }
.ts-next-btn:hover { background:var(--gold-deep); }
.ts-next-btn .ico { font-size:0.85rem; }
.ts-next-done { display:inline-flex; align-items:center; gap:6px; font-size:0.82rem; color:var(--green-deep); font-weight:600; }
/* booked roster heading */
.team-roster-h { display:flex; align-items:center; gap:8px; font-size:0.82rem; font-weight:600; color:var(--ink); }
.team-roster-h .ico { color:var(--green-deep); }
.team-na-none { display:inline-flex; align-items:center; gap:5px; font-size:0.8rem; color:var(--ink-faint); font-weight:600; }
.team-na-none .ico { font-size:0.85rem; color:var(--green-deep); }
/* still-to-book gaps */
.team-gaps { background:var(--white); border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.team-gaps-h { display:flex; align-items:center; gap:8px; font-size:0.82rem; font-weight:600; color:var(--ink); margin-bottom:10px; }
.team-gaps-h .ico { color:var(--gold-deep); }
.tg-row { display:grid; grid-template-columns:minmax(0,1.4fr) auto auto; align-items:center; gap:12px;
  padding:9px 2px; border-top:1px solid var(--line-soft); }
.tg-row:first-of-type { border-top:0; }
.tg-cat { display:flex; align-items:center; gap:8px; font-weight:600; color:var(--ink); font-size:0.88rem; }
.tg-ico { width:24px; height:24px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  background:var(--gold-soft); border-radius:6px; }
.tg-ico .ico { font-size:0.85rem; color:var(--gold-deep); }
.tg-status { font-size:0.72rem; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; background:#F0ECE2; color:var(--ink-soft); }
.tg-status.s-ready { background:rgba(52,80,110,0.10); color:var(--blue,#34506E); }
.tg-status.s-ok { background:rgba(92,122,78,0.14); color:var(--green-deep); }
.tg-status.s-warn { background:rgba(176,120,60,0.14); color:#9A6B2E; }
.tg-next { display:inline-flex; align-items:center; gap:5px; font-size:0.8rem; font-weight:600; color:var(--gold-deep); padding:5px 10px; border-radius:8px; white-space:nowrap; justify-self:end; }
.tg-next:hover { background:rgba(182,142,78,0.10); }
.tg-next .ico { font-size:0.82rem; }
.tg-wait { display:inline-flex; align-items:center; gap:5px; font-size:0.78rem; color:var(--ink-faint); font-weight:600; justify-self:end; white-space:nowrap; }
.tg-wait .ico { font-size:0.82rem; }
/* progress-framed empty state */
.team-empty { text-align:center; padding:30px 20px; color:var(--ink-soft); }
.team-empty > .ico { font-size:1.6rem; color:var(--gold-deep); margin-bottom:8px; display:block; }
.team-empty p { line-height:1.5; margin-bottom:14px; }
@media (max-width:760px) {
  .team-summary { grid-template-columns:1fr; gap:14px; }
  .tg-row { grid-template-columns:1fr auto; }
  .tg-next { grid-column:1/-1; justify-self:start; }
}
.dvt-foot { display:flex; align-items:flex-start; gap:7px; font-size:0.76rem; color:var(--ink-faint); line-height:1.45; margin-top:12px; padding-top:11px; border-top:1px solid var(--line); }
.dvt-foot .ico { flex:none; margin-top:1px; }
.dvtable-empty { text-align:center; padding:34px 22px; color:var(--ink-faint); }
.dvtable-empty .ico { font-size:1.9rem; color:var(--gold-soft,#D8C7A6); }
.dvtable-empty p { font-size:0.88rem; line-height:1.5; max-width:440px; margin:10px auto 0; }

/* "Ready to meet?" approval queue */
.meet-queue { background:rgba(52,80,110,0.04); border:1px solid rgba(52,80,110,0.18); border-radius:14px; padding:13px 15px; margin-bottom:14px; }
.meet-queue-h { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.meet-queue-h > span:first-child { display:inline-flex; align-items:center; gap:7px; font-weight:700; color:var(--ink); font-size:0.92rem; }
.mq-n { background:var(--blue,#34506E); color:#fff; font-size:0.72rem; font-weight:700; border-radius:999px; padding:1px 8px; }
.mq-sub { font-size:0.76rem; color:var(--ink-faint); }
.mq-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid rgba(52,80,110,0.12); flex-wrap:wrap; }
.mq-vendor { display:flex; align-items:center; gap:9px; min-width:0; }
.mq-ico { color:var(--ink-faint); flex:none; }
.mq-vtx { display:flex; flex-direction:column; min-width:0; }
.mq-vtx b { font-size:0.9rem; color:var(--ink); }
.mq-cat { font-size:0.74rem; color:var(--ink-faint); }
.mq-acts { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.mq-acts .btn { padding:6px 12px; font-size:0.8rem; }

/* Step 6 — scheduling preference cards */
.schedpref-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:6px; }
.schedpref-card { position:relative; text-align:left; border:1.5px solid var(--line); border-radius:14px; padding:16px 16px 16px; background:#fff; transition:all .12s; display:flex; flex-direction:column; gap:6px; }
.schedpref-card:hover { border-color:var(--gold-soft,#E6D9BE); }
.schedpref-card.on { border-color:var(--blue,#34506E); background:rgba(52,80,110,0.04); box-shadow:0 2px 10px rgba(52,80,110,0.10); }
.spc-rec { position:absolute; top:12px; right:12px; font-size:0.62rem; text-transform:uppercase; letter-spacing:0.05em; font-weight:700; color:var(--brass,#B68E4E); background:rgba(182,142,78,0.12); padding:2px 8px; border-radius:999px; }
.spc-ic { font-size:1.3rem; color:var(--blue,#34506E); }
.spc-t { font-size:0.96rem; font-weight:700; color:var(--ink); }
.spc-d { font-size:0.8rem; color:var(--ink-soft); line-height:1.45; }
.spc-check { position:absolute; bottom:14px; right:14px; width:22px; height:22px; border-radius:50%; background:var(--blue,#34506E); color:#fff; display:none; align-items:center; justify-content:center; font-size:0.8rem; }
.schedpref-card.on .spc-check { display:flex; }

/* vendor page "Ready to meet?" emphasis */
.vp-next-ready { border:1.5px solid var(--blue,#34506E) !important; background:rgba(52,80,110,0.04); }

@media (max-width: 640px) {
  /* 4 segments → horizontally-scrollable control, no wrap / no page overflow */
  .ws-head > .ws-viewtoggle { width:100%; margin-top:12px; overflow-x:auto; justify-content:flex-start; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .ws-head > .ws-viewtoggle::-webkit-scrollbar { display:none; }
  .wsvt { flex:0 0 auto; text-align:center; padding:7px 13px; white-space:nowrap; }
  .schedpref-row { grid-template-columns:1fr; }
  /* stack table rows into cards */
  .dvt-headrow { display:none; }
  .dvtable.readiness .dvt-row, .dvtable.meetings .dvt-row, .dvtable.team .dvt-row { grid-template-columns:1fr 1fr; gap:8px 10px; padding:13px 12px; border:1px solid var(--line); border-radius:12px; margin-top:10px; }
  .dvt-cat { grid-column:1 / -1; font-size:0.98rem; margin-bottom:2px; }
  .dvt-c, .dvtable.team .dvt-c { justify-content:space-between; text-align:left; }
  .dvt-next-c { grid-column:1 / -1; justify-content:flex-start; margin-top:4px; }
  .dvt-cap { display:inline; font-size:0.72rem; color:var(--ink-faint); font-weight:600; }
  .mq-row { align-items:flex-start; }
  .mq-acts .btn { flex:1; }
}

/* ============================================================
   Pricing clarity badges (pending / starting / range / packages / custom)
   ============================================================ */
.price-badge { display:inline-flex; align-items:center; gap:5px; font-size:0.74rem; font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap; background:#F0ECE2; color:var(--ink-soft); }
.price-badge .ico { font-size:0.85rem; }
.price-badge.s-ok { background:rgba(92,122,78,0.14); color:var(--ok,#5C7A4E); }
.price-badge.s-ready { background:rgba(52,80,110,0.10); color:var(--blue,#34506E); }
.price-badge.s-warn { background:rgba(176,120,60,0.15); color:#9A6B2E; }
.price-badge.s-neutral { background:#F0ECE2; color:var(--ink-soft); }
.price-badge.compact { font-size:0.66rem; padding:2px 8px; gap:3px; }
.price-badge.compact .ico { font-size:0.74rem; }
/* compare table pricing cell */
.cmp-price { font-weight:600; font-variant-numeric:tabular-nums; margin-bottom:5px; color:var(--ink); }
/* vendor-detail microcopy under the pricing infobox */
.vp-pricenote { display:flex; align-items:flex-start; gap:7px; font-size:0.76rem; color:var(--ink-faint); line-height:1.45; margin-top:10px; }
.vp-pricenote .ico { flex:none; margin-top:1px; }
.rdy-cell-price .rdy-cell-v { justify-content:flex-start; }
@media (max-width: 560px) { .price-badge.compact { font-size:0.62rem; } }

/* pricing-clarity legend (central explainer) + category mix note */
.price-legend { margin-top:14px; border:1px solid var(--line); border-radius:12px; background:var(--ivory); padding:0 14px; }
.price-legend > summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:7px; font-size:0.8rem; font-weight:600; color:var(--sage-deep); padding:11px 0; }
.price-legend > summary::-webkit-details-marker { display:none; }
.price-legend[open] > summary { border-bottom:1px solid var(--line); }
.plg-body { padding:11px 0 13px; display:flex; flex-direction:column; gap:9px; }
.plg-intro { font-size:0.8rem; color:var(--ink-soft); line-height:1.5; margin:0 0 3px; }
.plg-row { display:flex; align-items:flex-start; gap:9px; }
.plg-row .price-badge { flex:none; margin-top:1px; min-width:84px; justify-content:center; }
.plg-tx { font-size:0.8rem; color:var(--ink-soft); line-height:1.45; }
.plg-tx b { color:var(--ink); }
.dvt-pricewrap { display:inline-flex; flex-direction:column; align-items:center; gap:2px; }
.dvt-mix { font-size:0.62rem; color:var(--ink-faint); white-space:nowrap; }
@media (max-width:560px){ .dvt-pricewrap { align-items:flex-end; } .plg-row .price-badge { min-width:74px; } }

/* ============================================================
   Message preview (Step 5 + Outreach settings) — sample outreach
   ============================================================ */
.vmsg-preview { margin-top:16px; padding-top:14px; border-top:1px solid var(--line); display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.vmsg-preview-hint { font-size:0.8rem; color:var(--ink-faint); }
.mp-modal .mp-filters { display:flex; gap:16px; flex-wrap:wrap; align-items:flex-end; margin-bottom:14px; }
.mp-fld { display:flex; flex-direction:column; gap:6px; }
.mp-fld-l { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.06em; font-weight:700; color:var(--ink-faint); }
.mp-fld select { padding:8px 10px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:0.9rem; min-width:180px; }
.mp-chrow { display:inline-flex; gap:3px; background:var(--ivory); border:1px solid var(--line); border-radius:999px; padding:3px; }
.mp-ch { display:inline-flex; align-items:center; gap:5px; font-size:0.8rem; font-weight:600; color:var(--ink-soft); padding:6px 12px; border-radius:999px; white-space:nowrap; }
.mp-ch.on { background:#fff; color:var(--ink); box-shadow:0 1px 3px rgba(60,50,30,0.12); }
.mp-ch .ico { font-size:0.9rem; }
.mp-off { display:flex; align-items:flex-start; gap:7px; font-size:0.8rem; color:#9A6B2E; background:rgba(176,120,60,0.10); border-radius:10px; padding:9px 12px; margin-bottom:12px; line-height:1.4; }
.mp-card { background:#fff; border:1px solid var(--gold-soft,#E6D9BE); border-radius:14px; padding:16px 18px; box-shadow:0 1px 3px rgba(60,50,30,0.05); }
.mp-card-h { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; padding-bottom:10px; margin-bottom:12px; border-bottom:1px solid var(--line); }
.mp-from { display:inline-flex; align-items:center; gap:6px; font-size:0.84rem; color:var(--ink-soft); }
.mp-from b { color:var(--ink); }
.mp-tone { font-size:0.74rem; font-weight:600; color:var(--sage-deep); background:rgba(120,140,110,0.10); padding:3px 10px; border-radius:999px; white-space:nowrap; }
.mp-subj { font-size:0.86rem; color:var(--ink); margin-bottom:12px; }
.mp-subj-l { font-size:0.66rem; text-transform:uppercase; letter-spacing:0.05em; font-weight:700; color:var(--ink-faint); margin-right:7px; }
.mp-text { font-size:0.92rem; line-height:1.65; color:var(--ink); white-space:normal; }
.mp-note { display:flex; align-items:flex-start; gap:7px; font-size:0.78rem; color:var(--ink-faint); line-height:1.45; margin-top:13px; }
.mp-note .ico { flex:none; margin-top:1px; }
@media (max-width:560px){ .mp-modal .mp-filters { gap:12px; } .mp-fld select { min-width:0; width:100%; } .mp-fld { width:100%; } .mp-chrow { width:100%; justify-content:space-between; } }

/* WPC logo image — circle-cropped so the square background corners never show */
.wpc-logo { display:inline-block; border-radius:50%; object-fit:cover; vertical-align:middle; flex:none; }
.ds-logo { display:inline-flex; align-items:center; margin-right:8px; }
.lp-brand .lp-logo { margin-right:9px; }
.topbar .brand .tb-logo { margin-right:9px; }
.dep-brand .wpc-logo { box-shadow:0 4px 18px rgba(60,50,30,0.12); }

/* ============================================================
   Meetings view — status summary + meeting follow-up cards
   ============================================================ */
.meet-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:16px; }
.meet-sum-chip { background:#fff; border:1px solid var(--line); border-radius:12px; padding:11px 13px; display:flex; flex-direction:column; gap:3px; }
.msc-n { font-size:1.4rem; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1; }
.msc-l { font-size:0.72rem; font-weight:600; color:var(--ink-faint); display:inline-flex; align-items:center; gap:5px; }
.msc-l .ico { font-size:0.85rem; }
.meet-sched-h { margin-bottom:12px; }
.meet-sched-t { display:flex; align-items:center; gap:8px; font-size:1.15rem; color:var(--ink); }
.meet-sched-t .ico { color:var(--gold-deep,#9A7B43); }
.meet-sched-sub { font-size:0.86rem; color:var(--ink-soft); line-height:1.5; margin:5px 0 0; }
.meet-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.meet-card { background:#fff; border:1px solid var(--gold-soft,#E6D9BE); border-radius:14px; padding:14px 15px; box-shadow:0 1px 2px rgba(60,50,30,0.04); display:flex; flex-direction:column; gap:10px; }
.mc-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.mc-vendor { display:flex; align-items:center; gap:9px; min-width:0; }
.mc-ico { color:var(--ink-faint); flex:none; display:inline-flex; }
.mc-vtx { display:flex; flex-direction:column; min-width:0; }
.mc-vtx b { font-size:0.95rem; color:var(--ink); }
.mc-cat { font-size:0.74rem; color:var(--ink-faint); }
.mc-status { font-size:0.72rem; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; flex:none; background:#F0ECE2; color:var(--ink-soft); }
.mc-status.s-ready { background:rgba(52,80,110,0.10); color:var(--blue,#34506E); }
.mc-status.s-ok { background:rgba(92,122,78,0.14); color:var(--ok,#5C7A4E); }
.mc-status.s-warn { background:rgba(176,120,60,0.15); color:#9A6B2E; }
.mc-status.s-neutral { background:#F0ECE2; color:var(--ink-soft); }
.mc-sched { font-size:0.82rem; font-weight:600; color:var(--ok,#5C7A4E); display:flex; align-items:center; gap:6px; }
.mc-fu { display:flex; align-items:flex-start; gap:7px; font-size:0.78rem; color:var(--ink-soft); line-height:1.45; background:rgba(52,80,110,0.05); border-radius:9px; padding:8px 10px; }
.mc-fu.paused { background:#F0ECE2; color:var(--ink-faint); }
.mc-fu .ico { flex:none; margin-top:1px; color:var(--blue,#34506E); }
.mc-fu.paused .ico { color:var(--ink-faint); }
.mc-acts { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin-top:auto; }
.mc-acts .btn { padding:7px 12px; font-size:0.8rem; }
.mc-int { display:inline-flex; align-items:center; gap:4px; font-size:0.76rem; font-weight:600; color:#B0668A; }
@media (max-width:560px){ .meet-summary { grid-template-columns:1fr 1fr; } .meet-cards { grid-template-columns:1fr; } }

/* meeting follow-up note variants — WPC working vs stuck */
.mc-fu.working { background:rgba(52,80,110,0.06); }
.mc-fu.working .ico { color:var(--blue,#34506E); }
.mc-fu.stuck { background:rgba(176,120,60,0.12); color:#7a5320; }
.mc-fu.stuck .ico { color:#9A6B2E; }
/* Phase 5 · meeting prep note */
.mc-prep { display:flex; align-items:flex-start; gap:7px; font-size:0.78rem; color:var(--ink-soft); line-height:1.5; margin-top:8px; padding:8px 10px; border-radius:9px; background:var(--gold-soft); }
.mc-prep .ico { flex:none; margin-top:1px; color:var(--gold-deep); }
.mc-prep b { color:var(--ink); }
/* Phase 5 · comparison response-completeness chip */
.cmp-resp { display:inline-block; font-size:0.72rem; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; background:#F0ECE2; color:var(--ink-soft); }
.cmp-resp.c-ok { background:rgba(92,122,78,0.14); color:var(--green-deep); }
.cmp-resp.c-warn { background:rgba(176,120,60,0.14); color:#9A6B2E; }
.cmp-resp.c-muted { background:transparent; color:var(--ink-faint); font-weight:600; }

/* inline "Request a meeting" on-ramp pill (pipeline rows/cards) */
.plv-reqmeet { display:inline-flex; align-items:center; gap:5px; font-size:0.74rem; font-weight:600; color:#fff; background:var(--green-deep,#5C7A4E); padding:5px 11px; border-radius:999px; white-space:nowrap; cursor:pointer; transition:filter .12s; }
.plv-reqmeet:hover { filter:brightness(1.06); }
.plv-reqmeet .ico { font-size:0.82rem; }
.plvb-card .plv-reqmeet { margin-top:8px; align-self:flex-start; }
.plv-side .plv-reqmeet { flex:none; }
/* readiness row: request pill drops to its own full-width line (no overlap with the columns) */
.rdy-row .plv-reqmeet { grid-column:1 / -1; justify-self:start; margin-top:10px; }
@media (max-width:760px){ .rdy-row .plv-reqmeet { flex:1 1 100%; justify-self:stretch; margin-top:4px; } }
