@font-face {
  font-family: "Inter";
  src: url("/assets/fonts/inter-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "Geist";
  src: url("/assets/fonts/geist-sans.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  color-scheme:light;
  --bg:#f8f8f6;
  --surface:#ffffff;
  --surface-2:#f2f4f5;
  --line:#e1e5e8;
  --text:#0f1b29;
  --muted:#57626f;
  --accent:#ff8a00;
  --accent-ink:#9e5000;
  --accent-soft:#fff0df;
  --green:#2f8f6b;
  font-family:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-synthesis:none;
  font-size:14px;
  line-height:1.55;
  color:var(--text);
  background:var(--bg)}
* {
  box-sizing:border-box}
body {
  margin:0}
button,input {
  font:inherit}
a {
  color:inherit;
  text-decoration:none}
button,a,input {
  -webkit-tap-highlight-color:transparent}
button {
  cursor:pointer}
button:disabled {
  cursor:wait;
  opacity:.65}
a:hover {
  color:var(--accent-ink)}
::selection {
  background:#ffe4c4;
  color:var(--text)}
:focus-visible {
  outline:2px solid var(--accent-ink);
  outline-offset:4px}
input:focus-visible {
  outline-offset:1px}
.skip-link {
  position:fixed;
  top:-60px;
  left:20px;
  z-index:20;
  background:var(--accent);
  color:var(--text);
  padding:12px}
.skip-link:focus {
  top:15px}
.skip-link:hover {
  color:var(--text);
}
.brand {
  display:inline-flex;
  gap:10px;
  align-items:center;
  color:var(--text);
  font-family:"Geist",sans-serif;
  font-size:25px;
  letter-spacing:-.8px;
  font-weight:700;
  line-height:1.1;
}
.brand>svg {
  width:32px;
  height:32px;
  color:var(--text);
  flex-shrink:0;
}
.auth-page {
  min-height:100svh;
  display:flex;
  flex-direction:column}
.auth-header {
  height:112px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5.5vw}
.portal-label {
  font-size:12px;
  color:var(--muted);
  border-left:2px solid var(--accent);
  padding-left:14px;
}
.auth-main {
  flex:1;
  display:grid;
  place-items:center;
  padding:30px 24px 70px;
}
.auth-content {
  width:100%;
  max-width:476px;
  padding:38px 40px 34px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 3px 12px -9px rgba(15,27,41,.15);
}
.page-glyph {
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  background:var(--surface-2);
  border-radius:20px;
  margin-bottom:26px;
  color:var(--accent-ink);
}
h1 {
  font-family:"Geist",sans-serif;
  font-size:32px;
  line-height:1.16;
  letter-spacing:-1.1px;
  font-weight:650;
  margin:0 0 13px;
  overflow-wrap:anywhere;
}
h2 {
  font-family:"Geist",sans-serif;
  font-size:15px;
  line-height:1.4;
  font-weight:600;
  margin:0 0 7px;
}
p {
  margin:0}
.intro {
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
  margin-bottom:31px}
.auth-form {
  display:flex;
  flex-direction:column;
  gap:21px}
.field {
  display:flex;
  flex-direction:column;
  gap:8px}
label {
  font-size:12px;
  font-weight:550;
  color:#42526c}
.label-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px}
.label-row a {
  font-size:12px;
  color:var(--muted);
  text-underline-offset:3px;
}
.label-row a:hover {
  color:var(--accent-ink);
  text-decoration:underline;
}
input {
  width:100%;
  height:48px;
  padding:0 13px;
  background:var(--surface);
  border:1px solid #8994a0;
  border-radius:9px;
  color:var(--text);
  box-shadow:inset 0 2px 3px rgba(15,27,41,.025);
  transition:border-color .15s;
}
input::placeholder {
  color:#65717e}
input:hover {
  border-color:#57626f}
input[readonly] {
  color:var(--muted);
  background:#f2f4f5}
input[aria-invalid=true] {
  border-color:#b4452f}
.password-field {
  position:relative}
.password-field input {
  padding-right:45px}
.password-toggle {
  position:absolute;
  right:4px;
  top:4px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:6px;
  background:none;
  color:var(--muted);
}
.password-toggle:hover {
  color:var(--text);
  background:var(--surface-2)}
.password-toggle svg {
  width:19px;
  height:19px}
.button {
  min-height:44px;
  padding:11px 17px;
  border-radius:10px;
  display:inline-flex;
  justify-content:center;
  gap:13px;
  align-items:center;
  font-size:13px;
  font-weight:600;
  border:1px solid transparent;
  line-height:1.4;
  transition:background .15s,box-shadow .15s,transform .15s;
}
.button svg {
  width:18px;
  height:18px}
.primary {
  width:100%;
  min-height:48px;
  background:linear-gradient(168deg,#ffac3f 0%,#ff8a00 62%,#f48100 100%);
  color:var(--text);
  border-color:#f18a13;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),inset 0 -2px 3px rgba(150,66,0,.12),0 5px 10px -7px rgba(150,66,0,.45);
}
.primary:hover {
  background:linear-gradient(168deg,#ffb34f 0%,#ff961b 62%,#ff8a00 100%);
  color:var(--text);
}
.secondary {
  background:var(--surface);
  border-color:#bec6cd;
  color:var(--text);
  box-shadow:inset 0 1px 0 #fff,0 2px 2px -2px rgba(15,27,41,.12);
}
.secondary:hover {
  background:#f2f4f5;
  color:var(--text)}
.form-note {
  text-align:center;
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
  margin-top:27px;
  padding-top:23px;
  border-top:1px solid var(--line);
}
.auth-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:26px 5.5vw 31px;
  font-size:11px;
  color:var(--muted)}
.auth-footer a {
  display:flex;
  gap:15px}
.field-help {
  font-size:11px;
  color:var(--muted);
  line-height:1.65}
.field-help a {
  color:var(--accent-ink)}
.context-label {
  color:var(--accent-ink);
  font-size:12px;
  margin-bottom:9px}
.back-link {
  display:inline-block;
  font-size:12px;
  color:var(--muted);
  margin-bottom:32px}
.notice {
  border-radius:6px;
  border:1px solid;
  padding:12px 14px;
  font-size:12px;
  line-height:1.65;
  margin-bottom:22px}
.notice.error {
  background:#fff0ec;
  border-color:#e9b4a8;
  color:#9e3525}
.notice.success {
  background:#edf6f0;
  border-color:#b8d8c4;
  color:#236348}
.workspace-page {
  display:flex;
  min-height:100svh}
.sidebar {
  width:236px;
  flex-shrink:0;
  background:#f2f4f5;
  border-right:1px solid var(--line);
  padding:30px 17px 0;
  position:fixed;
  inset:0 auto 0 0;
  display:flex;
  flex-direction:column}
.sidebar .brand {
  padding:0 9px;
  font-size:22px}
.sidebar .brand>svg {
  width:27px;
  height:27px}
.workspace-name {
  display:flex;
  gap:10px;
  align-items:center;
  margin:44px 7px 25px;
  min-width:0}
.workspace-avatar {
  flex-shrink:0;
  width:34px;
  height:34px;
  border:1px solid #d9dfe3;
  border-radius:9px;
  display:grid;
  place-items:center;
  color:var(--text);
  background:var(--surface);
  font-size:12px;
  box-shadow:inset 0 1px 0 #fff,0 2px 2px -2px rgba(15,27,41,.1);
}
.workspace-name div {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px}
.workspace-name strong {
  font-weight:550;
  font-size:12px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap}
.workspace-name div>span {
  font-size:10px;
  color:var(--muted)}
.sidebar nav {
  display:flex;
  flex-direction:column;
  gap:4px}
.nav-item {
  min-height:40px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:0 12px;
  font-size:12px;
  border-radius:7px;
  color:var(--muted);
}
.nav-item.active {
  background:var(--accent-soft);
  color:var(--accent-ink);
  font-weight:600;
}
.nav-item:hover {
  background:#f2f4f5;
  color:var(--text)}
.nav-item svg {
  width:17px;
  height:17px}
.sidebar-bottom {
  margin-top:auto}
.support-link {
  font-size:11px;
  color:var(--muted);
  padding:15px 8px;
  display:flex;
  justify-content:space-between}
.user-line {
  border-top:1px solid var(--line);
  padding:20px 2px;
  display:flex;
  align-items:center;
  gap:9px}
.user-avatar {
  flex-shrink:0;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#ffe4c4;
  color:#9e5000;
  font-size:11px}
.user-line>div {
  display:flex;
  flex-direction:column;
  min-width:0;
  flex:1}
.user-line strong {
  font-weight:500;
  font-size:11px}
.user-line div>span {
  font-size:10px;
  color:var(--muted);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap}
.logout-button {
  width:30px;
  height:32px;
  border:0;
  background:none;
  color:var(--muted);
  display:grid;
  place-items:center;
  border-radius:4px}
.logout-button:hover {
  background:var(--surface-2);
  color:var(--text)}
.logout-button svg {
  width:17px;
  height:17px}
.workspace-main {
  margin-left:236px;
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column}
.workspace-header {
  height:69px;
  border-bottom:1px solid #e1e5e8;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0 35px;
  color:var(--muted);
  font-size:11px}
.breadcrumb-slash {
  color:#76808b;
  padding:0 12px}
.connection-indicator {
  display:flex;
  gap:7px;
  align-items:center;
  font-size:10px;
  white-space:nowrap}
.connection-indicator i,.status-badge i {
  width:5px;
  height:5px;
  display:inline-block;
  background:var(--green);
  border-radius:50%}
.document {
  width:100%;
  max-width:852px;
  padding:65px 60px 75px;
  margin:0 auto;
  flex:1}
.document-icon {
  width:76px;
  height:76px;
  background:var(--surface-2);
  border-radius:20px;
  margin-bottom:25px;
  display:grid;
  place-items:center;
  color:var(--accent-ink);
}
.document h1 {
  font-size:34px;
  letter-spacing:-1.1px;
  margin-bottom:12px}
.document-intro {
  color:var(--muted);
  font-size:13px;
  line-height:1.7}
.welcome-note {
  display:flex;
  gap:15px;
  padding:22px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  margin:36px 0 43px;
}
.note-icon {
  display:grid;
  place-items:center;
  flex-shrink:0;
  width:32px;
  height:32px;
}
.welcome-note h2 {
  color:#0f1b29;
  font-size:13px}
.welcome-note p {
  color:#57626f;
  font-size:12px;
  line-height:1.7}
.details-section>h2 {
  margin-bottom:16px}
.details-list {
  margin:0;
  border-top:1px solid var(--line)}
.details-list>div {
  display:grid;
  grid-template-columns:160px 1fr;
  gap:15px;
  align-items:center;
  min-height:47px;
  border-bottom:1px solid var(--line);
  font-size:12px;
  padding:10px 0}
.details-list dt {
  color:var(--muted)}
.details-list dd {
  margin:0;
  overflow-wrap:anywhere}
.status-badge {
  display:inline-flex;
  gap:7px;
  align-items:center;
  font-size:10px;
  padding:4px 8px;
  color:#236348;
  border-radius:5px;
  background:#e9f3ed;
}
.contact-line {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding-top:34px}
.contact-line h2 {
  font-size:12px}
.contact-line p {
  font-size:11px;
  color:var(--muted)}
.contact-line .button {
  font-size:11px;
  min-height:37px}
.workspace-footer {
  color:#57626f;
  padding:24px 35px;
  font-size:10px}
.password-section {
  margin-top:40px}
.account-form {
  max-width:390px;
  margin-top:22px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:20px}
.account-form .field {
  width:100%}
.document>.details-section {
  margin-top:35px}
.details-section>.field-help {
  margin-top:12px}
.document>.notice {
  margin-top:24px}
@media(min-width:1500px) {
  .auth-main {
  padding-bottom:140px}
.document {
  padding-top:90px}
}
@media(max-width:850px) {
  .sidebar {
  width:204px;
  padding-left:12px;
  padding-right:12px}
.workspace-main {
  margin-left:204px}
.document {
  padding:46px 30px 60px}
.workspace-header {
  padding:0 25px}
.connection-indicator {
  display:none}
.details-list>div {
  grid-template-columns:115px 1fr}
.contact-line {
  align-items:flex-start;
  flex-direction:column}
}
@media(max-width:600px) {
  .auth-header {
  height:90px;
  padding:0 25px}
.auth-main {
  padding:35px 26px 65px;
  align-items:center}
.auth-content {
  max-width:380px}
h1 {
  font-size:28px}
.auth-footer {
  align-items:center;
  flex-direction:column;
  gap:14px;
  padding:20px 24px 28px}
.auth-footer>span {
  font-size:10px}
.workspace-page {
  display:block}
.sidebar {
  position:static;
  width:100%;
  padding:20px 20px 13px;
  border-right:0;
  border-bottom:1px solid var(--line)}
.sidebar .brand {
  padding:0;
  font-size:21px}
.workspace-name {
  display:none}
.sidebar nav {
  flex-direction:row;
  margin-top:20px;
  gap:9px}
.nav-item {
  flex:1;
  justify-content:center}
.sidebar-bottom {
  position:absolute;
  top:17px;
  right:18px}
.support-link {
  display:none}
.user-line {
  padding:0;
  border:0}
.user-line>.user-avatar,.user-line>div {
  display:none}
.logout-button {
  width:40px;
  height:36px}
.workspace-main {
  margin-left:0}
.workspace-header {
  padding:0 25px;
  height:49px;
  font-size:10px}
.document {
  padding:39px 26px 55px}
.document h1 {
  font-size:29px}
.document-icon {
  margin-bottom:20px}
.document-intro {
  font-size:12px}
.welcome-note {
  padding:19px 16px;
  margin:29px 0 32px;
  gap:12px}
.details-list>div {
  font-size:11px;
  grid-template-columns:110px 1fr;
  gap:10px}
.contact-line {
  gap:18px}
.workspace-footer {
  padding:20px 26px;
  font-size:9px}
.account-form {
  max-width:none}
.password-section {
  margin-top:34px}
}
@media(prefers-reduced-motion:reduce) {
  * {
  transition:none!important;
  scroll-behavior:auto!important}
}


/* Workspace directory and explicit super administrator context. */
.workspace-switch {
  display:flex;
  justify-content:space-between;
  gap:8px;
  font-size:11px;
  color:var(--accent-ink);
  padding:0 8px;
  margin:-12px 0 23px}
.workspace-breadcrumb {
  min-width:0;
  overflow-wrap:anywhere}
.admin-indicator {
  color:var(--accent-ink)}
.admin-indicator i {
  background:var(--accent);
}
.workspace-search {
  display:flex;
  gap:12px;
  align-items:flex-end;
  margin:32px 0}
.workspace-search .field {
  flex:1;
  min-width:0}
.workspace-search input {
  height:44px}
.directory-heading {
  display:flex;
  justify-content:space-between;
  gap:15px;
  align-items:center;
  margin:0 0 14px}
.directory-heading h2 {
  margin:0}
.directory-heading>span {
  color:var(--muted);
  font-size:11px}
.workspace-list {
  list-style:none;
  margin:0;
  padding:0 18px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
}
.workspace-list li {
  border-bottom:1px solid var(--line)}
.workspace-row {
  display:flex;
  align-items:center;
  gap:14px;
  padding:19px 0;
  border-radius:4px;
}
.workspace-row:hover {
  background:#f8f8f6;
  color:var(--text);
}
.workspace-row-name {
  flex:1;
  min-width:0;
  font-size:13px;
  overflow-wrap:anywhere}
.workspace-open {
  display:flex;
  gap:12px;
  align-items:center;
  font-size:11px;
  color:var(--muted)}
.workspace-open>span {
  color:var(--accent-ink);
  font-size:17px}
.status-badge.suspended {
  background:#fff0df;
  color:var(--accent-ink);
}
.status-badge.suspended i {
  background:#9e5000}
.workspace-pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:25px}
.workspace-pagination>span {
  font-size:11px;
  color:var(--muted)}
.workspace-empty {
  padding:30px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  margin-top:12px;
}
.workspace-empty h2 {
  font-size:15px;
}
.workspace-empty p {
  font-size:12px;
  color:var(--muted);
  line-height:1.75;
}
.workspace-empty .button {
  margin-top:22px}
.workspace-access-note {
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  align-items:center;
  justify-content:space-between;
  padding:16px 0;
  margin-top:24px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:11px;
  color:var(--muted)}
.workspace-access-note>span {
  overflow-wrap:anywhere;
  min-width:0}
.workspace-access-note strong {
  font-weight:500;
  color:var(--text)}
.workspace-access-note>a {
  color:var(--accent-ink)}

@media(max-width:600px) {
  .workspace-switch {
  display:none}
.sidebar nav {
  gap:4px;
  flex-wrap:wrap}
.nav-item {
  padding:0 7px;
  white-space:nowrap;
  font-size:11px}
.nav-item svg {
  flex-shrink:0}
.workspace-header {
  min-height:49px;
  height:auto;
  padding-top:12px;
  padding-bottom:12px;
  gap:12px}
.connection-indicator.admin-indicator {
  display:flex}
.workspace-row {
  gap:10px;
  padding:17px 0;
  flex-wrap:wrap}
.workspace-row-name {
  font-size:12px}
.workspace-open {
  display:none}
.workspace-row .status-badge {
  font-size:9px}
.workspace-search {
  gap:9px}
.workspace-search .button {
  padding:10px;
  font-size:11px}
.workspace-pagination .button {
  padding:9px 11px;
  font-size:11px}
.workspace-access-note {
  align-items:flex-start;
  flex-direction:column}
}


.brand:hover {
  color:var(--text);
}

.page-glyph img,.document-icon img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  padding:11px;
}

input:focus {
  border-color:var(--accent-ink);
}

.button:active {
  transform:translateY(1px);
}

.nav-item.active:hover {
  background:#ffe8cb;
  color:var(--accent-ink);
}

.note-icon img {
  width:32px;
  height:32px;
  object-fit:contain;
}

.workspace-list li:last-child {
  border-bottom:0;
}

/* Compact layouts retain the same light palette and comfortable form controls. */
@media(max-width:600px) {
  .auth-main { padding:20px 18px 32px; }
  .auth-content { padding:28px 24px; max-width:380px; border-radius:16px; }
  .auth-content h1 { font-size:28px; }
  .page-glyph,.document-icon { width:68px; height:68px; border-radius:18px; }
  .workspace-list { padding:0 12px; }
  .workspace-empty { padding:24px 20px; }
  input { font-size:16px; }
  .label-row { flex-wrap:wrap; gap:6px 10px; }
}

/* Client-view identity remains visible above the workspace content. */
.impersonation-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 40px;background:#FFF1DC;border-bottom:2px solid #E98A15;color:#492D12}
.impersonation-banner strong,.impersonation-banner span,.impersonation-banner small{display:block}.impersonation-banner span{margin:4px 0;overflow-wrap:anywhere}.impersonation-banner small{font-size:12px}.impersonation-banner form{flex-shrink:0}.impersonation-banner .button{background:#fff;border-color:#D8953E}
.members-section{margin:36px 0}.member-count{font-size:14px;color:#686862;margin-left:8px}.member-list{list-style:none;margin:16px 0 0;padding:0}.member-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid #E8E8E2}.member-identity{flex:1;min-width:0}.member-identity strong,.member-identity span{display:block;overflow-wrap:anywhere}.member-identity span{font-size:14px;color:#686862;margin-top:4px}.member-open{font-size:12px;padding:10px 14px}.member-row .status-badge{white-space:nowrap}
@media(max-width:760px){.impersonation-banner{align-items:flex-start;flex-direction:column;gap:16px;padding:20px 24px}.member-row{flex-wrap:wrap}.member-identity{flex-basis:65%}.member-row form{width:100%}.member-open{width:100%}}

/* Workspace notification settings. */
.configuration-form{max-width:none;width:100%}.configuration-form .details-section{width:100%}.configuration-list>div{grid-template-columns:minmax(220px,1fr) minmax(180px,280px)}.configuration-list label{font-size:12px;color:var(--text)}.configuration-control{display:flex;justify-content:flex-end;align-items:center}.configuration-control input[type=checkbox]{width:22px;height:22px;margin:0;accent-color:var(--accent)}.configuration-control input[type=email]{height:42px}.configuration-readonly{display:flex;justify-content:flex-end;align-items:center;gap:12px;text-align:right}.configuration-readonly strong{font-size:11px;font-weight:550}.configuration-readonly .field-help{white-space:nowrap}
@media(max-width:600px){.configuration-list>div{grid-template-columns:1fr auto}.configuration-readonly{align-items:flex-end;flex-direction:column;gap:2px}}

/* Read-only campaign directory and derived phone references. */
.campaign-list{list-style:none;margin:16px 0 0;padding:0 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.campaign-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,1fr) auto 16px;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.campaign-list>li:last-child .campaign-row{border-bottom:0}.campaign-heading strong,.campaign-heading span{display:block;overflow-wrap:anywhere}.campaign-heading span{color:var(--muted);font-size:11px;margin-top:3px}.campaign-numbers{display:flex;flex-wrap:wrap;gap:6px}.campaign-numbers>span{font-size:11px;padding:4px 8px;border-radius:5px;background:var(--surface-2);overflow-wrap:anywhere}.campaign-status-draft,.campaign-status-pending,.campaign-status-close{background:var(--surface-2);color:var(--muted)}.campaign-status-done{background:#e9f3ed;color:#236348}
.campaign-row{color:inherit;text-decoration:none;transition:background .15s ease}.campaign-row:hover{background:var(--surface-2)}.campaign-row:hover .campaign-heading strong{color:var(--accent-ink)}.campaign-row:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px;border-radius:4px}.campaign-open{color:var(--accent-ink);font-size:18px}.campaign-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:28px;font-size:12px;color:var(--muted);text-decoration:none}.campaign-back:hover{color:var(--accent-ink)}.campaign-title{overflow-wrap:anywhere}.campaign-settings-link{margin-top:35px;border-top:1px solid var(--line)}
@media(max-width:850px){.campaign-row{grid-template-columns:minmax(0,1fr) auto 16px;gap:12px}.campaign-heading{grid-column:1}.campaign-row>.status-badge{grid-column:2;grid-row:1}.campaign-open{grid-column:3;grid-row:1}.campaign-numbers{grid-column:1/-1;grid-row:2}.campaign-list{padding:0 13px}}
@media(max-width:500px){.campaign-settings-link{align-items:flex-start;flex-direction:column}.campaign-settings-link .button{width:100%}}

/* Portal workspace experience: clear context, readable controls, useful space. */
.ui-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}
.workspace-page{font-size:14px}
.workspace-page .sidebar{background:var(--surface);padding-top:28px}
.workspace-name{padding:14px 10px;margin:24px 0 18px;border:1px solid var(--line);border-radius:10px;gap:10px}
.workspace-name:hover{background:var(--bg);color:var(--text)}
.workspace-name strong{font-size:13px}.workspace-name>div{min-width:0}.workspace-name>div>strong{overflow-wrap:anywhere;white-space:normal}
.workspace-switch{font-size:12px;margin:0 4px 24px;padding:0 6px}
.sidebar nav{gap:6px}.nav-item{min-height:44px;font-size:13px;gap:10px}.nav-item.active{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}
.workspace-header{height:68px;background:var(--bg);font-size:13px;border-bottom-color:var(--line)}
.workspace-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:4px;line-height:1.5}.workspace-breadcrumb>a{font-weight:550}.workspace-breadcrumb>span:last-child{color:var(--muted)}
.document{max-width:1120px;padding:42px 48px 64px}.document-icon{width:52px;height:52px;margin-bottom:20px;border-radius:14px}.document-icon img{width:46px;height:46px}.document h1{font-size:32px;letter-spacing:-1px;margin-bottom:10px}.document-intro{font-size:14px;line-height:1.7;max-width:70ch;margin-bottom:0}
.document h2{font-size:17px;letter-spacing:-.3px}.field-help{font-size:12px;line-height:1.6}.workspace-page .button{min-height:44px;font-size:13px;padding:10px 18px;white-space:normal}.workspace-page .field label{font-size:13px}.workspace-page input:not([type=checkbox]){min-height:44px;font-size:14px}
select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px 34px 8px 12px;width:100%}
.directory-heading{margin-bottom:16px}.directory-heading>span{font-size:12px}.directory-heading>a{font-size:13px;color:var(--accent-ink);font-weight:550}.workspace-search{margin:28px 0 32px}.workspace-row{min-height:80px}.workspace-row-name{font-size:14px;font-weight:550}.workspace-open{font-size:12px}.status-badge{font-size:11px;font-weight:550;padding:5px 9px;white-space:nowrap}.campaign-status-in_progress{background:#e9f3ed;color:#236348}.campaign-status-done{background:#edf1f8;color:#3e5277}.campaign-status-pending{background:#fff0df;color:#9e5000}
.list-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:28px 0 32px}.list-filters>.field:first-child{flex:1;min-width:190px}.filter-status{width:175px}.filter-clear{align-self:center;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.campaign-list{margin-top:0;padding:0 20px}.campaign-row{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto 16px;min-height:90px;padding:20px 0;gap:18px}.campaign-heading strong{font-size:14px;font-weight:600}.campaign-heading span{font-size:12px;margin-top:5px}.campaign-numbers>span{font-size:12px;padding:5px 9px;font-variant-numeric:tabular-nums}.campaign-back{font-size:13px;margin-bottom:24px}.campaign-settings-link{margin-top:32px}.campaign-title{max-width:30ch}
.overview-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:28px 0 38px}.overview-action{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);padding:22px;border-radius:12px;min-width:0}.overview-action>.ui-icon:first-child{color:var(--accent-ink);width:24px;height:24px}.overview-action>.ui-icon:last-child{width:16px;margin-left:auto;color:var(--muted)}.overview-action strong,.overview-action small{display:block}.overview-action strong{font-size:14px;font-weight:600}.overview-action small{font-size:12px;color:var(--muted);line-height:1.65;margin-top:4px}.overview-action:hover{border-color:#dcac78;color:var(--text);background:#fffdfa}.overview-campaigns{margin-bottom:36px}
.details-list>div{font-size:13px;min-height:54px}.contact-line p{font-size:12px}.workspace-empty h2{font-size:17px}.workspace-empty p{font-size:13px}.member-identity span{font-size:13px}.member-count{font-size:13px}.members-section{margin-top:40px}.member-list{background:var(--surface);border:1px solid var(--line);padding:0 18px;border-radius:12px}.member-list>.field-help{padding:20px 0}.member-row:last-child{border-bottom:0}.member-row .button{font-size:12px}.member-row{gap:12px}.member-identity strong{font-size:14px}
.configuration-form{display:block;width:100%;margin:28px 0 0}.settings-panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.settings-recipient{padding:26px 28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1fr);gap:28px;align-items:start;background:#fffdfa}.settings-recipient .field-help{margin:6px 0 0}.settings-group{padding:26px 28px 4px;border-top:1px solid var(--line)}.settings-group h2{display:flex;align-items:center;gap:10px;margin:0 0 4px}.settings-group h2>.ui-icon{color:var(--accent-ink)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;border-top:1px solid #f0f1ef}.settings-group h2+.setting-row{border-top:0}.setting-copy{min-width:0}.setting-copy label{font-size:13px;line-height:1.5;font-weight:550;cursor:pointer}.setting-copy .field-help{margin:4px 0 0}.setting-switch{position:relative;display:flex;align-items:center;flex-direction:column;gap:5px;flex-shrink:0;width:72px}.setting-switch>input[type=checkbox]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.switch-track{display:block;position:relative;width:42px;height:24px;background:#c5ccd1;border-radius:20px;transition:background .15s}.switch-track:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:white;box-shadow:0 1px 3px #0002;transition:transform .15s}.setting-switch>input:checked+.switch-track{background:var(--accent)}.setting-switch>input:checked+.switch-track:after{transform:translateX(18px)}.setting-switch>input:focus-visible+.switch-track{outline:2px solid var(--accent-ink);outline-offset:4px}.switch-text{font-size:11px;color:var(--muted)}.switch-on{display:none}.setting-switch>input:checked~.switch-text .switch-on{display:inline}.setting-switch>input:checked~.switch-text .switch-off{display:none}.configuration-readonly{font-size:12px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.configuration-readonly strong{font-size:13px;overflow-wrap:anywhere}.configuration-readonly .field-help{white-space:normal}.settings-savebar{position:sticky;bottom:16px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;margin-top:18px;border:1px solid var(--line);background:var(--surface);border-radius:12px;box-shadow:0 4px 18px #0f1b2908}.settings-savebar>div{display:flex;gap:10px}.settings-save-status{font-size:12px;color:var(--muted)}.configuration-form[data-dirty=true] .settings-save-status{color:var(--accent-ink)}.field-error{color:#a13220;font-size:12px;line-height:1.5;margin-top:5px;display:block}input[aria-invalid=true]{border-color:#b93a25;background:#fffafa}.notice{font-size:13px;line-height:1.6}.notice ul{margin:8px 0 0;padding-left:20px}.settings-savebar [hidden]{display:none}
@media(max-width:1000px){.document{padding:36px 28px 56px}.overview-actions{grid-template-columns:1fr;gap:10px}.overview-action{padding:18px}.settings-recipient{grid-template-columns:1fr;gap:18px}.campaign-row{grid-template-columns:minmax(0,1fr) auto 16px;gap:12px}.campaign-heading{grid-column:1}.campaign-row>.status-badge{grid-column:2;grid-row:1}.campaign-open{grid-column:3;grid-row:1}.campaign-numbers{grid-column:1/-1;grid-row:2}}
@media(max-width:760px){.settings-recipient,.settings-group{padding-left:20px;padding-right:20px}.settings-savebar{flex-wrap:wrap;bottom:8px;padding:14px}.settings-savebar>div{width:100%}.settings-savebar button[type=submit]{flex:1}.list-filters .filter-status{flex:1;min-width:150px}.list-filters>.field:first-child{flex-basis:100%}.workspace-search{gap:8px}.member-list{padding:0 14px}.member-row{flex-wrap:wrap}}
@media(max-width:600px){.workspace-page .sidebar{padding:18px 18px 0}.sidebar .brand{font-size:22px}.workspace-name{display:flex;max-width:calc(100% - 8px);margin:18px 0 12px;padding:10px 12px;background:var(--bg)}.workspace-name .workspace-avatar{width:30px;height:30px}.workspace-name>div>span{font-size:11px}.workspace-switch{display:flex;margin:0 4px 12px;font-size:12px}.sidebar nav{overflow-x:auto;overscroll-behavior-x:contain;flex-wrap:nowrap;margin:8px -18px 0;padding:0 14px 12px;gap:4px}.nav-item{flex:0 0 auto;min-height:42px;padding:0 12px;font-size:12px;white-space:nowrap}.nav-item.active{box-shadow:inset 0 -2px var(--accent)}.nav-item svg{width:16px;height:16px}.workspace-header{height:auto;min-height:48px;padding:12px 20px;font-size:12px}.breadcrumb-slash{padding:0 6px}.document{padding:28px 20px 48px}.document h1{font-size:28px}.document-intro{font-size:13px}.document-icon{width:44px;height:44px;margin-bottom:16px}.document-icon img{width:40px;height:40px}.workspace-page input:not([type=checkbox]),.workspace-page select{font-size:16px}.directory-heading{gap:10px}.workspace-row{flex-wrap:wrap;gap:10px;padding:16px 0}.workspace-row-name{font-size:14px}.workspace-open{display:none}.workspace-list,.campaign-list{padding:0 14px}.campaign-heading strong{font-size:13px}.campaign-heading span{font-size:11px}.campaign-numbers>span{font-size:11px}.overview-actions{margin:24px 0 28px}.setting-row{gap:14px;padding:18px 0}.setting-switch{width:60px}.settings-recipient,.settings-group{padding-left:16px;padding-right:16px}.setting-copy label{font-size:13px}.setting-copy .field-help{font-size:12px}.settings-savebar .button{padding:10px 12px;font-size:12px}.configuration-readonly{max-width:100%;overflow-wrap:anywhere}.workspace-footer{font-size:11px;padding:20px}}

/* Workspace selection stays in the top-right application header. */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.workspace-page .sidebar nav{margin-top:28px}.workspace-header{position:sticky;top:0;z-index:10;gap:16px}.workspace-breadcrumb{flex:1;min-width:0}.workspace-picker{position:relative;flex-shrink:0;font-size:13px}.workspace-picker>summary,.workspace-current{display:flex;align-items:center;gap:9px;min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer;list-style:none;color:var(--text)}.workspace-picker>summary::-webkit-details-marker{display:none}.workspace-picker>summary:hover,.workspace-picker[open]>summary{border-color:#d4ae81;background:#fffdfa}.workspace-picker>summary>.ui-icon{width:16px;height:16px}.picker-name{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.picker-avatar{display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;border-radius:6px;background:var(--accent-soft);color:var(--accent-ink);font-size:12px;font-weight:650}.workspace-current{cursor:default}.workspace-picker-popover{position:absolute;right:0;top:calc(100% + 10px);width:min(340px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:0 12px 40px #0f1b2920;padding:8px}.picker-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 8px 14px}.picker-heading strong{font-size:13px}.picker-heading>span{font-size:11px;color:var(--muted)}.picker-search{padding:0 6px 8px}.picker-search input{min-height:40px;font-size:13px;padding:8px 10px}.picker-results{list-style:none;margin:0;padding:0}.picker-results a{display:flex;align-items:center;gap:10px;padding:11px 9px;border-radius:7px;font-size:13px}.picker-results a:hover,.picker-results a:focus-visible{background:var(--surface-2);color:var(--text)}.picker-results a[aria-current=true]{background:var(--accent-soft)}.picker-results a>span{flex:1;overflow-wrap:anywhere}.picker-results small{font-size:10px;color:var(--muted);flex-shrink:0}.picker-status{font-size:12px;color:var(--muted);padding:8px;margin:0;line-height:1.6}.picker-directory{display:flex;align-items:center;justify-content:space-between;padding:13px 9px 7px;border-top:1px solid var(--line);margin-top:6px;font-size:12px;color:var(--accent-ink)}.picker-directory svg{width:15px;height:15px}.workspace-picker [hidden]{display:none}
@media(max-width:600px){.workspace-page .sidebar nav{margin-top:20px}.workspace-header{gap:10px;padding:10px 16px}.workspace-picker>summary,.workspace-current{gap:6px;padding:5px 7px;min-height:38px;font-size:12px}.picker-name{max-width:140px}.picker-avatar{width:24px;height:24px}.workspace-breadcrumb{font-size:11px}.workspace-picker-popover{right:0}.workspace-picker input{font-size:16px}}
@media(max-width:390px){.picker-name{max-width:104px}.workspace-breadcrumb>a{display:none}.workspace-breadcrumb>.breadcrumb-slash{display:none}}

/* Campaign links own the complete surface, including their horizontal gutters. */
.campaign-list { padding:0; }
.campaign-row { padding:20px; border-bottom:0; color:var(--text); }
.campaign-list>li+li { border-top:1px solid var(--line); }
.campaign-list>li:first-child>.campaign-row { border-radius:11px 11px 0 0; }
.campaign-list>li:last-child>.campaign-row { border-radius:0 0 11px 11px; }
.campaign-list>li:only-child>.campaign-row { border-radius:11px; }
.campaign-row:hover { color:var(--text); }
.campaign-row:focus-visible { outline-offset:-3px; }

/* A client dashboard leads with the next concrete step, then readable evidence. */
.dashboard-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; }
.dashboard-heading>div { min-width:0; }
.dashboard-heading>.button { flex-shrink:0; }
.dashboard-heading h1 { max-width:26ch; }
.dashboard-section { margin-top:36px; min-width:0; }
.dashboard-section.first-section { margin-top:0; }
.dashboard-section>h2 { margin-bottom:10px; }
.dashboard-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.dashboard-campaign-context,.section-intro { color:var(--muted); font-size:13px; max-width:65ch; }
.dashboard-campaign-context { margin-bottom:8px; }
.dashboard-empty { color:var(--muted); font-size:13px; line-height:1.75; padding:22px 0; }
.text-link { display:inline-flex; align-items:center; min-height:44px; color:var(--accent-ink); font-size:12px; font-weight:550; text-decoration:underline; text-underline-offset:4px; }
.text-link:hover { color:var(--text); }
.next-action { display:flex; align-items:center; gap:20px; margin:30px 0; padding:26px; background:var(--accent-soft); border-left:4px solid var(--accent); border-radius:0 14px 14px 0; }
.next-action-symbol { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--surface); color:var(--accent-ink); flex-shrink:0; }
.next-action-copy { flex:1; min-width:0; }
.next-action-label { font-size:12px; color:var(--accent-ink); font-weight:600; margin-bottom:5px; }
.document .next-action h2 { font-size:21px; line-height:1.35; margin-bottom:7px; }
.next-action-copy>p:not(.next-action-label) { font-size:13px; line-height:1.7; max-width:60ch; }
.next-action-copy>small { display:block; margin-top:8px; font-size:12px; color:var(--muted); }
.next-action-date { margin-top:8px; font-weight:550; }
.action-button { background:var(--accent); color:var(--text); border-color:var(--accent); flex-shrink:0; max-width:220px; }
.action-button:hover { background:#f3992f; color:var(--text); }
.dashboard-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:24px 0 0; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.dashboard-metrics>div { padding:22px 20px; min-width:0; }
.dashboard-metrics>div+div { border-left:1px solid var(--line); }
.dashboard-metrics dt { color:var(--muted); font-size:12px; font-weight:500; }
.dashboard-metrics dd { margin:9px 0 0; }
.dashboard-metrics dd>span:not(.visually-hidden) { font-family:"Geist",sans-serif; font-size:34px; font-weight:600; letter-spacing:-1px; line-height:1.1; font-variant-numeric:tabular-nums; }
.dashboard-metrics dd>small { display:block; font-size:11px; color:var(--muted); margin-top:9px; line-height:1.5; }
.dashboard-source-notice { margin-top:14px; color:var(--accent-ink); font-size:12px; line-height:1.65; }
.dashboard-source-warnings { padding:18px 22px; margin:24px 0; border:1px solid #dfc9ae; border-radius:10px; background:var(--surface); font-size:12px; color:var(--muted); }
.document .dashboard-source-warnings h2 { font-size:15px; color:var(--accent-ink); margin-bottom:7px; }
.dashboard-source-warnings>p { max-width:75ch; }
.dashboard-source-warnings>ul { list-style:none; margin:10px 0 0; padding:0; }
.dashboard-source-warnings>ul>li+li { border-top:1px solid var(--line); margin-top:12px; padding-top:6px; }
.dashboard-source-warnings li>ul { padding-left:18px; }
.dashboard-source-warnings li>ul>li { margin-bottom:6px; line-height:1.7; }
.dashboard-source-warnings strong { font-weight:550; color:var(--text); }
.dashboard-metric-coverage { margin-top:12px; color:var(--muted); font-size:12px; line-height:1.7; }
.dashboard-metric-coverage>p { font-weight:550; color:var(--text); }
.dashboard-metric-coverage>ul { padding-left:18px; margin:6px 0 0; }
.dashboard-metric-coverage strong { font-weight:550; }
.dashboard-records .record-campaign { font-size:12px; margin-top:5px; }
.dashboard-freshness { font-size:12px; color:var(--muted); margin-top:12px; }
.dashboard-freshness summary { cursor:pointer; min-height:44px; padding:11px 0; width:fit-content; }
.dashboard-freshness>p { margin:4px 0 10px; max-width:80ch; }
.source-list { margin:16px 0 0; border-top:1px solid var(--line); }
.source-list>div { display:grid; grid-template-columns:minmax(125px,1fr) minmax(0,3fr); gap:16px; padding:10px 0; border-bottom:1px solid var(--line); }
.source-list dt { font-weight:550; color:var(--text); }
.source-list dd { margin:0; }
.source-list small { display:block; font-size:11px; margin-top:3px; }
.onboarding-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.onboarding-summary p { color:var(--muted); font-size:13px; max-width:60ch; }
.onboarding-summary>span { font-size:12px; color:var(--muted); white-space:nowrap; }
.onboarding-progress { display:block; width:100%; height:6px; appearance:none; border:0; border-radius:8px; overflow:hidden; margin:20px 0 24px; background:var(--line); accent-color:var(--green); }
.onboarding-progress::-webkit-progress-bar { background:var(--line); }
.onboarding-progress::-webkit-progress-value { background:var(--green); }
.onboarding-progress::-moz-progress-bar { background:var(--green); }
.onboarding-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.onboarding-side { min-width:0; }
.onboarding-side-title { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.onboarding-side-title h3 { font-size:14px; margin:0; font-weight:600; }
.onboarding-side-title>span { color:var(--muted); font-size:12px; }
.onboarding-steps { list-style:none; margin:0; padding:0; }
.onboarding-step { display:flex; align-items:flex-start; gap:12px; padding:18px 0; border-bottom:1px solid var(--line); }
.onboarding-step>div { min-width:0; flex:1; }
.step-marker { display:grid; place-items:center; width:22px; height:22px; flex-shrink:0; color:var(--muted); background:var(--surface); border:1px solid var(--line); border-radius:50%; font-size:13px; }
.step-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.step-heading>strong { font-size:13px; line-height:1.55; font-weight:550; overflow-wrap:anywhere; }
.step-status { white-space:nowrap; color:var(--muted); font-size:11px; margin-top:2px; }
.onboarding-step p { font-size:12px; line-height:1.65; color:var(--muted); margin-top:7px; overflow-wrap:anywhere; }
.step-done .step-marker { color:#236348; background:#e9f3ed; border-color:#b6d6c8; }
.step-done .step-status { color:#236348; }
.step-blocked .step-marker { color:var(--accent-ink); border-color:#dcac78; background:var(--accent-soft); }
.step-blocked .step-status,.onboarding-step .step-blocked-reason { color:var(--accent-ink); }
.onboarding-all { margin-top:14px; }
.dashboard-records,.dashboard-sessions { list-style:none; padding:0; margin:14px 0 0; border-top:1px solid var(--line); }
.dashboard-records>li,.dashboard-sessions>li { padding:18px 0; border-bottom:1px solid var(--line); }
.record-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px; justify-content:space-between; }
.record-heading strong { font-size:13px; font-weight:550; overflow-wrap:anywhere; }
.record-heading time,.record-heading>span { font-size:11px; color:var(--muted); }
.dashboard-records p { margin-top:8px; font-size:13px; line-height:1.75; color:var(--muted); overflow-wrap:anywhere; }
.dashboard-records .text-link { margin-top:2px; }
.dashboard-subheading { font-size:14px; margin:30px 0 12px; }
.report-summary { white-space:pre-line; max-width:75ch; }
.report-metrics { display:flex; flex-wrap:wrap; gap:12px 28px; margin:16px 0; }
.report-metrics:empty { display:none; }
.report-metrics dt { font-size:12px; color:var(--muted); }
.report-metrics dd { margin:3px 0 0; font-size:18px; font-weight:600; font-variant-numeric:tabular-nums; }
.dashboard-sessions>li:not(.dashboard-empty) { display:flex; align-items:center; gap:18px; }
.session-date { display:flex; flex-direction:column; align-items:center; justify-content:center; flex-shrink:0; min-width:70px; min-height:66px; padding:6px; border:1px solid var(--line); border-radius:9px; background:var(--surface); }
.session-date strong { font-family:"Geist",sans-serif; font-size:24px; line-height:1.2; }
.session-date>span { color:var(--muted); font-size:11px; }
.session-copy { flex:1; min-width:0; }
.session-copy>strong { display:block; font-size:13px; font-weight:550; }
.session-copy>span,.session-copy>p { font-size:12px; color:var(--muted); line-height:1.7; }
.session-copy>p { margin-top:5px; }
.session-count { font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
.campaign-summary-line { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-top:18px; color:var(--muted); font-size:12px; }
.campaign-tabs { display:flex; gap:28px; overflow-x:auto; border-bottom:1px solid var(--line); margin:28px 0; }
.campaign-tabs>a { display:flex; align-items:center; min-height:48px; padding:0 2px; border-bottom:3px solid transparent; font-size:13px; color:var(--muted); white-space:nowrap; }
.campaign-tabs>a[aria-current=page] { border-bottom-color:var(--accent); color:var(--text); font-weight:600; }
.campaign-tabs>a:hover { color:var(--accent-ink); }
.campaign-tabs>a:focus-visible { outline-offset:-3px; }
.campaign-complete-note { padding:22px 0; margin-bottom:14px; border-bottom:1px solid var(--line); }
.campaign-complete-note>p { color:var(--muted); font-size:13px; max-width:70ch; }
.dashboard-table-wrap { overflow-x:auto; margin-top:20px; }
.dashboard-table { border-collapse:collapse; width:100%; font-size:13px; font-variant-numeric:tabular-nums; }
.dashboard-table th,.dashboard-table td { padding:13px 12px; border-bottom:1px solid var(--line); text-align:right; }
.dashboard-table th:first-child { text-align:left; padding-left:0; }
.dashboard-table thead th { color:var(--muted); font-size:12px; font-weight:500; }
.dashboard-table tbody th { font-weight:500; white-space:nowrap; }
.prospect-counts { display:flex; flex-wrap:wrap; gap:16px 30px; margin-top:18px; }
.prospect-counts>div { display:flex; align-items:center; gap:16px; }
.prospect-counts dt { color:var(--muted); font-size:13px; }
.prospect-counts dd { margin:0; font-size:18px; font-weight:600; font-variant-numeric:tabular-nums; }
@media(max-width:1100px) {
  .next-action { flex-wrap:wrap; }
  .next-action>.button { margin-left:62px; }
  .dashboard-heading { flex-wrap:wrap; gap:18px; }
  .dashboard-metrics>div { padding:20px 14px; }
  .onboarding-columns,.dashboard-columns { gap:20px; }
  .step-heading { flex-direction:column; gap:2px; }
}
@media(max-width:850px) {
  .dashboard-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-metrics>div:nth-child(3) { border-left:0; }
  .dashboard-metrics>div:nth-child(n+3) { border-top:1px solid var(--line); }
  .onboarding-columns,.dashboard-columns { grid-template-columns:minmax(0,1fr); gap:24px; }
  .dashboard-columns>.dashboard-section+.dashboard-section { margin-top:4px; }
  .step-heading { flex-direction:row; gap:10px; }
}
@media(max-width:600px) {
  .campaign-list { padding:0; }
  .campaign-row { padding:18px 14px; }
  .dashboard-section { margin-top:30px; }
  .next-action { padding:20px 18px; gap:14px; margin:24px 0; }
  .next-action-symbol { display:none; }
  .next-action-copy { flex-basis:100%; }
  .document .next-action h2 { font-size:20px; }
  .next-action>.button { margin-left:0; max-width:none; }
  .dashboard-metrics>div { padding:18px 14px; }
  .dashboard-metrics dd>span:not(.visually-hidden) { font-size:30px; }
  .onboarding-summary { align-items:flex-start; flex-direction:column; gap:10px; }
  .source-list>div { grid-template-columns:1fr; gap:4px; }
  .campaign-tabs { gap:24px; margin:22px 0; }
  .dashboard-sessions>li:not(.dashboard-empty) { flex-wrap:wrap; gap:12px; }
  .session-count { flex-basis:100%; padding-left:82px; }
}

/* The campaign is a shared workbench: responsibilities first, evidence underneath. */
.checklist-board { margin:24px 0 30px; background:var(--surface); border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.checklist-board-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 28px 24px; border-bottom:1px solid var(--line); }
.document .checklist-board-heading h2 { font-size:23px; letter-spacing:-.5px; margin:0 0 6px; }
.checklist-board-heading p { color:var(--muted); font-size:14px; line-height:1.5; }
.checklist-completion { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.checklist-completion svg { width:48px; height:48px; transform:rotate(-90deg); fill:none; stroke-width:4; }
.completion-track { stroke:var(--line); }
.completion-value { stroke:#18784a; stroke-linecap:round; }
.checklist-completion strong { font-family:Geist,sans-serif; display:block; font-size:20px; font-weight:600; font-variant-numeric:tabular-nums; }
.checklist-completion span { color:var(--muted); font-size:12px; }
.checklist-sides { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.checklist-side { padding:24px 22px 14px; min-width:0; }
.checklist-side-client { background:#fffdf8; }
.checklist-side+.checklist-side { border-left:1px solid var(--line); }
.checklist-side>header { display:flex; align-items:center; gap:12px; padding:0 6px 15px; }
.checklist-side-icon { display:grid; place-items:center; width:38px; height:38px; flex-shrink:0; background:var(--accent-soft); color:var(--accent-ink); border-radius:11px; }
.checklist-side-saleson .checklist-side-icon { background:var(--bg); color:var(--text); }
.document .checklist-side h3 { font-size:16px; margin:0; letter-spacing:-.15px; }
.checklist-side>header p { color:var(--muted); font-size:12px; margin-top:3px; }
.checklist-tasks { list-style:none; margin:0; padding:0; }
.checklist-task { display:flex; align-items:flex-start; gap:4px; padding:15px 0; border-top:1px solid var(--line); }
.checklist-toggle { width:44px; height:44px; margin-top:-7px; flex-shrink:0; position:relative; display:grid; place-items:center; cursor:pointer; }
.checklist-toggle input { position:absolute; inset:0; width:44px; height:44px; opacity:0; margin:0; cursor:pointer; z-index:1; }
.checklist-checkbox { display:grid; place-items:center; width:24px; height:24px; border:1.5px solid #85909b; border-radius:7px; background:#fff; color:#fff; }
.checklist-checkbox svg { width:20px; height:20px; opacity:0; }
.checklist-toggle input:checked+.checklist-checkbox { background:#18784a; border-color:#18784a; }
.checklist-toggle input:checked+.checklist-checkbox svg { opacity:1; }
.checklist-toggle input:focus-visible+.checklist-checkbox { outline:3px solid #b36a08; outline-offset:4px; }
.checklist-toggle input:disabled { cursor:default; }
.checklist-toggle input:disabled:not(:checked)+.checklist-checkbox { border-style:dashed; border-color:#aeb7be; background:var(--bg); }
.checklist-task-copy { flex:1; min-width:0; padding-right:6px; }
.checklist-task-copy>strong { display:block; font-size:15px; font-weight:550; line-height:1.55; overflow-wrap:anywhere; }
.checklist-task-meta { display:flex; gap:8px 15px; flex-wrap:wrap; align-items:center; margin-top:7px; font-size:12px; color:var(--muted); }
.task-state { color:var(--accent-ink); font-size:11px; font-weight:550; }
.is-done .task-state { color:#18784a; }
.is-done .checklist-task-copy>strong { color:var(--muted); font-weight:450; }
.checklist-task-copy>p { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.65; white-space:pre-line; }
.checklist-task-copy .checklist-verification { font-size:11px; }
.checklist-task-copy .checklist-save-state { color:var(--accent-ink); font-weight:550; }
.checklist-retry { border:0; padding:0; background:none; cursor:pointer; }
.checklist-completed { margin-top:5px; border-top:1px solid var(--line); }
.checklist-completed summary { color:var(--muted); font-size:12px; cursor:pointer; padding:15px 6px; min-height:48px; }
.checklist-completed[open] summary { margin-bottom:5px; }
.checklist-side-clear { display:flex; align-items:center; gap:8px; padding:15px 6px 23px; font-size:13px; color:#18784a; }
.checklist-help { margin:0; padding:13px 28px; color:var(--muted); font-size:12px; border-top:1px solid var(--line); background:var(--bg); }
.checklist-unconfigured { display:flex; align-items:center; gap:18px; padding:25px 0; margin-bottom:18px; border-bottom:1px solid var(--line); }
.checklist-unconfigured>div:not(.checklist-side-icon) { flex:1; }
.document .checklist-unconfigured h2 { font-size:18px; margin:0 0 7px; }
.checklist-unconfigured p { font-size:13px; line-height:1.65; color:var(--muted); max-width:65ch; }
.legacy-checklist { padding:24px; }
.portal-toast { position:fixed; z-index:100; bottom:28px; left:50%; transform:translateX(-50%); width:max-content; max-width:calc(100vw - 40px); border-radius:12px; padding:17px 24px; background:#143e2a; color:#fff; box-shadow:0 8px 32px #0f1b2926; font-size:14px; font-weight:550; }
.checklist-task[aria-busy=true] .checklist-checkbox { border:2px solid var(--line); border-top-color:var(--accent-ink); border-radius:50%; animation:task-saving 1s linear infinite; }
.checklist-task[aria-busy=true] .checklist-checkbox svg { opacity:0; }
@keyframes task-saving { to { transform:rotate(360deg); } }
.chart-periods { display:flex; align-items:center; gap:3px; padding:3px; background:var(--surface); border:1px solid var(--line); border-radius:9px; }
.chart-periods a { padding:8px 11px; min-height:36px; display:flex; align-items:center; font-size:11px; color:var(--muted); border-radius:6px; white-space:nowrap; }
.chart-periods a[aria-current=true] { background:var(--text); color:#fff; }
.campaign-analytics .dashboard-metrics { margin-top:0; border-radius:12px 12px 0 0; border-bottom:0; }
.analytics-charts { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); background:var(--surface); border:1px solid var(--line); border-radius:0 0 12px 12px; }
.chart-panel { min-width:0; padding:24px; }
.chart-panel+.chart-panel { border-left:1px solid var(--line); }
.chart-panel-heading { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:10px; }
.chart-panel-heading h3 { margin:0; }
.document .chart-panel h3 { font-size:15px; margin:0; font-weight:550; }
.chart-panel-heading>span,.chart-subtitle { font-size:11px; color:var(--muted); }
.chart-subtitle { margin-top:6px; }
.chart-legend { display:flex; flex-wrap:wrap; gap:9px 17px; margin:16px 0 12px; font-size:11px; color:var(--muted); }
.chart-legend>span { display:flex; gap:6px; align-items:center; }
.chart-legend i { width:9px; height:9px; display:inline-block; border-radius:2px; }
.legend-contacts,.chart-bar-contacts { fill:#e37c00; background:#e37c00; }
.legend-attempts,.chart-bar-attempts { fill:#44566b; background:#44566b; }
.call-chart-scroll { overflow:auto; max-width:100%; }
.call-chart-scroll svg { display:block; min-width:100%; max-width:none; width:auto; height:236px; }
.chart-gridline { stroke:var(--line); stroke-dasharray:3 4; }
.chart-axis { fill:var(--muted); font:10px Inter,sans-serif; }
[data-chart-day]:focus { outline:none; }
[data-chart-day]:focus rect { stroke:var(--text); stroke-width:2; }
.chart-data { color:var(--muted); font-size:11px; }
.chart-data summary { padding:10px 0; min-height:40px; cursor:pointer; }
.chart-data caption { text-align:left; padding-bottom:12px; font-size:12px; color:var(--muted); }
.chart-coverage { color:var(--accent-ink); font-size:12px; margin-bottom:10px; }
.chart-empty { min-height:220px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; position:relative; padding:28px 6px; }
.chart-empty>svg { width:100%; height:80px; position:absolute; top:18px; left:0; stroke:var(--line); fill:none; opacity:.6; }
.chart-empty strong { position:relative; margin-top:28px; font-size:13px; font-weight:550; }
.chart-empty p { font-size:12px; line-height:1.65; color:var(--muted); max-width:48ch; margin-top:8px; }
.chart-empty.compact { min-height:240px; padding:24px 0; }
.chart-empty.compact strong { margin-top:16px; }
.empty-prospects { color:#85909b; }
.empty-prospects svg { width:32px; height:32px; }
.prospect-bars { list-style:none; padding:0; margin:26px 0 6px; }
.prospect-bars li { margin-bottom:20px; }
.prospect-bars li>div { display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:12px; }
.prospect-bars strong { font-family:Geist,sans-serif; font-size:16px; font-weight:550; }
.prospect-bars meter { appearance:none; display:block; width:100%; height:7px; margin-top:9px; border:none; background:#edf0f2; border-radius:10px; }
.prospect-bars meter::-webkit-meter-bar { border:0; background:#edf0f2; border-radius:10px; }
.prospect-bars meter::-webkit-meter-optimum-value { background:#44566b; border-radius:10px; }
.prospect-bars meter::-moz-meter-bar { background:#44566b; border-radius:10px; }
.appointment-outcomes { border-top:1px solid var(--line); margin-top:20px; padding-top:17px; }
.appointment-outcomes h4 { font-size:12px; font-weight:550; }
.appointment-outcomes dl { display:flex; flex-wrap:wrap; gap:20px; margin-top:12px; }
.appointment-outcomes dt { font-size:11px; color:var(--muted); }
.appointment-outcomes dd { font-size:20px; margin:4px 0 0; }
.resource-library { margin-top:22px; }
.resource-group+.resource-group { margin-top:26px; }
.document .resource-group h3 { font-size:14px; margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.resource-group h3>span { font-size:11px; color:var(--muted); font-weight:400; }
.resource-list { list-style:none; padding:0; margin:0; border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:hidden; }
.resource-item { padding:20px; display:flex; align-items:flex-start; gap:15px; }
.resource-item+.resource-item { border-top:1px solid var(--line); }
.resource-icon { display:grid; place-items:center; width:38px; height:45px; border:1px solid var(--line); border-radius:7px; background:var(--bg); color:var(--muted); flex-shrink:0; }
.resource-copy { flex:1; min-width:0; }
.resource-copy strong { font-size:14px; font-weight:550; line-height:1.5; display:block; overflow-wrap:anywhere; }
.resource-copy p,.resource-copy small { color:var(--muted); font-size:11px; line-height:1.65; margin-top:5px; display:block; }
.resource-state { display:inline-block; margin-top:8px; font-size:11px; }
.resource-state-pending { color:var(--accent-ink); }
.resource-state-completed { color:#18784a; }
.resource-state-expired,.resource-state-declined { color:#8e3934; }
.resource-item>.button,.resource-item form .button { min-height:40px; font-size:11px; padding:9px 14px; }
.resource-empty { display:flex; align-items:flex-start; gap:15px; padding:22px 0; }
.document .resource-empty h3 { font-size:14px; margin:0 0 7px; }
.resource-empty p { font-size:12px; line-height:1.7; color:var(--muted); max-width:55ch; }
.signature-feedback { color:var(--muted); font-size:12px; line-height:1.6; margin-top:10px; max-width:32ch; }
.sales-book-preview { display:flex; align-items:center; gap:24px; }
.sales-book-preview p { color:var(--muted); font-size:13px; line-height:1.7; max-width:45ch; }
.sales-book-preview small { display:block; font-size:11px; color:var(--muted); margin-top:8px; }
.mini-book { background:#24394a; color:white; font-family:Geist,sans-serif; padding:36px 18px 24px; font-size:25px; font-weight:550; line-height:1.05; flex-shrink:0; width:108px; height:142px; border-radius:3px 9px 9px 3px; border-left:6px solid #142a3b; box-shadow:3px 3px 0 #cbd2d4; }
.sales-book-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.sales-book-heading p { font-size:12px; color:var(--muted); margin-top:7px; }
.sales-book-intro { font-size:14px; line-height:1.8; max-width:78ch; color:var(--muted); margin:22px 0 32px; }
.sales-book-layout { display:grid; grid-template-columns:205px minmax(0,1fr); gap:44px; align-items:start; }
.sales-book-index { position:sticky; top:100px; border-left:2px solid var(--line); max-height:calc(100vh - 130px); overflow:auto; }
.sales-book-index>a { display:block; padding:11px 16px; font-size:12px; line-height:1.4; color:var(--muted); }
.sales-book-index>a:hover,.sales-book-index>a:focus-visible { color:var(--text); background:var(--surface); }
.sales-book-content { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:32px 36px; max-width:800px; }
.sales-book-section { scroll-margin-top:110px; }
.sales-book-section+.sales-book-section { border-top:1px solid var(--line); padding-top:30px; margin-top:30px; }
.document .sales-book-section h2 { font-size:21px; margin:0 0 18px; }
.sales-book-section p,.sales-book-section li,.sales-book-section blockquote { font-size:14px; line-height:1.85; white-space:pre-line; overflow-wrap:anywhere; }
.sales-book-section ul { padding-left:21px; margin:10px 0; }
.sales-book-section li+li { margin-top:9px; }
.book-entry+.book-entry { margin-top:22px; padding-top:22px; border-top:1px solid var(--line); }
.document .book-entry h3 { font-size:15px; margin-bottom:10px; line-height:1.6; }
.book-entry blockquote { margin:0; padding:4px 0 4px 18px; border-left:3px solid var(--accent); }
.book-entry .book-support { margin-top:12px; color:var(--muted); font-size:12px; }
.book-entry-date { display:block; font-size:12px; color:var(--accent-ink); margin-bottom:8px; }
.sales-book-empty { display:flex; align-items:center; gap:48px; padding:36px 0; }
.sales-book-empty>div:last-child { max-width:56ch; }
.sales-book-empty p { color:var(--muted); font-size:14px; line-height:1.8; margin-top:15px; }
.book-cover { width:180px; min-height:240px; flex-shrink:0; display:flex; flex-direction:column; justify-content:space-between; background:#24394a; color:white; padding:24px 25px; border-left:8px solid #142a3b; border-radius:3px 12px 12px 3px; box-shadow:4px 4px 0 #cbd2d4; }
.book-cover strong { font-family:Geist,sans-serif; font-size:37px; line-height:1.1; font-weight:550; }
.book-cover span { font-size:11px; color:#d4dce2; }
[hidden] { display:none !important; }
.checklist-finished { margin-top:18px; }
.checklist-finished>summary { display:flex; align-items:center; gap:12px; padding:18px 22px; border:1px solid #c6dacf; border-radius:12px; background:#f5faf6; color:#18784a; cursor:pointer; font-size:14px; }
.checklist-finished>summary::after { content:'Voir les étapes'; margin-left:auto; font-size:12px; }
@media(max-width:1100px) {
  .checklist-board-heading { padding:24px; }
  .checklist-side { padding:22px 14px 12px; }
  .analytics-charts { grid-template-columns:minmax(0,1fr); }
  .chart-panel+.chart-panel { border-left:0; border-top:1px solid var(--line); }
  .chart-empty.compact { min-height:160px; }
  .resource-item { flex-wrap:wrap; }
  .resource-item>.button,.resource-item>form { margin-left:53px; }
  .sales-book-layout { grid-template-columns:170px minmax(0,1fr); gap:22px; }
  .sales-book-content { padding:26px; }
}
@media(max-width:850px) {
  .checklist-sides { grid-template-columns:minmax(0,1fr); }
  .checklist-side+.checklist-side { border-left:0; border-top:1px solid var(--line); }
  .checklist-side { padding:22px; }
  .sales-book-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .sales-book-index { display:flex; gap:5px; position:static; max-height:none; overflow:auto; border:0; padding-bottom:8px; }
  .sales-book-index>a { border:1px solid var(--line); border-radius:6px; white-space:nowrap; min-height:44px; }
}
@media(max-width:600px) {
  .checklist-board-heading { align-items:flex-start; flex-wrap:wrap; padding:22px 18px; gap:17px; }
  .checklist-completion svg { width:38px; height:38px; }
  .checklist-completion strong { font-size:17px; }
  .checklist-completion span { font-size:11px; }
  .checklist-side { padding:20px 12px 10px; }
  .checklist-task-copy>strong { font-size:14px; }
  .checklist-unconfigured { flex-wrap:wrap; }
  .checklist-unconfigured>.text-link { margin-left:56px; }
  .checklist-help { padding:13px 18px; }
  .chart-panel { padding:20px 16px; }
  .chart-periods { max-width:100%; }
  .chart-periods a { font-size:10px; padding:8px 9px; min-height:40px; }
  .sales-book-preview { gap:18px; }
  .sales-book-empty { gap:24px; align-items:flex-start; flex-direction:column; padding:20px 0; }
  .book-cover { width:145px; min-height:190px; padding:20px; }
  .book-cover strong { font-size:30px; }
  .sales-book-heading { align-items:flex-start; flex-wrap:wrap; }
  .sales-book-content { padding:24px 20px; }
  .resource-item { padding:17px 14px; gap:12px; }
  .resource-item>.button,.resource-item>form { margin-left:50px; }
  .resource-item form .button { max-width:none; }
}
@media(prefers-reduced-motion:reduce) { .checklist-task[aria-busy=true] .checklist-checkbox { animation:none; } }

/* V3 — one dynamic space: phase switch, header notifications, undo toast. */
.workspace-header-actions { display:flex; align-items:center; gap:10px; }
.task-bell { position:relative; }
.task-bell-button { position:relative; display:flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); cursor:pointer; }
.task-bell-button:hover { background:var(--surface-2); }
.task-bell-button .ui-icon { width:19px; height:19px; }
.task-bell-count { position:absolute; top:-6px; right:-6px; min-width:19px; height:19px; padding:0 5px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:var(--accent); color:#fff; font-size:11px; font-weight:650; font-variant-numeric:tabular-nums; }
.task-bell-panel { position:absolute; z-index:60; top:calc(100% + 10px); right:0; width:min(400px,calc(100vw - 32px)); background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 44px #0f1b2921; overflow:hidden; }
.bell-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:15px 18px; border-bottom:1px solid var(--line); }
.bell-heading strong { font-size:14px; }
.bell-heading span { color:var(--muted); font-size:12px; }
.bell-empty { padding:18px; color:var(--muted); font-size:13px; line-height:1.7; }
.bell-board { margin:0; border:0; border-radius:0; }
.bell-board .checklist-sides { grid-template-columns:minmax(0,1fr); }
.bell-board .checklist-side { border:0; padding:6px 0; }
.bell-board .checklist-task { padding:13px 18px; }
.bell-board .checklist-task p { display:none; }

.space-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:22px 0 20px; }
.space-views { display:inline-flex; align-items:center; gap:3px; padding:3px; background:var(--surface); border:1px solid var(--line); border-radius:11px; }
.space-views a { display:flex; align-items:center; gap:7px; min-height:38px; padding:8px 16px; border-radius:8px; font-size:13px; font-weight:550; color:var(--muted); }
.space-views a[aria-selected=true] { background:var(--text); color:#fff; }
.space-view-badge { display:inline-flex; align-items:center; justify-content:center; min-width:19px; height:19px; padding:0 5px; border-radius:10px; background:var(--accent); color:#fff; font-size:11px; font-weight:650; }
.space-views a[aria-selected=true] .space-view-badge { background:var(--accent); }
.space-campaign select { min-height:38px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); font:inherit; font-size:13px; }

.phase-hero, .campaign-hero { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:26px; padding:26px 28px; background:var(--surface); border:1px solid var(--line); border-radius:18px; }
.phase-hero-plain { display:block; }
.hero-label { text-transform:uppercase; letter-spacing:.09em; font-size:11px; font-weight:650; color:var(--muted); margin-bottom:9px; }
.document .phase-hero h2, .document .campaign-hero h2 { font-family:Geist,sans-serif; font-size:25px; letter-spacing:-.6px; margin:0 0 8px; }
.hero-promise, .hero-period { color:var(--muted); font-size:13px; line-height:1.65; max-width:58ch; }
.hero-next { flex-shrink:0; min-width:212px; padding:18px 20px; background:var(--surface-2); border-radius:14px; }
.hero-next-label { text-transform:uppercase; letter-spacing:.08em; font-size:10px; font-weight:650; color:var(--muted); }
.hero-next-date { display:flex; align-items:baseline; gap:7px; margin:6px 0 4px; font-family:Geist,sans-serif; }
.hero-next-date strong { font-size:30px; font-weight:600; letter-spacing:-1px; }
.hero-next-date span { font-size:14px; color:var(--muted); }
.hero-next-strong { font-family:Geist,sans-serif; font-size:19px; font-weight:600; margin:5px 0 12px; }
.hero-next-copy { color:var(--muted); font-size:12px; line-height:1.6; }
.hero-next .button { margin-top:12px; }

.phase-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:22px; align-items:start; }
.phase-columns>.dashboard-section { margin:0; }
.section-count { font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
.sales-book-card { display:flex; align-items:flex-start; gap:18px; }
.phase-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:22px; }
.phase-link { display:flex; align-items:center; gap:14px; padding:17px 20px; background:var(--surface); border:1px solid var(--line); border-radius:14px; color:var(--text); }
.phase-link:hover { border-color:var(--text); }
.phase-link>span:first-child { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:10px; background:var(--surface-2); color:var(--muted); flex-shrink:0; }
.phase-link strong { display:block; font-size:14px; }
.phase-link>span:last-child { color:var(--muted); font-size:12px; }

.portal-toast { display:flex; align-items:center; gap:16px; overflow:hidden; padding:15px 18px 15px 22px; }
.toast-undo { padding:7px 13px; border:1px solid #ffffff4d; border-radius:9px; background:transparent; color:#fff; font:inherit; font-size:13px; font-weight:650; cursor:pointer; }
.toast-undo:hover { background:#ffffff1f; }
.toast-undo:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.toast-timer { position:absolute; left:0; bottom:0; height:3px; width:100%; background:#ffffff66; transform-origin:left; animation:toast-countdown 9s linear forwards; }
@keyframes toast-countdown { from { transform:scaleX(1); } to { transform:scaleX(0); } }
@media (prefers-reduced-motion:reduce) { .toast-timer { animation:none; } }

@media (max-width:900px) {
  .phase-columns, .phase-links { grid-template-columns:minmax(0,1fr); }
  .phase-hero, .campaign-hero { padding:22px 20px; }
  .hero-next { width:100%; }
  .task-bell-panel { position:fixed; top:auto; right:16px; left:16px; width:auto; }
}
.space-context { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px; }
.phase-links-triple { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.phase-link-pending { cursor:default; color:var(--muted); }
.phase-link-pending:hover { border-color:var(--line); }
.campaign-hero .hero-main { flex:1 1 460px; min-width:0; }
.campaign-hero .dashboard-metrics { margin:0; border:0; background:transparent; }
.campaign-hero .dashboard-metric-coverage { margin-top:14px; }
.space-campaign-name { color:var(--text); font-weight:550; }

/* The started-workspace cockpit: KPIs, running campaigns, evolution, a light side column. */
.overview-periods { margin-bottom:22px; }
.overview-kpis.dashboard-metrics { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); margin-top:0; }
.overview-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); gap:24px; align-items:start; margin-top:24px; }
.overview-main { min-width:0; }
.overview-side { display:flex; flex-direction:column; gap:20px; }
.overview-side .dashboard-section { margin:0; }
.overview-campaign-list { list-style:none; margin:16px 0 0; padding:0; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.overview-campaign-list>li+li { border-top:1px solid var(--line); }
.overview-campaign-row { display:block; padding:18px 20px; color:inherit; transition:background .15s ease; }
.overview-campaign-row:hover { background:var(--surface-2); }
.overview-campaign-row:hover .overview-campaign-heading strong { color:var(--accent-ink); }
.overview-campaign-row:focus-visible { outline:2px solid var(--accent-ink); outline-offset:-2px; border-radius:8px; }
.overview-campaign-top { display:flex; align-items:center; gap:14px; }
.overview-campaign-channel { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:10px; background:var(--surface-2); color:var(--muted); flex-shrink:0; }
.overview-campaign-heading { flex:1 1 auto; min-width:0; }
.overview-campaign-heading strong { display:block; overflow-wrap:anywhere; }
.overview-campaign-heading span { display:block; color:var(--muted); font-size:11px; margin-top:2px; }
.overview-campaign-top .campaign-open { margin-left:auto; flex-shrink:0; }
.overview-campaign-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 22px; margin-top:12px; padding-left:52px; }
.overview-campaign-dates, .overview-campaign-progress, .overview-campaign-kpis { font-size:12px; color:var(--muted); }
.overview-campaign-progress { display:flex; align-items:center; gap:8px; }
.overview-campaign-progress meter { width:80px; height:6px; }
.overview-campaign-kpis strong { color:var(--text); font-variant-numeric:tabular-nums; }
.overview-campaign-kpis strong:not(:first-child) { margin-left:10px; }
.overview-charts { grid-template-columns:repeat(2,minmax(0,1fr)); }
.chart-bar-rdv { fill:var(--accent); }
.overview-status { padding:16px 18px; border-radius:12px; font-size:13px; font-weight:550; background:var(--surface-2); color:var(--text); }
.overview-status-on_track { background:#e9f3ed; color:#236348; }
.overview-status-attention { background:var(--accent-soft); color:var(--accent-ink); }
.overview-next time { display:block; font-weight:600; margin-top:10px; text-transform:capitalize; }
.overview-next p { margin-top:4px; color:var(--muted); font-size:12px; }
.overview-document-list { list-style:none; margin:12px 0 0; padding:0; }
.overview-document-list>li { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:8px 0; border-top:1px solid var(--line); }
.overview-document-list>li:first-child { border-top:0; }
.overview-document-list span { font-size:11px; color:var(--muted); white-space:nowrap; }
.overview-documents>a.text-link { margin-top:6px; }
@media (max-width:900px) {
  .overview-layout, .overview-charts { grid-template-columns:minmax(0,1fr); }
  .overview-campaign-row { padding:16px; }
}

/* Campaigns list: pure consultation, no dashboard widgets — a compact status/results table. */
.campaign-filter-tabs { display:flex; flex-wrap:wrap; gap:3px; padding:3px; background:var(--surface); border:1px solid var(--line); border-radius:11px; width:fit-content; margin:18px 0 20px; }
.campaign-filter-tabs a { display:flex; align-items:center; gap:5px; min-height:38px; padding:8px 14px; border-radius:8px; font-size:13px; font-weight:550; color:var(--muted); white-space:nowrap; }
.campaign-filter-tabs a[aria-current=true] { background:var(--text); color:#fff; }
.campaign-filter-tabs a span { font-size:11px; font-weight:500; opacity:.75; }
.campaign-row.campaign-row-rich { display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; }
.campaign-row-rich .campaign-heading { display:flex; align-items:center; gap:12px; flex:1 1 220px; min-width:0; }
.campaign-channel-icon { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:9px; background:var(--surface-2); color:var(--muted); flex-shrink:0; }
.campaign-channel-label { font-size:11px; padding:5px 9px; border-radius:6px; background:var(--surface-2); color:var(--muted); white-space:nowrap; flex:0 0 auto; }
.campaign-period, .campaign-progress, .campaign-last-activity { font-size:12px; color:var(--muted); flex:0 0 auto; line-height:1.6; }
.campaign-progress meter { display:block; width:100px; height:6px; margin-bottom:4px; }
.campaign-results { display:flex; flex-direction:column; gap:2px; font-size:12px; color:var(--text); font-weight:550; flex:0 0 auto; font-variant-numeric:tabular-nums; }
.campaign-results-empty { color:var(--muted); font-weight:normal; }
.campaign-last-activity time { display:block; }
@media (max-width:900px) {
  .campaign-row-rich { align-items:flex-start; }
}

/* Single-campaign detail hero: channel icon + name + status, KPI band, period/progress aside. */
.campaign-channel-icon-inline { display:inline-flex; vertical-align:-3px; margin-right:2px; color:var(--muted); }
.campaign-infos .details-list { margin-top:14px; }

.admin-preview-link { margin:18px 0 0; font-size:12px; }
