/* CleanSport Design System — Passo 17
   Camada visual progressiva. Carregada depois de app.css para preservar compatibilidade. */

:root {
  --cs-primary-950: #102538;
  --cs-primary-900: #14344a;
  --cs-primary-800: #17465f;
  --cs-primary-700: #1b5a76;
  --cs-primary-600: #246f8c;
  --cs-primary-500: #2b83a1;
  --cs-accent-700: #08736f;
  --cs-accent-600: #0b8781;
  --cs-accent-500: #12a099;
  --cs-accent-100: #dff6f3;
  --cs-accent-50: #f1fbfa;
  --cs-violet-600: #6c5ac7;
  --cs-rose-600: #b44768;
  --cs-gold-600: #b97908;
  --cs-red-600: #b9362d;

  --cs-neutral-950: #17202c;
  --cs-neutral-800: #2d3745;
  --cs-neutral-700: #465365;
  --cs-neutral-600: #657184;
  --cs-neutral-500: #7f8998;
  --cs-neutral-300: #d2d8e0;
  --cs-neutral-200: #e3e7ec;
  --cs-neutral-100: #eef1f4;
  --cs-neutral-75: #f4f5f7;
  --cs-neutral-50: #f8f9fa;
  --cs-white: #ffffff;

  --cs-surface: #ffffff;
  --cs-surface-soft: #f8f9fa;
  --cs-surface-raised: #ffffff;
  --cs-page: #f3f5f7;
  --cs-ink: #1b2634;
  --cs-muted: #697587;
  --cs-line: #e0e5eb;
  --cs-line-strong: #cbd3dc;

  --cs-success: #167a59;
  --cs-success-soft: #e7f7f0;
  --cs-warning: #9d6603;
  --cs-warning-soft: #fff5d9;
  --cs-danger: #b5322a;
  --cs-danger-soft: #fff0ee;
  --cs-info: #2b6f9f;
  --cs-info-soft: #eaf4fb;

  --cs-radius-xs: 7px;
  --cs-radius-sm: 10px;
  --cs-radius-md: 14px;
  --cs-radius-lg: 20px;
  --cs-radius-xl: 28px;
  --cs-radius-pill: 999px;

  --cs-shadow-xs: 0 1px 2px rgba(16, 37, 56, .05);
  --cs-shadow-sm: 0 8px 24px rgba(16, 37, 56, .06);
  --cs-shadow-md: 0 16px 42px rgba(16, 37, 56, .09);
  --cs-shadow-lg: 0 26px 70px rgba(16, 37, 56, .14);

  --cs-space-1: 4px;
  --cs-space-2: 8px;
  --cs-space-3: 12px;
  --cs-space-4: 16px;
  --cs-space-5: 20px;
  --cs-space-6: 24px;
  --cs-space-7: 32px;
  --cs-space-8: 40px;
  --cs-space-9: 48px;
  --cs-space-10: 64px;

  --cs-transition-fast: 140ms ease;
  --cs-transition: 200ms ease;

  /* aliases históricos usados pelo CSS legado */
  --navy: var(--cs-primary-950);
  --blue: var(--cs-primary-700);
  --green: var(--cs-accent-600);
  --ink: var(--cs-ink);
  --muted: var(--cs-muted);
  --line: var(--cs-line);
  --surface: var(--cs-surface);
  --background: var(--cs-page);
  --danger: var(--cs-danger);
  --warning: var(--cs-warning);
  --success: var(--cs-success);
}

html {
  background: var(--cs-page);
  scroll-behavior: smooth;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body {
  background:
    radial-gradient(circle at 8% 0%, rgba(18, 160, 153, .07), transparent 28rem),
    linear-gradient(180deg, #f7f8f9 0, var(--cs-page) 250px);
  color: var(--cs-ink);
  font-size: 15px;
  line-height: 1.5;
}

::selection { background: rgba(18, 160, 153, .22); color: var(--cs-primary-950); }

:focus-visible {
  outline: 3px solid rgba(18, 160, 153, .34);
  outline-offset: 2px;
}

button, input, select, textarea, summary { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }

/* ---------- Topbar / identity ---------- */
.topbar {
  position: sticky;
  top: 0;
  z-index: 100;
  min-height: 74px;
  padding: 10px clamp(18px, 3vw, 46px);
  gap: 20px;
  background:
    radial-gradient(circle at 22% -80%, rgba(23, 121, 134, .65), transparent 360px),
    linear-gradient(110deg, #0e2538 0%, #123b51 58%, #0f3445 100%);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  box-shadow: 0 10px 30px rgba(10, 30, 45, .14);
}

.brand { gap: 11px; min-width: max-content; }
.brand-mark {
  position: relative;
  width: 43px;
  height: 43px;
  border-radius: 14px;
  background: linear-gradient(145deg, #18b3a8, #2c8db0);
  box-shadow: 0 8px 22px rgba(7, 111, 112, .32), inset 0 1px 0 rgba(255,255,255,.25);
  letter-spacing: -.04em;
}
.brand-mark::after {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 10px;
  pointer-events: none;
}
.brand strong { font-size: 15px; letter-spacing: -.01em; }
.brand small { color: rgba(231, 242, 247, .72); font-size: 11px; }

.main-nav { gap: 4px; }
.main-nav > a,
.nav-group > summary {
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 11px;
  color: rgba(238, 247, 250, .84);
  font-size: 13px;
  letter-spacing: .005em;
  transition: background var(--cs-transition-fast), color var(--cs-transition-fast), transform var(--cs-transition-fast);
}
.main-nav > a:hover,
.nav-group > summary:hover,
.nav-group[open] > summary {
  background: rgba(255,255,255,.105);
  color: #fff;
}
.nav-group > summary::after { color: rgba(222,239,245,.63); }
.nav-dropdown {
  top: calc(100% + 10px);
  min-width: 236px;
  padding: 9px;
  border: 1px solid rgba(202, 214, 223, .8);
  border-radius: 15px;
  background: rgba(255, 255, 255, .98);
  box-shadow: var(--cs-shadow-lg);
  backdrop-filter: blur(16px);
}
.nav-dropdown a {
  padding: 11px 12px;
  border-radius: 10px;
  color: var(--cs-neutral-800);
  font-size: 13px;
  transition: background var(--cs-transition-fast), color var(--cs-transition-fast), transform var(--cs-transition-fast);
}
.nav-dropdown a:hover {
  background: linear-gradient(90deg, rgba(18,160,153,.10), rgba(43,131,161,.06));
  color: var(--cs-primary-800);
  transform: translateX(2px);
}

.nav-toggle {
  display: none;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 12px;
  color: #fff;
  background: rgba(255,255,255,.07);
  cursor: pointer;
}
.nav-toggle-lines,
.nav-toggle-lines::before,
.nav-toggle-lines::after {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}
.nav-toggle-lines { position: relative; }
.nav-toggle-lines::before,
.nav-toggle-lines::after { content: ""; position: absolute; left: 0; }
.nav-toggle-lines::before { top: -6px; }
.nav-toggle-lines::after { top: 6px; }

.user-menu { gap: 10px; font-size: 13px; }
.user-identity {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 5px 7px 5px 5px;
  border-radius: 13px;
  text-decoration: none;
  transition: background var(--cs-transition-fast);
}
.user-identity:hover { background: rgba(255,255,255,.08); }
.user-avatar {
  width: 34px;
  height: 34px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(145deg, rgba(51,177,165,.9), rgba(68,120,180,.88));
  font-size: 13px;
  font-weight: 850;
  text-transform: uppercase;
}
.user-copy { display: block; max-width: 170px; min-width: 0; }
.user-copy strong,
.user-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-copy strong { color: #fff; font-size: 12px; }
.user-copy small { margin-top: 1px; color: rgba(222,239,245,.64); font-size: 10px; font-weight: 650; }
.theme-toggle {
  width: 38px;
  height: 38px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 11px;
  color: rgba(241,248,250,.9);
  background: rgba(255,255,255,.055);
  cursor: pointer;
  transition: background var(--cs-transition-fast), transform var(--cs-transition-fast);
}
.theme-toggle:hover { background: rgba(255,255,255,.12); transform: translateY(-1px); }
.theme-toggle-icon { font-size: 15px; line-height: 1; }
.link-button {
  min-height: 38px;
  padding: 7px 9px;
  border-radius: 10px;
  color: rgba(231,242,247,.76);
  font-size: 12px;
  font-weight: 750;
  transition: color var(--cs-transition-fast), background var(--cs-transition-fast);
}
.link-button:hover { color: #fff; background: rgba(255,255,255,.07); }
.logout-short { display: none; }

/* ---------- Layout / typography ---------- */
.page-shell {
  width: min(1280px, calc(100% - clamp(28px, 5vw, 72px)));
  padding: clamp(30px, 4vw, 52px) 0 80px;
}

h1, h2, h3 { text-wrap: balance; }
h1, h2 { letter-spacing: -.028em; }

.page-heading,
.dashboard-heading {
  align-items: center;
  margin-bottom: 26px;
}
.page-heading h1,
.dashboard-heading h1 {
  color: var(--cs-primary-950);
  font-weight: 780;
  letter-spacing: -.038em;
}
.page-heading h1 { font-size: clamp(30px, 3.6vw, 46px); }
.dashboard-heading h1 { font-size: clamp(34px, 4.2vw, 54px); }
.eyebrow {
  color: var(--cs-accent-700);
  font-size: 11px;
  letter-spacing: .155em;
}
.muted { color: var(--cs-muted); }

.card {
  border: 1px solid rgba(213, 220, 227, .88);
  border-radius: var(--cs-radius-lg);
  background: rgba(255,255,255,.96);
  box-shadow: var(--cs-shadow-sm);
}

/* ---------- Dashboard hero ---------- */
.dashboard-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 22px;
  padding: clamp(28px, 4vw, 44px);
  border: 1px solid rgba(34, 120, 143, .18);
  border-radius: var(--cs-radius-xl);
  color: #fff;
  background:
    radial-gradient(circle at 88% 15%, rgba(40,193,177,.30), transparent 16rem),
    radial-gradient(circle at 70% 120%, rgba(105,94,197,.24), transparent 19rem),
    linear-gradient(125deg, #102b40 0%, #16475d 62%, #17666d 100%);
  box-shadow: 0 24px 64px rgba(16, 55, 72, .18);
}
.dashboard-hero::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  right: -80px;
  top: -90px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(255,255,255,.035), 0 0 0 72px rgba(255,255,255,.018);
  pointer-events: none;
}
.dashboard-hero .eyebrow { color: #77e0d7; }
.dashboard-hero h1 { margin: 7px 0 9px; color: #fff; }
.dashboard-hero .muted { max-width: 760px; margin: 0; color: rgba(237,247,249,.76); }
.dashboard-hero .status-pill {
  color: #dff9f2;
  background: rgba(18,160,153,.18);
  border: 1px solid rgba(116,225,207,.22);
}
.dashboard-hero .status-pill span { background: #6ee7c6; box-shadow: 0 0 0 4px rgba(110,231,198,.10); }

.dashboard-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin: 32px 2px 14px;
}
.dashboard-section-heading h2 { margin: 4px 0 0; color: var(--cs-primary-950); font-size: 22px; }
.dashboard-section-heading p:last-child { margin: 0; }

.general-brief {
  position: relative;
  overflow: hidden;
  border-color: rgba(18,160,153,.18);
}
.general-brief::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--cs-accent-500), var(--cs-primary-600));
}
.general-brief-grid h3 { font-size: 15px; }

.card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.secondary-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric-card {
  position: relative;
  overflow: hidden;
  min-height: 142px;
  padding: 22px;
  transition: transform var(--cs-transition), border-color var(--cs-transition), box-shadow var(--cs-transition);
}
.metric-card:hover { transform: translateY(-2px); border-color: rgba(43,131,161,.28); box-shadow: var(--cs-shadow-md); }
.metric-card::after {
  content: "";
  position: absolute;
  width: 86px;
  height: 86px;
  right: -31px;
  bottom: -35px;
  border-radius: 50%;
  background: rgba(18,160,153,.055);
}
.metric-card:nth-child(4n+2)::after { background: rgba(108,90,199,.055); }
.metric-card:nth-child(4n+3)::after { background: rgba(43,131,161,.06); }
.metric-card:nth-child(4n+4)::after { background: rgba(180,71,104,.05); }
.metric-card strong { margin: 11px 0 5px; color: var(--cs-primary-950); font-size: 28px; line-height: 1.1; letter-spacing: -.025em; }
.card-label { color: var(--cs-neutral-600); font-size: 10px; letter-spacing: .095em; }

.module-disclosure { margin-top: 22px; overflow: hidden; }
.module-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 26px;
  cursor: pointer;
  list-style: none;
}
.module-disclosure > summary::-webkit-details-marker { display: none; }
.module-disclosure > summary::after { content: "+"; color: var(--cs-primary-700); font-size: 23px; font-weight: 400; }
.module-disclosure[open] > summary::after { content: "−"; }
.module-disclosure .module-list { padding: 0 26px 24px; justify-content: flex-start; }

.quick-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.quick-card {
  position: relative;
  min-height: 132px;
  padding: 22px 50px 22px 22px;
  border-color: rgba(214,221,227,.9);
}
.quick-card::after {
  content: "→";
  position: absolute;
  top: 22px;
  right: 22px;
  color: var(--cs-accent-700);
  font-size: 18px;
  transition: transform var(--cs-transition-fast);
}
.quick-card:hover { transform: translateY(-3px); border-color: rgba(18,160,153,.28); box-shadow: var(--cs-shadow-md); }
.quick-card:hover::after { transform: translateX(3px); }
.quick-card strong { color: var(--cs-primary-950); font-size: 16px; }

/* ---------- Buttons / links ---------- */
.primary-link,
.secondary-link,
.primary-button,
.search-bar button,
.button-link {
  border-radius: 11px;
  transition: transform var(--cs-transition-fast), box-shadow var(--cs-transition-fast), background var(--cs-transition-fast), border-color var(--cs-transition-fast);
}
.primary-link,
.primary-button {
  background: linear-gradient(135deg, var(--cs-primary-700), var(--cs-primary-600));
  box-shadow: 0 7px 17px rgba(27,90,118,.16);
}
.primary-link:hover,
.primary-button:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(27,90,118,.21); }
.secondary-link {
  border-color: var(--cs-line-strong);
  background: rgba(255,255,255,.9);
  color: var(--cs-primary-800);
}
.secondary-link:hover { border-color: rgba(18,160,153,.4); background: var(--cs-accent-100); }
.text-action { color: var(--cs-primary-700); }
.text-action:hover { color: var(--cs-accent-700); }

/* ---------- Forms ---------- */
.form-card,
.auth-card { border-radius: 22px; }
.form-card { box-shadow: var(--cs-shadow-sm); }

label { margin-top: 17px; color: var(--cs-neutral-800); font-size: 13px; font-weight: 740; }
input[type="text"], input[type="password"], input[type="email"], input[type="search"],
input[type="tel"], input[type="url"], input[type="date"], input[type="time"],
input[type="datetime-local"], input[type="number"], select, textarea {
  min-height: 47px;
  padding: 10px 13px;
  border: 1px solid var(--cs-line-strong);
  border-radius: 11px;
  color: var(--cs-neutral-950);
  background: #fff;
  box-shadow: inset 0 1px 1px rgba(16,37,56,.015);
  transition: border-color var(--cs-transition-fast), box-shadow var(--cs-transition-fast), background var(--cs-transition-fast);
}
textarea { min-height: 112px; }
input:hover, select:hover, textarea:hover { border-color: #aeb9c5; }
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--cs-accent-600);
  box-shadow: 0 0 0 4px rgba(18,160,153,.12);
}
input:disabled, select:disabled, textarea:disabled {
  color: var(--cs-neutral-600);
  background: var(--cs-neutral-100);
  cursor: not-allowed;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--cs-accent-600); }
.checkbox-option,
.checkbox-panel { border-color: var(--cs-line); background: var(--cs-neutral-50); }
.checkbox-option:hover { border-color: rgba(18,160,153,.32); background: #fbfefd; }
.field-error { color: var(--cs-danger); }

/* ---------- Tables ---------- */
.table-card { border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xs); }
.table-wrap { scrollbar-width: thin; scrollbar-color: #c7d0d9 transparent; }
table { font-variant-numeric: tabular-nums; }
th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 13px 16px;
  border-bottom-color: var(--cs-line-strong);
  color: var(--cs-neutral-600);
  background: #f6f8fa;
  font-size: 10px;
  letter-spacing: .085em;
}
td { padding: 15px 16px; border-bottom-color: #e8ebef; }
tbody tr { transition: background var(--cs-transition-fast); }
tbody tr:hover { background: rgba(18,160,153,.035); }
tbody tr:last-child td { border-bottom: 0; }
.actions-column { min-width: 210px; }
.row-actions { gap: 8px 12px; }

/* ---------- Badges / status / alerts ---------- */
.badge { padding: 5px 9px; border: 1px solid transparent; font-size: 10px; letter-spacing: .01em; }
.badge-success { color: var(--cs-success); background: var(--cs-success-soft); border-color: rgba(22,122,89,.12); }
.badge-warning { color: var(--cs-warning); background: var(--cs-warning-soft); border-color: rgba(157,102,3,.13); }
.badge-info { color: var(--cs-info); background: var(--cs-info-soft); border-color: rgba(43,111,159,.12); }
.badge-muted { color: var(--cs-neutral-700); background: var(--cs-neutral-100); border-color: rgba(101,113,132,.08); }
.status-pill { border: 1px solid rgba(22,122,89,.11); }
.flash-stack { position: relative; z-index: 3; }
.flash {
  position: relative;
  padding: 14px 46px 14px 16px;
  border-radius: 13px;
  box-shadow: var(--cs-shadow-xs);
}
.flash-close {
  position: absolute;
  top: 50%;
  right: 11px;
  width: 30px;
  height: 30px;
  transform: translateY(-50%);
  border: 0;
  border-radius: 9px;
  color: currentColor;
  background: transparent;
  cursor: pointer;
  opacity: .7;
}
.flash-close:hover { background: rgba(0,0,0,.05); opacity: 1; }

/* ---------- Empty states ---------- */
.empty-state {
  padding: 48px 28px;
  color: var(--cs-muted);
  background: linear-gradient(180deg, rgba(248,250,251,.8), rgba(255,255,255,.8));
}
.empty-state::before {
  content: "";
  display: block;
  width: 42px;
  height: 6px;
  margin: 0 auto 18px;
  border-radius: var(--cs-radius-pill);
  background: linear-gradient(90deg, var(--cs-accent-500), var(--cs-primary-500));
  opacity: .62;
}

/* ---------- Workspace ---------- */
.workspace-grid { gap: 16px; }
.workspace-panel { min-height: 210px; padding: 22px; transition: transform var(--cs-transition), box-shadow var(--cs-transition); }
.workspace-panel:hover { transform: translateY(-1px); box-shadow: var(--cs-shadow-md); }
.executive-panel{border-top:3px solid var(--cs-primary-600);background:linear-gradient(145deg,var(--cs-surface),rgba(20,91,76,.055))}.executive-heading{border-bottom:1px solid var(--cs-line);padding-bottom:1.25rem}.executive-toolbar{display:grid;gap:1rem;margin-bottom:1rem;padding:1rem 1.25rem}.executive-office-picker{display:grid;grid-template-columns:auto minmax(240px,1fr);align-items:center;gap:.75rem}.executive-office-picker label{margin:0;font-weight:800}.executive-week-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.executive-access-note{margin:0;padding:.65rem .8rem;border-radius:10px;background:var(--cs-neutral-50);color:var(--cs-neutral-700)}.executive-calendar{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));gap:.65rem;overflow-x:auto;padding-bottom:.4rem}.executive-day{min-width:155px;padding:0;overflow:hidden}.executive-day>header{display:flex;align-items:center;justify-content:space-between;padding:.7rem .8rem;border-bottom:1px solid var(--cs-line);background:var(--cs-neutral-50)}.executive-day-items{display:grid;gap:.55rem;padding:.65rem}.executive-day .empty-state{min-height:70px;margin:0;padding:.75rem .25rem}.executive-event{display:grid;gap:.3rem;padding:.65rem;border-left:3px solid var(--cs-primary-600);border-radius:8px;background:var(--cs-accent-50)}.executive-event-meeting{border-left-color:var(--cs-info);background:var(--cs-info-soft)}.executive-event.is-cancelled{opacity:.58;text-decoration:line-through}.executive-event-time{font-size:.72rem;font-weight:850;color:var(--cs-neutral-700)}.executive-event-body{display:grid;gap:.3rem;min-width:0}.executive-event-body>strong,.executive-event-body>p{overflow-wrap:anywhere}.executive-event-body>p,.executive-event-body>small{margin:0;font-size:.75rem}.executive-event-meta{display:flex;align-items:center;justify-content:space-between;gap:.35rem;font-size:.65rem}.executive-event-actions{margin-top:.25rem}.executive-event-actions form{display:inline}.danger-text{color:var(--cs-danger)}.executive-legend{display:flex;gap:1.25rem;flex-wrap:wrap;margin-top:1rem;padding:1rem;font-size:.78rem}.legend-dot{display:inline-block;width:.65rem;height:.65rem;margin-right:.3rem;border-radius:50%;background:var(--cs-primary-600)}.meeting-dot{background:var(--cs-info)}.confidential-dot{background:var(--cs-warning)}.executive-delegation-list small{display:block;margin-top:.3rem;color:var(--cs-neutral-600)}
.section-mini { margin-bottom: 14px; }
.section-mini h2 { font-size: 19px; }
.workspace-list li { padding: 11px 0; }
.notice-item { border-radius: 13px; background: #fbfcfd; }
.notice-normal { border-left-color: var(--cs-primary-500); }
.notice-elevada { border-left-color: var(--cs-gold-600); background: #fffaf0; }
.notice-urgente { border-left-color: var(--cs-danger); background: var(--cs-danger-soft); }

.personal-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
  padding: 25px 28px;
  border: 1px solid rgba(18,160,153,.18);
  border-radius: var(--cs-radius-lg);
  background:
    radial-gradient(circle at 90% 20%, rgba(108,90,199,.10), transparent 16rem),
    linear-gradient(120deg, #fbfefd, #f5f8fb);
}
.personal-hero-main { display: flex; align-items: center; gap: 16px; min-width: 0; }
.personal-avatar {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(145deg, var(--cs-accent-500), var(--cs-violet-600));
  box-shadow: 0 10px 24px rgba(73,105,148,.16);
  font-size: 22px;
  font-weight: 850;
  text-transform: uppercase;
}
.personal-hero h1 { margin: 2px 0 4px; color: var(--cs-primary-950); font-size: clamp(28px, 3.4vw, 40px); }
.personal-hero p { margin: 0; }

/* ---------- Login / first impression ---------- */
body:has(.auth-layout) {
  background:
    radial-gradient(circle at 16% 25%, rgba(18,160,153,.11), transparent 26rem),
    radial-gradient(circle at 92% 88%, rgba(108,90,199,.08), transparent 28rem),
    #f5f7f8;
}
.auth-layout { min-height: calc(100vh - 190px); gap: clamp(42px, 7vw, 94px); }
.auth-intro { position: relative; }
.auth-intro h1 { color: var(--cs-primary-950); font-weight: 790; letter-spacing: -.052em; }
.auth-intro p:not(.eyebrow) { color: var(--cs-muted); }
.auth-value-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.auth-value-list span {
  padding: 8px 10px;
  border: 1px solid rgba(18,160,153,.16);
  border-radius: var(--cs-radius-pill);
  color: var(--cs-primary-800);
  background: rgba(255,255,255,.72);
  font-size: 11px;
  font-weight: 760;
}
.auth-card {
  position: relative;
  overflow: hidden;
  padding: clamp(28px, 4vw, 38px);
  border-color: rgba(199,210,219,.82);
  box-shadow: 0 28px 70px rgba(16,37,56,.12);
}
.auth-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--cs-accent-500), var(--cs-primary-500), var(--cs-violet-600));
}
.auth-card h2 { color: var(--cs-primary-950); font-size: 24px; }

/* ---------- Analytics / details ---------- */
.analytics-section { border-radius: var(--cs-radius-lg); }
.detail-grid > div { border-color: var(--cs-line); border-radius: 13px; background: var(--cs-neutral-50); }

/* ---------- Motion / progressive enhancement ---------- */
.reveal-on-load { animation: cs-rise .32s ease both; }
@keyframes cs-rise {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- Dark theme: optional personal preference ---------- */
html[data-theme="dark"] {
  color-scheme: dark;
  --cs-page: #0e1720;
  --cs-surface: #15212c;
  --cs-surface-soft: #111c26;
  --cs-surface-raised: #172530;
  --cs-ink: #e7edf2;
  --cs-muted: #a4afba;
  --cs-line: #2a3946;
  --cs-line-strong: #3a4a58;
  --cs-neutral-950: #f0f5f8;
  --cs-neutral-800: #d7e0e6;
  --cs-neutral-700: #bcc7d0;
  --cs-neutral-600: #9ca9b4;
  --cs-neutral-100: #21303c;
  --cs-neutral-75: #17232d;
  --cs-neutral-50: #121e28;
  --surface: var(--cs-surface);
  --background: var(--cs-page);
  --ink: var(--cs-ink);
  --muted: var(--cs-muted);
  --line: var(--cs-line);
}
html[data-theme="dark"] body {
  background:
    radial-gradient(circle at 8% 0%, rgba(18,160,153,.08), transparent 28rem),
    linear-gradient(180deg, #101c26 0, var(--cs-page) 260px);
}
html[data-theme="dark"] .card,
html[data-theme="dark"] .secondary-link,
html[data-theme="dark"] .nav-dropdown,
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
  color: var(--cs-ink);
  background: var(--cs-surface);
  border-color: var(--cs-line);
}
html[data-theme="dark"] .nav-dropdown a { color: var(--cs-neutral-800); }
html[data-theme="dark"] .nav-dropdown a:hover { background: rgba(18,160,153,.12); }
html[data-theme="dark"] th { color: var(--cs-muted); background: #182631; }
html[data-theme="dark"] tbody tr:hover { background: rgba(18,160,153,.055); }
html[data-theme="dark"] .detail-grid > div,
html[data-theme="dark"] .checkbox-option,
html[data-theme="dark"] .checkbox-panel,
html[data-theme="dark"] .notice-item { background: var(--cs-surface-soft); }
html[data-theme="dark"] .personal-hero {
  background:
    radial-gradient(circle at 90% 20%, rgba(108,90,199,.12), transparent 16rem),
    linear-gradient(120deg, #14232d, #172630);
}
html[data-theme="dark"] .personal-hero h1,
html[data-theme="dark"] .page-heading h1,
html[data-theme="dark"] .dashboard-heading h1,
html[data-theme="dark"] .dashboard-section-heading h2,
html[data-theme="dark"] .metric-card strong,
html[data-theme="dark"] .quick-card strong,
html[data-theme="dark"] .form-section-heading h2,
html[data-theme="dark"] .workspace-panel h2,
html[data-theme="dark"] .general-brief h2 { color: #eef5f8; }
html[data-theme="dark"] .auth-card { background: #15222d; }
html[data-theme="dark"] body:has(.auth-layout) { background: #0f1922; }
html[data-theme="dark"] .auth-intro h1 { color: #edf5f8; }
html[data-theme="dark"] .auth-value-list span { color: #c7e7e4; background: rgba(21,33,44,.72); }
html[data-theme="dark"] code { color: #d5e2e8; background: #20303c; }

/* ---------- Responsive ---------- */
@media (max-width: 1120px) {
  .secondary-metrics { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .quick-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .user-copy { max-width: 125px; }
}

@media (max-width: 980px) {
  .topbar { min-height: 68px; flex-wrap: nowrap; }
  .nav-toggle { display: inline-flex; order: 2; }
  .brand { order: 1; }
  .main-nav {
    display: none;
    position: absolute;
    z-index: 120;
    top: calc(100% + 8px);
    left: 16px;
    right: 16px;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
    padding: 12px;
    border: 1px solid rgba(194,208,217,.88);
    border-radius: 17px;
    background: rgba(255,255,255,.985);
    box-shadow: var(--cs-shadow-lg);
  }
  .main-nav.is-open { display: flex; animation: cs-rise .18s ease both; }
  .main-nav > a,
  .nav-group > summary { width: 100%; min-height: 44px; color: var(--cs-neutral-800); }
  .main-nav > a:hover,
  .nav-group > summary:hover,
  .nav-group[open] > summary { color: var(--cs-primary-900); background: var(--cs-neutral-100); }
  .nav-group { width: 100%; }
  .nav-dropdown,
  .nav-dropdown-right {
    position: static;
    width: 100%;
    min-width: 0;
    margin-top: 4px;
    padding: 5px 0 5px 12px;
    border: 0;
    border-left: 2px solid rgba(18,160,153,.28);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .nav-dropdown a { padding: 9px 10px; }
  .user-menu { order: 3; margin-left: auto; }
  .user-copy { display: none; }
  .logout-full { display: none; }
  .logout-short { display: inline; }
  .link-button { display: inline-flex; align-items: center; min-height: 34px; padding-inline: 7px; }
  html[data-theme="dark"] .main-nav { background: rgba(21,33,44,.99); border-color: var(--cs-line); }
  html[data-theme="dark"] .main-nav > a,
  html[data-theme="dark"] .nav-group > summary { color: #dbe7ec; }
  html[data-theme="dark"] .main-nav > a:hover,
  html[data-theme="dark"] .nav-group > summary:hover,
  html[data-theme="dark"] .nav-group[open] > summary { color: #fff; background: #20313e; }
  .secondary-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .page-shell { width: min(100% - 28px, 680px); padding-top: 28px; }
  .page-heading,
  .dashboard-heading,
  .dashboard-hero { align-items: flex-start; flex-direction: column; }
  .dashboard-hero { padding: 28px 24px; }
  .dashboard-section-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .card-grid,
  .secondary-metrics,
  .quick-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 126px; }
  .personal-hero { align-items: flex-start; flex-direction: column; }
  .personal-hero .heading-actions { width: 100%; }
  .personal-hero .heading-actions > * { flex: 1; }
  .auth-layout { min-height: auto; }
  .auth-intro h1 { font-size: clamp(34px, 11vw, 52px); }
  .form-grid { grid-template-columns: 1fr; }
  .field-span-2 { grid-column: auto; }
  .form-actions { align-items: stretch; flex-direction: column-reverse; }
  .form-actions > * { width: 100%; }
  .compact-button { width: 100%; }
  .table-card { margin-inline: -2px; }
  th, td { padding-left: 13px; padding-right: 13px; }
}

@media (max-width: 520px) {
  .topbar { padding-inline: 12px; gap: 9px; }
  .brand small { display: none; }
  .brand-mark { width: 39px; height: 39px; border-radius: 12px; }
  .brand strong { font-size: 14px; }
  .user-avatar { width: 34px; height: 34px; }
  .theme-toggle { width: 34px; height: 34px; }
  .nav-toggle { width: 38px; height: 38px; }
  .page-shell { width: calc(100% - 22px); }
  .page-heading h1 { font-size: 31px; }
  .heading-actions { width: 100%; }
  .heading-actions .primary-link,
  .heading-actions .secondary-link { flex: 1 1 auto; }
  .workspace-panel, .general-brief, .analytics-section { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* Step 18 · distributed intake */
.public-intake-shell{max-width:980px;margin:0 auto}.code-panel{overflow-wrap:anywhere;padding:1rem 1.1rem;border:1px solid var(--border-color,#dbe3e8);border-radius:var(--radius-md,12px);background:var(--surface-soft,#f5f8f9);margin:.7rem 0 1rem}.detail-list{display:grid;gap:.65rem}.detail-list>div{display:grid;grid-template-columns:minmax(120px,.65fr) 1.35fr;gap:1rem;padding-bottom:.55rem;border-bottom:1px solid var(--border-color,#e3e8eb)}.detail-list dt{font-weight:700;color:var(--text-muted,#5d6a70)}.detail-list dd{margin:0;overflow-wrap:anywhere}@media(max-width:760px){.detail-list>div{grid-template-columns:1fr;gap:.2rem}}


/* ---------- Step 22 · KPI readability and lifecycle ---------- */
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin:18px 0 24px; }
.kpi-card { display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-height:104px; padding:18px 20px; border:1px solid var(--cs-line); border-radius:var(--cs-radius-lg); background:var(--cs-surface, #fff); box-shadow:var(--cs-shadow-xs); }
.kpi-card > span:first-child, .metric-pair > span:first-child { display:block; color:var(--cs-neutral-600); font-size:11px; font-weight:750; letter-spacing:.075em; text-transform:uppercase; line-height:1.35; }
.kpi-card > strong, .metric-pair > strong { display:block; margin:0; color:var(--cs-primary-950); font-size:clamp(24px,3vw,32px); line-height:1.15; }
.metric-pair { display:flex; flex-direction:column; gap:7px; }
.lifecycle-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; }
.lifecycle-warning { color:var(--cs-warning); font-weight:750; }
.timeline-list { display:grid; gap:12px; padding-left:20px; }
.timeline-list li { padding-left:6px; }
.timeline-list li strong, .timeline-list li span { display:block; }
.timeline-list li span { margin-top:3px; color:var(--cs-muted); }
@media (max-width:640px){ .kpi-grid{grid-template-columns:1fr 1fr}.kpi-card{min-height:92px;padding:15px}.kpi-card>strong{font-size:24px} }

/* Passo 23 — gestor de permissões por domínio */
.permission-toolbar{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin:0 0 1rem}.permission-toolbar input{max-width:38rem}.permission-groups{display:grid;gap:.8rem}.permission-group{border:1px solid var(--border-color,#d9e2e5);border-radius:12px;background:var(--surface-1,#fff);overflow:hidden}.permission-group>summary{cursor:pointer;padding:.9rem 1rem;display:flex;justify-content:space-between;gap:1rem;font-weight:700}.permission-group>summary small{font-weight:500;color:var(--text-muted,#61757b)}.permission-group-actions{padding:.5rem 1rem;border-top:1px solid var(--border-color,#e4eaec);display:flex;gap:1rem}.permission-group .permission-checkboxes{padding:.5rem 1rem 1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.55rem}.permission-option{display:flex;gap:.65rem;align-items:flex-start;padding:.6rem;border-radius:8px}.permission-option:hover{background:var(--surface-2,#f4f8f8)}.permission-option span{display:grid;gap:.15rem}.permission-option small{color:var(--text-muted,#61757b);line-height:1.35}.permission-option[hidden],.permission-group[hidden]{display:none!important}@media(max-width:720px){.permission-toolbar{align-items:stretch;flex-direction:column}.permission-group .permission-checkboxes{grid-template-columns:1fr}}

/* Passo 27 · Analytics & BI */
.bi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1.5rem 0}.bi-card{border-left:4px solid #d8e1ea}.bi-card.bi-good{border-left-color:#16845b}.bi-card.bi-attention{border-left-color:#c77b18}.bi-card small{display:block;margin-top:.45rem;color:#64748b}.filter-strip{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.filter-strip a{padding:.4rem .65rem;border-radius:.55rem;text-decoration:none}.filter-strip a.active{background:#164e63;color:white}.inline-form{display:inline-flex;margin-left:auto}.progress-track{width:100%;height:.55rem;border-radius:999px;background:#e7edf3;overflow:hidden;margin-top:.8rem}.progress-fill{height:100%;background:linear-gradient(90deg,#0f766e,#0891b2);border-radius:inherit}

/* Hotfix 29.1 · comunicações e segurança da conta */
.action-button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:9px 15px;border:1px solid transparent;border-radius:11px;font:inherit;font-size:13px;font-weight:800;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer;transition:transform var(--cs-transition-fast),box-shadow var(--cs-transition-fast),background var(--cs-transition-fast),border-color var(--cs-transition-fast)}
.action-button:hover{transform:translateY(-1px)}
.action-button-primary{color:#fff;background:linear-gradient(135deg,var(--cs-primary-700),var(--cs-primary-600));box-shadow:0 7px 17px rgba(27,90,118,.16)}
.action-button-secondary{color:var(--cs-primary-800);background:var(--cs-surface);border-color:var(--cs-line-strong)}
.action-button-secondary:hover{background:var(--cs-accent-100);border-color:rgba(18,160,153,.4)}
.action-button-danger{color:var(--cs-danger);background:var(--cs-danger-soft);border-color:rgba(181,50,42,.2)}
.action-button-danger:hover{background:#ffe5e2;border-color:rgba(181,50,42,.35)}
.action-button-compact{min-height:36px;padding:7px 11px;font-size:12px}
.status-chip{display:inline-flex;width:fit-content;align-items:center;padding:5px 9px;border:1px solid transparent;border-radius:var(--cs-radius-pill);font-size:10px;font-weight:800;letter-spacing:.035em;line-height:1.2;text-transform:uppercase;white-space:nowrap}
.status-chip-success{color:var(--cs-success);background:var(--cs-success-soft);border-color:rgba(22,122,89,.13)}
.status-chip-warning{color:var(--cs-warning);background:var(--cs-warning-soft);border-color:rgba(157,102,3,.14)}
.status-chip-info{color:var(--cs-info);background:var(--cs-info-soft);border-color:rgba(43,111,159,.13)}
.status-chip-neutral{color:var(--cs-neutral-700);background:var(--cs-neutral-100);border-color:rgba(101,113,132,.10)}
.communications-compose{display:grid;gap:16px}
.compose-section{padding:clamp(22px,3vw,30px)}
.compose-section-heading,.security-section-heading,.security-card-topline{display:flex;align-items:center;justify-content:space-between;gap:16px}
.compose-section-heading{justify-content:flex-start;margin-bottom:18px}
.compose-section-heading h2,.security-section-heading h2{margin:3px 0 0;color:var(--cs-primary-950)}
.compose-section-heading h2{font-size:21px}
.compose-step{width:34px;height:34px;display:grid;flex:0 0 auto;place-items:center;border-radius:11px;color:#fff;background:linear-gradient(145deg,var(--cs-accent-600),var(--cs-primary-600));font-size:13px;font-weight:850}
.recipient-panel{margin-top:16px;padding:18px;border:1px solid var(--cs-line);border-radius:14px;background:var(--cs-neutral-50)}
.recipient-panel[hidden]{display:none}
.recipient-panel label:first-child{margin-top:0}
.recipient-panel select[multiple]{min-height:190px}
.field-help{display:block;margin-top:7px;color:var(--cs-muted);font-size:12px}
.form-error{display:block;margin-top:6px;color:var(--cs-danger);font-size:12px;font-weight:700}
.broadcast-panel{border-color:rgba(157,102,3,.2);background:var(--cs-warning-soft)}
.broadcast-panel p{margin:10px 0 14px;color:var(--cs-neutral-700)}
.broadcast-confirmation{margin:0;background:rgba(255,255,255,.62)}
.compose-checkbox{margin:18px 0 0}
.compose-channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}
.compose-channel-grid .checkbox-option{margin:0}
.compose-actions{margin-top:2px}
.account-security-hero{margin-bottom:18px}
.account-security-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.account-security-card{display:flex;min-height:235px;flex-direction:column;padding:22px}
.account-security-card h2{margin:14px 0 7px;color:var(--cs-primary-950);font-size:19px}
.account-security-card>p:not(.card-label){margin:0;color:var(--cs-muted)}
.security-card-topline{align-items:flex-start}
.security-card-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:auto;padding-top:20px}
.security-card-actions form{margin:0}
.account-security-section{overflow:hidden;margin-top:16px}
.security-section-heading{padding:22px 24px;border-bottom:1px solid var(--cs-line)}
.security-section-heading h2{font-size:20px}
.account-security-section form{margin:0}
html[data-theme="dark"] .action-button-secondary,html[data-theme="dark"] .recipient-panel,html[data-theme="dark"] .broadcast-confirmation{color:var(--cs-ink);background:var(--cs-surface-soft);border-color:var(--cs-line)}
html[data-theme="dark"] .broadcast-panel{background:rgba(157,102,3,.12);border-color:rgba(220,165,50,.22)}
html[data-theme="dark"] .account-security-card h2,html[data-theme="dark"] .compose-section-heading h2,html[data-theme="dark"] .security-section-heading h2{color:#eef5f8}
@media(max-width:1120px){.account-security-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.account-security-hero{align-items:flex-start;flex-direction:column}.compose-channel-grid{grid-template-columns:1fr}}
@media(max-width:620px){.account-security-grid{grid-template-columns:1fr}.security-section-heading{align-items:flex-start;flex-direction:column}.compose-actions{align-items:stretch;flex-direction:column-reverse}.compose-actions>*{width:100%}}

/* Hotfix 29.2 · centro de mensagens */
.communications-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(22px,3vw,32px);background:linear-gradient(135deg,var(--cs-surface) 0%,var(--cs-accent-50) 100%)}
.communications-hero h1{margin:4px 0 7px;color:var(--cs-primary-950)}
.communications-hero-actions,.communication-detail-actions{display:flex;flex-wrap:wrap;gap:10px}
.communications-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
.communication-metric{display:flex;min-height:120px;flex-direction:column;align-items:flex-start;padding:18px 20px}
.communication-metric>span{color:var(--cs-muted);font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.communication-metric>strong{margin:7px 0 3px;color:var(--cs-primary-950);font-size:30px;line-height:1}
.communication-metric>small{margin-top:auto;color:var(--cs-muted)}
.communications-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:6px;width:fit-content;margin-bottom:22px;padding:6px}
.communications-navigation a{display:flex;min-width:180px;flex-direction:column;padding:11px 16px;border-radius:10px;color:var(--cs-muted);text-decoration:none}
.communications-navigation a span{font-weight:800}
.communications-navigation a small{margin-top:2px}
.communications-navigation a.active{color:var(--cs-primary-900);background:var(--cs-accent-100)}
.communications-list-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:13px}
.communications-list-heading h2{margin:3px 0 0;color:var(--cs-primary-950);font-size:22px}
.communications-filter-chips{display:flex;gap:7px}
.communications-filter-chips a{text-decoration:none}
.communications-message-list{display:grid;gap:10px}
.communication-message-card{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:20px;align-items:center;padding:18px 20px;color:inherit;text-decoration:none;transition:transform var(--cs-transition-fast),border-color var(--cs-transition-fast),box-shadow var(--cs-transition-fast)}
.communication-message-card:hover{transform:translateY(-1px);border-color:rgba(18,160,153,.38);box-shadow:var(--cs-shadow-sm)}
.communication-message-card.is-unread{border-left:4px solid var(--cs-accent-600);background:linear-gradient(90deg,var(--cs-accent-50),var(--cs-surface) 28%)}
.communication-message-status{display:flex;align-items:flex-start;flex-direction:column;gap:8px}
.communication-message-status time{color:var(--cs-muted);font-size:11px}
.communication-message-main{min-width:0}
.communication-message-title{display:flex;align-items:center;gap:10px}
.communication-message-title h3{overflow:hidden;margin:0;color:var(--cs-primary-950);font-size:16px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.priority-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;white-space:nowrap}
.priority-normal{color:var(--cs-neutral-700);background:var(--cs-neutral-100)}
.priority-alta{color:var(--cs-warning);background:var(--cs-warning-soft)}
.priority-urgente{color:var(--cs-danger);background:var(--cs-danger-soft)}
.communication-correspondent{margin:5px 0 0;color:var(--cs-muted);font-size:12px}
.communication-correspondent span{margin:0 3px}
.communication-preview{overflow:hidden;margin:7px 0 0;color:var(--cs-neutral-700);font-size:13px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
.communication-open{color:var(--cs-primary-700);font-size:12px;font-weight:800}
.communications-empty-state{display:grid;justify-items:center;padding:42px 24px;text-align:center}
.communications-empty-state h3{margin:12px 0 4px;color:var(--cs-primary-950)}
.communications-empty-state p{margin:0 0 17px}
.communications-empty-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:15px;color:var(--cs-primary-700);background:var(--cs-accent-100);font-size:22px}
.field-label{display:block;margin-bottom:8px;font-size:13px;font-weight:750}
.audience-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.audience-choice{position:relative;display:flex;min-height:94px;align-items:flex-start;gap:11px;margin:0;padding:16px;border:1px solid var(--cs-line);border-radius:14px;background:var(--cs-surface);cursor:pointer;transition:border-color var(--cs-transition-fast),box-shadow var(--cs-transition-fast),background var(--cs-transition-fast)}
.audience-choice:hover{border-color:rgba(18,160,153,.42)}
.audience-choice:has(input:checked){border-color:var(--cs-accent-600);background:var(--cs-accent-50);box-shadow:0 0 0 3px rgba(18,160,153,.09)}
.audience-choice input{width:17px;height:17px;flex:0 0 auto;margin:2px 0 0;accent-color:var(--cs-accent-700)}
.audience-choice-copy{display:flex;min-width:0;flex-direction:column;gap:4px}
.audience-choice-copy strong{color:var(--cs-primary-950);font-size:14px}
.audience-choice-copy small{color:var(--cs-muted);font-size:11px;line-height:1.35}
.audience-choice-check{position:absolute;top:10px;right:11px;color:var(--cs-accent-700);font-weight:900;opacity:0}
.audience-choice:has(input:checked) .audience-choice-check{opacity:1}
.recipient-search{margin:9px 0 8px}
.recipient-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.recipient-panel-footer .field-help{margin:0}
.communication-detail-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.communication-detail-heading h1{margin:4px 0 12px;color:var(--cs-primary-950)}
.communication-detail-heading-actions{display:flex;flex-wrap:wrap;gap:10px}
.communication-detail-chips{display:flex;flex-wrap:wrap;gap:7px}
.communication-letter{padding:0;overflow:hidden}
.communication-letter-header{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:18px 22px;border-bottom:1px solid var(--cs-line);background:var(--cs-neutral-50)}
.communication-letter-header div{display:flex;min-width:0;flex-direction:column;gap:3px}
.communication-letter-header span{color:var(--cs-muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.communication-letter-header strong{overflow:hidden;color:var(--cs-primary-950);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.communication-letter-body{min-height:180px;padding:28px 24px;white-space:pre-wrap}
.communication-letter footer{padding:13px 22px;border-top:1px solid var(--cs-line);background:var(--cs-neutral-50)}
.communication-letter footer p{margin:0}
.communication-conversation-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border-bottom:1px solid var(--cs-line);background:var(--cs-neutral-50)}
.communication-conversation-header div{display:flex;min-width:0;flex-direction:column;gap:3px}
.communication-conversation-header span{color:var(--cs-muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.communication-conversation-header strong{overflow:hidden;color:var(--cs-primary-950);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.communication-thread{display:grid;gap:14px;padding:22px;background:var(--cs-neutral-50)}
.communication-thread-message{width:min(86%,780px);overflow:hidden;border:1px solid var(--cs-line);border-radius:16px;background:var(--cs-surface);box-shadow:var(--cs-shadow-xs)}
.communication-thread-message.is-own{justify-self:end;border-color:rgba(18,160,153,.32);background:var(--cs-accent-50)}
.communication-thread-message.is-other{justify-self:start}
.communication-thread-message.is-selected{box-shadow:0 0 0 3px rgba(18,160,153,.12),var(--cs-shadow-xs)}
.communication-thread-message>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--cs-line)}
.communication-thread-message>header>div:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}
.communication-thread-message>header strong{color:var(--cs-primary-950);font-size:13px}
.communication-thread-message>header span,.communication-thread-message time{color:var(--cs-muted);font-size:10px}
.communication-thread-meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}
.communication-thread-body{padding:18px 16px;white-space:pre-wrap}
.communication-thread-message footer{padding:10px 16px}
.communication-reply-card{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:28px;margin-top:18px;padding:22px;scroll-margin-top:20px}
.communication-reply-card h2{margin:4px 0 7px;color:var(--cs-primary-950);font-size:20px}
.communication-reply-card p{margin-top:0}
.communication-reply-card form{margin:0}
.communication-reply-card textarea{min-height:130px;resize:vertical}
.communication-no-reply{margin-top:18px}
.communication-no-reply p{margin:5px 0 0}
.communication-detail-actions{margin-top:14px}
.communication-detail-actions form{margin:0}
html[data-theme="dark"] .communications-hero,html[data-theme="dark"] .communication-message-card.is-unread,html[data-theme="dark"] .audience-choice:has(input:checked){background:var(--cs-surface-soft)}
html[data-theme="dark"] .communication-letter-header,html[data-theme="dark"] .communication-letter footer,html[data-theme="dark"] .communication-conversation-header,html[data-theme="dark"] .communication-thread{background:var(--cs-surface-soft)}
html[data-theme="dark"] .communication-thread-message.is-own{background:rgba(18,160,153,.1)}
html[data-theme="dark"] .communication-metric>strong,html[data-theme="dark"] .communications-list-heading h2,html[data-theme="dark"] .communication-message-title h3,html[data-theme="dark"] .communications-empty-state h3,html[data-theme="dark"] .audience-choice-copy strong,html[data-theme="dark"] .communication-detail-heading h1,html[data-theme="dark"] .communication-letter-header strong,html[data-theme="dark"] .communication-conversation-header strong,html[data-theme="dark"] .communication-thread-message>header strong,html[data-theme="dark"] .communication-reply-card h2{color:#eef5f8}
@media(max-width:980px){.communications-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.communication-message-card{grid-template-columns:125px minmax(0,1fr)}.communication-open{display:none}}
@media(max-width:760px){.communications-hero,.communications-list-heading,.communication-detail-heading{align-items:flex-start;flex-direction:column}.communications-hero-actions,.communication-detail-heading-actions{width:100%}.communications-hero-actions>*,.communication-detail-heading-actions>*{flex:1}.audience-choice-grid{grid-template-columns:1fr}.communication-letter-header{grid-template-columns:1fr}.communication-conversation-header{align-items:flex-start;flex-direction:column}.communication-thread-message{width:100%}.communication-thread-message>header{flex-direction:column}.communication-thread-meta{justify-content:flex-start}.communication-reply-card{grid-template-columns:1fr}.communication-message-card{grid-template-columns:1fr;gap:11px}.communication-message-status{align-items:center;flex-direction:row;justify-content:space-between}.communication-preview{white-space:normal}.recipient-panel-footer{align-items:flex-start;flex-direction:column}.communications-navigation{width:100%;grid-template-columns:1fr 1fr}.communications-navigation a{min-width:0}}
@media(max-width:520px){.communications-metrics{grid-template-columns:1fr 1fr}.communication-metric{min-height:105px;padding:15px}.communications-navigation{grid-template-columns:1fr}.communications-hero-actions,.communication-detail-heading-actions{flex-direction:column}.communications-hero-actions>*,.communication-detail-heading-actions>*{width:100%}.communication-thread{padding:12px}.communications-filter-chips{width:100%}.communications-filter-chips a{flex:1;justify-content:center}}
/* Step 30 · basic participation and permission review */
.basic-capability-panel{margin:1.25rem 0;padding:1rem;border:1px solid var(--border-color,#d9e3e6);border-radius:16px;background:var(--surface-soft,#f6fafb)}
.basic-capability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-top:1rem}
.basic-capability-grid article{display:flex;flex-direction:column;gap:.28rem;padding:.85rem;border:1px solid var(--border-color,#d9e3e6);border-radius:12px;background:var(--surface,#fff)}
.basic-capability-grid article>span{font-size:.78rem;font-weight:700;color:var(--accent,#176f7a)}
.basic-capability-grid article>small{line-height:1.45;color:var(--muted,#5b6b70)}
.basic-capability-grid article>code{margin-top:.35rem;font-size:.72rem;overflow-wrap:anywhere}
.access-review-grid{margin-top:1.25rem}
.permission-domain-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.45rem}
.permission-domain-list li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border-color,#d9e3e6)}
.compact-permission-list{margin-top:1rem;max-height:32rem;overflow:auto}
/* Step 31 · general ledger and journal engine */
.form-span-2{grid-column:1/-1}.checkbox-field{display:flex;align-items:center;gap:.55rem;min-height:44px}.checkbox-field input{width:auto}.inline-actions{display:flex;flex-wrap:wrap;gap:.45rem}.secondary-button,.danger-button{min-height:40px;padding:8px 14px;border:1px solid var(--cs-line);border-radius:10px;font:inherit;font-weight:750;cursor:pointer}.secondary-button{color:var(--cs-primary-800);background:var(--cs-surface)}.danger-button{color:#fff;border-color:var(--cs-danger);background:var(--cs-danger)}.badge-danger{color:var(--cs-danger);background:var(--cs-danger-soft);border-color:rgba(174,49,49,.14)}.badge-neutral{color:var(--cs-neutral-700);background:var(--cs-neutral-100)}.definition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0}.definition-grid div{min-width:0}.definition-grid dt{color:var(--cs-neutral-600);font-size:.73rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.definition-grid dd{margin:.25rem 0 0;font-weight:700}.balance-card{display:flex;flex-direction:column;justify-content:center}.balance-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:.65rem 0 1rem}.balance-pair span{padding:.75rem;border:1px solid var(--cs-line);border-radius:11px;background:var(--cs-neutral-50)}.balance-pair strong{display:block;margin-top:.25rem;font-size:1.25rem}.hash-value{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--cs-neutral-600)}.action-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.accounting-principle{border-left:4px solid var(--cs-primary-600)}
.period-actions{display:grid;gap:.45rem}.period-actions .inline-form{display:flex;gap:.35rem;margin:0}.period-actions input{min-width:150px}
@media(max-width:760px){.form-span-2{grid-column:auto}.definition-grid,.balance-pair{grid-template-columns:1fr}.action-card{align-items:stretch;flex-direction:column}.action-card .inline-form{margin-left:0}.period-actions .inline-form{align-items:stretch;flex-direction:column}.period-actions input{min-width:0}}
