/* SalesOn client portal — application shell and pages. Loaded after portal.css. */
:root {
  --navy:#13263a; --navy-hover:#1d344a; --navy-line:#2a4156; --navy-text:#e3ebf3; --navy-muted:#9fb2c4;
  --bg:#f6f8fb; --surface:#fff; --surface-2:#f4f6f9; --line:#e4e9f0; --line-strong:#d6dee8;
  --text:#0f1c2e; --text-2:#344256; --muted:#5f6d80; --faint:#667385;
  --orange:#ff7a00; --orange-hover:#f06d00; --orange-ink:#b84c00; --orange-soft:#fff1e3; --orange-tint:#fff8f1;
  --green:#12a064; --green-ink:#0b7a4b; --green-soft:#e6f6ee; --green-tint:#eff9f4;
  --blue:#2463eb; --blue-deep:#1a4fe0; --blue-light:#bcd0fd; --blue-ink:#1d4ed8; --blue-soft:#ebf1ff; --blue-tint:#f3f7ff;
  --purple:#6a3dd8; --purple-soft:#f1ebfd; --red:#dc2f2f; --red-soft:#fdecec; --amber-ink:#b25400; --amber-soft:#fff4e6;
  --radius:10px; --radius-sm:8px; --shadow:0 1px 2px rgba(15,28,46,.04);
  --accent:var(--orange); --accent-ink:var(--orange-ink); --accent-soft:var(--orange-soft);
}
[hidden] { display:none!important; }
.portal-app .skip-link { z-index:60; color:var(--text); }
button, input, select, textarea { font:inherit; color:inherit; }
body.portal-app { background:var(--bg); color:var(--text); font-size:14px; line-height:1.5; min-height:100vh; }
.portal-app .ui-icon { width:20px; height:20px; flex-shrink:0; }
.portal-app h1, .portal-app h2, .portal-app h3, .portal-app h4 { font-family:"Inter",sans-serif; color:var(--text); margin:0; letter-spacing:-.01em; }
.portal-app p { margin:0; }
.portal-app a:hover { color:inherit; }
.portal-app :focus-visible { outline:2px solid var(--orange-ink); outline-offset:2px; }
.muted { color:var(--muted); }
.tabular { font-variant-numeric:tabular-nums; }

/* ——— Shell ——— */
.app-sidebar { position:fixed; inset:0 auto 0 0; z-index:30; width:200px; display:flex; flex-direction:column; background:var(--navy); color:var(--navy-text); }
.app-brand { display:flex; align-items:center; justify-content:space-between; padding:22px 18px 0; }
.app-brand .brand { color:#fff; font-size:23px; gap:9px; }
.app-brand .brand>svg { color:#fff; width:30px; height:30px; }
.app-nav-toggle { display:none; }
.app-nav { flex:1; display:flex; flex-direction:column; gap:4px; padding:34px 8px 12px; overflow-y:auto; }
.app-nav .nav-item { display:flex; align-items:center; gap:13px; min-height:44px; padding:0 13px; border:1px solid transparent; border-radius:8px; color:var(--navy-text); font-size:14.5px; font-weight:450; line-height:1.2; }
.app-nav .nav-item .ui-icon { width:22px; height:22px; color:#dbe5ee; }
.app-nav .nav-item:hover { background:var(--navy-hover); color:#fff; }
.app-nav .nav-item.active { background:#3a3127; border-color:#6b4a26; color:#ffd8a8; }
.app-nav .nav-item.active .ui-icon { color:#ffb865; }
.app-nav .nav-item.is-pinned { margin-top:auto; }
.app-nav .nav-item.is-pinned~.nav-item.is-pinned { margin-top:0; }
.app-nav-empty { color:var(--navy-muted); font-size:13px; line-height:1.6; padding:12px; }
.app-nav-title { margin:0 0 8px 13px; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--navy-muted); }
.app-user { display:flex; align-items:center; gap:10px; padding:18px 12px 20px 14px; border-top:1px solid var(--navy-line); }
.app-user>div { flex:1; min-width:0; }
.app-user strong, .app-user div>span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-user strong { color:#fff; font-size:13px; font-weight:550; }
.app-user div>span { color:var(--navy-muted); font-size:11.5px; margin-top:2px; }
.app-logout { display:grid; place-items:center; width:32px; height:32px; border:0; border-radius:7px; background:transparent; color:var(--navy-muted); }
.app-logout:hover { background:var(--navy-hover); color:#fff; }
.app-logout .ui-icon { width:18px; height:18px; }
.avatar { display:grid; place-items:center; flex-shrink:0; width:36px; height:36px; border-radius:50%; background:#fde6cc; color:#d25e00; font-weight:650; font-size:16px; }
.app-main { margin-left:200px; min-height:100vh; display:flex; flex-direction:column; }
.app-header { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:16px; height:64px; padding:0 24px 0 28px; background:var(--surface); border-bottom:1px solid var(--line); }
.app-header-start, .app-header-end { display:flex; align-items:center; gap:18px; min-width:0; }
.app-header-end { gap:12px; }
.header-workspace { font-weight:600; font-size:14px; color:var(--text); white-space:nowrap; }
.header-select, .workspace-picker>summary.header-select { display:flex; align-items:center; gap:10px; height:40px; padding:0 14px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; font-weight:600; font-size:14px; cursor:pointer; list-style:none; }
.workspace-picker>summary.header-select:hover, .workspace-picker[open]>summary.header-select { border-color:var(--line-strong); background:var(--surface-2); }
.header-select .ui-icon { width:16px; height:16px; color:var(--muted); }
.portal-app .workspace-picker-popover { left:0; right:auto; }
.phase-badge { display:inline-flex; align-items:center; height:28px; padding:0 10px; border-radius:6px; font-size:13px; font-weight:500; white-space:nowrap; background:var(--green-soft); color:var(--green-ink); }
.phase-badge.is-onboarding { background:var(--green-soft); color:var(--green-ink); }
.breadcrumb { display:flex; align-items:center; gap:10px; min-width:0; font-size:14px; color:var(--text-2); }
.breadcrumb a { color:var(--text-2); white-space:nowrap; }
.breadcrumb a:hover { color:var(--text); }
.breadcrumb span[aria-current] { color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.breadcrumb .sep { color:var(--faint); }
.portal-app .task-bell-button { width:40px; height:40px; border-radius:var(--radius-sm); border-color:var(--line); }
.portal-app .task-bell-button .ui-icon { width:21px; height:21px; }
.portal-app .task-bell-count { top:-5px; right:-5px; min-width:17px; height:17px; font-size:10px; background:#ff5a1f; border:2px solid #fff; box-sizing:content-box; }
.account-menu { position:relative; }
.account-menu>summary { list-style:none; cursor:pointer; }
.account-menu>summary::-webkit-details-marker { display:none; }
.account-chip { display:flex; align-items:center; gap:10px; height:44px; padding:0 12px 0 5px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; font-weight:600; font-size:14px; }
.account-chip .avatar { width:32px; height:32px; font-size:15px; }
.account-chip>.ui-icon { width:16px; height:16px; color:var(--muted); }
.account-menu[open] .account-chip { background:var(--surface-2); }
.account-popover { position:absolute; z-index:50; right:0; top:calc(100% + 8px); width:240px; padding:6px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 44px rgba(15,28,46,.14); }
.account-identity { padding:10px 10px 12px; margin-bottom:4px; border-bottom:1px solid var(--line); overflow:hidden; }
.account-identity strong, .account-identity span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-identity span { color:var(--muted); font-size:12px; margin-top:2px; }
.account-popover>a, .account-popover button { display:flex; align-items:center; gap:10px; width:100%; min-height:38px; padding:0 10px; border:0; border-radius:7px; background:transparent; font-size:13px; text-align:left; cursor:pointer; }
.account-popover>a:hover, .account-popover button:hover { background:var(--surface-2); }
.account-popover .ui-icon { width:18px; height:18px; color:var(--muted); }
.account-popover form { border-top:1px solid var(--line); margin-top:4px; padding-top:4px; }
.app-content { flex:1; width:100%; padding:24px 24px 48px 28px; }
.portal-app .impersonation-banner { padding:14px 28px; }

/* ——— Generic building blocks ——— */
.page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:22px; }
.page-head h1 { font-size:28px; line-height:1.25; font-weight:700; letter-spacing:-.02em; }
.page-head h1 .wave { display:inline-block; margin-left:4px; }
.page-head p { margin-top:8px; font-size:16px; color:var(--muted); }
.page-head-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.card-pad { padding:20px 22px; }
.card-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.card-head h2, .card-title { font-size:17px; font-weight:650; letter-spacing:-.01em; }
.section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 12px; }
.section-head h2 { font-size:20px; font-weight:700; letter-spacing:-.02em; }
.link-arrow { display:inline-flex; align-items:center; gap:8px; color:var(--text-2); font-size:14px; font-weight:500; white-space:nowrap; }
.link-arrow .ui-icon { width:16px; height:16px; }
.link-arrow:hover { color:var(--text); }
.link-arrow.small { font-size:12px; gap:6px; }
.link-arrow.small .ui-icon { width:14px; height:14px; }
.link-accent { display:inline-flex; align-items:center; gap:8px; color:var(--orange-ink); font-size:13.5px; font-weight:550; }
.link-accent .ui-icon { width:15px; height:15px; }
.link-accent:hover { color:#9a3f00; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:42px; padding:0 18px; border:1px solid transparent; border-radius:var(--radius-sm); font-size:14px; font-weight:600; line-height:1.2; white-space:nowrap; cursor:pointer; text-decoration:none; transition:background .12s, border-color .12s; }
.btn .ui-icon { width:17px; height:17px; }
/* Ink on orange, like the authentication buttons: white on #ff7a00 only reaches 2,6:1. */
.btn-primary { background:var(--orange); color:var(--text); }
.btn-primary:hover { background:var(--orange-hover); color:var(--text); }
.btn-secondary { background:#fff; border-color:var(--line-strong); color:var(--text); }
.btn-secondary:hover { background:var(--surface-2); color:var(--text); }
.btn-ghost { background:transparent; color:var(--text-2); }
.btn-ghost:hover { background:var(--surface-2); }
.btn-block { width:100%; }
.btn-lg { min-height:50px; font-size:15.5px; padding:0 22px; }
.btn-sm { min-height:34px; padding:0 12px; font-size:13px; }
.btn-icon { width:42px; padding:0; }
.btn:disabled { opacity:.55; cursor:default; }
.tile { display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; border-radius:var(--radius); background:var(--surface-2); color:#3d4d61; }
.tile .ui-icon { width:26px; height:26px; }
.tile.sm { width:40px; height:40px; border-radius:9px; }
.tile.sm .ui-icon { width:22px; height:22px; }
.tile.xs { width:34px; height:34px; border-radius:8px; }
.tile.xs .ui-icon { width:19px; height:19px; }
.tile.lg { width:56px; height:56px; border-radius:12px; }
.tile.lg .ui-icon { width:30px; height:30px; }
.tone-green { background:var(--green-soft); color:#1c8a5a; }
.tone-blue { background:var(--blue-soft); color:var(--blue); }
.tone-purple { background:var(--purple-soft); color:var(--purple); }
.tone-orange { background:var(--orange-soft); color:var(--orange-ink); }
.tone-neutral { background:var(--surface-2); color:#3d4d61; }
.tone-red { background:var(--red-soft); color:var(--red); }
.pill { display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 9px; border-radius:6px; font-size:13px; font-weight:500; white-space:nowrap; background:var(--surface-2); color:var(--text-2); }
.pill.sm { height:20px; padding:0 6px; font-size:11.5px; border-radius:5px; }
.pill .dot { width:7px; height:7px; border-radius:50%; background:currentColor; }
.pill-running, .pill-success { background:var(--green-soft); color:var(--green-ink); }
.pill-draft { background:var(--surface-2); color:#3d4d61; }
.pill-preparing, .pill-info { background:var(--blue-soft); color:var(--blue-ink); }
.pill-paused, .pill-warning { background:var(--amber-soft); color:var(--amber-ink); }
.pill-finished, .pill-muted { background:#edf1f5; color:#526174; }
.pill-danger { background:var(--red-soft); color:#b42323; }
.pill-accent { background:var(--orange-soft); color:var(--orange-ink); }
.progress { display:block; width:100%; height:8px; border:0; border-radius:8px; background:#e6ebf1; overflow:hidden; appearance:none; -webkit-appearance:none; }
.progress::-webkit-meter-bar { background:#e6ebf1; border:0; border-radius:8px; height:8px; }
.progress::-webkit-meter-optimum-value, .progress::-webkit-meter-suboptimum-value, .progress::-webkit-meter-even-less-good-value { background:var(--green); border-radius:8px; }
.progress::-moz-meter-bar { background:var(--green); border-radius:8px; }
.progress.is-blue::-webkit-meter-optimum-value, .progress.is-blue::-webkit-meter-suboptimum-value, .progress.is-blue::-webkit-meter-even-less-good-value { background:var(--blue); }
.progress.is-blue::-moz-meter-bar { background:var(--blue); }
.progress.is-orange::-webkit-meter-optimum-value, .progress.is-orange::-webkit-meter-suboptimum-value, .progress.is-orange::-webkit-meter-even-less-good-value { background:var(--orange); }
.progress.is-orange::-moz-meter-bar { background:var(--orange); }
.callout { display:flex; align-items:center; gap:22px; padding:24px 28px; border:1px solid #dfe8f7; border-radius:var(--radius); background:var(--blue-tint); }
.callout>.ui-icon { width:38px; height:38px; color:var(--blue-ink); stroke-width:1.7; }
.callout>div { flex:1; min-width:0; }
.callout h2, .callout h3 { font-size:17px; font-weight:650; }
.callout p { color:var(--muted); font-size:14.5px; margin-top:6px; }
.empty-state { padding:28px 22px; text-align:center; color:var(--muted); font-size:13.5px; line-height:1.6; }
.empty-state strong { display:block; color:var(--text); font-size:14.5px; margin-bottom:4px; }
.row-list { list-style:none; margin:0; padding:0; }
.definition-list { display:grid; gap:0; margin:0; }
.definition-list>div { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:9px 0; font-size:14px; }
.definition-list dt { color:var(--muted); }
.definition-list dd { margin:0; text-align:right; color:var(--text); font-weight:450; }

/* ——— Period picker ——— */
.period-picker { position:relative; }
.period-picker>summary { display:flex; align-items:stretch; height:50px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; cursor:pointer; list-style:none; box-shadow:var(--shadow); }
.period-picker>summary::-webkit-details-marker { display:none; }
.period-picker>summary>span { display:flex; align-items:center; gap:10px; padding:0 16px; font-size:14.5px; white-space:nowrap; }
.period-picker>summary>span+span { border-left:1px solid var(--line); color:var(--text-2); min-width:220px; justify-content:space-between; }
.period-picker>summary strong { font-weight:600; }
.period-picker>summary .ui-icon { width:16px; height:16px; color:var(--muted); }
.period-picker>summary .ui-icon.lead { width:22px; height:22px; color:var(--text-2); }
.period-picker[open]>summary { border-color:var(--line-strong); }
.period-menu { position:absolute; z-index:40; right:0; top:calc(100% + 8px); width:320px; padding:6px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 44px rgba(15,28,46,.14); }
.period-menu p { padding:8px 10px 4px; font-size:11.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--faint); }
.period-menu a { display:flex; justify-content:space-between; gap:12px; padding:9px 10px; border-radius:7px; font-size:13.5px; }
.period-menu a span { color:var(--muted); font-size:12.5px; }
.period-menu a:hover { background:var(--surface-2); }
.period-menu a[aria-current] { background:var(--orange-soft); color:var(--orange-ink); font-weight:600; }

/* ——— KPI cards ——— */
.kpi-rail { position:relative; min-width:0; }
.kpi-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 30px) / 4); gap:10px; margin:0; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.kpi-track::-webkit-scrollbar { display:none; }
.kpi { position:relative; scroll-snap-align:start; display:grid; grid-template-columns:48px minmax(0,1fr); column-gap:16px; align-content:start; min-height:150px; padding:20px 10px 16px 18px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.kpi>.tile { grid-row:1 / span 4; }
.kpi dt { margin-top:4px; font-size:14px; font-weight:500; color:var(--text-2); line-height:1.35; }
.kpi dd { margin:0; grid-column:2; }
.kpi .kpi-value { margin-top:12px; font-size:30px; line-height:1.1; font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums; color:var(--text); }
.kpi .kpi-delta { margin-top:10px; display:flex; align-items:center; gap:4px; font-size:14px; font-weight:600; color:var(--green-ink); }
.kpi .kpi-delta .ui-icon { width:15px; height:15px; stroke-width:2.2; }
.kpi .kpi-delta.is-down { color:#c2410c; }
.kpi .kpi-delta.is-flat { color:var(--muted); }
.kpi .kpi-note { margin-top:4px; font-size:13.5px; color:var(--muted); }
.kpi-nav { position:absolute; top:50%; z-index:2; display:grid; place-items:center; width:34px; height:34px; margin-top:-17px; border:1px solid var(--line-strong); border-radius:50%; background:#fff; color:var(--text); box-shadow:0 4px 14px rgba(15,28,46,.12); cursor:pointer; }
.kpi-nav .ui-icon { width:18px; height:18px; }
.kpi-nav[data-scroll-kpis="-1"] { left:-14px; }
.kpi-nav[data-scroll-kpis="1"] { right:-14px; }
.kpi-nav:disabled { opacity:0; pointer-events:none; }

/* ——— Dashboard ——— */
.dash-grid { display:grid; grid-template-columns:minmax(0,1fr) 322px; gap:18px 18px; align-items:start; }
.dash-col { display:flex; flex-direction:column; gap:18px; min-width:0; }
.dash-bottom { display:grid; grid-template-columns:minmax(0,1.72fr) minmax(0,1fr); gap:18px; margin-top:18px; align-items:start; }
.status-card { display:flex; gap:16px; height:100%; min-height:152px; padding:24px 22px; border-radius:var(--radius); background:var(--green-tint); border:1px solid #dcefe4; }
.status-card .status-icon { display:grid; place-items:center; flex-shrink:0; width:34px; height:34px; border-radius:50%; background:#18a86b; color:#fff; }
.status-card .status-icon .ui-icon { width:20px; height:20px; stroke-width:2.4; }
.status-card h2 { font-size:15px; font-weight:650; margin-top:5px; }
.status-card p { margin-top:10px; font-size:13px; line-height:1.6; color:var(--text-2); }
.status-card.is-attention { background:var(--amber-soft); border-color:#f6dcbb; }
.status-card.is-attention .status-icon { background:#f08c1a; }
.status-card.is-scheduled { background:var(--blue-tint); border-color:#dce6fa; }
.status-card.is-scheduled .status-icon { background:var(--blue); }
.strip-list { display:flex; flex-direction:column; gap:8px; }
.strip { position:relative; display:grid; grid-template-columns:52px minmax(0,1fr) 190px auto 20px; align-items:center; gap:24px; min-height:84px; padding:14px 20px 14px 20px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); color:var(--text); overflow:hidden; }
.strip:hover { border-color:var(--line-strong); color:var(--text); }
.strip.is-highlight::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#ff9a3c; }
.strip .tile { width:52px; height:52px; border-radius:11px; }
.strip-id { min-width:0; }
.strip-id strong { display:block; font-size:16px; font-weight:650; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.strip-meta { display:flex; align-items:center; gap:14px; margin-top:6px; font-size:15px; color:var(--text-2); white-space:nowrap; }
.strip-meta .pill { height:28px; padding:0 13px; font-size:14.5px; }
.strip-progress { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:10px; row-gap:8px; font-size:13px; color:var(--text-2); }
.strip-progress>span { grid-column:1 / -1; }
.strip-progress b { font-weight:500; font-size:14.5px; color:var(--text-2); font-variant-numeric:tabular-nums; }
.strip-progress.is-small b { font-size:11px; color:var(--muted); }
.strip-metrics { display:flex; margin:0; }
.strip-metrics>div { padding:0 18px; border-left:1px solid var(--line); min-width:64px; }
.strip-metrics>div:last-child { padding-right:0; }
.strip-metrics>div:first-child { border-left:0; padding-left:0; }
.strip-metrics dd { margin:0; font-size:16px; font-weight:650; font-variant-numeric:tabular-nums; }
.strip-metrics dt { margin-top:2px; font-size:13px; color:var(--muted); white-space:nowrap; }
.strip>.ui-icon { width:20px; height:20px; color:var(--text-2); }
.milestone-card { padding:22px 22px 20px; }
.milestone-card .milestone-top { display:flex; gap:16px; margin-bottom:18px; }
.milestone-card p { color:var(--text-2); font-size:15px; }
.milestone-card strong { display:block; margin-top:8px; font-size:16px; font-weight:650; }
.milestone-card span { display:block; margin-top:6px; color:var(--muted); font-size:15px; }
.chart-card { padding:20px 22px 14px; }
.chart-card .card-head { margin-bottom:6px; }
.chart-legend-inline { display:flex; align-items:center; flex-wrap:wrap; gap:18px; font-size:13px; color:var(--text-2); }
.chart-legend-inline span { display:inline-flex; align-items:center; gap:7px; }
.chart-legend-inline i { width:10px; height:10px; border-radius:50%; display:inline-block; }
.legend-attempts { background:var(--blue-deep); }
.legend-conversations { background:var(--blue-light); }
.legend-appointments { background:#f7862a; }
.legend-appointments.is-green { background:#1f9d62; }
.results-chart { display:block; width:100%; height:auto; overflow:visible; }
.results-chart .grid { stroke:#edf1f5; stroke-width:1; }
.results-chart .axis { fill:#46546a; font-size:12px; font-family:Inter,sans-serif; }
.results-chart .bar-attempts { fill:var(--blue-deep); }
.results-chart .bar-conversations { fill:var(--blue-light); }
.results-chart .line-appointments { fill:none; stroke:#f7862a; stroke-width:2; stroke-linejoin:round; }
.results-chart .dot-appointments { fill:#fff; stroke:#f7862a; stroke-width:1.6; }
.results-chart.is-green .line-appointments { stroke:#1f9d62; }
.results-chart.is-green .dot-appointments { stroke:#1f9d62; }
.results-chart .day:hover .bar-attempts { fill:#1640b8; }
.results-chart .day:focus { outline:none; }
.results-chart .day:focus-visible .hit { stroke:var(--orange); stroke-width:2; }
.results-chart .hit { fill:transparent; }
.chart-empty-note { padding:40px 16px; text-align:center; color:var(--muted); font-size:13.5px; }
.chart-select { height:36px; padding:0 30px 0 12px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6d80' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center / 14px; font-size:13px; font-weight:600; appearance:none; cursor:pointer; }
.doc-mini-list li { display:grid; grid-template-columns:40px minmax(0,1fr) auto; gap:14px; align-items:start; padding:12px 0; }
.doc-mini-list li+li { border-top:1px solid transparent; }
.doc-mini-list strong { display:block; font-size:14px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.doc-mini-list .pill { margin-top:6px; }
.doc-mini-list time { font-size:12px; color:var(--muted); padding-top:2px; white-space:nowrap; }
.docs-card { padding:18px 14px 12px 14px; }
.docs-card .card-head { padding:0 6px; margin-bottom:6px; }
.docs-card .card-head h2 { font-size:15px; white-space:nowrap; }
.docs-card .link-arrow.small { font-size:11.5px; }
.docs-card .row-list { padding:0 6px; }
.activity-card { padding:20px 22px 10px; }
.activity-list li { display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:12px; align-items:start; padding:11px 0; border-top:1px solid var(--line); font-size:14.5px; }
.activity-list li:first-child { border-top:1px solid var(--line); }
.activity-list .ui-icon { width:21px; height:21px; color:#3a4a60; margin-top:1px; }
.activity-list time { color:var(--text-2); font-size:14.5px; white-space:nowrap; }
.activity-list blockquote { margin:6px 0 0; color:var(--muted); font-size:13.5px; line-height:1.55; }
.book-card { display:flex; gap:22px; padding:22px 22px 22px; }
.book-card h2 { font-size:17px; font-weight:650; }
.book-card .version { margin-top:6px; font-size:15px; color:var(--text-2); }
.book-card p { margin-top:6px; font-size:14px; color:var(--muted); line-height:1.5; }
.book-card .btn { margin-top:14px; }

/* ——— Responsive shell ——— */
@media (max-width:1280px) {
  .dash-grid { grid-template-columns:minmax(0,1fr) 280px; }
  .kpi-track { grid-auto-columns:calc((100% - 20px) / 3); }
  .strip { grid-template-columns:48px minmax(160px,1fr) minmax(130px,.8fr) 20px; }
  .strip-metrics { grid-column:2 / 4; grid-row:2; }
}
@media (max-width:1024px) {
  .dash-grid, .dash-bottom { grid-template-columns:minmax(0,1fr); }
  .kpi-track { grid-auto-columns:calc((100% - 10px) / 2); }
}
@media (max-width:860px) {
  .app-sidebar { position:sticky; top:0; inset:auto; width:100%; height:auto; flex-direction:column; }
  .app-brand { padding:14px 16px; }
  .app-nav-toggle { display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--navy-line); border-radius:8px; background:transparent; color:#fff; }
  .app-nav { padding:0 10px 12px; }
  .app-nav .nav-item.is-pinned { margin-top:0; }
  .app-user { display:none; }
  .app-main { margin-left:0; }
  .app-header { position:static; height:auto; min-height:60px; padding:10px 16px; flex-wrap:wrap; }
  .app-header .phase-badge, .account-name { display:none; }
  .app-content { padding:20px 16px 36px; }
  .page-head { flex-direction:column; }
  .page-head h1 { font-size:24px; }
  .period-picker>summary>span+span { min-width:0; }
  .strip { grid-template-columns:44px minmax(0,1fr) 18px; gap:12px; }
  .strip .tile { width:44px; height:44px; }
  .strip-progress, .strip-metrics { grid-column:1 / -1; grid-row:auto; }
  .kpi-track { grid-auto-columns:82%; }
  .callout { flex-wrap:wrap; padding:20px; }
  .book-card { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }

/* ——— Header menu ——— */
.header-menu { position:relative; }
.header-menu>summary { list-style:none; }
.header-menu>summary::-webkit-details-marker { display:none; }
.header-menu-popover { position:absolute; z-index:50; left:0; top:calc(100% + 8px); width:300px; padding:6px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 44px rgba(15,28,46,.14); }
.header-menu-popover p { padding:8px 10px 4px; font-size:11.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--faint); }
.header-menu-popover a { display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:7px; font-size:13.5px; }
.header-menu-popover a .ui-icon { width:18px; height:18px; color:var(--muted); }
.header-menu-popover a:hover { background:var(--surface-2); }
.header-menu-popover .header-menu-all { justify-content:space-between; margin-top:4px; border-top:1px solid var(--line); border-radius:0 0 7px 7px; color:var(--orange-ink); font-weight:550; }
.header-menu-empty { display:block; padding:8px 10px; color:var(--muted); font-size:13px; }

/* ——— Onboarding ——— */
.onb-grid { display:grid; grid-template-columns:minmax(0,1fr) 362px; gap:24px; align-items:start; }
.onb-main, .onb-aside { display:flex; flex-direction:column; gap:16px; min-width:0; }
.onb-head { margin-bottom:0; align-items:center; }
.countdown { display:flex; align-items:center; gap:18px; padding:14px 22px 14px 14px; }
.countdown .tile { width:52px; height:52px; }
.countdown .tile .ui-icon { width:30px; height:30px; }
.countdown p { font-size:14.5px; color:var(--text-2); }
.countdown strong { display:block; font-size:20px; font-weight:650; line-height:1.3; margin-top:2px; }
.countdown span { display:block; font-size:14.5px; color:var(--text-2); margin-top:2px; }
.onb-highlight { padding:20px 20px 22px; }
.onb-highlight>h2 { font-size:20px; font-weight:650; margin:0 0 16px; }
.onb-sides { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.onb-side { padding:18px 18px 16px; border-radius:var(--radius-sm); background:var(--orange-tint); }
.onb-side.is-saleson { background:var(--blue-tint); }
.onb-side h3 { margin:0 0 14px; font-size:14.5px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; color:#3f4b5c; }
.onb-task { display:grid; grid-template-columns:52px minmax(0,1fr); gap:14px; }
.onb-task .tile { width:50px; height:50px; }
.onb-task strong { display:block; font-size:17px; font-weight:650; line-height:1.35; }
.onb-task p { margin-top:8px; font-size:15px; line-height:1.5; color:var(--text-2); }
.onb-task-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; }
.onb-task-foot .pill { height:30px; padding:0 12px; font-size:14.5px; }
.onb-task-foot form { margin:0; }
.onb-task-foot .btn { min-height:42px; padding:0 22px; font-size:15px; }
.onb-task.is-done strong { font-size:16px; }
.onb-progress { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto; align-items:center; gap:28px; padding:20px 20px 20px 20px; }
.onb-progress h2 { font-size:18px; font-weight:650; }
.onb-progress p { margin-top:6px; font-size:15px; color:var(--text-2); }
.onb-progress-bar strong { display:block; font-size:17px; font-weight:650; margin-bottom:10px; }
.onb-progress .btn { min-height:44px; }
.onb-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.onb-link { display:grid; grid-template-columns:48px minmax(0,1fr); gap:18px; padding:16px 16px 18px 20px; color:var(--text); }
.onb-link:hover { border-color:var(--line-strong); color:var(--text); }
.onb-link h3 { font-size:15.5px; font-weight:650; margin-top:4px; }
.onb-link p { margin:8px 0 14px; font-size:14px; line-height:1.55; color:var(--text-2); }
.onb-steps { padding:20px 22px 22px; }
.onb-steps h2 { font-size:18px; font-weight:650; margin-bottom:22px; }
.timeline { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); list-style:none; margin:0; padding:0; }
.timeline li { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; padding:0 8px; font-size:14px; }
.timeline li::before { content:""; position:absolute; top:9px; left:0; right:0; height:2px; background:#e3e8ef; }
.timeline li:first-child::before { left:50%; }
.timeline li:last-child::before { right:50%; }
.timeline-dot { position:relative; z-index:1; display:grid; place-items:center; width:20px; height:20px; margin-bottom:12px; border-radius:50%; background:#cfd6df; border:3px solid #fff; box-shadow:0 0 0 1px #e3e8ef; }
.timeline .is-done .timeline-dot { background:#16a36a; box-shadow:none; color:#fff; }
.timeline .is-done .timeline-dot .ui-icon { width:12px; height:12px; stroke-width:3; }
.timeline .is-current .timeline-dot { background:var(--orange); box-shadow:0 0 0 4px #ffe1c4; border-color:#fff; }
.timeline strong { font-weight:600; line-height:1.4; color:var(--text); }
.timeline .is-next strong { font-weight:450; color:var(--text-2); }
.timeline li>span:last-child { margin-top:4px; color:var(--text-2); }
.timeline .is-accent { color:var(--orange-ink)!important; font-weight:600; }
.jday { padding:24px 22px 12px; }
.jday h2 { font-size:21px; font-weight:650; }
.jday-intro { margin-top:10px; font-size:15px; color:var(--text-2); }
.jday-steps { list-style:none; counter-reset:jday; margin:28px 0 0; padding:0; display:flex; flex-direction:column; gap:26px; }
.jday-steps li { counter-increment:jday; position:relative; padding-left:50px; }
.jday-steps li::before { content:counter(jday); position:absolute; left:4px; top:-2px; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--blue-deep); color:#fff; font-weight:600; font-size:14px; }
.jday-steps li.is-done::before { content:"✓"; background:#16a36a; }
.jday-steps strong { display:block; font-size:15px; font-weight:650; }
.jday-steps p { margin-top:8px; font-size:13.5px; line-height:1.6; color:var(--text-2); }
.jday-settings { display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; margin:26px 0 0; padding:16px 0 0; border-top:1px solid var(--line); }
.jday-settings>.ui-icon { width:22px; height:22px; color:var(--orange-ink); margin-top:1px; }
.jday-settings strong { display:block; font-size:14px; font-weight:600; }
.jday-settings p { margin:6px 0 8px; font-size:13px; line-height:1.55; color:var(--text-2); overflow-wrap:anywhere; }
.jday-ok { display:grid; grid-template-columns:34px minmax(0,1fr); gap:16px; margin:22px -10px 0; padding:22px 18px; border-radius:var(--radius-sm); background:var(--green-tint); }
.jday-ok .status-icon { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#18a86b; color:#fff; }
.jday-ok .status-icon .ui-icon { width:18px; height:18px; stroke-width:2.6; }
.jday-ok strong { font-size:15px; font-weight:650; }
.jday-ok p { margin-top:8px; font-size:13.5px; line-height:1.6; color:var(--text-2); }
.help-card { display:grid; grid-template-columns:48px minmax(0,1fr); gap:14px; padding:22px 22px 24px; color:var(--text); }
.help-card h2 { font-size:17px; font-weight:650; margin-top:4px; }
.help-card p { margin:8px 0 16px; font-size:14.5px; color:var(--text-2); }
.help-card .btn { min-height:44px; }

/* ——— Inline preparation list (all open steps, tickable) ——— */
.onb-preparation { display:contents; }
.onb-sign-bar { display:flex; align-items:center; gap:14px; padding:12px 14px; margin-bottom:16px; border:1px solid #f8e3cc; border-radius:var(--radius-sm); background:var(--orange-tint); }
.onb-sign-bar>div { flex:1; min-width:0; }
.onb-sign-bar strong { display:block; font-size:15px; font-weight:650; }
.onb-sign-bar p { margin:2px 0 0; font-size:13.5px; color:var(--text-2); }
.onb-sign-bar form { margin:0; }
.onb-highlight .checklist-board.checklist-compact { margin:0; border:0; border-radius:0; background:transparent; overflow:visible; }
.checklist-compact .checklist-board-heading { display:none; }
.portal-app .checklist-compact .checklist-sides { padding:0; gap:20px; }
.checklist-compact .checklist-side { padding:16px 16px 6px; }
.checklist-compact .checklist-side>header { padding:0 4px 10px; }
.checklist-compact .checklist-side>header p { font-size:12.5px; }
.checklist-compact .checklist-task { padding:10px 0; gap:2px; }
.checklist-compact .checklist-task-copy>strong { font-size:14.5px; line-height:1.45; }
.checklist-compact .checklist-task-copy>p, .checklist-compact .checklist-verification { display:none; }
.checklist-compact .checklist-task-meta { margin-top:4px; }
.checklist-compact .checklist-side-clear { padding:10px 4px 14px; }
.checklist-compact .checklist-help { display:none; }
.checklist-compact .checklist-task.is-done .checklist-task-copy>strong { color:var(--text-2); text-decoration:line-through; text-decoration-color:#9aa5b1; font-weight:500; }
.checklist-compact .checklist-task.is-done .checklist-task-copy { cursor:pointer; }
.checklist-compact .checklist-task.is-done .task-state { color:#18784a; }
.checklist-compact .checklist-task.is-done .checklist-confirmed-by { display:none; }
.checklist-task .checklist-checkbox { transition:background .25s ease, border-color .25s ease, transform .25s ease; }
.checklist-task .checklist-checkbox svg { transition:opacity .2s ease .1s; }
.checklist-task.is-just-done { animation:task-done-row .9s ease; }
.checklist-task.is-just-done .checklist-checkbox { animation:task-done-pop .45s cubic-bezier(.2,.9,.3,1.4); }
@keyframes task-done-row { 0% { background:#e6f4ec; } 100% { background:transparent; } }
@keyframes task-done-pop { 0% { transform:scale(.7); } 60% { transform:scale(1.18); } 100% { transform:scale(1); } }
.task-undo-pop { margin-top:8px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 10px 28px rgba(15,28,46,.12); font-size:13px; color:var(--text); }
.task-undo-pop p { margin:0 0 8px; }
.task-undo-actions { display:flex; gap:8px; flex-wrap:wrap; }
.task-undo-actions .btn { min-height:32px; padding:0 12px; font-size:13px; }
.checklist-task.has-undo { background:#fffdf8; }
@media (prefers-reduced-motion:reduce) { .checklist-task.is-just-done, .checklist-task.is-just-done .checklist-checkbox { animation:none; } }

/* ——— Preparation dialog and checklist ——— */
.preparation-dialog { width:min(920px,calc(100% - 32px)); max-height:86svh; padding:0; border:1px solid var(--line); border-radius:14px; color:var(--text); background:#fff; overflow:auto; box-shadow:0 30px 80px rgba(15,28,46,.25); }
.preparation-dialog[open]:not(:modal) { position:static; width:100%; margin:24px 0 0; box-shadow:none; }
.preparation-dialog::backdrop { background:rgba(12,24,38,.55); }
.dialog-head { position:sticky; top:0; z-index:2; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 22px 16px; background:#fff; border-bottom:1px solid var(--line); }
.dialog-head h2 { font-size:19px; font-weight:650; }
.dialog-head p { margin-top:4px; color:var(--muted); font-size:13.5px; }
.preparation-dialog .checklist-board { margin:0; border:0; border-radius:0; }
.preparation-dialog .checklist-board-heading { display:none; }
.preparation-dialog .portal-toast { position:sticky; bottom:12px; left:auto; transform:none; margin:0 auto; }
.portal-app .checklist-sides { gap:16px; padding:18px 22px 22px; }
.portal-app .checklist-side { border-radius:var(--radius-sm); border:1px solid var(--line); }
.portal-app .checklist-side-client { background:var(--orange-tint); border-color:#f8e3cc; }
.portal-app .checklist-side-saleson { background:var(--blue-tint); border-color:#dfe8f8; }

/* ——— Tabs, toolbars and tables ——— */
.tabs { display:flex; align-items:flex-end; gap:6px; min-width:0; overflow-x:auto; scrollbar-width:none; }
.tabs::-webkit-scrollbar { display:none; }
.tabs a { position:relative; display:inline-flex; align-items:center; height:48px; padding:0 18px; color:var(--text-2); font-size:15px; font-weight:500; white-space:nowrap; border-bottom:2px solid transparent; }
.tabs a span { margin-left:4px; }
.tabs a:hover { color:var(--text); }
.tabs a[aria-current] { color:var(--orange-ink); border-color:var(--orange); font-weight:550; }
.list-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:6px 0 20px; }
.list-toolbar .tabs { border-bottom:1px solid var(--line); }
.toolbar-controls { display:flex; align-items:center; gap:12px; margin:0; }
.search-field { position:relative; display:flex; align-items:center; }
.search-field>.ui-icon { position:absolute; left:14px; width:20px; height:20px; color:var(--text-2); pointer-events:none; }
.search-field input { width:320px; height:48px; padding:0 14px 0 46px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; font-size:14.5px; box-shadow:var(--shadow); }
.search-field input::placeholder { color:#6b7888; }
.select-field select { height:48px; min-width:148px; padding:0 40px 0 16px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23344256' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 16px; font-size:14.5px; font-weight:600; appearance:none; cursor:pointer; box-shadow:var(--shadow); }
.table-card { overflow:hidden; }
.table-scroll { overflow-x:auto; }
.data-table { width:100%; border-collapse:collapse; font-size:14px; }
.data-table th { padding:18px 16px; text-align:left; font-size:14px; font-weight:500; color:var(--text-2); background:#fbfcfd; border-bottom:1px solid var(--line); white-space:nowrap; }
.data-table td { padding:16px; border-bottom:1px solid var(--line); vertical-align:middle; }
.data-table tbody tr:last-child td { border-bottom:0; }
.data-table tbody tr:hover td { background:#fcfdfe; }
.data-table th:first-child, .data-table td:first-child { padding-left:20px; }
.data-table th:last-child, .data-table td:last-child { padding-right:20px; }
.data-table small { display:block; margin-top:4px; font-size:13px; }
.nowrap { white-space:nowrap; }
.align-end { text-align:right; }
.table-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 20px; border-top:1px solid var(--line); font-size:14px; color:var(--text-2); }
.pager { display:flex; align-items:center; gap:6px; }
.pager-page, .pager-arrow { display:grid; place-items:center; min-width:36px; height:36px; padding:0 8px; border-radius:7px; font-size:14.5px; color:var(--text-2); }
.pager-page[aria-current] { background:var(--surface-2); color:var(--text); font-weight:600; border:1px solid var(--line); }
.pager a:hover { background:var(--surface-2); }
.pager-arrow .ui-icon { width:18px; height:18px; }
.pager-arrow.is-disabled { color:#c0c8d2; }
.row-actions { display:flex; align-items:center; gap:10px; }
.row-actions>.btn { min-width:88px; min-height:44px; }
.row-menu { position:relative; }
.row-menu>summary { list-style:none; min-height:44px; width:44px; }
.row-menu>summary::-webkit-details-marker { display:none; }
.row-menu-popover { position:absolute; z-index:40; right:0; top:calc(100% + 6px); width:230px; padding:6px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 44px rgba(15,28,46,.14); }
.row-menu-popover a, .row-menu-popover button { display:flex; align-items:center; gap:10px; width:100%; min-height:38px; padding:0 10px; border:0; border-radius:7px; background:transparent; font-size:13.5px; text-align:left; color:var(--text); cursor:pointer; }
.row-menu-popover a:hover, .row-menu-popover button:hover { background:var(--surface-2); }
.row-menu-popover .ui-icon { width:18px; height:18px; color:var(--muted); }
.row-menu-popover form { margin:0; }
.row-menu-popover .is-danger { color:#b42323; }
.row-menu-popover .is-danger .ui-icon { color:#b42323; }
.callout-spaced { margin-top:28px; }
.table-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px; border-bottom:1px solid var(--line); }
.table-head h2 { font-size:17px; font-weight:650; }
.table-head p { margin-top:2px; font-size:13px; color:var(--muted); }
.table-head .search-field input { width:260px; height:42px; }
.table-head .select-field select { height:42px; }
.table-warning { padding:10px 20px; background:var(--amber-soft); color:var(--amber-ink); font-size:13px; }

/* ——— Campaigns list ——— */
.progress-cell { min-width:120px; }
.progress-cell span { display:block; margin-bottom:10px; font-size:14px; color:var(--text-2); }
.campaign-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.campaign-group+.campaign-group { margin-top:28px; }
.campaign-group-title { display:flex; align-items:center; gap:8px; margin-bottom:12px; font-size:16px; font-weight:650; color:var(--text); }
.campaign-group-title span { display:inline-grid; place-items:center; min-width:24px; height:22px; padding:0 7px; border-radius:999px; background:var(--surface-2); font-size:12.5px; font-weight:600; color:var(--text-2); }
.campaign-row { --tint:var(--blue-tint); --tint-ink:var(--blue); --rdv-tint:var(--green-tint); --rdv-ink:var(--green); --tile:var(--orange-tint);
  display:grid; grid-template-columns:minmax(240px,1.5fr) minmax(200px,1fr) minmax(330px,1.7fr) auto; align-items:center; gap:24px;
  padding:16px 18px; background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:0 2px 10px rgba(15,28,46,.04); transition:box-shadow .15s, border-color .15s; }
.campaign-row:hover { border-color:var(--line-strong); box-shadow:0 6px 20px rgba(15,28,46,.07); }
.campaign-row.tone-running { --tile:var(--blue-soft); }
.campaign-row.tone-paused { --tint:var(--amber-soft); --tint-ink:var(--amber-ink); --rdv-tint:var(--amber-soft); --rdv-ink:var(--amber-ink); --tile:var(--amber-soft); }
.campaign-row.tone-draft, .campaign-row.tone-preparing { --tint:var(--surface-2); --tint-ink:#5f6d80; --rdv-tint:var(--surface-2); --rdv-ink:#5f6d80; --tile:var(--surface-2); }
.campaign-row.tone-draft { background:#fbfcfd; }
.campaign-identity { display:flex; align-items:center; gap:16px; min-width:0; }
.campaign-tile { display:grid; place-items:center; flex-shrink:0; width:64px; height:64px; border-radius:12px; background:var(--tile); }
.campaign-tile .clay { width:44px; height:44px; object-fit:contain; }
.campaign-name { display:block; font-size:16px; font-weight:650; line-height:1.35; color:var(--text); }
.campaign-name:hover { color:var(--orange-ink); }
.campaign-facts { display:flex; flex-wrap:wrap; gap:4px 16px; margin-top:5px!important; font-size:13.5px; color:var(--text-2); }
.campaign-facts span { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.campaign-facts .ui-icon { width:15px; height:15px; color:var(--muted); }
.campaign-state { display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
.campaign-state .pill { height:30px; padding:0 12px; border-radius:999px; font-size:13.5px; font-weight:600; }
.campaign-state .pill-running { background:var(--blue-soft); color:var(--blue-ink); }
.campaign-state .pill-finished { background:var(--green-soft); color:var(--green-ink); }
.campaign-state small { font-size:13px; color:var(--muted); white-space:nowrap; }
.campaign-gauge { display:flex; align-items:center; gap:10px; width:100%; max-width:210px; }
.campaign-gauge .progress { flex:1; min-width:70px; }
.campaign-gauge b { font-size:13px; font-weight:600; color:var(--text-2); white-space:nowrap; }
.campaign-next { display:inline-flex; align-items:center; gap:6px; }
.campaign-next .ui-icon { width:14px; height:14px; }
.campaign-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:0; }
.campaign-stats>div { display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:12px; min-height:68px; padding:10px 14px; border-radius:11px; background:var(--tint); }
.campaign-stats dt { display:contents; font-size:12.5px; color:var(--muted); }
.campaign-stats dt .ui-icon { grid-row:1 / span 2; width:22px; height:22px; color:var(--tint-ink); }
.campaign-stats dd { grid-column:2; grid-row:1; margin:0; font-size:19px; font-weight:700; line-height:1.15; color:var(--text); }
.campaign-stats>.stat-appointments_obtained { background:var(--rdv-tint); }
.campaign-stats>.stat-appointments_obtained dt .ui-icon { color:var(--rdv-ink); }
.campaign-row.tone-draft .campaign-stats dd, .campaign-row.tone-preparing .campaign-stats dd { color:var(--muted); }
.campaign-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; }
.campaign-actions>.btn { min-height:44px; padding:0 18px; border-radius:999px; }
.campaign-actions .btn .ui-icon { width:16px; height:16px; }
.btn-continue { background:#fff; border-color:#ffc58f; color:var(--orange-ink); }
.btn-continue:hover { background:var(--orange-tint); color:var(--orange-ink); }
.row-menu>summary { min-height:40px; width:36px; color:var(--muted); }
.row-menu .header-menu-popover { left:auto; right:0; width:190px; }
.list-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 4px 0; font-size:14px; color:var(--text-2); }
@media (max-width:1280px) {
  .campaign-row { grid-template-columns:minmax(0,1fr) auto; gap:16px 20px; }
  .campaign-state { grid-column:1 / -1; grid-row:2; flex-direction:row; align-items:center; gap:10px; }
  .campaign-stats { grid-column:1 / -1; grid-row:3; }
  .campaign-actions { grid-column:2; grid-row:1; }
}
@media (max-width:640px) {
  .campaign-row { grid-template-columns:1fr; padding:14px; }
  .campaign-actions { grid-column:1; grid-row:4; justify-content:stretch; }
  .campaign-actions>.btn { flex:1; }
  .campaign-state { flex-wrap:wrap; }
  .campaign-tile { width:52px; height:52px; }
  .campaign-stats { gap:8px; }
  .campaign-stats>div { grid-template-columns:1fr; padding:10px; }
  .campaign-stats dt .ui-icon { grid-row:auto; margin-bottom:4px; }
  .campaign-stats dd { grid-row:2; grid-column:1; }
}

/* ——— Campaign detail ——— */
.detail-head { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:0 0 14px; }
.detail-identity { display:flex; align-items:center; gap:18px; min-width:0; }
.detail-identity .tile.lg { width:64px; height:64px; border-radius:13px; }
.detail-identity .tile.lg .ui-icon { width:34px; height:34px; }
.detail-title { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.detail-title h1 { font-size:28px; font-weight:700; letter-spacing:-.02em; line-height:1.25; }
.detail-title .pill { height:30px; padding:0 11px; font-size:14px; }
.detail-identity p { margin-top:8px; font-size:15px; color:var(--text-2); }
.detail-period { flex-shrink:0; width:366px; padding:16px 20px 16px; }
.detail-period>p { display:flex; align-items:center; gap:10px; font-size:14.5px; color:var(--text); }
.detail-period>p .ui-icon { width:20px; height:20px; color:var(--text-2); }
.detail-period>p .ui-icon:nth-of-type(2) { width:16px; height:16px; }
.detail-period small { display:block; margin:10px 0 0 30px; font-size:13px; color:var(--text-2); }
.detail-period-bar { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; margin:8px 0 0 30px; }
.detail-period-bar strong { font-size:14px; font-weight:600; }
.detail-tabs { margin-bottom:16px; }
.detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 322px; gap:12px; align-items:start; }
.detail-grid .dash-col { gap:14px; }
.detail-grid .kpi-track { grid-auto-columns:calc((100% - 24px) / 4); gap:8px; }
.info-card { padding:20px 18px 18px; }
.info-card h2 { font-size:16px; font-weight:650; margin-bottom:8px; }
.info-card .definition-list>div { padding:9px 0; font-size:13.5px; }
.info-card .definition-list dd { max-width:62%; }
.info-card .btn { margin-top:14px; min-height:44px; }
.chart-tools { display:flex; align-items:center; gap:18px; }
.chart-tools form { margin:0; }
.detail-bottom { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(0,1fr) 367px; gap:16px; margin-top:16px; align-items:start; }
.detail-bottom .card-head h2 { font-size:16px; }
.appointment-list li { display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:14px; align-items:start; padding:10px 0; border-top:1px solid var(--line); }
.appointment-list .ui-icon { width:22px; height:22px; color:#3a4a60; margin-top:4px; }
.appointment-list strong { display:block; font-size:14px; font-weight:600; }
.appointment-list span { display:block; font-size:13.5px; color:var(--text-2); margin-top:1px; }
.appointment-list time { font-size:13.5px; color:var(--text-2); white-space:nowrap; }
.perf-card { padding:18px 18px 20px; }
.perf-card h2 { font-size:16px; font-weight:650; margin-bottom:14px; }
.perf-body { display:grid; grid-template-columns:120px minmax(0,1fr); gap:20px; align-items:center; }
.donut { position:relative; width:120px; height:120px; }
.donut svg { width:120px; height:120px; transform:rotate(0deg); }
.donut>div { position:absolute; inset:0; display:grid; place-content:center; text-align:center; }
.donut strong { font-size:18px; font-weight:700; line-height:1.1; }
.donut span { font-size:13px; color:var(--text-2); }
.perf-legend li { display:grid; grid-template-columns:12px minmax(0,1fr) auto; gap:9px; align-items:center; padding:4px 0; font-size:13px; }
.perf-legend i { width:10px; height:10px; border-radius:50%; }
.perf-legend b { font-weight:450; color:var(--text-2); white-space:nowrap; }
.outcome-conversation { background:#1f9d62; }
.outcome-messagerie { background:#f7862a; }
.outcome-sans_reponse { background:#2463eb; }
.outcome-occupe { background:#8b5cf6; }
.outcome-faux_numero { background:#e5484d; }
.outcome-autre { background:#94a3b8; }
.comment-card { display:grid; grid-template-columns:40px minmax(0,1fr); gap:14px; padding:18px 18px 18px; }
.comment-card .card-head { margin-bottom:8px; }
.comment-card blockquote { margin:0; font-size:13.5px; line-height:1.6; color:var(--text-2); }
.comment-card p { margin-top:10px; font-size:13px; color:var(--muted); }
.record-name { display:flex; align-items:center; gap:12px; }
.record-name strong { font-weight:550; }
.summary-cell { max-width:420px; color:var(--text-2); line-height:1.5; }
.notes-layout { display:grid; grid-template-columns:minmax(0,1fr) 322px; gap:16px; align-items:start; }
.notes-card { padding:20px 22px; }
.notes-timeline { list-style:none; margin:0; padding:0; }
.notes-timeline li { display:grid; grid-template-columns:40px minmax(0,1fr); gap:14px; padding:16px 0; border-top:1px solid var(--line); }
.note-head { display:flex; justify-content:space-between; gap:16px; }
.note-head strong { font-size:14.5px; font-weight:600; }
.note-head time { font-size:13px; color:var(--muted); white-space:nowrap; }
.notes-timeline p { margin-top:6px; font-size:14px; line-height:1.6; color:var(--text-2); }
.note-metrics { display:flex; gap:16px; margin-top:8px; font-size:13px; color:var(--muted); }
.note-metrics b { color:var(--text); }
.notes-aside { padding:20px 22px; }
.notes-aside h2 { margin:14px 0 8px; font-size:16px; font-weight:650; }
.notes-aside p { font-size:14px; line-height:1.6; color:var(--text-2); margin-bottom:12px; }
@media (max-width:1280px) {
  .detail-grid, .notes-layout { grid-template-columns:minmax(0,1fr); }
  .detail-bottom { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-grid .kpi-track { grid-auto-columns:calc((100% - 16px) / 3); }
  .list-toolbar { flex-direction:column; align-items:stretch; }
}
@media (max-width:1024px) { .detail-grid .kpi-track { grid-auto-columns:calc((100% - 10px) / 2); } }
@media (max-width:860px) {
  .detail-grid .kpi-track { grid-auto-columns:82%; }
  .detail-head { flex-direction:column; align-items:stretch; }
  .detail-period { width:auto; }
  .detail-bottom { grid-template-columns:minmax(0,1fr); }
  .search-field input { width:100%; }
  .toolbar-controls { flex-wrap:wrap; }
  .table-head { flex-direction:column; align-items:stretch; }
  .onb-grid, .onb-sides, .onb-links { grid-template-columns:minmax(0,1fr); }
  .onb-progress { grid-template-columns:minmax(0,1fr); }
  .timeline { grid-auto-flow:row; gap:16px; }
  .timeline li { flex-direction:row; gap:12px; text-align:left; align-items:flex-start; }
  .timeline li::before { display:none; }
}

/* ——— Fixes after visual review ——— */
.kpi dt { font-size:13.5px; }
.kpi .kpi-note { font-size:13px; }
.table-card { overflow:visible; }
.table-card>.table-scroll:first-child .data-table thead th:first-child { border-top-left-radius:var(--radius); }
.table-scroll { overflow-x:visible; }
.row-actions { gap:8px; }
.row-actions>.btn { min-width:72px; padding:0 14px; }
.detail-period>p span { white-space:nowrap; }
.detail-period>p { font-size:14px; gap:8px; }
@media (max-width:1400px) { .table-scroll { overflow-x:auto; } .table-card { overflow:hidden; } }

/* ——— Documents ——— */
.documents-table td { padding-top:13px; padding-bottom:13px; }
.doc-cell { display:flex; align-items:center; gap:16px; min-width:260px; }
.doc-cell .tile { width:42px; height:42px; background:#fff; border:1px solid var(--line); }
.doc-cell .tile .ui-icon { width:26px; height:26px; }
.doc-cell .tile.format-pdf { color:#e5484d; }
.doc-cell .tile.format-doc { color:var(--blue); }
.doc-cell .tile.format-sheet { color:#16a34a; }
.doc-cell .tile.format-slide { color:#526174; }
.doc-cell .tile.format-note { color:var(--orange-ink); }
.doc-cell .tile.format-folder { color:#b7791f; }
.doc-cell a, .doc-cell strong { display:block; font-size:14.5px; font-weight:550; color:var(--text); }
.doc-cell a:hover { color:var(--orange-ink); }
.doc-cell span { display:block; margin-top:3px; font-size:13.5px; color:var(--muted); }
.type-pill { height:28px; padding:0 10px; font-size:13.5px; }
.type-quote { background:#fdecec; color:#c62828; }
.type-presentation, .type-invoice { background:var(--blue-soft); color:var(--blue-ink); }
.type-script, .type-contract { background:var(--purple-soft); color:var(--purple); }
.type-prospects, .type-received { background:var(--green-soft); color:var(--green-ink); }
.type-report, .type-brief { background:var(--orange-soft); color:var(--orange-ink); }
.type-guide, .type-other, .type-folder { background:#edf1f5; color:#3f4b5c; }
.documents-table .date-cell span { display:block; }
.documents-table .date-cell small { font-size:13.5px; color:var(--muted); }
.documents-table .campaign-link { color:var(--text-2); }
.upload-dialog { width:min(620px,calc(100% - 32px)); }
.upload-body { padding:20px 22px 22px; display:flex; flex-direction:column; gap:18px; }
.form-field label, .form-label { display:block; margin-bottom:8px; font-size:14.5px; font-weight:600; color:var(--text); }
.form-field select, .form-field input[type=email], .form-field input[type=text], .form-field input[type=password], .form-field textarea { width:100%; min-height:46px; padding:10px 14px; border:1px solid var(--line-strong); border-radius:var(--radius-sm); background:#fff; font-size:15px; }
.form-field textarea { min-height:110px; line-height:1.55; resize:vertical; }
.form-field input[readonly] { background:var(--surface-2); color:var(--text-2); }
.form-help { display:block; margin-top:6px; font-size:13px; color:var(--muted); }
.form-error { display:block; margin-top:6px; font-size:13px; color:#b42323; }
.choice-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.choice-card { position:relative; display:flex; flex-direction:column; gap:4px; padding:12px 14px; border:1px solid var(--line-strong); border-radius:var(--radius-sm); cursor:pointer; font-size:13px; color:var(--muted); }
.choice-card strong { font-size:14px; color:var(--text); }
.choice-card input { position:absolute; opacity:0; }
.choice-card:has(input:checked) { border-color:var(--orange); background:var(--orange-tint); box-shadow:0 0 0 1px var(--orange); }
.choice-card:has(input:focus-visible) { outline:2px solid var(--orange-ink); outline-offset:2px; }
.dropzone { position:relative; display:flex; align-items:center; justify-content:center; gap:16px; min-height:88px; padding:16px 20px; border:1.5px dashed #b9c4d2; border-radius:var(--radius-sm); background:#fbfcfd; text-align:left; cursor:pointer; }
.dropzone input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; }
.dropzone>.ui-icon { width:28px; height:28px; color:var(--text-2); }
.dropzone strong { display:block; font-size:14.5px; font-weight:500; }
.dropzone strong em { font-style:normal; color:var(--orange-ink); text-decoration:underline; text-underline-offset:2px; }
.dropzone small { display:block; margin-top:3px; font-size:12.5px; color:var(--muted); }
.dropzone.is-dragging, .dropzone:focus-within { border-color:var(--orange); background:var(--orange-tint); }
.dropzone.has-files { border-style:solid; border-color:#9bd3b5; background:var(--green-tint); }
.dialog-actions { display:flex; justify-content:flex-end; gap:10px; padding:16px 22px; border-top:1px solid var(--line); background:#fbfcfd; }

/* ——— Sales Book ——— */
.book-head { align-items:center; }
.book-head .meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:10px; font-size:15px; color:var(--text-2); }
.live-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#1faa6b; box-shadow:0 0 0 3px #d8f2e5; margin:0 4px 0 2px; }
.version-card { display:grid; grid-template-columns:44px minmax(0,1fr); gap:14px; align-items:center; min-width:360px; padding:16px 22px 16px 16px; }
.version-card .tile { width:44px; height:48px; }
.version-card strong { display:block; font-size:16px; font-weight:650; }
.version-card span { display:block; margin-top:2px; font-size:15px; color:var(--text-2); }
.version-card small { display:flex; align-items:center; gap:4px; margin-top:4px; font-size:13px; color:var(--text-2); }
.book-layout { display:grid; grid-template-columns:232px minmax(0,1fr); gap:18px; align-items:start; }
.book-aside { position:sticky; top:84px; display:flex; flex-direction:column; gap:14px; }
.book-index { padding:6px 0; }
.book-index a { display:block; padding:10px 18px; border-left:3px solid transparent; font-size:14.5px; line-height:1.4; color:var(--text-2); }
.book-index a:hover { color:var(--text); background:var(--surface-2); }
.book-index a[aria-current] { border-color:var(--orange); color:var(--orange-ink); font-weight:550; background:linear-gradient(90deg,#fff6ee,#fff); }
.book-add { border-top:1px solid var(--line); margin-top:6px; padding:8px 12px 4px; }
.book-add>summary { list-style:none; display:flex; align-items:center; gap:8px; padding:6px 6px; font-size:13.5px; color:var(--orange-ink); cursor:pointer; }
.book-add>summary::-webkit-details-marker { display:none; }
.book-add>summary .ui-icon { width:16px; height:16px; }
.book-add a { padding:7px 8px; border:0; font-size:13px; }
.living-card { display:grid; grid-template-columns:32px minmax(0,1fr); gap:10px; padding:16px; }
.living-card .ui-icon { width:26px; height:26px; color:var(--blue); }
.living-card strong { display:block; font-size:14px; font-weight:650; margin-top:4px; }
.living-card p { grid-column:1 / -1; font-size:13px; line-height:1.6; color:var(--text-2); }
.book-article { padding:26px 26px 24px; min-width:0; }
.book-article-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.book-article-head h2 { font-size:32px; font-weight:700; letter-spacing:-.02em; line-height:1.2; }
.book-article-head p { margin-top:8px; font-size:16px; color:var(--text-2); }
.book-body { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:18px; padding-top:22px; }
.book-body.is-single { grid-template-columns:minmax(0,1fr); }
.book-main h3 { font-size:18px; font-weight:650; margin:12px 0 14px; }
.book-bullets { margin:0; padding-left:18px; }
.book-bullets li { margin:0 0 14px; padding-left:4px; font-size:14.5px; line-height:1.65; color:var(--text-2); }
.book-bullets li::marker { color:var(--text); }
.book-text { font-size:15.5px; line-height:1.75; color:var(--text-2); }
.book-side { display:flex; flex-direction:column; gap:12px; }
.quote-card { display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; padding:24px 20px; border-radius:var(--radius); background:#eef3fd; border:1px solid #e0e8f8; }
.quote-card .ui-icon { width:30px; height:30px; color:#7aa0f4; }
.quote-card p { font-size:16px; line-height:1.55; font-style:italic; color:#1f2d45; }
.retain-card { padding:20px 20px 16px; border-radius:var(--radius); background:var(--green-tint); border:1px solid #dcefe4; }
.retain-card h4 { display:flex; align-items:center; gap:10px; font-size:17px; font-weight:650; margin-bottom:12px; }
.retain-card h4 .ui-icon { width:24px; height:24px; color:#1f9d62; }
.retain-card ul { list-style:none; margin:0; padding:0; }
.retain-card li { display:grid; grid-template-columns:22px minmax(0,1fr); gap:10px; padding:5px 0; font-size:14px; line-height:1.5; color:var(--text-2); }
.retain-card li .ui-icon { width:18px; height:18px; color:#1f9d62; stroke-width:2.4; margin-top:1px; }
.book-table { margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.book-table h3 { font-size:18px; font-weight:650; }
.book-table>p { margin:8px 0 16px; font-size:14px; color:var(--text-2); }
.book-table table { width:100%; border-collapse:separate; border-spacing:0; border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden; font-size:14px; }
.book-table th { padding:12px 16px; text-align:left; font-weight:600; background:#f8fafc; border-bottom:1px solid var(--line); }
.book-table td { padding:12px 16px; border-bottom:1px solid var(--line); color:var(--text-2); vertical-align:top; line-height:1.55; }
.book-table tr:last-child td { border-bottom:0; }
.book-table td:first-child { font-weight:600; color:var(--text); }
.book-table th+th, .book-table td+td { border-left:1px solid var(--line); }
.book-entries { display:grid; gap:12px; }
.book-entry-card { padding:16px 18px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fcfdfe; }
.book-entry-card h4 { font-size:15.5px; font-weight:650; }
.book-entry-card blockquote { margin:8px 0 0; padding-left:12px; border-left:3px solid var(--orange); font-size:15px; line-height:1.55; color:var(--text); }
.book-entry-card p { margin-top:8px; font-size:14px; line-height:1.6; color:var(--text-2); }
.book-entry-card ul { margin:8px 0 0; padding-left:18px; font-size:14px; line-height:1.6; color:var(--text-2); }
.book-entry-card .support { font-size:13px; color:var(--muted); }
.book-timeline { list-style:none; margin:0; padding:0; }
.book-timeline li { display:grid; grid-template-columns:110px minmax(0,1fr); gap:16px; padding:12px 0; border-top:1px solid var(--line); font-size:14.5px; line-height:1.6; color:var(--text-2); }
.book-timeline time { font-weight:600; color:var(--text); }
.book-pager { display:flex; justify-content:space-between; gap:16px; margin-top:26px; padding-top:18px; border-top:1px solid var(--line); }
.book-pager a { display:flex; flex-direction:column; gap:2px; font-size:13px; color:var(--muted); }
.book-pager a strong { display:flex; align-items:center; gap:6px; font-size:15px; color:var(--text); }
.book-pager a strong .ui-icon { width:16px; height:16px; }
.book-pager a:last-child { text-align:right; align-items:flex-end; }
.book-editor { display:flex; flex-direction:column; gap:18px; padding-top:22px; }
.book-editor .notice-inline { padding:12px 14px; border-radius:var(--radius-sm); background:var(--blue-tint); color:var(--text-2); font-size:13.5px; }
.editor-row { position:relative; display:grid; gap:10px; padding:14px 16px 16px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fbfcfd; }
.editor-row .remove { position:absolute; top:8px; right:8px; }
.editor-rows { display:flex; flex-direction:column; gap:10px; }
.editor-actions { display:flex; justify-content:flex-end; gap:10px; padding-top:6px; }
@media (max-width:1280px) { .book-body { grid-template-columns:minmax(0,1fr); } }
@media (max-width:860px) { .book-layout { grid-template-columns:minmax(0,1fr); } .book-aside { position:static; } .version-card { min-width:0; } .book-article-head h2 { font-size:26px; } .choice-cards { grid-template-columns:minmax(0,1fr); } }

/* ——— Invitation and first configuration ——— */
body.setup-app { min-height:100vh; background:#f7f9fc; color:var(--text); font-size:14px; }
.setup-app .ui-icon { width:20px; height:20px; flex-shrink:0; }
.setup-app h1, .setup-app h2, .setup-app h3 { font-family:"Inter",sans-serif; margin:0; color:var(--text); }
.setup-app p { margin:0; }
.setup-page { position:relative; min-height:100vh; display:flex; justify-content:center; padding:28px 16px 48px; overflow:hidden; }
.setup-page::before, .setup-page::after { content:""; position:absolute; z-index:0; width:420px; height:420px; border-radius:50%; border:70px solid #fdeee0; pointer-events:none; }
.setup-page::before { top:-250px; left:-220px; }
.setup-page::after { bottom:-260px; left:-150px; border-color:#fdf1e6; }
.setup-column { position:relative; z-index:1; width:100%; max-width:480px; display:flex; flex-direction:column; align-items:center; }
.setup-brand .brand { color:var(--text); font-size:25px; }
.setup-brand .brand>svg { color:var(--text); }
.setup-title { margin-top:18px!important; font-size:24px; font-weight:700; letter-spacing:-.01em; text-align:center; }
.setup-subtitle { margin-top:6px!important; font-size:14px; color:var(--text-2); text-align:center; }
.setup-card { width:100%; margin-top:22px; padding:30px 30px 32px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 10px 30px rgba(15,28,46,.05); }
.setup-progress span { display:block; font-size:12.5px; color:var(--text-2); margin-bottom:8px; }
.setup-progress .progress { height:8px; }
.setup-card>h2 { margin-top:28px; font-size:25px; font-weight:700; letter-spacing:-.02em; }
.setup-lead { margin-top:10px!important; font-size:14.5px; line-height:1.6; color:var(--text-2); }
.setup-lead strong { color:var(--text); }
.setup-workspace { display:flex; align-items:center; gap:16px; margin:22px 0 24px; padding:16px 18px; border-radius:var(--radius-sm); background:#f2f5f9; }
.setup-workspace .ui-icon { width:28px; height:28px; color:var(--text-2); }
.setup-workspace small { display:block; font-size:12.5px; color:var(--text-2); }
.setup-workspace strong { display:block; margin-top:2px; font-size:15px; font-weight:650; }
.setup-form { display:flex; flex-direction:column; gap:18px; margin-top:18px; }
.setup-form .form-field label, .setup-form .form-label { font-size:14px; }
.input-icon { position:relative; }
.input-icon input { padding-right:46px!important; }
.input-icon>.ui-icon { position:absolute; right:14px; top:50%; width:18px; height:18px; margin-top:-9px; color:var(--muted); pointer-events:none; }
.input-toggle { position:absolute; right:6px; top:50%; display:grid; place-items:center; width:36px; height:36px; margin-top:-18px; border:0; border-radius:7px; background:transparent; color:var(--text-2); cursor:pointer; }
.input-toggle:hover { background:var(--surface-2); }
.input-toggle .ui-icon { width:19px; height:19px; }
.setup-form .btn-lg { margin-top:6px; min-height:52px; font-size:16px; }
.setup-foot { margin-top:18px!important; font-size:13px; color:var(--text-2); text-align:center; }
.setup-foot a { color:var(--orange-ink); }
.setup-section { padding:16px 18px 18px; border:1px solid var(--line); border-radius:var(--radius); }
.setup-section h3 { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:650; }
.setup-section h3 .ui-icon { width:20px; height:20px; color:var(--text-2); }
.setup-section>p { margin:4px 0 12px!important; font-size:13px; color:var(--text-2); }
.check-line, .radio-line { position:relative; display:flex; align-items:flex-start; gap:12px; padding:6px 0; font-size:14px; cursor:pointer; }
.check-line input, .radio-line input { position:absolute; opacity:0; width:20px; height:20px; margin:0; }
.check-box { display:grid; place-items:center; flex-shrink:0; width:20px; height:20px; border:1.5px solid #b9c4d2; border-radius:5px; background:#fff; color:#fff; }
.check-box .ui-icon { width:14px; height:14px; stroke-width:3; opacity:0; }
.check-line input:checked+.check-box { background:var(--orange); border-color:var(--orange-ink); color:var(--text); }
.check-line input:checked+.check-box .ui-icon { opacity:1; }
.check-line input:focus-visible+.check-box, .radio-line input:focus-visible+.radio-dot { outline:2px solid var(--orange-ink); outline-offset:2px; }
.check-line input:disabled+.check-box { opacity:.5; }
.radio-dot { flex-shrink:0; width:20px; height:20px; border:1.5px solid #b9c4d2; border-radius:50%; background:#fff; }
.radio-line input:checked+.radio-dot { border:6px solid var(--orange); }
.radio-line small { display:block; margin-top:2px; font-size:12.5px; color:var(--muted); }
.setup-section .form-field { margin-top:12px; }
.setup-section .dropzone { margin-top:12px; }
.setup-more>summary { list-style:none; display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; cursor:pointer; }
.setup-more>summary::-webkit-details-marker { display:none; }
.setup-more>summary small { font-weight:400; color:var(--muted); }
.setup-more>summary .ui-icon { width:18px; height:18px; color:var(--orange-ink); }
.setup-actions { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr); gap:12px; }
.setup-actions .btn { margin-top:0; min-height:52px; font-size:15px; white-space:normal; text-align:center; }
.setup-done { position:relative; text-align:center; padding-top:6px; }
.setup-done-icon { display:grid; place-items:center; width:84px; height:84px; margin:0 auto; border-radius:50%; background:var(--green-soft); color:#13a36b; }
.setup-done-icon .ui-icon { width:44px; height:44px; stroke-width:2.6; }
.confetti { position:absolute; left:50%; top:-8px; width:190px; height:110px; margin-left:-95px; background:
  radial-gradient(circle, #ff8a2a 2.5px, transparent 3px) 12px 58px / 40px 40px no-repeat,
  radial-gradient(circle, #2463eb 2.5px, transparent 3px) 168px 30px / 40px 40px no-repeat,
  radial-gradient(circle, #ffb35c 2px, transparent 2.5px) 150px 80px / 40px 40px no-repeat,
  radial-gradient(circle, #16a36a 2px, transparent 2.5px) 26px 18px / 40px 40px no-repeat,
  linear-gradient(60deg, transparent 45%, #ff8a2a 45%, #ff8a2a 55%, transparent 55%) 30px 0 / 14px 22px no-repeat,
  linear-gradient(-60deg, transparent 45%, #ff8a2a 45%, #ff8a2a 55%, transparent 55%) 150px 4px / 14px 22px no-repeat,
  linear-gradient(20deg, transparent 45%, #ff8a2a 45%, #ff8a2a 55%, transparent 55%) 8px 84px / 18px 14px no-repeat,
  linear-gradient(-30deg, transparent 45%, #ff8a2a 45%, #ff8a2a 55%, transparent 55%) 166px 92px / 18px 14px no-repeat; }
.setup-done h2 { margin-top:16px; font-size:25px; font-weight:700; }
.setup-done p { margin:10px auto 0!important; max-width:340px; font-size:14px; line-height:1.55; color:var(--text-2); }
.setup-ready { display:flex; align-items:center; gap:14px; margin:20px 0 14px; padding:16px 18px; border-radius:var(--radius-sm); background:var(--green-tint); border:1px solid #dcefe4; }
.setup-ready .status-icon { display:grid; place-items:center; flex-shrink:0; width:34px; height:34px; border-radius:50%; background:#18a86b; color:#fff; }
.setup-ready .status-icon .ui-icon { width:18px; height:18px; stroke-width:2.6; }
.setup-ready strong { display:block; font-size:15px; color:var(--green-ink); }
.setup-ready small { display:block; font-size:12.5px; color:var(--text-2); margin-top:2px; }
.setup-summary { margin-bottom:16px; padding:14px 16px 6px; border:1px solid var(--line); border-radius:var(--radius); }
.setup-summary h3, .setup-next h3 { font-size:14.5px; font-weight:650; }
.setup-summary li { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--line); font-size:13.5px; }
.setup-summary li:first-child { border-top:0; margin-top:6px; }
.setup-summary li>.ui-icon { width:19px; height:19px; color:var(--text-2); }
.setup-summary b { font-weight:450; color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:200px; }
.setup-summary .ok { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#18a86b; color:#fff; }
.setup-summary .ok .ui-icon { width:12px; height:12px; stroke-width:3; }
.setup-summary .pill .ui-icon { width:14px; height:14px; }
.setup-next { margin-top:16px; padding:14px 16px; border:1px solid var(--line); border-radius:var(--radius); }
.setup-next>p { margin-top:2px!important; font-size:12.5px; color:var(--text-2); }
.setup-next ol { list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; }
.setup-next li { display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; align-items:center; }
.setup-next li>span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--orange-soft); color:var(--orange-ink); font-weight:700; }
.setup-next strong { display:block; font-size:13.5px; font-weight:600; }
.setup-next small { display:block; font-size:12.5px; color:var(--text-2); }
.setup-card .notice { margin-top:16px; }
@media (max-width:520px) { .setup-card { padding:22px 18px 24px; } .setup-actions { grid-template-columns:minmax(0,1fr); } .setup-page::before, .setup-page::after { display:none; } }
fieldset.form-field { border:0; padding:0; margin:0; min-width:0; }
.form-field .choice-card { display:flex; margin:0; font-weight:400; font-size:13px; line-height:1.4; }
.form-field .choice-card strong { display:block; font-weight:650; }
.quote-card { margin:0; }
.documents-table td:nth-child(3) { min-width:190px; }
.doc-cell { min-width:240px; }
.doc-cell span { max-width:300px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.setup-actions { grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); }
.setup-actions .btn { font-size:14.5px; padding:0 14px; }
.portal-app .settings-panel, .portal-app .settings-savebar { border-radius:var(--radius); }
.account-section { margin-top:18px; padding:20px 22px; }
.account-section h2 { font-size:17px; font-weight:650; margin-bottom:12px; }
.portal-app .member-list { list-style:none; margin:0; padding:0; }
.portal-app .member-row { display:flex; align-items:center; gap:16px; padding:12px 0; border-top:1px solid var(--line); }
.portal-app .member-identity { flex:1; min-width:0; }
.portal-app .member-identity strong, .portal-app .member-identity span { display:block; }
.portal-app .member-identity span { color:var(--muted); font-size:13px; }
.notice-stale { margin:-4px 0 16px; padding:12px 16px; border-radius:var(--radius-sm); background:var(--amber-soft); color:var(--amber-ink); font-size:13.5px; }

/* ——— Document versions ——— */
.version-history { margin-top:6px; font-size:12.5px; }
.version-history summary { cursor:pointer; color:var(--text-2); }
.version-history ol { margin:6px 0 0; padding-left:18px; display:grid; gap:4px; }
.version-history li { white-space:nowrap; }
.version-history a { color:var(--accent-ink); }

/* ——— Corrections d'audit UX ——— */
/* The two-column setup actions used to outrank the small-screen rule declared earlier. */
@media (max-width:520px) { .setup-actions { grid-template-columns:minmax(0,1fr); } }
.field-error { margin-top:6px; color:#b42323; font-size:12.5px; font-weight:500; }
.notice.error ul { margin:6px 0 0; padding-left:18px; display:grid; gap:4px; }
.notice.error a { color:inherit; text-decoration:underline; }
.dropzone-error { display:block; margin-top:8px; color:#b42323; font-size:12.5px; font-weight:500; }
.upload-dialog .notice { margin:0 0 16px; }
.upload-note { margin-top:10px; color:var(--muted); font-size:12.5px; }
.onb-campaign-picker { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:10px; font-size:13.5px; color:var(--muted); }
.onb-campaign-picker select { min-height:38px; padding:0 10px; border:1px solid var(--line-strong); border-radius:var(--radius-sm); background:#fff; }
.setup-ready.is-pending { background:var(--amber-soft); border-color:#f3dcbd; }
.setup-ready.is-pending .status-icon { background:var(--amber-ink); }
.setup-ready.is-pending strong { color:var(--amber-ink); }
.auth-alternate { width:100%; margin-top:10px; }
.form-note a { color:var(--accent-ink); text-decoration:underline; }
.setup-done-icon.is-pending { background:var(--amber-soft); color:var(--amber-ink); }
.jday-ok.is-waiting { background:var(--surface-2); }
.jday-ok.is-waiting .status-icon { background:#526174; }

/* New client, from the workspace picker or the empty directory */
.picker-create { border-top:1px solid var(--line); margin-top:8px; padding:12px 12px 4px; display:grid; gap:6px; }
.picker-create label { font-size:12px; font-weight:600; color:var(--muted); }
.picker-create-row { display:flex; gap:8px; }
.picker-create-row input { flex:1; min-width:0; }
.workspace-empty { max-width:560px; display:grid; gap:10px; }
.workspace-empty h1 { font-size:20px; }
.workspace-empty .picker-create { border-top:0; padding:0; margin:0; }

/* Steppers: the campaign brief and the exclusion import */
.stepper { display:flex; gap:8px; list-style:none; margin:0 0 20px; padding:0; counter-reset:step; flex-wrap:wrap; }
.stepper li { counter-increment:step; display:flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--muted); font-size:14px; font-weight:600; }
.stepper li::before { content:counter(step); display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--surface-2); font-size:12px; }
.stepper li.is-current { border-color:var(--orange); color:var(--text); }
.stepper li.is-current::before { background:var(--orange); color:var(--text); }
.stepper li.is-done::before { content:"✓"; background:var(--green-soft); color:var(--green); }
.stepper a { color:inherit; text-decoration:none; }
.stepper a:hover { text-decoration:underline; }
.form-actions { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-top:20px; flex-wrap:wrap; }

/* Réglages: the exclusion list */
.exclusions-upload { display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.exclusions-upload .field { flex:1; min-width:240px; }
.exclusions-card .toolbar-controls { margin-bottom:12px; }
.mapping-table select { display:block; margin-top:6px; min-width:140px; }
.review-counts { display:grid; gap:8px; margin:12px 0 0; padding-left:20px; }
.card-head .count { font-weight:500; color:var(--muted); font-size:14px; margin-left:6px; }
@media (max-width: 640px) { .stepper li { padding:6px 10px; font-size:13px; } .form-actions > * { flex:1; } }

/* Campaign brief stepper */
.brief-form { display:grid; gap:18px; }
.brief-section h2 { font-size:17px; font-weight:650; margin-bottom:4px; }
.brief-section > .field-help { margin-bottom:14px; }
.brief-row { border:1px solid var(--line); border-radius:var(--radius-sm); padding:14px 16px; margin:0 0 12px; display:grid; grid-template-columns:1fr 1fr; gap:12px; min-width:0; }
.brief-row legend { font-weight:600; font-size:14px; padding:0 6px; }
.brief-row .field-wide { grid-column:1 / -1; }
.brief-row-line { grid-template-columns:1fr auto; align-items:end; border:0; padding:0; }
.row-actions { display:flex; gap:4px; justify-content:flex-end; grid-column:1 / -1; }
.brief-row-line .row-actions { grid-column:auto; }
.brief-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.offer-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:16px; margin-bottom:18px; }
.offer-card { display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; align-items:center; gap:6px 18px; padding:22px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--text); font:inherit; text-align:left; cursor:pointer; transition:border-color .15s, box-shadow .15s, transform .15s; }
button.offer-card:hover, button.offer-card:focus-visible { border-color:var(--orange); box-shadow:0 0 0 3px var(--orange-soft), 0 18px 40px -28px rgba(5,13,24,.45); transform:translateY(-1px); }
.offer-card.is-disabled { opacity:.55; cursor:not-allowed; }
.offer-card-icon { grid-row:1 / span 2; width:88px; height:88px; object-fit:contain; }
.offer-card-body { display:grid; gap:6px; justify-items:start; }
.offer-card-body strong { font-size:18px; }
.offer-card-body span { color:var(--muted); line-height:1.45; }
.offer-card-go, .offer-card .status-badge { justify-self:start; font-size:14px; font-weight:650; }
.offer-card-go { color:var(--orange-ink); }
.brief-section-head { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.brief-section-head img { width:52px; height:52px; flex:none; object-fit:contain; }
.brief-section-head h2 { margin-bottom:2px; }
.brief-section-head .field-help { margin:0; }
.page-head .page-actions { margin-left:auto; }
.btn-danger { color:var(--red); }
.btn-danger:hover { background:var(--red-soft); }
.signer-picks { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:14px; }
.signer-picks .field-help { margin:0 4px 0 0; }
@media (max-width: 640px) { .offer-card-icon { width:64px; height:64px; } .brief-section-head img { width:40px; height:40px; } }
.checkbox { display:flex; align-items:center; gap:8px; font-size:14px; }
@media (max-width: 640px) { .brief-row, .brief-grid { grid-template-columns:1fr; } }

/* Signature step: the signer beside the note preview */
.brief-signature { display:grid; grid-template-columns:minmax(260px, 340px) minmax(0, 1fr); gap:20px; align-items:start; }
.brief-signature-side { display:grid; gap:16px; position:sticky; top:16px; }
.missing-list { margin:8px 0 0; padding-left:20px; display:grid; gap:4px; }
@media (max-width: 960px) { .brief-signature { grid-template-columns:minmax(0, 1fr); } .brief-signature-side { position:static; } }
.brief-card { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.brief-card h2 { font-size:17px; font-weight:650; }
.brief-card-actions { display:flex; gap:8px; flex-wrap:wrap; }
.checkbox input[type=checkbox] { width:18px; height:18px; padding:0; margin:3px 0 0; flex:none; border-radius:50%; box-shadow:none; accent-color:var(--orange); }
.checkbox input[type=checkbox] { border-radius:4px; margin:0; }
.brief-form textarea { width:100%; min-height:96px; padding:10px 13px; background:var(--surface); border:1px solid #8994a0; border-radius:9px; line-height:1.55; resize:vertical; }
.brief-form input[type=date] { max-width:220px; }
.brief-form .field label { display:block; font-weight:600; font-size:13px; margin-bottom:6px; }
.brief-signature-side .field { margin-bottom:12px; }

/* ——— Vue d’ensemble, mode préparation : les quatre étapes et le point qui avance, le calendrier des journées d’appel ——— */
.prep-lead { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:10px 0 6px; }
.prep-lead .subject-link { font-size:16px; font-weight:650; }
.prep-next { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; margin:0 0 22px; padding:14px 18px; border:1px solid var(--hairline); border-radius:16px; background:var(--paper); color:var(--ink); font-size:15px; line-height:1.5; }
.prep-next .eyebrow { flex:none; }
.prep-next > span:last-child { flex:1 1 280px; min-width:0; }
.prep-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; list-style:none; margin:0 0 18px; padding:0; }
.prep-step { position:relative; display:flex; flex-direction:column; min-width:0; padding-top:28px; }
/* The track: a line from each step's dot to the next one, green once the step is done. */
.prep-step::before { content:""; position:absolute; top:7px; left:24px; right:-16px; height:2px; border-radius:2px; background:var(--mist); }
.prep-step:last-child::before { display:none; }
.prep-step.is-done::before { background:var(--green); }
.prep-dot { position:absolute; top:0; left:16px; z-index:1; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:inset 0 0 0 2px var(--cloud); }
.prep-step.is-done .prep-dot { background:var(--green); box-shadow:none; }
.prep-step.is-current .prep-dot { background:var(--navy-deep); box-shadow:inset 0 0 0 1.5px rgba(255,138,0,.55), 0 0 0 4px rgba(255,138,0,.16); }
.prep-card { flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:20px 20px 18px; }
.prep-step.is-current .prep-card { box-shadow:0 1px 2px rgba(15,27,41,.04), 0 22px 40px -30px rgba(15,27,41,.45); }
.prep-card .prep-clay { width:48px; height:48px; object-fit:contain; margin-bottom:2px; }
.prep-card h2 { font-size:17px; font-weight:700; letter-spacing:-.02em; }
.prep-state { display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; margin:0; color:var(--ink); font-size:15px; line-height:1.35; }
.prep-state strong { font-family:var(--font-display); font-weight:700; letter-spacing:-.015em; overflow-wrap:anywhere; }
.prep-detail { margin:0; color:var(--slate); font-size:13.5px; line-height:1.5; }
.prep-card .link-arrow { margin-top:auto; padding-top:6px; }
.prep-days { display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 0; padding:0; list-style:none; }
.prep-days li { padding:3px 10px; border-radius:999px; background:var(--mist); color:var(--slate); font-size:12.5px; font-weight:600; white-space:nowrap; }
.prep-days li.is-next { background:var(--navy-deep); color:#fff; }
.prep-days li.is-past { background:none; color:var(--faint); text-decoration:line-through; }
.prep-months { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap:20px 28px; }
.prep-month { width:100%; border-collapse:separate; border-spacing:3px; table-layout:fixed; }
.prep-month caption { caption-side:top; padding:0 0 8px 3px; text-align:left; font-family:var(--font-display); font-size:15px; font-weight:700; letter-spacing:-.015em; color:var(--ink); }
.portal-app .prep-month th { padding:2px 0 6px; text-align:center; font-family:var(--font-mono); font-size:11px; font-weight:500; color:var(--ash); }
.prep-month abbr { text-decoration:none; }
.prep-month td { position:relative; height:38px; padding:0; border-radius:10px; text-align:center; vertical-align:middle; color:var(--ink); font-size:13.5px; font-variant-numeric:tabular-nums; }
.prep-month td.is-past { color:var(--faint); }
.prep-month td.is-call { background:var(--orange-soft); color:var(--orange-700); font-weight:700; }
.prep-month td.is-call::after { content:""; position:absolute; left:50%; bottom:5px; width:5px; height:5px; margin-left:-2.5px; border-radius:50%; background:var(--orange); }
.prep-month td.is-today { box-shadow:inset 0 0 0 1.5px var(--marble); font-weight:700; }
.prep-legend { display:flex; flex-wrap:wrap; gap:6px 18px; margin:14px 0 0; color:var(--slate); font-size:13px; }
.prep-legend span { display:inline-flex; align-items:center; gap:8px; }
.prep-legend span::before { content:""; width:14px; height:14px; border-radius:5px; }
.prep-legend-call::before { background:var(--orange-soft); box-shadow:inset 0 -3px 0 -1px var(--orange); }
.prep-legend-today::before { box-shadow:inset 0 0 0 1.5px var(--marble); }
.prep-agenda { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; margin-top:16px; padding-top:16px; border-top:1px solid var(--hairline); }
.prep-agenda p { flex:1 1 240px; margin:0; color:var(--slate); font-size:13.5px; line-height:1.5; }
.prep-agenda .agenda-links { display:flex; flex-wrap:wrap; gap:8px; }

/* ——— « À faire » et « Prochains rendez-vous », dans les deux modes ——— */
.dash-block { padding:18px 18px 12px; }
.dash-block .card-head { margin-bottom:6px; }
.dash-empty { margin:0; padding:4px 0 8px; color:var(--slate); font-size:13.5px; line-height:1.55; }
.todo-list li, .upcoming-list li { padding:11px 0; border-top:1px solid var(--hairline); }
.todo-list li:first-child, .upcoming-list li:first-child { border-top:0; }
.todo-list li { display:grid; grid-template-columns:24px minmax(0,1fr); gap:3px 12px; align-items:start; }
.todo-list form { margin:0; }
.todo-body { min-width:0; }
.todo-body .task-title { display:block; font-size:14px; line-height:1.35; overflow-wrap:anywhere; }
.todo-who { display:block; margin-top:2px; color:var(--slate); font-size:12.5px; overflow-wrap:anywhere; }
.todo-who small { font-size:inherit; }
.todo-who small::before { content:" · "; }
.todo-list .task-due { grid-column:2; color:var(--slate); font-size:12.5px; font-weight:500; }
.upcoming-list li { display:grid; grid-template-columns:78px minmax(0,1fr); gap:12px; align-items:start; }
.upcoming-when { display:flex; flex-direction:column; align-items:center; gap:1px; padding:7px 4px; border-radius:12px; background:var(--paper); box-shadow:inset 0 0 0 1px var(--hairline); text-align:center; }
.upcoming-when span { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ash); white-space:nowrap; }
.upcoming-when strong { font-family:var(--font-display); font-size:15px; font-weight:800; letter-spacing:-.02em; color:var(--ink); }
.upcoming-body { display:flex; flex-direction:column; align-items:flex-start; gap:3px; min-width:0; }
.upcoming-who { font-size:14px; line-height:1.35; overflow-wrap:anywhere; }
.upcoming-who small { display:block; color:var(--slate); font-size:12.5px; }
.upcoming-where { color:var(--slate); font-size:12.5px; }
@media (max-width:1100px) {
  .prep-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .prep-step:nth-child(2)::before { display:none; }
}
@media (max-width:640px) {
  .prep-steps { grid-template-columns:minmax(0,1fr); gap:12px; }
  .prep-step::before { display:none; }
  .prep-next { padding:12px 14px; font-size:14.5px; }
  .prep-month td { height:34px; }
}

/* ——— « À venir » : l'agenda des prochains jours en tête du tableau de bord ——— */
.agenda { padding:18px 20px 16px; }
.agenda .card-head { margin-bottom:10px; }
.agenda-days { display:grid; gap:14px; margin:0; padding:0; list-style:none; }
.agenda-day h3 { margin:0 0 6px; color:var(--slate); font-size:12px; font-weight:650; letter-spacing:.06em; text-transform:uppercase; }
.agenda-items { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.agenda-item { display:grid; grid-template-columns:46px 30px minmax(0, 1fr); align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.agenda-time { color:var(--slate); font-size:13px; font-variant-numeric:tabular-nums; }
.agenda-icon { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; background:var(--surface-2); color:var(--slate); }
.agenda-icon .ui-icon { width:16px; height:16px; }
.agenda-item.is-call_day .agenda-icon { background:var(--orange-tint, #fff4e8); color:var(--orange-ink, #b45a00); }
.agenda-item.is-appointment .agenda-icon { background:#e8f3ec; color:#1f7a45; }
.agenda-body { display:flex; flex-direction:column; gap:2px; min-width:0; }
.agenda-body a { color:var(--text); font-weight:600; font-size:14px; text-decoration:none; overflow-wrap:anywhere; }
.agenda-body a:hover { text-decoration:underline; }
.agenda-body small { color:var(--slate); font-size:12.5px; }
.agenda-empty { display:flex; align-items:center; gap:14px; padding:8px 0 6px; }
.agenda-empty p { margin:0; color:var(--slate); font-size:14px; line-height:1.55; }
.agenda-empty strong { color:var(--text); }
.agenda .prep-agenda { margin-top:14px; }
.agenda-wide { margin-bottom:22px; }
.results-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 14px; }
.next-step p { margin:0 0 10px; font-size:14px; line-height:1.55; }
