/* ==========================================================================
   HAVN Prospecting — the board, the calls, the book, the cadences.
   v2.2.200, rebuilt v2.2.203. Loaded after havn-mission-control.css and
   inherits its --mc-* tokens.

   THE LAYOUT IS THE CEO'S REFERENCE
   A HubSpot lead-generation dashboard: a filter bar with a period switch; a
   grid of report cards — one tall bar chart, a two-by-two of centred figures
   with an arrow and a percentage, a pie — and a row of lists beneath. Drawn in
   HAVN's language: Fraunces figures, gold as the one colour that means "here",
   hairline borders, cards that flip with the --mc-* tokens.

   COLOUR, AND WHY EVERY TEXT RULE CARRIES THREE CLASSES
   havn-dashboard.php prints a cascade at wp_head priority 99, AFTER every
   plugin stylesheet. In dark it paints div/span/p/li/strong/small #F4F4F5
   !important; in light the same elements are painted #15171C !important by
   `body.havn-mc-light.havn-dashboard-page span` — specificity (0,3,0). So
   every coloured text rule is written
   `body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .x`
   = (0,3,x) !important. `:is()` counts as its most specific argument (one
   class), and it has to name the dialogs and the drawer because those are
   moved to document.body — outside `.havn-mc` — on boot (v2.2.201).

   THE CHART COLOURS
   c1–c3 are the Dashboard home's validated palette (v2.2.194, CVD ΔE 10.4
   dark / 12.5 light). The pie has six slices and a labelled legend with
   counts, so c4–c6 are never the only way to tell two sources apart.
   ========================================================================== */

/* The tokens also live on the dialogs and the side panel, which are moved to
   document.body and so sit outside .havn-prb. */
:is(.havn-prb, .havn-pr-modal, .havn-pn-drawer) {
	--prb-c1: #D4B370; --prb-c2: #4A8FE0; --prb-c3: #C75A8A;
	--prb-c4: #3FA796; --prb-c5: #8B6FD6; --prb-c6: #8A8F98;
	--prb-card: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
	--prb-soft: rgba(255,255,255,.035);
	--prb-grid: rgba(255,255,255,.07);
	--prb-num: #E6CB8F;
	--prb-bar: #D4B370;
	--prb-bar-tried: rgba(212,179,112,.34);
	--prb-up-bg: rgba(111,207,151,.14);  --prb-up: #7FD9A6;
	--prb-down-bg: rgba(229,156,140,.14); --prb-down: #EDA597;
	--prb-hot: #E8907F; --prb-warm: #D4B370; --prb-cold: #8AB4F8; --prb-pipe: #6FCF97; --prb-dnc: #8A8F98;
}
.havn-prb { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.havn-mc.is-light .havn-prb,
body.havn-mc-light :is(.havn-prb, .havn-pr-modal, .havn-pn-drawer) {
	--prb-c1: #A8843C; --prb-c2: #2A78D6; --prb-c3: #B8457A;
	--prb-c4: #1F8A78; --prb-c5: #6E52C2; --prb-c6: #7C8089;
	--prb-card: #FFFFFF;
	--prb-soft: rgba(20,18,14,.03);
	--prb-grid: rgba(20,18,14,.08);
	--prb-num: #8A6A2C;
	--prb-bar: #A8843C;
	--prb-bar-tried: rgba(168,132,60,.3);
	--prb-up-bg: rgba(62,158,99,.12);  --prb-up: #256B41;
	--prb-down-bg: rgba(196,82,60,.1); --prb-down: #9A3C2A;
	--prb-hot: #B4432F; --prb-warm: #8A6A2C; --prb-cold: #2A64C0; --prb-pipe: #22804A; --prb-dnc: #6B6F77;
}
.havn-prb [hidden] { display: none !important; }
.havn-prb .screen-reader-text, .havn-pr-modal .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---- shared text colours, once ---------------------------------------- */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) :is(
	.havn-prb-card-title, .havn-prb-name, .havn-prb-h3, .havn-prb-h4, .havn-prb-mini-main strong,
	.havn-prb-pcard-id strong, .havn-prb-funnel strong, .havn-prb-sheet-main strong, .havn-prb-copygroup strong,
	.havn-prb-table td, .havn-prb-bar-tip strong, .havn-prb-bulk strong
) { color: var(--mc-text) !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) :is(
	.havn-prb-card-note, .havn-prb-muted, .havn-prb-compare, .havn-prb-tile-sub, .havn-prb-tile-label, .havn-prb-yaxis span,
	.havn-prb-bar-x, .havn-prb-legend span, .havn-prb-call-sub span, .havn-prb-mini-why, .havn-prb-pcard-id > span > span,
	.havn-prb-pcard-why, .havn-prb-pcard-facts span, .havn-prb-pcard-log, .havn-prb-funnel-l, .havn-prb-funnel em,
	.havn-prb-empty, .havn-prb-empty-card, .havn-prb-sub, .havn-prb-cad-desc, .havn-prb-cad-then, .havn-prb-cad-steps em,
	.havn-prb-copygroup span, .havn-prb-sheet-main > span, .havn-prb-pie-legend em, .havn-prb-work-hint, .havn-prb-table th,
	.havn-prb-bar-tip em, .havn-prb-mini-date, .havn-prb-nophone, .havn-prb-plot-empty, .havn-prb-chip span
) { color: var(--mc-text-3) !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) :is(
	.havn-prb-pie-legend span, .havn-prb-draft, .havn-prb-script div, .havn-prb-cad-steps span, .havn-prb-kind, .havn-prb-chip, .havn-prb-seg-btn,
	.havn-prb-tab, .havn-prb-tag, .havn-prb-chan, .havn-prb-pie-legend strong, .havn-prb-script summary, .havn-prb-switch span
) { color: var(--mc-text-2) !important; }

/* ---- filter bar -------------------------------------------------------- */
.havn-prb-filterbar {
	display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px;
	padding: 10px 12px; border: 1px solid var(--mc-border); border-radius: 14px; background: var(--prb-soft);
}
.havn-prb-seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; border: 1px solid var(--mc-border); background: var(--mc-bg-3); max-width: 100%; overflow-x: auto; }
body.havn-dashboard-page .havn-mc .havn-prb-seg-btn,
body.havn-dashboard-page .havn-mc .havn-prb-seg-btn:hover,
body.havn-dashboard-page .havn-mc .havn-prb-seg-btn:focus {
	-webkit-appearance: none; appearance: none; margin: 0; height: 30px; padding: 0 14px; border: 0; border-radius: 999px;
	background: transparent; box-shadow: none; transform: none;
	font: 600 12.5px/1 "Inter", system-ui, sans-serif; letter-spacing: 0; text-transform: none; white-space: nowrap; cursor: pointer;
}
body.havn-dashboard-page .havn-mc .havn-prb-seg-btn:hover { background: var(--prb-soft); }
body.havn-dashboard-page .havn-mc .havn-prb-seg-btn.is-on,
body.havn-dashboard-page .havn-mc .havn-prb-seg-btn.is-on:hover { background: var(--mc-accent); }
body.havn-dashboard-page .havn-mc .havn-prb-seg-btn.is-on,
body.havn-dashboard-page .havn-mc .havn-prb-seg-btn.is-on span { color: #0B0C10 !important; }
.havn-prb-seg-btn span { margin-left: 4px; font-variant-numeric: tabular-nums; opacity: .8; }
.havn-prb-seg-sm .havn-prb-seg-btn { height: 28px !important; padding: 0 12px !important; }
.havn-prb-compare { font-size: 12.5px; }
.havn-prb-channels { margin-left: auto; display: flex; flex-wrap: wrap; gap: 6px; }
.havn-prb-chan {
	display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 11px; border-radius: 999px;
	border: 1px solid var(--mc-border); font: 500 12px/1 "Inter", system-ui, sans-serif; white-space: nowrap;
}
.havn-prb-chan svg { width: 14px; height: 14px; }
.havn-prb-chan.is-ready { border-color: color-mix(in srgb, var(--prb-pipe), transparent 55%); }
body.havn-dashboard-page .havn-mc .havn-prb-chan.is-ready svg { color: var(--prb-pipe) !important; }

/* ---- the board grid ---------------------------------------------------- */
.havn-prb-grid {
	display: grid; gap: 14px;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-template-areas:
		"calls calls calls calls calls due due connect connect src src src"
		"calls calls calls calls calls appr appr list list src src src"
		"funnel funnel funnel hot hot hot quiet quiet quiet anniv anniv anniv"
		"team team team team team team team team team team team team";
}
.havn-prb-grid > * { min-width: 0; }
[data-pr-card="calls"]         { grid-area: calls; }
[data-pr-card="due"]           { grid-area: due; }
[data-pr-card="connect"]       { grid-area: connect; }
[data-pr-card="appraisals"]    { grid-area: appr; }
[data-pr-card="listings"]      { grid-area: list; }
[data-pr-card="sources"]       { grid-area: src; }
[data-pr-card="funnel"]        { grid-area: funnel; }
[data-pr-card="hot"]           { grid-area: hot; }
[data-pr-card="quiet"]         { grid-area: quiet; }
[data-pr-card="anniversaries"] { grid-area: anniv; }
[data-pr-card="team"]          { grid-area: team; }

.havn-prb-card {
	position: relative; display: flex; flex-direction: column; gap: 12px; min-width: 0;
	padding: 18px; border: 1px solid var(--mc-border); border-radius: var(--mc-radius-lg, 18px); background: var(--prb-card);
}
.havn-mc.is-light .havn-prb-card, body.havn-mc-light .havn-prb-card { box-shadow: 0 1px 2px rgba(20,18,14,.04); }
.havn-prb-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
body.havn-dashboard-page .havn-mc .havn-prb-card-title { margin: 0; font: 650 14.5px/1.25 "Inter", system-ui, sans-serif; letter-spacing: -.005em; }
.havn-prb-card-note { font-size: 12px; }
.havn-prb-card-body { display: flex; flex-direction: column; gap: 12px; min-width: 0; flex: 1 1 auto; }

/* ---- figures ----------------------------------------------------------- */
.havn-prb-figline { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
body.havn-dashboard-page .havn-mc .havn-prb-big { font: 500 34px/1 "Fraunces", Georgia, serif; letter-spacing: -.01em; color: var(--prb-num) !important; font-variant-numeric: tabular-nums; }
.havn-prb-muted { font-size: 12.5px; }
.havn-prb-delta {
	display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: 999px;
	font: 650 11.5px/1 "Inter", system-ui, sans-serif; white-space: nowrap;
}
.havn-prb-delta svg { width: 10px; height: 10px; }
body.havn-dashboard-page .havn-mc .havn-prb-delta.is-up   { background: var(--prb-up-bg);   color: var(--prb-up) !important; }
body.havn-dashboard-page .havn-mc .havn-prb-delta.is-down { background: var(--prb-down-bg); color: var(--prb-down) !important; }
body.havn-dashboard-page .havn-mc :is(.havn-prb-delta.is-flat, .havn-prb-delta.is-new) { background: var(--prb-soft); color: var(--mc-text-3) !important; }

/* The two-by-two: centred, like the reference. */
.havn-prb-tile { padding: 16px 14px; }
.havn-prb-tile .havn-prb-card-title { text-align: center; }
.havn-prb-tile-in {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; flex: 1 1 auto;
	text-align: center; border-radius: 12px; outline: none;
}
.havn-prb-tile-in[role="button"] { cursor: pointer; }
.havn-prb-tile-in[role="button"]:focus-visible { box-shadow: 0 0 0 2px var(--mc-accent-soft); }
.havn-prb-tile-label { font: 650 10.5px/1.2 "Inter", system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
body.havn-dashboard-page .havn-mc .havn-prb-tile-num { font: 500 clamp(30px, 2.6vw, 40px)/1 "Fraunces", Georgia, serif; letter-spacing: -.01em; color: var(--prb-num) !important; font-variant-numeric: tabular-nums; }
body.havn-dashboard-page .havn-mc .havn-prb-tile-num small { font-size: .5em; margin-left: 2px; color: var(--prb-num) !important; }
.havn-prb-tile-sub { font-size: 11.5px; line-height: 1.35; }

/* ---- the bar chart ----------------------------------------------------- */
.havn-prb-chart { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 8px; flex: 1 1 auto; min-height: 230px; }
.havn-prb-yaxis { display: flex; flex-direction: column; justify-content: space-between; padding-bottom: 22px; }
.havn-prb-yaxis span { font: 500 10.5px/1 "Inter", system-ui, sans-serif; text-align: right; font-variant-numeric: tabular-nums; transform: translateY(-50%); }
.havn-prb-yaxis span:last-child { transform: translateY(0); }
.havn-prb-plot { position: relative; min-width: 0; }
.havn-prb-grid-lines { position: absolute; inset: 0 0 22px 0; display: flex; flex-direction: column; justify-content: space-between; pointer-events: none; }
.havn-prb-grid-lines i { display: block; height: 1px; background: var(--prb-grid); }
.havn-prb-bars { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: clamp(2px, .5vw, 6px); align-items: stretch; }
.havn-prb-bar { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-width: 0; padding-bottom: 22px; outline: none; }
.havn-prb-bar-col {
	position: relative; display: flex; flex-direction: column; justify-content: flex-end; width: 100%; max-width: 22px; margin: 0 auto;
	border-radius: 4px 4px 1px 1px; background: var(--prb-bar-tried); min-height: 0;
	animation: havn-prb-grow .5s cubic-bezier(.2,.7,.2,1) backwards;
}
.havn-prb-bar-col i { display: block; width: 100%; border-radius: inherit; background: var(--prb-bar); }
@keyframes havn-prb-grow { from { transform: scaleY(0); transform-origin: bottom; } }
@media (prefers-reduced-motion: reduce) { .havn-prb-bar-col { animation: none; } }
.havn-prb-bar-x { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); font: 500 10px/1 "Inter", system-ui, sans-serif; white-space: nowrap; }
.havn-prb-bar-tip {
	position: absolute; left: 50%; bottom: calc(100% - 14px); z-index: 3; transform: translate(-50%, 0);
	display: flex; flex-direction: column; gap: 2px; padding: 7px 10px; border-radius: 10px; white-space: nowrap;
	border: 1px solid var(--mc-border-2); background: var(--mc-bg-2); box-shadow: 0 12px 28px -12px rgba(0,0,0,.55);
	font: 500 11.5px/1.2 "Inter", system-ui, sans-serif; opacity: 0; pointer-events: none; transition: opacity .12s ease;
}
.havn-prb-bar:first-child .havn-prb-bar-tip, .havn-prb-bar:nth-child(2) .havn-prb-bar-tip { left: 0; transform: none; }
.havn-prb-bar:last-child .havn-prb-bar-tip, .havn-prb-bar:nth-last-child(2) .havn-prb-bar-tip { left: auto; right: 0; transform: none; }
.havn-prb-bar-tip em { font-style: normal; font-size: 10.5px; }
.havn-prb-bar:hover .havn-prb-bar-tip, .havn-prb-bar:focus-visible .havn-prb-bar-tip { opacity: 1; }
.havn-prb-bar:hover .havn-prb-bar-col, .havn-prb-bar:focus-visible .havn-prb-bar-col { filter: brightness(1.12); }
.havn-prb-plot-empty { position: absolute; left: 50%; top: 40%; transform: translate(-50%, -50%); width: min(80%, 320px); margin: 0; padding: 9px 12px; border-radius: 10px; border: 1px solid var(--mc-border); background: var(--mc-bg-2); font-size: 12.5px; line-height: 1.45; text-align: center; }
.havn-prb-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.havn-prb-legend span { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; }
.havn-prb-legend i { width: 10px; height: 10px; border-radius: 3px; }
.havn-prb-legend i.is-spoke { background: var(--prb-bar); }
.havn-prb-legend i.is-tried { background: var(--prb-bar-tried); }

/* ---- the pie ----------------------------------------------------------- */
.havn-prb-card-sources .havn-prb-card-body { align-items: center; }
.havn-prb-pie { width: min(190px, 70%); height: auto; display: block; margin: 4px auto 0; }
.havn-prb-pie path, .havn-prb-pie > circle:first-child { stroke: var(--mc-bg-2); stroke-width: 1.5; }
.havn-mc.is-light .havn-prb-pie path, body.havn-mc-light .havn-prb-pie path { stroke: #FFFFFF; }
.havn-prb-pie-hole { fill: var(--mc-bg-2); }
.havn-mc.is-light .havn-prb-pie-hole, body.havn-mc-light .havn-prb-pie-hole { fill: #FFFFFF; }
.havn-prb-pie-n { text-anchor: middle; font: 500 26px "Fraunces", Georgia, serif; fill: var(--mc-text); }
.havn-prb-pie-l { text-anchor: middle; font: 500 10px "Inter", system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; fill: var(--mc-text-3); }
.havn-prb-pie-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; width: 100%; }
.havn-prb-pie-legend button {
	display: grid; grid-template-columns: 10px minmax(0, 1fr) auto 38px; align-items: center; gap: 9px; width: 100%;
	padding: 6px 8px !important; margin: 0; border: 0 !important; border-radius: 8px; background: transparent !important; box-shadow: none !important;
	font: 500 12.5px/1.2 "Inter", system-ui, sans-serif !important; text-transform: none !important; letter-spacing: 0 !important; text-align: left; cursor: pointer; transform: none !important;
}
.havn-prb-pie-legend button:hover { background: var(--prb-soft) !important; }
.havn-prb-pie-legend i { width: 10px; height: 10px; border-radius: 50%; }
.havn-prb-pie-legend span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.havn-prb-pie-legend strong { font-variant-numeric: tabular-nums; }
.havn-prb-pie-legend em { font-style: normal; text-align: right; font-size: 11.5px; }

/* ---- funnel ------------------------------------------------------------ */
.havn-prb-funnel { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.havn-prb-funnel li { display: grid; grid-template-columns: minmax(0, 1fr) auto 38px; grid-template-rows: auto 8px; column-gap: 10px; row-gap: 5px; align-items: center; }
.havn-prb-funnel-l { font-size: 12.5px; }
.havn-prb-funnel strong { font: 650 13px/1 "Inter", system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.havn-prb-funnel em { font-style: normal; font-size: 11px; text-align: right; }
.havn-prb-funnel-track { grid-column: 1 / -1; grid-row: 2; height: 8px; border-radius: 999px; background: var(--prb-soft); overflow: hidden; }
.havn-prb-funnel-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--prb-bar), color-mix(in srgb, var(--prb-bar), transparent 25%)); }

/* ---- mini lists (hot / quiet / anniversaries) ------------------------- */
.havn-prb-mini { list-style: none; margin: 0 -6px; padding: 0; display: grid; gap: 2px; }
.havn-prb-mini li { display: flex; align-items: center; gap: 10px; padding: 7px 6px; border-radius: 10px; min-width: 0; }
.havn-prb-mini li:hover { background: var(--prb-soft); }
body.havn-dashboard-page .havn-mc .havn-prb-mini-main {
	all: unset; box-sizing: border-box; display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; cursor: pointer;
}
.havn-prb-mini li { align-items: flex-start; }
.havn-prb-mini li > .havn-prb-avatar, .havn-prb-mini li > .havn-prb-iconbtn { margin-top: 2px; }
.havn-prb-mini-top { display: flex; align-items: center; gap: 6px; min-width: 0; }
.havn-prb-mini-main strong { font: 620 13px/1.25 "Inter", system-ui, sans-serif; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
/* Two lines for the reason: it IS the point of the list, and one line cut it
   to "Told you they…". */
.havn-prb-mini-why { font-size: 11.5px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.havn-prb-mini-date { flex: none; margin-left: auto; font: normal 600 11px/1 "Inter", system-ui, sans-serif; }
.havn-prb-empty-card { margin: 0; font-size: 12.5px; line-height: 1.55; }

/* ---- small parts ------------------------------------------------------- */
.havn-prb-avatar {
	flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
	background: hsl(var(--av, 40) 38% 32%); font: 650 12px/1 "Inter", system-ui, sans-serif; letter-spacing: .02em;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-avatar { color: #F6F1E7 !important; }
.havn-mc.is-light .havn-prb-avatar, body.havn-mc-light .havn-prb-avatar { background: hsl(var(--av, 40) 42% 88%); }
body.havn-mc-light.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-avatar { color: hsl(var(--av, 40) 45% 26%) !important; }
.havn-prb-avatar.is-sm { width: 24px; height: 24px; font-size: 10px; margin-right: 8px; vertical-align: middle; display: inline-grid; }

.havn-prb-temp {
	display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 8px; border-radius: 999px; flex: none;
	font: 650 10.5px/1 "Inter", system-ui, sans-serif; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap;
	border: 1px solid currentColor;
}
.havn-prb-temp i { font-style: normal; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-temp.is-hot      { color: var(--prb-hot, #E8907F) !important; background: color-mix(in srgb, var(--prb-hot, #E8907F), transparent 88%); }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-temp.is-warm     { color: var(--prb-warm, #D4B370) !important; background: color-mix(in srgb, var(--prb-warm, #D4B370), transparent 88%); }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-temp.is-cold     { color: var(--prb-cold, #8AB4F8) !important; background: color-mix(in srgb, var(--prb-cold, #8AB4F8), transparent 88%); }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-temp.is-pipeline { color: var(--prb-pipe, #6FCF97) !important; background: color-mix(in srgb, var(--prb-pipe, #6FCF97), transparent 88%); }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-temp.is-dnc      { color: var(--prb-dnc, #8A8F98) !important; background: transparent; }

.havn-prb-tag {
	display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: 6px; flex: none; white-space: nowrap;
	border: 1px solid var(--mc-border); background: var(--prb-soft); font: 550 11px/1 "Inter", system-ui, sans-serif;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-tag.is-yours { color: var(--mc-accent) !important; border-color: color-mix(in srgb, var(--mc-accent), transparent 60%); }
body.havn-mc-light.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-tag.is-yours { color: #8A6A2C !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-tag.is-anniv { color: var(--prb-c2, #4A8FE0) !important; }

body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-iconbtn {
	-webkit-appearance: none; appearance: none; flex: none; display: inline-grid; place-items: center;
	width: 32px; height: 32px; min-width: 0; padding: 0; margin: 0; border-radius: 50%;
	border: 1px solid var(--mc-border-2); background: transparent; box-shadow: none; text-decoration: none; cursor: pointer;
	color: var(--mc-text-2) !important;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-iconbtn:hover,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-iconbtn:focus-visible {
	background: var(--mc-accent-soft); border-color: var(--mc-accent); color: var(--mc-text) !important; transform: translateY(-1px);
}
.havn-prb-iconbtn svg { width: 15px; height: 15px; }

body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-link {
	all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
	font: 600 12.5px/1.2 "Inter", system-ui, sans-serif; color: var(--mc-accent) !important; text-decoration: none;
}
body.havn-mc-light.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-link { color: #8A6A2C !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-link:hover { text-decoration: underline; text-underline-offset: 3px; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-link.is-danger { color: #E0857B !important; }
.havn-prb-link svg { width: 14px; height: 14px; }

/* ---- tabs -------------------------------------------------------------- */
.havn-prb-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--mc-border); margin-top: 10px; overflow-x: auto; }
body.havn-dashboard-page .havn-mc .havn-prb-tab,
body.havn-dashboard-page .havn-mc .havn-prb-tab:hover,
body.havn-dashboard-page .havn-mc .havn-prb-tab:focus {
	-webkit-appearance: none; appearance: none; position: relative; margin: 0 0 -1px; padding: 12px 16px; border: 0; border-bottom: 2px solid transparent;
	border-radius: 0; background: transparent; box-shadow: none; transform: none; cursor: pointer; white-space: nowrap;
	font: 620 14px/1 "Inter", system-ui, sans-serif; letter-spacing: 0; text-transform: none;
}
body.havn-dashboard-page .havn-mc .havn-prb-tab.is-on { border-bottom-color: var(--mc-accent); color: var(--mc-text) !important; }
.havn-prb-tab-n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 6px; padding: 0 6px; border-radius: 999px; background: var(--prb-soft); font-size: 11px; font-variant-numeric: tabular-nums; }
.havn-prb-tab-n:empty { display: none; }
.havn-prb-panel { display: flex; flex-direction: column; gap: 14px; }

/* ---- calls ------------------------------------------------------------- */
.havn-prb-work { padding: 14px; }
.havn-prb-work-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; }
.havn-prb-work-hint { margin: 0; font-size: 12px; }
.havn-prb-calls { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.havn-prb-call {
	display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: start; gap: 12px;
	padding: 14px 8px; border-top: 1px solid var(--mc-border);
}
.havn-prb-call:first-child { border-top: 0; }
.havn-prb-call:hover { background: var(--prb-soft); }
.havn-prb-call.is-overdue { box-shadow: inset 3px 0 0 #E0857B; }
.havn-prb-call.is-draft { box-shadow: inset 3px 0 0 var(--prb-c2, #4A8FE0); }
.havn-prb-call-main { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.havn-prb-call-top { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; }
body.havn-dashboard-page .havn-mc .havn-prb-name { all: unset; cursor: pointer; font: 650 14px/1.25 "Inter", system-ui, sans-serif; }
body.havn-dashboard-page .havn-mc .havn-prb-name:hover { text-decoration: underline; text-underline-offset: 3px; }
.havn-prb-kind { display: inline-flex; align-items: center; gap: 5px; font: 550 11.5px/1.2 "Inter", system-ui, sans-serif; }
.havn-prb-kind svg { width: 13px; height: 13px; }
.havn-prb-call-sub { display: flex; flex-wrap: wrap; gap: 2px 0; font-size: 12px; line-height: 1.4; }
.havn-prb-call-sub span + span::before { content: "·"; margin: 0 7px; opacity: .6; }
body.havn-dashboard-page .havn-mc .havn-prb-due { font-weight: 600; color: var(--mc-text-2) !important; }
body.havn-dashboard-page .havn-mc .havn-prb-due.is-late { color: #E0857B !important; }
.havn-prb-draft { margin: 2px 0 0; padding: 9px 11px; border-radius: 10px; border: 1px solid var(--mc-border); background: var(--prb-soft); font-size: 12.5px; line-height: 1.5; }
.havn-prb-draft em { display: block; margin-top: 4px; font-style: normal; font-size: 11.5px; }
body.havn-dashboard-page .havn-mc .havn-prb-draft em { color: var(--mc-text-3) !important; }
/* Astra gives <details> a 1.5em bottom margin; inside a list row that is dead space. */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal) .havn-prb-script { margin: 2px 0 0 !important; padding: 0 !important; border: 0 !important; }
.havn-prb-script summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font: 600 12px/1.2 "Inter", system-ui, sans-serif; }
.havn-prb-script summary::-webkit-details-marker { display: none; }
.havn-prb-script summary svg { width: 14px; height: 14px; }
.havn-prb-script[open] summary { margin-bottom: 8px; }
.havn-prb-script div { padding: 11px 13px; border-radius: 10px; border-left: 3px solid var(--mc-accent); background: var(--prb-soft); font-size: 13px; line-height: 1.6; max-width: 70ch; }
.havn-prb-call-acts { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.havn-prb-callbtn svg { width: 14px; height: 14px; }
.havn-prb-nophone { font-size: 12px; }
.havn-prb-empty { list-style: none; padding: 26px 12px; text-align: center; font-size: 13px; line-height: 1.55; margin: 0; }

/* ---- book -------------------------------------------------------------- */
.havn-prb-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.havn-prb-search { position: relative; flex: 1 1 320px; min-width: 0; }
.havn-prb-search svg { position: absolute; left: 13px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); pointer-events: none; }
body.havn-dashboard-page .havn-mc .havn-prb-search svg { color: var(--mc-text-3) !important; }
body.havn-dashboard-page .havn-mc .havn-prb-search input {
	box-sizing: border-box !important; -webkit-appearance: none !important; appearance: none !important;
	width: 100% !important; height: 42px !important; margin: 0 !important; padding: 0 14px 0 38px !important;
	border: 1px solid var(--mc-border-2) !important; border-radius: 12px !important; background: var(--mc-bg-3) !important;
	font: 400 14px/1.3 "Inter", system-ui, sans-serif !important; color: var(--mc-text) !important;
}
body.havn-dashboard-page .havn-mc .havn-prb-search input:focus { outline: none !important; border-color: var(--mc-accent) !important; box-shadow: 0 0 0 3px var(--mc-accent-soft) !important; }
.havn-prb-sort { flex: 0 1 220px; margin: 0 !important; }
.havn-prb-chips { display: flex; flex-wrap: wrap; gap: 6px; }
body.havn-dashboard-page .havn-mc .havn-prb-chip,
body.havn-dashboard-page .havn-mc .havn-prb-chip:hover,
body.havn-dashboard-page .havn-mc .havn-prb-chip:focus {
	-webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; gap: 6px; height: 30px; margin: 0; padding: 0 12px;
	border: 1px solid var(--mc-border-2); border-radius: 999px; background: transparent; box-shadow: none; transform: none; cursor: pointer;
	font: 550 12.5px/1 "Inter", system-ui, sans-serif; letter-spacing: 0; text-transform: none;
}
body.havn-dashboard-page .havn-mc .havn-prb-chip:hover { background: var(--prb-soft); }
body.havn-dashboard-page .havn-mc .havn-prb-chip.is-on { border-color: var(--mc-accent); background: var(--mc-accent-soft); color: var(--mc-text) !important; }
.havn-prb-chip span { font-variant-numeric: tabular-nums; }

.havn-prb-bulk {
	position: sticky; top: 8px; z-index: 5; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px;
	padding: 10px 12px; border-radius: 14px; border: 1px solid var(--mc-accent); background: var(--mc-bg-2); box-shadow: var(--mc-shadow);
}
.havn-prb-bulk .havn-pr-field { margin: 0; flex: 0 1 200px; }
.havn-prb-bulk .havn-pr-field select { height: 34px !important; min-height: 34px !important; }

.havn-prb-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 12px; }
.havn-prb-pcard {
	position: relative; display: flex; flex-direction: column; min-width: 0;
	border: 1px solid var(--mc-border); border-radius: 16px; background: var(--prb-card);
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.havn-prb-pcard:hover { border-color: var(--mc-border-2); transform: translateY(-1px); box-shadow: 0 14px 30px -20px rgba(0,0,0,.6); }
.havn-prb-pcard.is-hot { box-shadow: inset 0 3px 0 var(--prb-hot); }
.havn-prb-pcard.is-selected { border-color: var(--mc-accent); background: color-mix(in srgb, var(--mc-accent), transparent 94%); }
.havn-prb-pick { position: absolute; top: 12px; right: 12px; z-index: 2; line-height: 0; }
body.havn-dashboard-page .havn-mc .havn-prb-pick input {
	-webkit-appearance: none !important; appearance: none !important; box-sizing: border-box !important;
	width: 18px !important; height: 18px !important; margin: 0 !important; padding: 0 !important;
	border: 1px solid var(--mc-border-2) !important; border-radius: 5px !important; background: var(--mc-bg-3) !important; cursor: pointer;
	opacity: .55; transition: opacity .15s ease;
}
.havn-prb-pcard:hover .havn-prb-pick input, .havn-prb-pick input:checked, .havn-prb-pick input:focus-visible { opacity: 1 !important; }
body.havn-dashboard-page .havn-mc .havn-prb-pick input:checked {
	background: var(--mc-accent) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0C10' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat !important;
	border-color: var(--mc-accent) !important;
}
body.havn-dashboard-page .havn-mc .havn-prb-pcard-body {
	all: unset; box-sizing: border-box; display: flex; flex-direction: column; gap: 9px; padding: 14px 14px 10px; cursor: pointer; min-width: 0; border-radius: 16px 16px 0 0;
}
body.havn-dashboard-page .havn-mc .havn-prb-pcard-body:focus-visible { box-shadow: inset 0 0 0 2px var(--mc-accent); }
.havn-prb-pcard-top { display: flex; align-items: center; gap: 10px; min-width: 0; padding-right: 22px; }
.havn-prb-pcard-id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.havn-prb-pcard-id strong { font: 650 14px/1.25 "Inter", system-ui, sans-serif; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.havn-prb-pcard-id > span { font-size: 12px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.havn-prb-pcard-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.havn-prb-pcard-why { font-size: 12px; line-height: 1.4; }
.havn-prb-pcard-facts { display: flex; flex-wrap: wrap; gap: 2px 0; font-size: 11.5px; }
.havn-prb-pcard-facts span + span::before { content: "·"; margin: 0 6px; opacity: .6; }
.havn-prb-pcard-cads { display: flex; flex-wrap: wrap; gap: 4px; }
.havn-prb-pcard-acts { display: flex; align-items: center; gap: 6px; margin-top: auto; padding: 10px 14px 12px; border-top: 1px solid var(--mc-border); }
.havn-prb-pcard-log { margin-left: auto; font-size: 11.5px; }
body.havn-dashboard-page .havn-mc .havn-prb-empty { color: var(--mc-text-3) !important; }

/* ---- cadences ---------------------------------------------------------- */
.havn-prb-cad-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
body.havn-dashboard-page .havn-mc .havn-prb-h3 { margin: 0 0 4px; font: 500 22px/1.15 "Fraunces", Georgia, serif; }
.havn-prb-sub { margin: 0; font-size: 13px; line-height: 1.55; max-width: 72ch; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-prb-h4 { margin: 14px 0 8px; font: 650 12px/1.2 "Inter", system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.havn-prb-cadences { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; align-items: start; }
.havn-prb-cad-desc { margin: 0; font-size: 12.5px; line-height: 1.5; }
.havn-prb-cad-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; counter-reset: s; }
.havn-prb-cad-steps li { display: grid; grid-template-columns: 26px 44px minmax(0, 1fr) auto; align-items: center; gap: 8px; font-size: 12.5px; }
.havn-prb-cad-steps li > svg:first-child { width: 26px; height: 26px; padding: 6px; box-sizing: border-box; border-radius: 50%; border: 1px solid var(--mc-border-2); }
.havn-prb-cad-steps li.is-sms > svg:first-child { border-color: color-mix(in srgb, var(--prb-c2), transparent 50%); }
.havn-prb-cad-steps li.is-email > svg:first-child { border-color: color-mix(in srgb, var(--prb-c3), transparent 50%); }
.havn-prb-cad-steps li > svg:last-child:not(:first-child) { width: 14px; height: 14px; opacity: .6; }
.havn-prb-cad-steps span { font-weight: 600; }
.havn-prb-cad-steps em { font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.havn-prb-cad-then { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12px; }
.havn-prb-cad-then svg { width: 13px; height: 13px; }
.havn-prb-cad-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--mc-border); }
.havn-prb-cad-acts { display: flex; gap: 12px; margin-left: auto; }
.havn-prb-switch { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 12.5px; }
body.havn-dashboard-page .havn-mc .havn-prb-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.havn-prb-switch i { position: relative; width: 34px; height: 20px; border-radius: 999px; background: var(--mc-border-2); transition: background .15s ease; }
.havn-prb-switch i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #F4F4F5; transition: transform .15s ease; }
.havn-prb-switch input:checked + i { background: var(--mc-accent); }
.havn-prb-switch input:checked + i::after { transform: translateX(14px); background: #0B0C10; }
.havn-prb-switch input:focus-visible + i { box-shadow: 0 0 0 3px var(--mc-accent-soft); }
.havn-prb-copygrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.havn-prb-copygroup .havn-prb-h4 { margin-top: 0; }
.havn-prb-copygroup ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.havn-prb-copygroup li { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 9px 0; border-top: 1px solid var(--mc-border); }
.havn-prb-copygroup li:first-child { border-top: 0; }
.havn-prb-copygroup li > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.havn-prb-copygroup strong { font: 620 13px/1.3 "Inter", system-ui, sans-serif; }
.havn-prb-copygroup span { font-size: 12px; line-height: 1.45; }

/* ---- tables, team ------------------------------------------------------ */
.havn-prb-tablewrap { overflow-x: auto; }
.havn-prb-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 560px; }
.havn-prb-table th { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--mc-border); font: 650 10.5px/1.2 "Inter", system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.havn-prb-table td { padding: 10px; border-bottom: 1px solid var(--mc-border); font-variant-numeric: tabular-nums; }
.havn-prb-table tr:last-child td { border-bottom: 0; }
.havn-prb-table tr.is-you td { background: var(--prb-soft); }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal) .havn-prb-table em { font-style: normal; font-size: 11px; color: var(--mc-accent) !important; }

/* ---- toast ------------------------------------------------------------- */
.havn-prb-toast {
	position: fixed; left: 50%; bottom: 24px; z-index: 10050; transform: translateX(-50%);
	display: flex; align-items: center; gap: 12px; max-width: min(620px, calc(100vw - 32px));
	padding: 10px 10px 10px 16px; border-radius: 14px; border: 1px solid var(--mc-border-2); background: var(--mc-bg-2); box-shadow: 0 18px 40px -16px rgba(0,0,0,.6);
	font-size: 13.5px; line-height: 1.4;
}
body.havn-dashboard-page .havn-mc .havn-prb-toast > span { color: var(--mc-text) !important; }
body.havn-dashboard-page .havn-mc .havn-prb-toast-x { all: unset; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; cursor: pointer; flex: none; color: var(--mc-text-3) !important; }
.havn-prb-toast-x svg { width: 14px; height: 14px; }

/* ---- dialogs: the new ones -------------------------------------------- */
.havn-pr-modal-panel.havn-pr-modal-wide { width: min(840px, 100%); }
.havn-pr-choices.havn-pr-choices-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.havn-prb-script.havn-prb-script { margin: 0 0 12px; }
.havn-prb-mapgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0 12px; }
.havn-prb-steps { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; counter-reset: step; }
.havn-prb-step { display: grid; grid-template-columns: 110px 150px minmax(0, 1fr) 32px; align-items: end; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--mc-border); background: var(--prb-soft, rgba(255,255,255,.03)); }
.havn-prb-step .havn-pr-field { margin: 0; }
.havn-prb-step > .havn-prb-iconbtn { margin-bottom: 4px !important; }
.havn-prb-autosend { margin: 16px 0 6px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--mc-border); }
body.havn-dashboard-page .havn-pr-modal .havn-prb-autosend strong { color: var(--mc-text) !important; }

.havn-prb-signin-new { padding: 14px; margin: 0 0 14px; border-radius: 12px; border: 1px solid var(--mc-border); }
.havn-prb-signins { display: grid; gap: 10px; }
.havn-prb-sheet { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 14px; align-items: start; padding: 12px; border-radius: 12px; border: 1px solid var(--mc-border); }
.havn-prb-sheet.is-closed { grid-template-columns: minmax(0, 1fr); opacity: .7; }
.havn-prb-sheet.is-closed .havn-prb-qr { display: none; }
.havn-prb-qr { background: #FFFFFF; border-radius: 10px; padding: 6px; line-height: 0; }
.havn-prb-qr svg { width: 100%; height: auto; display: block; }
.havn-prb-sheet-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.havn-prb-sheet-main strong { font: 650 14px/1.3 "Inter", system-ui, sans-serif; }
.havn-prb-sheet-main > span { font-size: 12.5px; }
.havn-prb-sheet-main code { display: block; padding: 7px 9px; border-radius: 8px; background: var(--mc-bg-3); font-size: 11.5px; overflow-wrap: anywhere; }
body.havn-dashboard-page .havn-pr-modal .havn-prb-sheet-main code { color: var(--mc-text-2) !important; }
.havn-prb-sheet-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.havn-prb-help ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.havn-prb-help li { padding: 12px 14px; border-radius: 12px; border: 1px solid var(--mc-border); border-left: 3px solid var(--mc-border-2); }
.havn-prb-help.is-inbound li { border-left-color: #8AB4F8; }
.havn-prb-help.is-outbound li { border-left-color: #6FCF97; }
.havn-prb-help.is-blocked li { border-left-color: #E0857B; }
body.havn-dashboard-page .havn-pr-modal .havn-prb-help strong { display: block; margin-bottom: 4px; font-size: 13.5px; color: var(--mc-text) !important; }
body.havn-dashboard-page .havn-pr-modal .havn-prb-help p { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--mc-text-2) !important; }
body.havn-dashboard-page .havn-pr-modal .havn-prb-help p strong { display: inline; margin: 0; font-size: inherit; }
.havn-prb-help-guard { display: flex; gap: 8px; margin-top: 8px !important; }
.havn-prb-help-guard svg { width: 14px; height: 14px; flex: none; margin-top: 3px; }
body.havn-dashboard-page .havn-pr-modal .havn-prb-help-guard, body.havn-dashboard-page .havn-pr-modal .havn-prb-help-guard span { color: var(--mc-text-3) !important; }
body.havn-dashboard-page .havn-pr-modal .havn-prb-help-guard svg { color: #6FCF97 !important; }

/* ---- responsive -------------------------------------------------------- */
@media (max-width: 1280px) {
	.havn-prb-grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		grid-template-areas:
			"calls calls calls calls calls calls"
			"due due due connect connect connect"
			"appr appr appr list list list"
			"src src src funnel funnel funnel"
			"hot hot hot quiet quiet quiet"
			"anniv anniv anniv anniv anniv anniv"
			"team team team team team team";
	}
	.havn-prb-copygrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 861px) {
	.havn-prb-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-areas: "calls calls" "due connect" "appr list" "src src" "funnel funnel" "hot hot" "quiet quiet" "anniv anniv" "team team";
		gap: 10px;
	}
	/* Square below 861px, per v2.2.148 — no rounding, no nested cards. */
	.havn-prb-card, .havn-prb-pcard, .havn-prb-filterbar, .havn-prb-bulk, .havn-prb-step, .havn-prb-sheet, .havn-prb-help li,
	.havn-prb-draft, .havn-prb-script div, .havn-prb-signin-new, .havn-prb-seg, .havn-prb-toast { border-radius: 0; }
	.havn-prb-pcard-body { border-radius: 0 !important; }
	.havn-prb-call { grid-template-columns: 34px minmax(0, 1fr); }
	.havn-prb-call-acts { grid-column: 1 / -1; justify-content: flex-start; }
	/* A "·" that wraps to the start of a line reads as a stray mark; on a
	   phone each fact takes its own line instead. */
	.havn-prb-call-sub { flex-direction: column; gap: 1px; }
	.havn-prb-call-sub span + span::before { display: none; }
	.havn-prb-channels { margin-left: 0; }
	.havn-prb-copygrid { grid-template-columns: minmax(0, 1fr); }
	.havn-prb-step { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 32px; }
	.havn-prb-step .havn-prb-step-what { grid-column: 1 / 3; }
	.havn-pr-choices.havn-pr-choices-grid { grid-template-columns: minmax(0, 1fr); }
	.havn-prb-sheet { grid-template-columns: 96px minmax(0, 1fr); }
	.havn-prb-chart { min-height: 190px; }
}
@media (max-width: 861px) {
	/* The app's header actions become a hidden-scrollbar row on a phone, which
	   with four buttons put Add prospect — the one that matters — off screen.
	   On this view they sit two-by-two, with Add first and full width. */
	.havn-mc [data-mc-view="prospecting"] .havn-mc-view-actions {
		display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; overflow: visible; width: 100%;
	}
	.havn-mc [data-mc-view="prospecting"] .havn-mc-view-actions > * { min-width: 0; justify-content: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.havn-mc [data-mc-view="prospecting"] .havn-mc-view-actions > [data-pr-action="add"] { order: -1; grid-column: 1 / -1; }
	.havn-mc [data-mc-view="prospecting"] .havn-mc-view-actions svg { flex: none; }
}
@media (max-width: 520px) {
	/* The two-by-two figures stay two-by-two: stacked, four cards were a whole
	   phone screen of four numbers. */
	.havn-prb-tile { padding: 12px 8px; }
	body.havn-dashboard-page .havn-mc .havn-prb-tile-num { font-size: 30px; }
	.havn-prb-tile .havn-prb-card-title { font-size: 13px; }
	.havn-prb-cards, .havn-prb-cadences { grid-template-columns: minmax(0, 1fr); }
	.havn-prb-sheet { grid-template-columns: minmax(0, 1fr); }
	.havn-prb-qr { max-width: 180px; }
}

/* ---- dialogs ---- */
.havn-pr-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.havn-pr-modal[hidden] { display: none !important; }
.havn-pr-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.66); backdrop-filter: blur(3px); }
.havn-pr-modal-panel {
	position: relative;
	width: min(560px, 100%); max-height: 88vh; overflow-y: auto;
	background: var(--mc-bg-2);
	border: 1px solid var(--mc-border-2);
	border-radius: var(--mc-radius-lg);
	box-shadow: var(--mc-shadow);
	padding: 22px;
}
.havn-pr-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-modal-head h3 { font-size: 17px; font-weight: 650; margin: 0; color: var(--mc-text) !important; }
.havn-pr-modal-x { appearance: none; background: transparent; border: 0; cursor: pointer; padding: 4px; line-height: 0; }
.havn-pr-modal-x > svg { width: 18px; height: 18px; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-modal-x > svg { color: var(--mc-text-3) !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-modal-sub { font-size: 12.5px; margin: 0 0 14px; color: var(--mc-text-3) !important; }

.havn-pr-choices { display: grid; gap: 8px; margin-bottom: 14px; }
.havn-pr-choice { display: block; cursor: pointer; }
.havn-pr-choice input { position: absolute; opacity: 0; pointer-events: none; }
.havn-pr-choice-body {
	display: block; padding: 11px 13px;
	background: var(--mc-surface); border: 1px solid var(--mc-border);
	border-left: 3px solid var(--oc, var(--mc-border-2));
	border-radius: 11px;
	transition: border-color .16s ease, background .16s ease;
}
.havn-pr-choice input:checked + .havn-pr-choice-body { background: var(--mc-surface-2); border-color: var(--oc, var(--mc-accent)); }
.havn-pr-choice input:focus-visible + .havn-pr-choice-body { outline: 2px solid var(--mc-accent); outline-offset: 2px; }
.havn-pr-choice-body strong { display: block; font-size: 13.5px; font-weight: 620; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-choice-body strong { color: var(--mc-text) !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-choice-body small  { font-size: 11.5px; color: var(--mc-text-3) !important; }

/* ─────────────────────────────────────────────────────────────────────────
   FORM CONTROLS

   These are used in a dialog on body, in a drawer on body, in a row and in a
   column — so they are written once here and nowhere else. Four things the
   live site's cascade does to a bare control, all of which had to be undone:

   1. `box-sizing: content-box`. THE bug behind "the fields look broken": with
      width:100% a 251px column produced a 275px input, so Email overhung the
      12px gap and sat on top of Phone. Two fields read as one box with a
      notch. Everything here is border-box, stated at !important because the
      cascade's rule is.
   2. A taller line-height, which made inputs 45px while selects stayed 38 —
      the ragged, cramped look. Every control is now exactly 40px, and the
      textarea's minimum is a multiple of it.
   3. `appearance: auto`, so the select arrow, the date picker's calendar and
      the checkbox were the browser's own light-mode chrome on a dark panel.
   4. A 25px line-box on the label span, which is where the too-large gap
      between a label and its field came from.

   Specificity: the panels live on document.body, outside `.havn-mc`, and the
   light-mode override is `body.havn-mc-light.havn-dashboard-page input` at
   (0,3,1) !important. The counter below is (0,3,2) !important. See the note at
   the top of this file.
   ───────────────────────────────────────────────────────────────────────── */

/* flex-basis on a child of a COLUMN container becomes a height — the trap that
   made the appraisal form 220px tall (v2.2.196). Pinned to auto here; only the
   row below hands out a basis. */
.havn-pr-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; flex: 0 0 auto; min-width: 0; }
.havn-pr-fieldrow { display: flex; gap: 14px; flex-wrap: wrap; }
/* min-width:0 matters as much as the basis: a flex item defaults to
   min-width:auto and refuses to shrink below its content, which is the second
   way these rows overflow. */
.havn-pr-fieldrow > .havn-pr-field { flex: 1 1 200px; min-width: 0; }

body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field > span,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-sub-field > span {
	display: flex; align-items: baseline; gap: 6px;
	font-size: 12px; font-weight: 600; line-height: 1.25 !important;
	letter-spacing: .01em;
	color: var(--mc-text-2) !important;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field em { font-style: normal; }
/* Required and optional are opposite signals and must not look alike. The
   asterisk was red and so was the word "optional" — which read as an error on
   a field that has nothing wrong with it. */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-req {
	color: #E0857B !important; font-weight: 700;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-opt {
	margin-left: auto;
	font-size: 11px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase;
	color: var(--mc-text-3) !important;
}
/* The hint that sits UNDER a control, as its own line. */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-hint {
	display: block; margin-top: 2px;
	font-size: 11.5px; font-weight: 400; line-height: 1.5;
	color: var(--mc-text-3) !important;
}

/* A class that sets `display` beats [hidden] — the v2.2.196 lesson. */
.havn-pr-modal [hidden], .havn-pn-drawer [hidden] { display: none !important; }

/* ---- the controls themselves ---- */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field input,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field select,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field textarea,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-sub-field input {
	box-sizing: border-box !important;
	-webkit-appearance: none !important; appearance: none !important;
	width: 100% !important; max-width: 100% !important; min-width: 0 !important;
	height: 40px !important; min-height: 40px !important;
	margin: 0 !important;
	padding: 0 12px !important;
	background: var(--mc-bg-3) !important;
	border: 1px solid var(--mc-border-2) !important;
	border-radius: 10px !important;
	font: inherit !important;
	/* 16px, not 13: anything under 16 makes iOS Safari zoom the whole page on
	   focus and never zoom back out. The desktop size is set below, where a
	   pointer is doing the work. */
	font-size: 16px !important;
	line-height: 1.3 !important;
	color: var(--mc-text) !important;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
@media (min-width: 862px) {
	body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field input,
	body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field select,
	body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field textarea,
	body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-sub-field input {
		font-size: 13.5px !important;
	}
}

body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field textarea {
	height: auto !important;
	min-height: 80px !important;
	padding: 10px 12px !important;
	line-height: 1.55 !important;
	resize: vertical;
}

body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field input::placeholder,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field textarea::placeholder {
	color: var(--mc-text-3) !important; opacity: 1;
}

/* A focus ring the agent can actually see — there was none, which on a form
   this size is the difference between usable and guesswork. */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field input:focus,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field select:focus,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field textarea:focus,
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-sub-field input:focus {
	outline: none !important;
	border-color: var(--mc-accent) !important;
	box-shadow: 0 0 0 3px var(--mc-accent-soft) !important;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field input:hover:not(:focus),
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field select:hover:not(:focus),
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field textarea:hover:not(:focus) {
	border-color: var(--mc-border-2) !important;
	background: var(--mc-surface-2) !important;
}

/* The select arrow, drawn rather than the platform's. Two chevrons — light and
   dark — because a currentColor SVG cannot be used in a background-image. */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field select {
	padding-right: 36px !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4F4F5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	background-size: 15px 15px !important;
	cursor: pointer;
}
body.havn-mc-light.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field select {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317150F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
}
/* The option list is drawn by the OS; only its colours are ours to set. */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field select option {
	background: var(--mc-bg-2); color: var(--mc-text);
}

/* The date field's calendar button is a shadow-DOM part we can only recolour.
   Inverting it in dark mode is the whole fix; in light it is already right. */
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field input[type="date"],
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-field input[type="datetime-local"],
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-sub-field input[type="datetime-local"] {
	padding-right: 10px !important;
	cursor: pointer;
}
.havn-pr-field input[type="date"]::-webkit-calendar-picker-indicator,
.havn-pr-field input[type="datetime-local"]::-webkit-calendar-picker-indicator,
.havn-pr-sub-field input[type="datetime-local"]::-webkit-calendar-picker-indicator {
	filter: invert(1) opacity(.55); cursor: pointer;
}
body.havn-mc-light .havn-pr-field input[type="date"]::-webkit-calendar-picker-indicator,
body.havn-mc-light .havn-pr-field input[type="datetime-local"]::-webkit-calendar-picker-indicator,
body.havn-mc-light .havn-pr-sub-field input[type="datetime-local"]::-webkit-calendar-picker-indicator {
	filter: opacity(.55);
}
/* An empty date field shows dd/mm/yyyy in full-strength text, which reads as a
   value somebody typed. Muted, it reads as the placeholder it is. */
.havn-pr-field input[type="date"]:not(:focus):in-range::-webkit-datetime-edit-year-field,
.havn-pr-field input[type="date"]:not(:focus):in-range::-webkit-datetime-edit-month-field,
.havn-pr-field input[type="date"]:not(:focus):in-range::-webkit-datetime-edit-day-field,
.havn-pr-field input[type="date"]:not(:focus):in-range::-webkit-datetime-edit-text { opacity: 1; }
.havn-pr-field input[type="date"]:invalid::-webkit-datetime-edit { opacity: .45; }

/* ---- checkboxes: a drawn box, not the platform's 13px one ---- */
.havn-pr-check { display: flex; align-items: flex-start; gap: 10px; margin: 8px 0; cursor: pointer; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-check input[type="checkbox"] {
	box-sizing: border-box !important;
	-webkit-appearance: none !important; appearance: none !important;
	flex: 0 0 auto;
	width: 18px !important; height: 18px !important; min-height: 0 !important;
	margin: 1px 0 0 !important; padding: 0 !important;
	background: var(--mc-bg-3) !important;
	border: 1px solid var(--mc-border-2) !important;
	border-radius: 5px !important;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-check input[type="checkbox"]:checked {
	background: var(--mc-accent) !important;
	border-color: var(--mc-accent) !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0C10' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 12px 12px !important;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-check input[type="checkbox"]:focus-visible {
	outline: none !important;
	box-shadow: 0 0 0 3px var(--mc-accent-soft) !important;
}
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-check span {
	font-size: 13px; line-height: 1.45; color: var(--mc-text-2) !important;
}
.havn-pr-check.is-blocked { opacity: .55; cursor: not-allowed; }
.havn-pr-check.is-blocked input { cursor: not-allowed; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-check.is-blocked em {
	font-style: normal; color: var(--mc-text-3) !important;
}
.havn-pr-sub-field { display: flex; flex-direction: column; gap: 6px; margin: 10px 0 0 28px; flex: 0 0 auto; min-width: 0; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-sub-field > span {
	font-size: 12px; color: var(--mc-text-3) !important;
}

.havn-pr-consequence {
	display: flex; align-items: flex-start; gap: 10px;
	padding: 12px 14px; margin: 0 0 12px;
	background: rgba(111,207,151,.07);
	border: 1px solid rgba(111,207,151,.3);
	border-radius: 11px;
	font-size: 12.5px; line-height: 1.6;
}
.havn-pr-consequence.is-warn { background: rgba(224,133,123,.07); border-color: rgba(224,133,123,.32); }
.havn-pr-consequence > svg { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 1px; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-consequence > svg { color: #6FCF97 !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-consequence.is-warn > svg { color: #E0857B !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-consequence span   { color: var(--mc-text-2) !important; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-consequence strong { color: var(--mc-text) !important; }

.havn-pr-cadence-picker { border: 1px solid var(--mc-border); border-radius: 11px; padding: 12px 14px; margin: 0 0 14px; }
body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-cadence-picker legend { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 0 6px; color: var(--mc-text-3) !important; }

body.havn-dashboard-page :is(.havn-mc, .havn-pr-modal, .havn-pn-drawer) .havn-pr-dedupe {
	padding: 10px 12px; margin: 0 0 12px;
	background: rgba(138,180,248,.08); border: 1px solid rgba(138,180,248,.3);
	border-radius: 10px; font-size: 12.5px; line-height: 1.55;
	color: var(--mc-text-2) !important;
}

.havn-pr-form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }


/* ---- dialogs on a phone: square, from the bottom (v2.2.148) ---- */
@media (max-width: 861px) {
	.havn-pr-modal { padding: 0; align-items: flex-end; }
	.havn-pr-modal-panel, .havn-pr-modal-panel.havn-pr-modal-wide { width: 100%; max-height: 92vh; border-radius: 0; }
	.havn-pr-fieldrow > .havn-pr-field { flex: 1 1 100%; }
}
