/* Relay Inbox v2 : jetons du design system Anove AIMS (thème clair) et composants. */

@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("./fonts/inter-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("./fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2"); }

:root {
  --font-sans: "Inter", sans-serif;
  --font-mono: "JetBrains Mono", monospace;

  --core-50: oklch(0.97 0.01 264); --core-100: oklch(0.93 0.02 264); --core-200: oklch(0.86 0.04 264);
  --core-600: oklch(0.38 0.15 264); --core-700: oklch(0.32 0.15 264);
  --stream-50: oklch(0.97 0.01 252); --stream-100: oklch(0.93 0.03 252); --stream-200: oklch(0.87 0.06 252);
  --stream-500: oklch(0.62 0.13 252); --stream-600: oklch(0.54 0.13 252); --stream-700: oklch(0.46 0.12 252);
  --engine-50: oklch(0.97 0.01 35); --engine-100: oklch(0.93 0.03 35); --engine-500: oklch(0.58 0.18 35);
  --engine-600: oklch(0.50 0.17 35); --engine-700: oklch(0.42 0.14 35);
  --boost-100: oklch(0.93 0.03 45); --boost-500: oklch(0.65 0.17 45); --boost-700: oklch(0.48 0.14 45);
  --neutral-100: oklch(0.96 0.004 264); --neutral-200: oklch(0.91 0.005 264); --neutral-400: oklch(0.70 0.007 264);
  --neutral-600: oklch(0.45 0.009 264); --neutral-700: oklch(0.37 0.010 264);

  --success: oklch(0.55 0.17 145); --success-muted: oklch(0.95 0.03 145);
  --warning: oklch(0.75 0.15 85);
  --status-high: oklch(0.56 0.16 35);

  --background: #f7f4f2;
  --foreground: #0f1424;
  --card: color-mix(in oklab, #f7f4f2 50%, #ffffff);
  --primary: oklch(0.32 0.15 264);
  --primary-foreground: oklch(1 0 0);
  --muted: color-mix(in oklab, #f7f4f2 96%, #0f1424);
  --muted-foreground: color-mix(in oklab, #f7f4f2 32%, #0f1424);
  --accent: color-mix(in oklab, #f7f4f2 97%, #0f1424);
  --destructive: oklch(0.58 0.18 35);
  --destructive-hover: #e86a47;
  --brand-hover: #1d2ca0;
  --brand-active: #0d1760;
  --border: color-mix(in oklab, #f7f4f2 88%, #0f1424);
  --input: color-mix(in oklab, #f7f4f2 72%, #0f1424);
  --ring: oklch(0.32 0.15 264);
  --data-stream: #549df4;
  --sidebar: color-mix(in oklab, #f7f4f2 96%, #0f1424);
  --sidebar-border: color-mix(in oklab, #f7f4f2 91%, #0f1424);

  --shadow-color: 220 3% 15%;
  --shadow-sm: 0 2px 4px -1px rgb(var(--shadow-color) / 0.08);
  --shadow-md: 0 6px 10px -2px rgb(var(--shadow-color) / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(var(--shadow-color) / 0.1);

  --badge-action-bg: color-mix(in oklch, var(--boost-500) 14%, transparent);
  --badge-action-fg: color-mix(in oklch, var(--boost-500) 65%, oklch(0.11 0.02 264));
  --badge-highlight-bg: color-mix(in oklch, var(--engine-500) 12%, transparent);
  --badge-highlight-fg: var(--engine-500);
  --badge-brand-subtle-bg: color-mix(in oklch, var(--core-700) 12%, transparent);
  --badge-brand-subtle-fg: var(--core-700);

  --selected: color-mix(in oklab, var(--foreground) 9%, transparent);
}

* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--background); color: var(--foreground); font-family: var(--font-sans), system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: var(--core-600); } a:hover { color: var(--core-700); }
button { font: inherit; color: inherit; }
svg { display: block; }
.grow { flex: 1; }
.ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.muted { color: var(--muted-foreground); }

/* ---------- Composants du design system ---------- */

.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 5px; height: 28px; padding: 0 10px; border: 1px solid transparent; border-radius: 6px; font-size: 12px; font-weight: 500; letter-spacing: -0.005em; white-space: nowrap; cursor: pointer; transition: background-color 120ms linear, color 120ms linear; }
.btn:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--background), 0 0 0 4px var(--data-stream); }
.btn:disabled { pointer-events: none; opacity: .4; }
.btn-brand { background: var(--primary); color: var(--primary-foreground); }
.btn-brand:hover { background: var(--brand-hover); } .btn-brand:active { background: var(--brand-active); }
.btn-ghost { background: transparent; color: var(--foreground); }
.btn-ghost:hover { background: color-mix(in oklab, var(--foreground) 6%, transparent); }
.btn-ghost:active { background: color-mix(in oklab, var(--foreground) 12%, transparent); }
.btn-danger { background: var(--destructive); color: var(--primary-foreground); }
.btn-danger:hover { background: var(--destructive-hover); }
.btn .spinner { width: 12px; height: 12px; border: 1.5px solid currentColor; border-right-color: transparent; border-radius: 999px; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.input { display: flex; width: 100%; height: 32px; padding: 4px 12px; border: 1px solid var(--input); border-radius: 6px; background: transparent; box-shadow: var(--shadow-sm); font: inherit; font-size: 14px; color: var(--foreground); transition: box-shadow 120ms; }
.input::placeholder { color: var(--muted-foreground); }
.input:focus-visible { outline: none; box-shadow: 0 0 0 1px var(--ring); }
.input[readonly] { color: var(--muted-foreground); }
.input-sm { height: 28px; }

.badge { display: inline-flex; align-items: center; gap: 3px; height: 18px; padding: 0 6px; border-radius: 4px; font-size: 10.5px; font-weight: 500; line-height: 1; letter-spacing: -0.01em; white-space: nowrap; }
.badge-secondary { background: color-mix(in oklab, var(--foreground) 6%, transparent); color: var(--foreground); }
.badge-outline { border: 1px solid var(--border); background: transparent; color: var(--foreground); }
.badge-action { background: var(--badge-action-bg); color: var(--badge-action-fg); }
.badge-highlight { background: var(--badge-highlight-bg); color: var(--badge-highlight-fg); }
.badge-brand-subtle { background: var(--badge-brand-subtle-bg); color: var(--badge-brand-subtle-fg); }

.switch { display: inline-flex; flex: none; align-items: center; width: 36px; height: 20px; padding: 0; border: 2px solid transparent; border-radius: 999px; background: var(--neutral-400); box-shadow: var(--shadow-sm); cursor: pointer; transition: background-color 120ms; }
.switch[aria-checked="true"] { background: var(--primary); }
.switch:disabled { cursor: not-allowed; opacity: .5; }
.switch::before { content: ""; width: 16px; height: 16px; border-radius: 999px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform 120ms; }
.switch[aria-checked="true"]::before { transform: translateX(16px); }
.switch:focus-visible, .checkbox:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--background), 0 0 0 4px var(--ring); }

.checkbox { display: grid; place-items: center; width: 16px; height: 16px; padding: 0; border: 1px solid var(--primary); border-radius: 4px; background: transparent; color: var(--primary-foreground); box-shadow: var(--shadow-sm); cursor: pointer; }
.checkbox[aria-checked="true"] { background: var(--primary); }

.progress { width: 100%; height: 8px; border-radius: 999px; background: var(--muted); overflow: hidden; }
.progress > div { height: 100%; transition: width 300ms ease-out; }

.skeleton { position: relative; height: 12px; border-radius: 6px; background: color-mix(in oklab, var(--muted) 40%, transparent); overflow: hidden; }
.skeleton::before { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, color-mix(in oklab, var(--muted) 60%, transparent), transparent); animation: shimmer 1.6s infinite; }
@keyframes shimmer { to { transform: translateX(100%); } }

.icon-btn { display: grid; place-items: center; width: 32px; height: 28px; border: 0; border-radius: 6px; background: transparent; color: var(--neutral-600); cursor: pointer; }
.icon-btn:hover { background: var(--accent); }
.icon-group { position: relative; display: flex; gap: 2px; padding: 2px; border: 1px solid var(--border); border-radius: 9px; background: var(--card); }
.close-btn { width: 28px; height: 28px; border: 0; border-radius: 6px; background: transparent; font-size: 18px; line-height: 1; color: var(--muted-foreground); cursor: pointer; }
.close-btn:hover { background: var(--accent); }

.pill { padding: 6px 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--foreground); font-size: 13px; cursor: pointer; }
.pill.is-on { border-color: var(--core-200); background: var(--core-50); color: var(--core-600); }

.menu { position: absolute; z-index: 20; padding: 4px; background: var(--card); border: 1px solid var(--border); border-radius: 8px; box-shadow: var(--shadow-md); }

.avatar { display: grid; place-items: center; flex: none; border-radius: 999px; font-weight: 600; }
.mark { display: grid; place-items: center; font-weight: 700; }

/* ---------- Mise en page ---------- */

.app { display: grid; height: 100vh; height: 100dvh; min-width: 900px; background: var(--card); font-size: 13px; }
.loading { display: grid; place-items: center; height: 100vh; color: var(--muted-foreground); font-size: 14px; }

/* Barre latérale */
.sidebar { display: flex; flex-direction: column; gap: 14px; padding: 12px 8px; background: var(--sidebar); border-right: 1px solid var(--sidebar-border); overflow: auto; }
.side-section { display: flex; flex-direction: column; gap: 1px; }
.side-label { padding: 0 8px 4px; font-size: 11px; font-weight: 600; color: var(--muted-foreground); }
.side-item { display: flex; align-items: center; gap: 8px; width: 100%; padding: 5px 8px; border: 0; border-radius: 6px; background: transparent; font-size: 13px; text-align: left; cursor: default; white-space: nowrap; overflow: hidden; color: var(--foreground); }
.side-item.is-on { background: var(--selected); font-weight: 600; }
.side-item.hov:hover { background: var(--accent); }
.side-item .count { font-size: 12px; color: var(--muted-foreground); }
.side-item .ico { display: grid; color: var(--stream-600); }
.side-item .ico.neutral { color: var(--neutral-600); }
.side-add { color: var(--muted-foreground); }
.side-add:hover { color: var(--foreground); }

.profile-switch { position: relative; display: flex; align-items: center; gap: 6px; padding: 0 4px; }
.profile-switch .menu { top: calc(100% + 4px); left: 4px; right: 4px; }
.profile-option { justify-content: space-between; }
.profile-option.is-current { background: var(--accent); }

.folders-head { display: flex; align-items: center; justify-content: space-between; padding: 0 4px 4px 8px; }
.folders-head .side-label { padding: 0; }
.folder-new { width: 20px; height: 20px; border: 0; border-radius: 5px; background: transparent; color: var(--muted-foreground); font-size: 15px; line-height: 1; cursor: default; }
.folder-new:hover { background: var(--accent); color: var(--foreground); }
.folder-row { display: flex; align-items: center; gap: 2px; padding-right: 4px; border-radius: 6px; }
.folder-row.is-on { background: var(--selected); }
.folder-row.is-drop { outline: 2px solid var(--core-200); }
.folder-caret { width: 14px; height: 14px; padding: 0; border: 0; background: transparent; color: var(--muted-foreground); font-size: 8px; cursor: default; transition: transform 120ms; }
.folder-caret.is-open { transform: rotate(90deg); }
.folder-caret.is-leaf { visibility: hidden; }
.folder-name { display: flex; align-items: center; gap: 7px; flex: 1; min-width: 0; padding: 5px 2px; border: 0; background: transparent; font-size: 13px; color: var(--foreground); text-align: left; cursor: default; }
.folder-row.is-on .folder-name { font-weight: 600; }
.folder-name .ico { display: grid; color: var(--stream-600); }
.folder-sub { width: 18px; height: 18px; border: 0; border-radius: 5px; background: transparent; color: var(--muted-foreground); font-size: 13px; line-height: 1; cursor: default; opacity: .55; }
.folder-sub:hover { opacity: 1; background: var(--card); }
.folder-input { padding: 2px 4px; }

.acct-mark { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 5px; font-size: 9px; font-weight: 700; }
.acct-dot { width: 6px; height: 6px; border-radius: 999px; flex: none; }

/* Liste des messages */
.list { position: relative; display: flex; flex-direction: column; min-height: 0; min-width: 0; border-right: 1px solid var(--border); background: var(--card); }
.resizer { position: absolute; top: 0; right: -4px; z-index: 6; width: 8px; height: 100%; cursor: col-resize; background: transparent; }
.resizer:hover { background: var(--stream-100); }
.resizer.is-active { background: var(--core-200); }
.list-head { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px 10px; border-bottom: 1px solid var(--border); }
.list-title { display: flex; align-items: center; gap: 8px; min-height: 28px; }
.list-title strong { font-size: 14px; font-weight: 700; }
.list-title small { font-size: 11px; color: var(--muted-foreground); }
.chips { display: flex; gap: 4px; flex-wrap: wrap; }
.chip { padding: 4px 11px; border: 0; border-radius: 999px; background: var(--muted); color: var(--foreground); font-size: 12px; font-weight: 500; cursor: default; }
.chip.is-on { background: var(--foreground); color: var(--background); }
.threads { flex: 1; overflow: auto; display: flex; flex-direction: column; padding: 6px; }
.empty { padding: 40px 16px; text-align: center; font-size: 13px; color: var(--muted-foreground); }

.thread { --t-muted: var(--muted-foreground); --t-dot: var(--stream-600); --t-flag: var(--engine-500); --t-avbg: var(--neutral-200); --t-avfg: var(--neutral-700);
  position: relative; display: flex; gap: 10px; align-items: flex-start; width: 100%; padding: 10px 10px 10px 22px; border: 0; border-bottom: 1px solid var(--border); border-radius: 8px; background: transparent; color: var(--foreground); text-align: left; cursor: default; }
.app.compact .thread { padding: 7px 10px 7px 22px; border-bottom-color: transparent; }
.thread.is-on { --t-muted: color-mix(in oklab, var(--primary-foreground) 82%, transparent); --t-dot: var(--primary-foreground); --t-flag: var(--primary-foreground); --t-avbg: color-mix(in oklab, var(--primary-foreground) 22%, transparent); --t-avfg: var(--primary-foreground);
  background: var(--stream-600); color: var(--primary-foreground); border-bottom-color: transparent; }
.thread .dot { position: absolute; left: 8px; top: 16px; width: 8px; height: 8px; border-radius: 999px; background: var(--t-dot); }
.thread .avatar { width: 28px; height: 28px; background: var(--t-avbg); color: var(--t-avfg); font-size: 11px; }
.thread-body { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 0; }
.thread-line { display: flex; align-items: baseline; gap: 6px; }
.thread-from { flex: 1; font-size: 13px; font-weight: 700; }
.thread-flag { color: var(--t-flag); font-size: 10px; }
.thread-time { font-size: 12px; color: var(--t-muted); white-space: nowrap; }
.thread-subject { display: flex; gap: 6px; font-size: 12px; }
.thread-channel { font-size: 11px; color: var(--t-muted); }
.thread-preview { font-size: 12px; line-height: 1.4; color: var(--t-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Lecture */
.reader { position: relative; display: flex; flex-direction: column; min-height: 0; min-width: 0; background: var(--card); }
.toolbar { display: flex; align-items: center; gap: 6px; height: 52px; min-width: 0; padding: 0 12px; border-bottom: 1px solid var(--border); }
.toolbar .menu { top: calc(100% + 6px); left: 0; width: 220px; }
.move-target { display: flex; width: 100%; padding: 5px 10px; border: 0; border-radius: 5px; background: transparent; font-size: 13px; color: var(--foreground); text-align: left; cursor: default; }
.move-target:hover, .move-target.is-on { background: var(--accent); }
.reader-scroll { flex: 1; overflow: auto; display: flex; flex-direction: column; padding: 12px 28px 28px; }
.reader-top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; font-size: 12px; color: var(--muted-foreground); }
.link-btn { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border: 0; border-radius: 6px; background: transparent; font-size: 12px; font-weight: 600; color: var(--muted-foreground); cursor: default; }
.link-btn:hover { background: var(--accent); color: var(--foreground); }
.msg-head { display: flex; align-items: flex-start; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--border); }
.msg-head .avatar { width: 38px; height: 38px; background: var(--neutral-200); color: var(--neutral-700); font-size: 13px; }
.msg-meta { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.msg-side { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font-size: 12px; color: var(--muted-foreground); white-space: nowrap; }
.triage { display: flex; align-items: center; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 12px; color: var(--muted-foreground); }
.msg-body { max-width: 720px; padding: 18px 0 22px; font-size: 14px; line-height: 1.6; white-space: pre-line; color: var(--foreground); }
.trail-item { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border: 0; border-top: 1px solid var(--border); background: transparent; text-align: left; cursor: default; }
.trail-item .avatar { width: 28px; height: 28px; background: var(--neutral-100); color: var(--neutral-600); font-size: 11px; }
.trail-text { font-size: 13px; line-height: 1.55; color: var(--muted-foreground); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trail-item.is-open .trail-text { white-space: pre-line; }
.no-selection { flex: 1; display: grid; place-items: center; font-size: 14px; color: var(--muted-foreground); }

.composer { display: flex; flex-direction: column; max-width: 720px; margin-top: 16px; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.composer-head { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-bottom: 1px solid var(--border); font-size: 12px; color: var(--muted-foreground); }
.composer-close { width: 22px; height: 22px; border: 0; border-radius: 5px; background: transparent; font-size: 15px; line-height: 1; color: var(--muted-foreground); cursor: default; }
.composer-close:hover { background: var(--accent); }
.composer-to { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-bottom: 1px solid var(--border); font-size: 13px; color: var(--muted-foreground); }
.composer-to input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font: inherit; color: var(--foreground); }
.composer textarea { min-height: 120px; padding: 12px; border: 0; outline: none; resize: vertical; background: transparent; font: inherit; font-size: 14px; line-height: 1.55; color: var(--foreground); }
.composer-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 6px 8px; border-top: 1px solid var(--border); }
.composer-status { flex: 1; min-width: 60px; font-size: 12px; color: var(--muted-foreground); }

/* Assistant */
.ai { position: absolute; top: 16px; right: 16px; bottom: 16px; z-index: 30; display: flex; flex-direction: column; width: min(400px, calc(100% - 32px)); border: 1px solid var(--core-100); border-radius: 14px; background: var(--card); box-shadow: var(--shadow-lg); overflow: hidden; }
.ai-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.ai-logo { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--core-50); color: var(--core-600); font-weight: 700; }
.ai-tabs { display: flex; gap: 4px; padding: 10px 16px 0; }
.ai-tab { flex: 1; padding: 7px 10px; border: 0; border-bottom: 2px solid transparent; background: transparent; font-size: 13px; color: var(--muted-foreground); cursor: pointer; }
.ai-tab.is-on { border-bottom-color: var(--core-600); color: var(--core-600); font-weight: 600; }
.ai-body { flex: 1; overflow: auto; display: flex; flex-direction: column; gap: 14px; padding: 16px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field-label { font-size: 12px; font-weight: 600; color: var(--foreground); }
.ai textarea { min-height: 64px; padding: 10px 12px; border: 1px solid var(--input); border-radius: 8px; outline: none; resize: vertical; background: var(--background); font: inherit; font-size: 13px; color: var(--foreground); }
.ai textarea:focus-visible { box-shadow: 0 0 0 1px var(--ring); }
.ai .pill { padding: 5px 12px; font-size: 12px; }
.ai-result { padding: 14px; border-radius: 10px; background: var(--core-50); border: 1px solid var(--core-100); font-size: 13px; line-height: 1.6; white-space: pre-line; color: var(--foreground); }
.ai-foot { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--border); background: var(--background); }
.ai select { width: 100%; max-width: 100%; padding: 9px 10px; border: 1px solid var(--input); border-radius: 8px; background: var(--background); color: var(--foreground); font: inherit; font-size: 13px; }
.ai-foot { flex-wrap: wrap; }
.whatsapp-link { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; font-size: 13px; line-height: 1.55; }
.whatsapp-qr { width: 240px; height: 240px; max-width: 100%; object-fit: contain; background: white; border: 1px solid var(--border); border-radius: 12px; padding: 10px; }
.alert { padding: 10px 14px; border-radius: 10px; background: var(--engine-50); color: var(--engine-700); font-size: 13px; }

/* Contacts */
.contacts { display: flex; flex-direction: column; min-height: 0; min-width: 0; background: var(--card); }
.contacts-scroll { flex: 1; overflow: auto; padding: 32px 36px 24px; }
.contacts-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.contacts-head h1 { margin: 0; font-size: 28px; font-weight: 700; letter-spacing: -0.02em; }
.contacts-tools { display: flex; align-items: center; gap: 8px; margin-top: 22px; }
.group-tabs { display: flex; align-items: center; gap: 4px; flex: 1; min-width: 0; overflow-x: auto; }
.group-tab { display: flex; flex: none; align-items: center; gap: 6px; padding: 6px 12px; border: 0; border-radius: 8px; background: transparent; font-size: 13px; color: var(--muted-foreground); white-space: nowrap; cursor: pointer; }
.group-tab:hover { background: var(--muted); }
.group-tab.is-on { background: var(--muted); color: var(--foreground); font-weight: 600; }
.contacts-actions { display: flex; align-items: center; gap: 2px; flex: none; }
.contacts-actions .icon-btn { width: 30px; height: 30px; }
.picked-bar { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 8px 12px; border-radius: 8px; background: var(--muted); font-size: 13px; }
.table { margin-top: 14px; min-width: 800px; }
.trow { display: grid; grid-template-columns: 36px minmax(170px,1.2fr) minmax(140px,1.4fr) 160px 184px 110px; align-items: center; border-bottom: 1px solid var(--border); }
.trow.body { min-height: 46px; }
.trow.body:hover { background: var(--accent); }
.trow.body.is-picked { background: var(--accent); }
.trow.body.is-focus { outline: 2px solid var(--stream-200); outline-offset: -1px; }
.th { padding: 8px 12px; font-size: 12px; font-weight: 500; color: var(--muted-foreground); white-space: nowrap; }
.th + .th { border-left: 1px solid var(--border); }
.cell-check { display: grid; place-items: center; }
.cell-name { display: flex; align-items: center; gap: 10px; padding: 0 12px; min-width: 0; font-size: 14px; }
.cell-name .avatar { width: 26px; height: 26px; font-size: 11px; }
.cell-title { padding: 0 12px; font-size: 14px; }
.freq { padding: 3px 10px; border: 1px solid transparent; border-radius: 999px; background: transparent; font-size: 12px; color: var(--muted-foreground); white-space: nowrap; cursor: pointer; }
.freq.is-set { border-color: var(--border); color: var(--foreground); }
.freq:hover { background: var(--card); }
.cell-channels { display: flex; align-items:center; gap: 4px; padding: 0 12px; }
.ch-mark { display: grid; place-items: center; flex:none; width: 36px; height: 36px; border-radius: 6px; font-size: 9px; font-weight: 700; }
.cell-last { padding: 0 16px; font-size: 13px; color: var(--muted-foreground); text-align: right; white-space: nowrap; }

/* Assistant de connexion */
.overlay { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 24px; background: color-mix(in oklab, var(--foreground) 35%, transparent); }
.dialog { display: flex; flex-direction: column; width: 100%; max-width: 600px; max-height: calc(100vh - 48px); border-radius: 16px; background: var(--card); box-shadow: var(--shadow-lg); overflow: hidden; }
.dialog-sm { max-width: 440px; }
.dialog-steps { display: flex; align-items: center; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--border); }
.step { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted-foreground); }
.step-n { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 999px; background: var(--muted); color: var(--muted-foreground); font-size: 11px; font-weight: 700; }
.step.is-on { color: var(--foreground); font-weight: 600; }
.step.is-on .step-n { background: var(--core-600); color: var(--primary-foreground); }
.step.is-done .step-n { background: var(--success); color: var(--primary-foreground); }
.dialog-steps .close-btn { margin-left: auto; }
.dialog-body { flex: 1; overflow: auto; display: flex; flex-direction: column; gap: 20px; padding: 24px; }
.dialog-body h3 { margin: 0; font-size: 20px; font-weight: 700; letter-spacing: -0.01em; }
.service { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); text-align: left; cursor: pointer; }
.service:hover { border-color: var(--core-200); }
.service:disabled { cursor: not-allowed; opacity: .6; }
.service-mark { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.svc-head { display: flex; align-items: center; gap: 14px; }
.svc-head .service-mark { width: 44px; height: 44px; font-size: 14px; }
.perms { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.perm { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--background); }
.perm + .perm { border-top: 1px solid var(--border); }
.recap { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; padding: 14px 16px; border-radius: 12px; background: var(--muted); font-size: 13px; }
.scope { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.scope code { margin-left: auto; font-family: var(--font-mono); font-size: 11px; color: var(--muted-foreground); }
.fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.check-row { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--muted-foreground); }
.check-row.is-live { color: var(--foreground); }
.check-icon { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 999px; background: var(--muted); color: var(--muted-foreground); font-size: 12px; font-weight: 700; }
.check-row.is-done .check-icon { background: var(--success-muted); color: var(--success); }
.stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.stat { display: flex; flex-direction: column; gap: 4px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); }
.stat strong { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.dialog-foot { display: flex; align-items: center; gap: 8px; padding: 14px 24px; border-top: 1px solid var(--border); background: var(--background); }

.toast.toast-ok { background: var(--success-muted); color: var(--success); }
.send-body { max-height: 260px; overflow: auto; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--background); font-size: 14px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.toast { position: fixed; left: 50%; bottom: 20px; z-index: 60; transform: translateX(-50%); max-width: 480px; padding: 10px 14px; border-radius: 10px; background: var(--engine-50); color: var(--engine-700); box-shadow: var(--shadow-md); font-size: 13px; }

.new-mail-dialog { width:min(760px,calc(100vw - 32px)); max-height:calc(100vh - 32px); overflow:auto; padding:24px; display:flex; flex-direction:column; gap:12px; }
.new-mail-dialog h3 { margin:0; }
.new-mail-dialog label { display:flex; flex-direction:column; gap:5px; font-size:13px; }
.new-mail-dialog input, .new-mail-dialog select, .new-mail-dialog textarea { width:100%; padding:9px 10px; border:1px solid var(--border); border-radius:6px; background:var(--background); color:inherit; font:inherit; }
.new-mail-dialog textarea { min-height:180px; resize:vertical; }
.new-mail-dialog .composer-foot { flex-wrap:wrap; }

/* ---------- Discussion WhatsApp ---------- */
.wa-sync { margin-top: 9px; padding: 9px 10px; border-radius: 8px; background: #edf5f0; color: #49665b; font-size: 11px; }
.wa-sync > div { display: flex; flex-direction: column; gap: 3px; }
.wa-sync strong { color: #005c4b; font-weight: 600; }
.wa-sync .link-btn { align-self: flex-start; margin-top: 2px; padding-left: 0; color: #005c4b; }
.thread.thread-wa { --t-avbg: #dcebe5; --t-avfg: #005c4b; }
.thread.thread-wa.is-on { --t-muted: #49665b; --t-dot: #008069; --t-flag: #755300; background: #dcefe6; color: #111b21; }
.chip[data-id="whatsapp"].is-on { background: #008069; color: #ffffff; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wa { --wa-green: #008069; --wa-green-hover: #006d59; --wa-green-active: #005c4b; --wa-sand: #f2ede6; --wa-sand-dot: rgb(120 100 70 / 0.05);
  --wa-in: #ffffff; --wa-out: #d9fdd3; --wa-ink: #111b21; --wa-meta: #667781;
  flex: 1; display: flex; flex-direction: column; min-height: 0; }
.wa-head { display: flex; align-items: center; gap: 12px; padding: 10px 18px; border-bottom: 1px solid var(--border); background: var(--card); }
.wa-avatar { width: 38px; height: 38px; background: color-mix(in oklab, var(--wa-green) 14%, #ffffff); color: var(--wa-green-active); font-size: 13px; }
.wa-who { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.wa-who strong { font-size: 14px; font-weight: 700; }
.wa-who > span { font-size: 12px; color: var(--muted-foreground); }
.wa-badge { display: inline-block; margin-right: 6px; padding: 1px 6px; border-radius: 999px; background: color-mix(in oklab, var(--wa-green) 12%, transparent); color: var(--wa-green-active); font-size: 11px; font-weight: 600; }
.wa-head-actions { display: flex; gap: 8px; flex: none; }
.wa-timeline { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; background-color: var(--wa-sand);
  background-image: radial-gradient(var(--wa-sand-dot) 1px, transparent 1px); background-size: 18px 18px; }
.wa-thread { display: flex; flex-direction: column; gap: 2px; max-width: 860px; margin: 0 auto; padding: 16px clamp(12px, 4%, 40px) 20px; }
.wa-day { display: flex; justify-content: center; margin: 14px 0 8px; }
.wa-day span { padding: 4px 12px; border-radius: 8px; background: rgb(255 255 255 / 0.92); box-shadow: 0 1px 0.5px rgb(11 20 26 / 0.13); font-size: 12px; font-weight: 500; color: var(--wa-meta); }
.wa-msg { display: flex; margin-top: 8px; }
.wa-msg.wa-cont { margin-top: 0; }
.wa-out { justify-content: flex-end; }
.wa-bubble { position: relative; max-width: min(75%, 560px); padding: 6px 9px 7px; border-radius: 8px; box-shadow: 0 1px 0.5px rgb(11 20 26 / 0.13);
  font-size: 14px; line-height: 1.45; color: var(--wa-ink); overflow-wrap: anywhere; }
.wa-in .wa-bubble { background: var(--wa-in); }
.wa-out .wa-bubble { background: var(--wa-out); }
/* Pointe sur le premier message d'un groupe seulement. */
.wa-msg:not(.wa-cont) .wa-bubble::before { content: ""; position: absolute; top: 0; width: 8px; height: 13px; }
.wa-in:not(.wa-cont) .wa-bubble { border-top-left-radius: 0; }
.wa-in:not(.wa-cont) .wa-bubble::before { left: -8px; background: var(--wa-in); clip-path: polygon(100% 0, 0 0, 100% 100%); }
.wa-out:not(.wa-cont) .wa-bubble { border-top-right-radius: 0; }
.wa-out:not(.wa-cont) .wa-bubble::before { right: -8px; background: var(--wa-out); clip-path: polygon(0 0, 100% 0, 0 100%); }
.wa-text { white-space: pre-wrap; }
.wa-author { display: block; margin-bottom: 3px; font-size: 12px; color: #006d59; }
/* L'heure est en bas à droite ; l'espace réservé en fin de texte évite qu'elle recouvre la dernière ligne. */
.wa-text::after { content: ""; display: inline-block; width: 46px; }
.wa-time { position: absolute; right: 8px; bottom: 5px; font-size: 11px; line-height: 1; color: var(--wa-meta); font-variant-numeric: tabular-nums; }
.wa-loading { display: flex; flex-direction: column; gap: 8px; padding: 12px; }
.wa-note { align-self: center; margin: 10px 0 0; font-size: 12px; color: var(--wa-meta); }
.wa-composer { flex: none; display: flex; flex-direction: column; gap: 6px; padding: 10px 16px 12px; border-top: 1px solid var(--border); background: color-mix(in oklab, var(--wa-sand) 55%, var(--card)); }
.wa-input { display: flex; border: 1px solid var(--border); border-radius: 12px; background: #ffffff; }
.wa-input:focus-within { border-color: color-mix(in oklab, var(--wa-green) 55%, var(--border)); box-shadow: 0 0 0 3px color-mix(in oklab, var(--wa-green) 14%, transparent); }
.wa-input textarea { flex: 1; min-height: 44px; max-height: 30vh; padding: 10px 14px; border: 0; outline: none; resize: vertical; background: transparent; font: inherit; font-size: 14px; line-height: 1.45; color: var(--wa-ink); }
.wa-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.wa-status { flex: 1; min-width: 120px; font-size: 12px; color: var(--muted-foreground); }
.wa-status.is-error { color: var(--destructive); }
.wa-send { min-width: 84px; background: var(--wa-green); color: #ffffff; font-weight: 600; }
.wa-send:hover:not(:disabled) { background: var(--wa-green-hover); }
.wa-send:active:not(:disabled) { background: var(--wa-green-active); }
.wa-send:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--background), 0 0 0 4px var(--wa-green); }
@media (max-width: 1100px) {
  .wa-head { padding: 8px 12px; }
  .wa-head-actions .link-btn { padding: 4px 6px; }
  .wa-bubble { max-width: 88%; }
  .wa-composer { padding: 8px 10px 10px; }
  .wa-status { order: -1; flex-basis: 100%; }
  .wa-actions .wa-send { margin-left: auto; }
}

/* Mémoire de style : carnet local discret dans le panneau existant. */
.reply-memory {border:1px solid #d5e4dd;border-radius:10px;background:#f5f9f6;padding:14px;color:#25453a;}
.reply-memory-head {display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;}
.reply-memory-badge {font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:#527569;white-space:nowrap;}
.reply-memory p {font-size:12px;line-height:1.5;margin:8px 0;}
.reply-memory-traits {display:flex;flex-wrap:wrap;gap:5px;}
.reply-memory-traits span {font-size:11px;border-radius:4px;background:#e3eee7;padding:3px 6px;}
.reply-memory summary {cursor:pointer;font-size:12px;margin-top:10px;}
.reply-memory blockquote {white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0;padding:4px 0 4px 10px;border-left:2px solid #a9c5b4;font-size:12px;line-height:1.5;}
.reply-memory-actions {display:flex;flex-wrap:wrap;gap:6px;margin:8px -7px -7px;}
.reply-memory .btn {font-size:11px;min-height:30px;}
.reply-memory-reset {border-top:1px solid #d5e4dd;margin-top:10px;padding-top:2px;}


/* Accès privé : reprend les couleurs et la typographie de la messagerie. */
.login-page { min-height: 100svh; display: grid; place-items: center; padding: 32px 20px; }
.login-card { width: min(100%, 500px); padding: 48px; background: var(--card); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-md); }
.login-brand { color: var(--primary); font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.login-rule { width: 36px; height: 3px; background: var(--primary); margin: 38px 0 24px; }
.login-card h1 { font-size: clamp(30px, 5vw, 40px); line-height: 1.18; letter-spacing: -.04em; font-weight: 600; margin: 0 0 20px; }
.login-card p { color: var(--muted-foreground); font-size: 14px; line-height: 1.65; }
.login-action { display: flex; justify-content: space-between; height: auto; min-height: 46px; padding: 12px 16px; margin: 30px 0 22px; text-decoration: none; font-size: 13px; }
.login-card .login-footnote { font-size: 11px; line-height: 1.6; }
#login-error { color: var(--destructive); }
.auth-controls { margin-top: auto; border-top: 1px solid var(--border); padding-top: 12px; }
.auth-dialog { width: min(520px, calc(100vw - 32px)); padding: 24px; }
.auth-dialog h2 { font-size: 20px; margin: 0 0 12px; }
.auth-device { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--border); padding: 16px 0; font-size: 13px; }
.auth-device p { font-size: 11px; margin-bottom: 0; }
.auth-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.auth-dialog-actions a { text-decoration: none; }
@media(max-width: 560px) { .login-card { padding: 32px 24px; } }


/* ---------- États partagés : historique, liste paginée, brouillons, hors ligne ---------- */
.list-more { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 8px 16px; font-size: 12px; text-align: center; }
.history-more { display: flex; justify-content: center; padding: 8px 0 12px; }
.composer-status.is-warn, .wa-status.is-warn { color: var(--boost-700); }
.composer-status.is-error { color: var(--destructive); }
.draft-conflict { display: flex; flex-direction: column; gap: 8px; margin: 8px 12px 0; padding: 10px 12px; border: 1px solid color-mix(in oklab, var(--destructive) 35%, var(--border)); border-radius: 8px; background: color-mix(in oklab, var(--destructive) 6%, var(--card)); font-size: 13px; }
.draft-conflict p { margin: 0; }
.draft-conflict div { display: flex; flex-wrap: wrap; gap: 6px; }
.offline-banner { position: fixed; top: 0; left: 0; right: 0; z-index: 70; padding: 6px 12px; padding-top: max(6px, env(safe-area-inset-top)); background: var(--foreground); color: var(--background); font-size: 12px; text-align: center; }
.mobile-only { display: none; }
.drawer-close { display: none; }

/* ---------- Mobile et tablette portrait (≤ 1000 px, téléphones en paysage compris) : un écran à la fois, cibles de 44 px, zones sûres ---------- */
@media (max-width: 1000px) {
  html, body { height: 100%; overscroll-behavior: none; }
  body { -webkit-text-size-adjust: 100%; }
  .app.is-mobile {
    display: block; position: relative; min-width: 0; width: 100%;
    height: var(--vvh, 100dvh); overflow: hidden; font-size: 15px;
  }
  .mobile-only { display: grid; }
  /* Écrans : liste ou lecture, plein cadre, avec marges de sécurité (encoche, barre d'accueil). */
  .is-mobile > .list, .is-mobile > .reader, .is-mobile > .contacts {
    position: absolute; inset: 0; border-right: 0;
    padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right);
  }
  .is-mobile.pane-list > .reader { display: none; }
  .is-mobile.pane-reader > .list { display: none; }
  .is-mobile .resizer { display: none; }
  .is-mobile .list-head { padding: max(10px, env(safe-area-inset-top)) 12px 10px; }
  .is-mobile .threads { padding: 4px 6px calc(12px + env(safe-area-inset-bottom)); -webkit-overflow-scrolling: touch; }
  .is-mobile .thread { min-height: 64px; padding: 12px 10px 12px 24px; }
  .is-mobile .thread .avatar { width: 36px; height: 36px; font-size: 13px; }
  .is-mobile .input { min-height: 44px; font-size: 16px !important; } /* 16 px : pas de zoom automatique iOS */
  .is-mobile .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .is-mobile .chip { min-height: 36px; padding: 6px 14px; font-size: 14px; white-space: nowrap; }

  /* Tiroir : barre latérale glissée depuis la gauche, au-dessus d'un voile. */
  .is-mobile > .sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 40; width: min(84vw, 320px);
    padding: max(12px, env(safe-area-inset-top)) 10px calc(12px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
    transform: translateX(-102%); transition: transform 180ms ease; box-shadow: var(--shadow-lg); visibility: hidden;
  }
  .is-mobile.drawer-open > .sidebar { transform: none; visibility: visible; }
  .drawer-backdrop { position: fixed; inset: 0; z-index: 35; background: color-mix(in oklab, var(--foreground) 35%, transparent); }
  .is-mobile .drawer-close { display: grid; place-items: center; align-self: flex-end; width: 44px; height: 44px; }
  .is-mobile .side-item, .is-mobile .folder-name { min-height: 44px; font-size: 15px; }
  .is-mobile .folder-caret, .is-mobile .folder-sub, .is-mobile .folder-new { min-width: 44px; min-height: 44px; }

  /* Cibles tactiles d'au moins 44 px. */
  .is-mobile .btn, .is-mobile ~ .overlay .btn, .overlay .btn { min-height: 44px; padding: 0 14px; font-size: 14px; }
  .is-mobile .icon-btn { width: 44px; height: 44px; }
  .is-mobile .link-btn, .is-mobile .close-btn, .overlay .close-btn, .is-mobile .composer-close { min-width: 44px; min-height: 44px; }
  .is-mobile .pill, .overlay .pill { min-height: 44px; padding: 8px 14px; }

  /* Lecture : barre d'outils défilable, retour à gauche. */
  .is-mobile .toolbar { height: auto; min-height: 56px; padding: max(6px, env(safe-area-inset-top)) 8px 6px; gap: 4px; overflow-x: auto; scrollbar-width: none; }
  .is-mobile .toolbar > .grow { display: none; }
  .is-mobile .icon-group { flex: none; }
  .is-mobile .mobile-back { flex: none; padding: 0 10px 0 6px; font-size: 15px; }
  .is-mobile .reader-scroll { padding: 12px 16px calc(24px + env(safe-area-inset-bottom)); }
  .is-mobile .msg-head { flex-wrap: wrap; }
  .is-mobile .msg-side { flex-direction: row; gap: 8px; white-space: normal; }
  .is-mobile .msg-body { font-size: 16px; }

  /* Rédaction : plein écran au-dessus de la lecture, au-dessus du clavier. */
  .is-mobile .composer {
    position: fixed; inset: 0; z-index: 45; max-width: none; margin: 0; border: 0; border-radius: 0;
    height: var(--vvh, 100dvh); background: var(--card);
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  }
  .is-mobile .composer-head { min-height: 52px; font-size: 14px; }
  .is-mobile .composer textarea { flex: 1; min-height: 0; resize: none; font-size: 16px; }
  .is-mobile .composer-foot { gap: 8px; padding: 8px; }
  .is-mobile .composer-status { flex-basis: 100%; order: -1; }

  /* WhatsApp : en-tête et compositeur fixes, zone de messages défilante. */
  .is-mobile .wa-head { padding: 8px 12px; }
  .is-mobile .wa-composer { padding: 8px 10px calc(10px + env(safe-area-inset-bottom)); }
  .is-mobile .wa-input textarea { font-size: 16px; }
  .is-mobile .wa-status { flex-basis: 100%; order: -1; }
  .is-mobile .wa-bubble { max-width: 86%; }

  /* Assistant : feuille plein écran. */
  .is-mobile .ai {
    position: fixed; inset: 0; z-index: 46; width: auto; border: 0; border-radius: 0;
    height: var(--vvh, 100dvh);
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  }
  .is-mobile .ai-tab { min-height: 44px; font-size: 14px; }
  .is-mobile .ai textarea, .is-mobile .ai select { font-size: 16px; }

  /* Fenêtres (aperçu exact, déconnexion, appareils, nouveau message, connexion) : plein écran. */
  .overlay { padding: 0; place-items: stretch; }
  .dialog, .dialog-sm { max-width: none; max-height: none; height: var(--vvh, 100dvh); border-radius: 0; }
  .dialog-body { padding: 18px 16px; }
  .dialog-foot { padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); flex-wrap: wrap; }
  .dialog-steps { padding: max(12px, env(safe-area-inset-top)) 16px 12px; overflow-x: auto; }
  .new-mail-dialog input, .new-mail-dialog select, .new-mail-dialog textarea { font-size: 16px; min-height: 44px; }
  .send-body { font-size: 16px; }
  .toast { left: 12px; right: 12px; bottom: calc(16px + env(safe-area-inset-bottom)); max-width: none; transform: none; }

  /* Contacts : tableau défilant horizontalement. */
  .is-mobile .contacts-scroll { padding: max(16px, env(safe-area-inset-top)) 16px 24px; }
  .is-mobile .table { overflow-x: auto; }
}

/* WhatsApp account enrolment: calm green card and readable phone instructions. */
.wa-connect-intro { padding:16px 18px; border:1px solid #b5d8c8; border-radius:12px; background:#edf7f1; color:#174b35; }
.wa-connect-intro p { margin:6px 0 0; font-size:13px; line-height:1.55; }
.wa-link-steps { max-width:360px; text-align:left; padding-left:22px; margin:12px 0; font-size:14px; line-height:1.6; }
.wa-link-steps li + li { margin-top:8px; }

/* Official 2026 digital RGB assets, kept unchanged; dimensions preserve their viewBox ratios. */
.wa-brand-glyph { display:inline-block; width:24px; height:24px; flex:none; object-fit:contain; vertical-align:middle; }
.wa-brand-wordmark { display:block; width:156px; height:auto; max-width:100%; object-fit:contain; }
.acct-mark:has(.wa-brand-glyph), .ch-mark:has(.wa-brand-glyph) { width:28px; height:28px; flex-shrink:0; background:transparent !important; }
.service-mark:has(.wa-brand-glyph) { background:transparent !important; }
.wa-badge { display:inline-flex; align-items:center; gap:5px; vertical-align:middle; }

.wa-connect-dialog { width:min(760px,calc(100vw - 32px)); max-width:760px; }
.wa-connect-heading { display:flex; align-items:center; justify-content:space-between; padding:24px 28px 0; }
.wa-qr-layout { display:grid; grid-template-columns:264px minmax(0,1fr); align-items:center; gap:28px; }
.wa-qr-layout .whatsapp-link { min-height:264px; padding:0; }
.wa-qr-layout h3 { margin:0; font-size:18px; }
.wa-connect-note { font-size:13px; line-height:1.6; margin:0; }
.wa-connect-success { padding:20px; border-radius:12px; background:#edf7f1; color:#174b35; }
@media(max-width:640px) { .wa-qr-layout { grid-template-columns:minmax(0,1fr); gap:12px; } .wa-qr-layout .whatsapp-link { min-height:220px; } .wa-qr-layout .whatsapp-qr { width:220px; height:220px; } .wa-connect-heading { padding:18px 20px 0; } }

/* Marques de fournisseurs : proportions et couleurs officielles conservées. */
.provider-brand-icon { display:inline-block; width:24px; height:24px; object-fit:contain; flex:none; vertical-align:middle; }
.acct-mark:has(.provider-brand-icon) { width:28px; height:28px; flex-shrink:0; background:transparent !important; }
.acct-mark .provider-brand-icon { width:20px; height:20px; }
.service-mark:has(.provider-brand-icon) { background:transparent !important; border-radius:0; }
.service-mark .provider-brand-icon { width:28px; height:28px; }
.svc-head .provider-brand-icon { width:32px; height:32px; }
.provider-badge { display:inline-flex; align-items:center; gap:7px; font-size:11px; color:var(--muted-foreground); }
.provider-badge .provider-brand-icon { width:18px; height:18px; }
.provider-auth-button { display:inline-flex; align-items:center; padding:0; border:0; background:transparent; border-radius:4px; cursor:pointer; min-height:44px; }
.provider-auth-button img { display:block; height:40px; width:auto; max-width:100%; }
.provider-auth-button:focus-visible { outline:2px solid var(--ring); outline-offset:3px; }
.provider-auth-button:disabled { cursor:default; opacity:.55; }

/* Glyphes sociaux officiels : pas de recadrage, filtre ni recoloration. */
.social-brand-icon { display:inline-block; width:32px; height:32px; object-fit:contain; flex:none; vertical-align:middle; }
.acct-mark:has(.social-brand-icon), .ch-mark:has(.social-brand-icon) { width:36px; height:36px; flex-shrink:0; background:transparent !important; border-radius:0; }
.service-mark:has(.social-brand-icon) { background:transparent !important; border-radius:0; }
.provider-badge:has(.social-brand-icon) { gap:8px; }

.service:disabled:has(.social-brand-icon) { opacity:1; }
.service:disabled:has(.social-brand-icon) > :not(.service-mark) { opacity:.55; }

/* Personnes : les identités et échanges gardent leur compte et leur profil visibles. */
.person-dialog { width:min(780px,100%); max-height:90dvh; display:flex; flex-direction:column; }
.person-dialog .composer-head h3 { margin:3px 0; }
.person-body { overflow:auto; min-height:0; }
.person-name { border:0; background:transparent; padding:6px 0; text-align:left; color:inherit; font:inherit; cursor:pointer; }
.person-name:hover { text-decoration:underline; }
.identity-list { padding:0; margin:10px 0 18px; list-style:none; }
.identity-list li { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.identity-kind { width:72px; color:var(--muted-foreground); font-size:12px; }
.identity-form { display:flex; gap:10px; align-items:end; flex-wrap:wrap; }
.identity-form label,.person-merge label { display:flex; flex-direction:column; gap:5px; font-size:12px; }
.identity-form select,.person-merge select { padding:9px; border:1px solid var(--border); background:var(--card); color:var(--foreground); border-radius:6px; max-width:100%; }
.person-merge { margin:24px 0; padding:14px; border:1px solid var(--border); border-radius:10px; }
.person-merge summary { cursor:pointer; font-weight:600; }
.merge-review { margin-top:12px; padding:12px; background:var(--muted); border-radius:8px; }
.person-timeline { display:flex; flex-direction:column; gap:8px; }
.person-exchange { display:flex; flex-direction:column; align-items:stretch; gap:5px; text-align:left; border:1px solid var(--border); border-radius:10px; padding:14px; background:var(--card); color:var(--foreground); cursor:pointer; min-width:0; }
.person-exchange:hover { background:var(--muted); }
.person-exchange > span { color:var(--muted-foreground); font-size:12px; }
.contact-import-account { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:16px 0; border-bottom:1px solid var(--border); }
.contact-import-account p { margin:4px 0; }
@media(max-width:760px) { .person-dialog { max-height:100dvh; } .identity-form .grow { min-width:180px; } }

/* A quiet workbench for human decisions, with source records set side by side. */
.duplicate-workbench { max-width:1100px; margin:24px auto; padding:16px 24px 48px; }
.duplicates-head { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-bottom:18px; }
.duplicates-head h1 { font-size:30px; letter-spacing:-.8px; margin:8px 0; }
.duplicates-head p { margin:5px 0; color:var(--muted-foreground); }
.duplicates-eyebrow { font-size:11px; letter-spacing:1.8px; font-weight:650; }
.duplicate-note { font-size:13px; line-height:1.6; max-width:800px; margin:20px 0; }
.duplicates-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:18px 0; border-bottom:1px solid var(--border); margin-bottom:24px; }
.duplicates-toolbar > span { margin-left:auto; font-size:12px; }
.duplicates-list { display:flex; flex-direction:column; gap:24px; }
.duplicate-card { border:1px solid var(--border); border-radius:14px; background:var(--card); overflow:hidden; box-shadow:0 2px 10px #00000005; }
.duplicate-evidence { display:flex; flex-wrap:wrap; gap:8px 16px; padding:13px 20px; background:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.duplicate-evidence strong { color:var(--primary); }
.duplicate-pair { display:grid; grid-template-columns:1fr 1fr; }
.duplicate-person { padding:22px; min-width:0; }
.duplicate-person + .duplicate-person { border-left:1px solid var(--border); }
.duplicate-person-head { display:flex; gap:12px; align-items:center; }
.duplicate-person-head h3 { font-size:16px; margin:0 0 6px; overflow-wrap:anywhere; }
.duplicate-person small { color:var(--muted-foreground); }
.duplicate-person ul { list-style:none; padding:0; margin:18px 0 0; }
.duplicate-person li { padding:5px 0; font-size:13px; overflow-wrap:anywhere; }
.duplicate-person li > span { color:var(--muted-foreground); font-size:11px; display:inline-block; width:44px; }
.duplicate-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:16px 20px; border-top:1px solid var(--border); }
.duplicate-actions p { flex:1; min-width:200px; font-size:12px; color:var(--muted-foreground); margin:0; }
.duplicate-confirm { padding:20px; border-top:2px solid var(--primary); background:var(--muted); }
.duplicate-confirm h4 { margin:0; }.duplicate-confirm p { line-height:1.6; font-size:13px; }
.duplicate-confirm label { display:flex; flex-direction:column; gap:8px; font-size:12px; margin:18px 0; }
.duplicate-confirm select { padding:10px; border:1px solid var(--border); border-radius:6px; background:var(--card); color:var(--foreground); width:100%; }
.duplicate-confirm > div { display:flex; justify-content:flex-end; gap:10px; }
.duplicates-empty { padding:48px 24px; text-align:center; border:1px dashed var(--border); border-radius:14px; }.duplicates-empty h2 { font-size:18px; }.duplicates-empty p { color:var(--muted-foreground); }
.duplicate-error { padding:14px; background:var(--muted); color:var(--destructive); border-left:3px solid var(--destructive); }
.duplicate-history { margin-top:32px; padding:18px 0; border-top:1px solid var(--border); }.duplicate-history summary { cursor:pointer; font-weight:600; }.duplicate-history > div { display:flex; align-items:center; gap:16px; padding:10px 0; }.duplicate-history p { flex:1; font-size:13px; }.duplicate-history small { display:block; color:var(--muted-foreground); margin-top:6px; }
.dup-tier { padding:2px 9px; border-radius:999px; background:var(--core-50); border:1px solid var(--core-200); font-weight:650; }
.dup-tier.is-ambiguous { color:var(--foreground); background:color-mix(in oklab,var(--warning) 18%,var(--card)); border-color:color-mix(in oklab,var(--warning) 55%,var(--border)); }
.dup-tier.is-name { color:var(--muted-foreground); background:var(--card); border-color:var(--border); }
.dup-flag { padding:1px 8px; border-radius:999px; border:1px dashed color-mix(in oklab,var(--warning) 60%,var(--border)); color:var(--foreground); }
.dup-activity { margin-left:auto; display:inline-flex; align-items:center; gap:6px; }
.dup-priority { display:inline-flex; align-items:baseline; gap:6px; font-weight:600; color:var(--primary); }
.dup-priority small { font-weight:400; color:var(--muted-foreground); }
.dup-priority.is-low, .dup-priority.is-none { color:var(--muted-foreground); font-weight:500; }
.dup-blocked { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--muted-foreground); }
.duplicates-head h1 .help-tip { vertical-align:middle; }
.dup-compare { margin:16px 0 4px; border:1px solid var(--border); border-radius:10px; background:var(--card); overflow:hidden; }
.dup-row { display:grid; grid-template-columns:110px 1fr 1fr; gap:4px 16px; padding:10px 14px; font-size:13px; border-top:1px solid var(--border); }
.dup-row:first-child { border-top:0; }
.dup-row > div { display:flex; flex-wrap:wrap; gap:4px 8px; min-width:0; overflow-wrap:anywhere; }
.dup-row-head { background:var(--muted); font-size:12px; font-weight:650; }
.dup-row-head em { font-style:normal; font-weight:600; font-size:11px; color:var(--core-700); background:var(--core-50); border:1px solid var(--core-200); border-radius:999px; padding:0 6px; margin-left:4px; }
.dup-label { color:var(--muted-foreground); font-size:12px; }
.dup-row.is-differs .dup-label::after { content:' ≠'; color:var(--destructive); }
.dup-value { padding:1px 6px; border-radius:5px; }
.dup-value.is-shared { background:var(--core-50); box-shadow:inset 0 0 0 1px var(--core-200); color:var(--core-700); }
.dup-value small { color:var(--muted-foreground); }
.dup-result { margin:12px 0 0; font-size:12.5px; line-height:1.5; }
.dup-result strong { color:var(--primary); margin-right:6px; }
.decision-list { list-style:none; padding:0; margin:0 0 24px; display:flex; flex-direction:column; gap:8px; }
.decision-row { display:flex; align-items:center; gap:12px; padding:12px 16px; border:1px solid var(--border); border-radius:10px; background:var(--card); }
.decision-row > div { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; overflow-wrap:anywhere; }
.decision-row small { color:var(--muted-foreground); font-size:12px; }
.decision-row.is-revoked, .decision-row.is-inactive { opacity:.7; }
.corr-card { border:1px solid var(--border); border-radius:14px; background:var(--card); padding:16px 20px; display:flex; flex-direction:column; gap:10px; }
.corr-card header { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; font-size:12px; }
.corr-id { font-size:15px; overflow-wrap:anywhere; }
.corr-meta { color:var(--primary); font-weight:600; }
.corr-origin { margin:0; font-size:12px; color:var(--muted-foreground); }
.corr-modes { display:flex; gap:8px; flex-wrap:wrap; }
.corr-form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px; }
.corr-field { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted-foreground); flex:1; min-width:180px; }
.corr-field input, .corr-field select { padding:9px 10px; border:1px solid var(--border); border-radius:6px; background:var(--card); color:var(--foreground); font-size:14px; }
.corr-matches { display:flex; flex-wrap:wrap; gap:6px; width:100%; }
.corr-match { padding:5px 10px; border:1px solid var(--border); border-radius:999px; background:var(--card); color:var(--foreground); font-size:13px; cursor:pointer; }
.corr-match.is-on { border-color:var(--core-200); background:var(--core-50); color:var(--core-700); font-weight:600; }
.corr-recent { margin-top:28px; padding-top:16px; border-top:1px solid var(--border); }
.corr-recent h2 { font-size:14px; margin:0 0 8px; }
.corr-recent ul { list-style:none; padding:0; margin:0; font-size:13px; }
.corr-recent li { padding:4px 0; display:flex; flex-wrap:wrap; gap:8px; overflow-wrap:anywhere; }
.corr-recent small { color:var(--muted-foreground); }
@media(max-width:760px) { .corr-card { padding:14px; }.corr-form .btn { width:100%; }.corr-field { min-width:100%; }.decision-row { flex-wrap:wrap; }.decision-row .btn { width:100%; } }
.person-notes { margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid var(--border); }
.person-notes .section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.person-notes h4, .person-tags h4, .person-relations h4 { display:flex; align-items:center; gap:6px; }
.note-list, .relation-list { list-style:none; padding:0; margin:8px 0 0; display:flex; flex-direction:column; gap:10px; }
.note-item { border:1px solid var(--border); border-radius:10px; padding:12px 14px; background:var(--card); }
.note-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:12px; color:var(--muted-foreground); }
.note-kind { padding:1px 8px; border-radius:999px; background:var(--core-50); border:1px solid var(--core-200); color:var(--core-700); font-weight:600; }
.note-body { margin:8px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.5; }
.note-actions, .relation-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:8px; }
.note-editor { display:flex; flex-direction:column; gap:10px; padding:12px; border:1px solid var(--core-200); border-radius:10px; background:var(--muted); margin-top:8px; }
.note-editor-row { display:flex; flex-wrap:wrap; gap:10px; }
.note-editor label, .relation-form label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted-foreground); }
.note-editor select, .relation-form select, .relation-edit select { padding:8px; border:1px solid var(--border); border-radius:6px; background:var(--card); color:var(--foreground); }
.note-editor textarea { width:100%; resize:vertical; }
.note-editor-actions { display:flex; justify-content:flex-end; gap:8px; }
.note-audit { list-style:none; margin:10px 0 0; padding:8px 0 0; border-top:1px dashed var(--border); font-size:12px; color:var(--muted-foreground); display:flex; flex-direction:column; gap:4px; }
.note-before { display:block; white-space:pre-wrap; overflow-wrap:anywhere; }
.tag-create { display:flex; gap:8px; margin-top:8px; }
.tag-create .input { flex:1; min-width:0; }
.relation-item { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; font-size:13px; overflow-wrap:anywhere; }
.relation-kind { color:var(--muted-foreground); font-size:12px; }
.relation-edit { display:flex; flex-wrap:wrap; gap:8px; align-items:center; width:100%; }
.relation-form { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
.orphan-notes { margin-top:32px; }
.orphan-notes h2 { font-size:16px; display:flex; align-items:center; gap:6px; }
.orphan-reattach { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px; }
.orphan-reattach select { padding:8px; border:1px solid var(--border); border-radius:6px; background:var(--card); color:var(--foreground); }
@media(max-width:760px) { .note-editor-row > label { flex:1; min-width:140px; }.note-editor-actions .btn, .orphan-reattach .btn { flex:1; }.relation-actions { width:100%; } }
@media(max-width:760px) { .dup-activity { margin-left:0; width:100%; flex-wrap:wrap; }.dup-row { grid-template-columns:1fr 1fr; padding:10px 12px; }.dup-row > .dup-label { grid-column:1 / -1; }.dup-row-head > span:first-child { display:none; }.dup-row > div[data-side]::before { content:attr(data-side); font-size:10px; font-weight:700; color:var(--muted-foreground); margin-right:2px; } }
@media(max-width:760px) { .duplicate-workbench { padding:8px 14px 32px; margin:12px auto; }.duplicates-head h1 { font-size:25px; }.duplicate-pair { grid-template-columns:1fr; }.duplicate-person + .duplicate-person { border-left:0; border-top:1px solid var(--border); }.duplicate-person { padding:18px; }.duplicates-toolbar > span { margin-left:0; width:100%; }.duplicate-actions .btn { flex:1; }.duplicate-history > div { flex-wrap:wrap; }.duplicate-confirm > div { flex-wrap:wrap; } }

.saved-links { display:flex; flex-direction:column; gap:14px; }.saved-link { display:flex; align-items:center; flex-wrap:wrap; gap:20px; padding:20px; }.saved-link > div { flex:1; min-width:180px; }.saved-link h3 { font-size:16px; margin:10px 0; overflow-wrap:anywhere; }.saved-link small,.saved-link p { color:var(--muted-foreground); font-size:12px; }

/* Durable, background mail archive import. Counts are exact; discovery has no guessed percentage. */
.mail-history-list:empty{display:none}.mail-history-list{display:grid;gap:8px;max-height:230px;overflow:auto;margin-top:10px}.mail-history{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface,#fff);font-size:12px}.mail-history>div{display:flex;gap:6px;justify-content:space-between;flex-wrap:wrap}.mail-history strong{display:flex;align-items:center;gap:6px}.mail-history strong svg,.mail-history strong img{width:16px;height:16px}.mail-history p{margin:6px 0}.mail-history progress{width:100%;height:5px;accent-color:var(--brand)}.mail-history .link-btn{font-size:12px;padding:2px 0}

.person-activity{font-weight:600;margin:6px 0}.person-reply-context details{margin-top:8px}.person-reply-context details p{padding:6px 0;border-bottom:1px solid var(--border)}

/* Mailbox architecture: account roots anchor every folder, including unified view. */
.mailbox-account{margin:8px 0 12px}.mailbox-account-title{display:flex;align-items:center;gap:7px;width:100%;padding:9px 10px;border:0;background:transparent;color:var(--muted-foreground);font:inherit;font-size:11px;text-align:left}.mailbox-account-title .provider-brand-icon{width:17px;height:17px}.mailbox-account-title strong{font-weight:650}.folder-row{min-height:34px}.folder-name{min-width:0}.folder-caret:disabled{visibility:hidden}.folder-sub:focus-visible{opacity:1}
/* Safe semantic email HTML, deliberately independent of sender CSS. */
.mail-reading-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted-foreground);margin:18px 0 4px}.mail-rich{white-space:normal!important;line-height:1.65;overflow-wrap:anywhere;max-width:100%;overflow-x:auto;padding-bottom:18px}.mail-rich p{margin:.7em 0}.mail-rich a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.mail-rich table{border-collapse:collapse;max-width:100%;font-size:13px;margin:12px 0}.mail-rich td,.mail-rich th{padding:8px 12px;border:1px solid var(--border);vertical-align:top}.mail-rich th{background:var(--muted);text-align:left}.mail-rich blockquote{margin:16px 0;padding:4px 16px;border-left:3px solid var(--border);color:var(--muted-foreground)}.mail-rich pre{white-space:pre-wrap;background:var(--muted);padding:12px;border-radius:8px}.mail-rich ul,.mail-rich ol{padding-left:24px}.mail-rich h1,.mail-rich h2,.mail-rich h3{line-height:1.3;font-size:1.2em;margin:1em 0 .5em}.mail-plain{white-space:pre-wrap}.trail-card{border-top:1px solid var(--border)}.trail-card .trail-item{border:0;width:100%;text-align:left}.trail-heading{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.trail-heading>span:first-child{display:flex;gap:12px}.trail-heading time{margin-left:auto;color:var(--muted-foreground);font-size:11px}.trail-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground);font-size:12px}.trail-card>.msg-body{margin-left:44px}.trail-card .is-open .trail-preview{display:none}
/* Network: a quiet ink-and-paper activity atlas, not a relationship ranking. */
.contact-mode-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:22px 0 8px}.contact-mode{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--muted)}.contact-mode button{font:inherit;font-size:12px;padding:7px 16px;border:0;border-radius:6px;background:transparent;color:var(--muted-foreground)}.contact-mode .is-on{background:var(--background);color:var(--foreground);box-shadow:0 1px 3px #0001}.contacts .group-tabs{overflow-x:auto;max-width:100%;padding-bottom:4px}.contacts .group-tab{white-space:nowrap}.contacts-tools{flex-wrap:wrap}.contacts-actions{margin-left:auto}.network-workspace{--net-ink:#215b57;--net-paper:#f6f7f3;--net-rule:#dce3dc;margin-top:24px;border:1px solid var(--net-rule);border-radius:18px;overflow:hidden;background:var(--net-paper);color:#253a35}.network-topline{display:flex;justify-content:space-between;gap:24px;padding:28px 32px 10px}.network-eyebrow{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:500;letter-spacing:.16em;color:#6d8177}.network-topline h2{font-family:Georgia,serif;font-size:30px;font-weight:400;letter-spacing:-.9px;margin:9px 0}.network-topline p{font-size:12px;color:#6d8177;margin:8px 0}.network-period{display:flex;flex-direction:column;gap:6px;min-width:105px;font-size:10px;color:#6d8177}.network-period select{border:1px solid #cdd9d0;border-radius:7px;background:#fff9;color:#253a35;padding:8px;font:inherit;font-size:12px}.network-layout{display:grid;grid-template-columns:minmax(430px,1fr) 245px}.network-map{position:relative;aspect-ratio:1.12;min-height:480px;isolation:isolate;background-image:radial-gradient(#c9d3cb80 .7px,transparent .7px);background-size:19px 19px;margin:4px 8px 14px 20px}.network-ring{position:absolute;border:1px solid var(--net-rule);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;aspect-ratio:1}.ring-one{width:38%}.ring-two{width:60%}.ring-three{width:82%}.network-axis{position:absolute;top:50%;left:6%;width:88%;border-top:1px dashed #dce3dc;z-index:-1}.network-owner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:5px;font-size:11px}.network-owner span{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--net-ink);color:white;font-size:16px;border:5px solid #e5ebe4;outline:1px solid #cad8ce;box-shadow:0 0 0 7px #eff3ed}.network-owner strong{font-weight:550;background:var(--net-paper);padding:2px 8px}.network-node{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:4px;width:96px;padding:4px 2px;border:0;background:transparent;color:#2b4940;cursor:pointer;border-radius:8px}.network-avatar{display:grid;place-items:center;border-radius:50%;height:34px;width:34px;background:#e4ebe1;border:2px solid var(--net-paper);outline:1px solid #c6d4c6;font-weight:550;font-size:11px}.network-node.frequent .network-avatar{background:#cee0d4;outline-color:#95b5a1}.network-node.regular .network-avatar{background:#e2e6d2}.network-node-name{max-width:96px;padding:2px 5px;background:var(--net-paper);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.network-node small{font-family:'JetBrains Mono',monospace;font-size:8px;color:#6d8177;background:var(--net-paper)}.network-node:hover .network-avatar,.network-node:focus-visible .network-avatar{outline:2px solid var(--net-ink);box-shadow:0 3px 10px #215b5726}.network-map-note{position:absolute;bottom:0;left:0;width:100%;text-align:center;font-size:10px;color:#6d8177}.network-empty{position:absolute;left:15%;right:15%;bottom:9%;font-size:12px;text-align:center;color:#6d8177}.network-guide{padding:30px 26px 24px 18px;align-self:center;font-size:12px;line-height:1.7}.network-guide h3{font-family:Georgia,serif;font-size:30px;letter-spacing:-.8px;line-height:1.12;font-weight:400;margin:16px 0}.network-guide p{color:#657a6c}.network-scale{display:flex;flex-direction:column;gap:8px;margin:20px 0}.network-scale span{display:flex;align-items:center;gap:10px;font-size:10px}.network-scale i{width:8px;height:8px;border-radius:50%;border:1px solid #8da693}.network-scale .frequent{background:#8da693}.network-scale .regular{background:#c9d7a4}.network-guide summary{cursor:pointer;font-size:10px;text-decoration:underline;text-underline-offset:3px}.network-guide details p{font-size:10px}.network-quiet{border-top:1px solid var(--net-rule);padding-top:15px}.network-guide .btn{white-space:normal;font-size:10px;padding:8px;text-align:left;height:auto;line-height:1.4}.person-groups{border-block:1px solid var(--border);padding:14px 0;margin:14px 0}.person-groups h4{margin:0}.person-groups>div{display:flex;flex-wrap:wrap;gap:6px}.group-membership{font:inherit;font-size:11px;padding:6px 10px;border:1px solid var(--border);border-radius:20px;background:transparent;color:var(--foreground)}.group-membership.is-on{border-color:#8da693;background:#e6eee6;color:#215b57}.group-dialog{max-width:440px}.group-dialog .dialog-body{display:flex;flex-direction:column;gap:16px}.group-dialog label{display:flex;flex-direction:column;gap:8px}.person-dialog{width:min(840px,calc(100vw - 32px))}.person-body .person-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.person-exchange{min-width:0;margin:0}.person-body .identity-form{margin-bottom:12px}
@media(max-width:1250px){.network-layout{grid-template-columns:minmax(0,1fr)}.network-guide{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;border-top:1px solid var(--net-rule);padding:20px 28px}.network-guide h3{margin:5px 0}.network-guide .network-eyebrow{grid-column:1/-1}.network-map{max-width:740px;width:calc(100% - 40px);justify-self:center}}
@media(max-width:600px){.network-workspace{margin-top:12px;border-radius:12px}.network-topline{padding:20px 16px 6px;gap:8px}.network-topline h2{font-size:23px}.network-topline p{font-size:10px}.network-eyebrow{font-size:8px}.network-period{min-width:80px}.network-map{min-height:340px;aspect-ratio:1;margin:0 6px 12px;width:calc(100% - 12px)}.network-node{width:68px}.network-node-name{max-width:68px;font-size:8px}.network-avatar{width:27px;height:27px;font-size:9px}.network-owner span{width:43px;height:43px;font-size:13px}.network-guide{display:block;padding:20px}.network-guide h3{font-size:26px}.network-guide h3 br{display:none}.network-guide h3 br:after{content:' '}.network-guide .network-scale{flex-direction:row;flex-wrap:wrap;gap:12px}.network-guide .btn{font-size:12px}.network-map-note{font-size:8px}.contacts-actions{margin:8px 0}.person-body .person-timeline{grid-template-columns:1fr}.mail-reading-controls{align-items:flex-start}.trail-card>.msg-body{margin-left:0}.group-dialog{width:calc(100vw - 24px)}}
@media(prefers-reduced-motion:reduce){.network-node{transition:none}}
.group-member-list{max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:8px}.group-member-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--foreground);font:inherit;font-size:12px;text-align:left}.group-member-row[aria-checked=true]{background:#e6eee6;color:#215b57}.group-member-row strong{font-weight:500}.group-dialog h4{margin:0}.group-dialog{max-height:90dvh;overflow-y:auto}
@media(max-width:600px){.folder-row{min-height:44px}.mailbox-account-title{min-height:44px}}
@media(max-width:600px){.contacts-head{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;align-items:start}.contacts-head>div{grid-column:2;grid-row:1}.contacts-head .mobile-only{grid-column:1;grid-row:1}.contacts-head>button:not(.mobile-only){grid-column:2;justify-self:start}.contacts-head h1{font-size:25px}.contacts-tools .group-tabs{flex:0 0 100%;width:100%;max-width:100%;min-width:0}.contacts-tools .contacts-actions{flex:0 0 100%;width:100%;margin:6px 0}.network-node small{display:none}.network-node-name{max-width:66px}.network-workspace{min-width:0}.contacts-scroll{min-width:0}}
.network-coverage{display:flex;flex-wrap:wrap;gap:5px 18px;padding:8px 32px 12px;font-size:10px;color:#657a6c;border-bottom:1px solid var(--net-rule)}.network-coverage strong{font-weight:550}.network-coverage span{line-height:1.6}@media(max-width:600px){.network-coverage{padding:8px 16px 12px;font-size:9px}}
.settings-page .contacts-scroll{max-width:1150px}.settings-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:24px}.settings-heading h1{margin:8px 0;font-family:Georgia,serif;font-weight:400;font-size:36px;letter-spacing:-1px}.settings-heading p{color:var(--muted-foreground);font-size:13px}.settings-intro{max-width:760px;line-height:1.7;font-size:13px;color:var(--muted-foreground);margin-bottom:28px}.settings-accounts{display:flex;flex-direction:column;gap:20px}.history-account-card{border:1px solid var(--border);border-radius:14px;padding:24px;background:var(--background)}.history-account-card>header{display:flex;align-items:center;gap:14px}.history-account-card>header>.provider-brand-icon{width:34px;height:34px}.history-account-card h2{font-size:17px;font-weight:600;margin:0 0 5px}.history-account-card header p{margin:0;font-size:12px;color:var(--muted-foreground);overflow-wrap:anywhere}.history-account-stats{display:flex;gap:24px;flex-wrap:wrap;padding:18px 0;border-bottom:1px solid var(--border);font-size:11px;color:var(--muted-foreground)}.history-account-stats strong{color:var(--foreground);font-weight:550;font-variant-numeric:tabular-nums}.history-account-control{display:flex;align-items:end;gap:20px;margin:20px 0}.history-account-control label{display:flex;flex-direction:column;gap:8px;min-width:230px;font-size:12px}.history-account-control select{border:1px solid var(--border);border-radius:7px;background:var(--background);color:var(--foreground);padding:10px;font:inherit}.history-account-card>.muted,.settings-footnote{font-size:11px;line-height:1.7;max-width:780px}.settings-footnote{margin:24px 0;color:var(--muted-foreground)}.history-review{max-width:540px}.history-review .dialog-body{font-size:13px;line-height:1.7}.history-review .btn{margin-top:12px}@media(max-width:600px){.settings-heading h1{font-size:29px}.history-account-card{padding:18px}.history-account-control{flex-direction:column;align-items:stretch;gap:14px}.history-account-control label{min-width:0}.history-account-stats{gap:10px 18px}.history-review{width:calc(100vw - 24px);max-height:85dvh;overflow-y:auto}}

/* Contact profile: the same quiet paper, sage ink and editorial rhythm as the network. */
.person-profile{--person-ink:#215b57;--person-rule:#dce3dc;--person-muted:#64766c;width:min(1000px,calc(100vw - 48px));max-width:1000px;max-height:90dvh;background:#fafbf7;color:#253a35;border:1px solid var(--person-rule);border-radius:20px}
.person-profile-head{display:flex;align-items:center;gap:18px;padding:26px 30px;border-bottom:1px solid var(--person-rule);background:#f0f4ed;flex-shrink:0}
.person-profile-avatar{display:grid;place-items:center;flex-shrink:0;width:62px;height:62px;border-radius:50%;background:#dce8dc;border:1px solid #bdcfbf;color:var(--person-ink);font-family:Georgia,serif;font-size:25px}
.person-profile-head .grow{min-width:0}.person-profile-head h3{font-family:Georgia,serif;font-weight:400;font-size:32px;letter-spacing:-.7px;margin:6px 0;overflow-wrap:anywhere}.person-profile-head p{margin:0;font-size:12px;color:var(--person-muted);line-height:1.6}.person-profile-head .close-btn{align-self:flex-start;border:1px solid #cdd9cd;border-radius:50%;height:32px;width:32px;color:var(--person-ink);flex-shrink:0;background:#ffffff80}
.person-profile .person-body{display:block;padding:0;gap:0}.person-profile-layout{display:grid;grid-template-columns:310px minmax(0,1fr)}.person-facts{padding:26px 24px;background:#f6f7f2;border-right:1px solid var(--person-rule);min-width:0}.person-history{padding:26px 30px;min-width:0}
.person-profile h4{margin:0 0 16px;font-size:12px;font-weight:600;letter-spacing:.01em}.person-profile .muted{color:var(--person-muted);font-size:11px;line-height:1.65}.person-profile .identity-list{margin:0;display:flex;flex-direction:column;gap:12px}.person-profile .identity-list li{display:grid;grid-template-columns:1fr auto;gap:5px 8px;padding:0 0 12px;border-color:var(--person-rule);font-size:12px}.person-profile .identity-kind{width:auto;font-size:10px;grid-column:1;color:var(--person-muted)}.person-profile .identity-list li>.grow{grid-column:1/-1;grid-row:2;line-height:1.6;min-width:0}.person-profile .identity-list li>small{grid-column:2;grid-row:1;font-size:10px}.person-profile .identity-list small{font-size:10px}.person-profile .link-btn{font-size:11px;justify-self:start}
.person-add-identity{margin-top:14px;font-size:11px}.person-add-identity>summary{cursor:pointer;color:var(--person-ink);line-height:1.6;list-style:none;padding:8px 0}.person-profile .identity-form{display:grid;grid-template-columns:1fr;margin-top:12px;gap:12px}.person-profile .identity-form .grow{min-width:0}.person-profile .identity-form input{width:100%;min-width:0;box-sizing:border-box}.person-profile .identity-form .btn{justify-self:start}.person-profile .person-merge{margin:24px 0;padding:14px 12px;border-color:var(--person-rule);background:#ffffff70;font-size:11px;line-height:1.7}.person-profile .person-merge summary{font-size:11px;color:var(--person-ink)}.person-profile .person-merge select{width:100%;min-width:0;font-size:11px}.person-profile .person-groups{padding:20px 0 0;border-top:1px solid var(--person-rule);border-bottom:0;margin:0}.person-profile .person-groups h4{margin:0 0 6px}.person-profile .group-membership{color:var(--person-ink);border-color:#cbd9cb;font-size:10px;line-height:1.6}
.person-history-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.person-history-heading h4{font-family:Georgia,serif;font-weight:400;font-size:28px;letter-spacing:-.5px;margin:7px 0 0}.person-total{font-size:10px;color:var(--person-ink);background:#e9efe5;border:1px solid var(--person-rule);border-radius:20px;padding:7px 10px;white-space:nowrap}.person-profile .person-activity{font-size:11px;color:var(--person-muted);margin:0 0 6px;line-height:1.6}.person-activity strong{font-weight:600;color:#344e41}.person-history>.muted{margin:0 0 22px}.person-profile .person-timeline{display:flex;flex-direction:column;gap:0;border-left:1px solid #d4dfd1;margin:24px 0 18px 5px;padding-left:18px}
.person-profile .person-exchange{position:relative;border:0;border-bottom:1px solid var(--person-rule);border-radius:0;background:transparent;padding:0 0 18px;margin:0 0 18px;gap:8px;line-height:1.5;color:#253a35}.person-profile .person-exchange:before{content:'';position:absolute;left:-23px;top:6px;width:7px;height:7px;border:1px solid #9bb39d;background:#edf2e9;border-radius:50%}.person-profile .person-exchange:hover{background:#edf2e980}.person-profile .person-exchange:focus-visible{outline:2px solid var(--person-ink);outline-offset:5px}.person-profile .person-exchange>strong{font-size:13px;font-weight:550;overflow-wrap:anywhere}.person-profile .person-exchange-meta{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--person-muted)}.person-exchange-meta>.provider-brand-icon{width:14px;height:14px;flex-shrink:0}.person-exchange-meta>span{min-width:0;overflow-wrap:anywhere}.person-exchange-meta time{margin-left:auto;white-space:nowrap}.person-profile .person-exchange-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;color:var(--person-muted);overflow-wrap:anywhere}.person-profile .person-exchange-count{font-family:var(--font-mono);font-size:9px;color:#6c8170;display:flex;justify-content:space-between}.person-history-footnote{font-size:10px;color:var(--person-muted);line-height:1.7;margin:18px 0 0}.person-profile .person-body>.error{margin:16px 24px}.person-profile .person-body>p{padding:0 24px}
@media(max-width:760px){.person-profile{width:100%;max-width:100%;max-height:100dvh;border-radius:0;border:0}.person-profile-head{padding:20px 18px;gap:12px}.person-profile-head h3{font-size:26px}.person-profile-avatar{width:46px;height:46px;font-size:20px}.person-profile-head .network-eyebrow{font-size:8px}.person-profile-layout{grid-template-columns:1fr}.person-facts{border-right:0;border-bottom:1px solid var(--person-rule);padding:22px 20px}.person-history{padding:24px 20px}.person-profile .person-merge{margin:18px 0}.person-history-heading h4{font-size:25px}.person-profile .person-exchange-meta{flex-wrap:wrap}.person-profile .person-exchange{padding-bottom:18px}.person-profile .group-membership{min-height:36px}.person-profile .person-add-identity>summary,.person-profile .person-merge>summary{min-height:32px;display:flex;align-items:center}.person-profile .person-total{white-space:normal;text-align:center}.person-profile-head .close-btn{min-width:44px;min-height:44px}}

/* Mail workspace — paper surfaces and sage navigation shared with the contact network. */
.app .sidebar{--selected:#dfe9dd;--accent:#e8eee4;--foreground:#2b4139;--muted-foreground:#52664e;--stream-600:#326858;background:#eef2e9;border-right-color:#d8e1d3;padding-top:18px;gap:20px}
.sidebar .side-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.09em;font-weight:450;color:#52664e;text-transform:uppercase}.sidebar .side-item{border-radius:8px;padding-block:7px}.sidebar .side-item:hover{background:#e3ebdd}.sidebar .side-item.is-on{background:#dce7d6;color:#214e40;font-weight:600}.sidebar .side-item .count{font-size:10px;font-variant-numeric:tabular-nums;color:#60775d}.sidebar .mailbox-account{margin:6px 0 12px;padding-bottom:8px;border-bottom:1px solid #dce4d5}.sidebar .mailbox-account:last-child{border-bottom:0}.sidebar .mailbox-account-title{padding:9px 5px;font-size:10px;color:#4b654f;gap:8px}.sidebar .mailbox-account-title strong{font-weight:600}.sidebar .folder-row{border-radius:6px;min-height:34px;margin:2px 0;position:relative}.sidebar .folder-row:hover{background:#e5ecdf}.sidebar .folder-row.is-on{background:#dce7d6;box-shadow:inset 2px 0 #729568}.sidebar .folder-name{font-size:11px;padding-block:7px;gap:7px}.sidebar .folder-name .ico{color:#839a79}.sidebar .folder-caret{color:#698561;cursor:pointer;flex-shrink:0}.sidebar .folder-sub{opacity:0}.sidebar .folder-row:hover .folder-sub,.sidebar .folder-row:focus-within .folder-sub{opacity:1}.sidebar .folder-name .count{font-size:9px;border-radius:5px;padding:2px 4px;color:#5e7758;background:#e4eddd}.sidebar .folder-row.is-on .folder-name .ico{color:#326858}.sidebar button:focus-visible{outline:2px solid #326858;outline-offset:-2px}
.mail-workspace{--background:#f6f7f1;--foreground:#283b32;--card:#fbfcf8;--muted:#edf1e7;--muted-foreground:#52664e;--border:#dce3d6;--input:#c5d1bd;--primary:#215b57;--core-600:#215b57;--core-700:#194b47;--core-100:#dbe8dc;--core-50:#f0f5ed;--stream-600:#326858;--selected:#e1ebdb;--accent:#edf2e8;--ring:#326858;--brand-hover:#2b6b60;--brand-active:#194b47;background:#f6f7f1}
.mail-workspace .list{background:#f5f7ef;border-color:#dce3d6}.mail-workspace .list-head{padding:24px 18px 16px;gap:14px;background:#f5f7ef}.inbox-eyebrow{font-family:var(--font-mono);font-size:9px;color:#52664e;letter-spacing:.13em;margin-bottom:8px}.mail-workspace .list-title .inbox-heading{font-family:Georgia,serif;font-size:27px;font-weight:400;letter-spacing:-.6px;line-height:1.25;margin-bottom:6px}.mail-workspace .list-title small{font-size:10px}.mail-workspace .list-head input{background:#fcfdf9;border-color:#d5dfcc;font-size:12px!important;border-radius:8px;min-height:36px}.mail-workspace .chips{gap:6px}.mail-workspace .chip{border:1px solid #d9e2cf;background:transparent;color:#52664e;font-size:10px;padding:5px 11px}.mail-workspace .chip.is-on{background:#e0ebd8;border-color:#bccfb1;color:#2f593f;font-weight:600}.mail-workspace .threads{padding:8px 10px}.mail-workspace .thread{--t-muted:#52664e;--t-dot:#5b8a57;--t-flag:#96733a;--t-avbg:#e5ecdd;--t-avfg:#5a7553;gap:10px;padding:16px 12px 16px 23px;border-radius:9px;border-bottom-color:#e0e6d9;margin-bottom:2px;cursor:pointer}.mail-workspace .thread:hover{background:#edf2e5}.mail-workspace .thread.is-on{--t-muted:#5c7454;--t-dot:#3d7044;--t-flag:#8c6b28;--t-avbg:#d0dfc7;--t-avfg:#375c3b;background:#e2ecd9;color:#244530;border-bottom-color:#ceddc3;box-shadow:inset 3px 0 #6e9560}.mail-workspace .thread .avatar{width:31px;height:31px;font-family:Georgia,serif;font-size:12px;border:1px solid #d2dfc6}.mail-workspace .thread .dot{width:5px;height:5px;left:10px;top:23px}.mail-workspace .thread-body{gap:5px}.mail-workspace .thread-from{font-size:12px;font-weight:500}.mail-workspace .thread.is-unread .thread-from{font-weight:700}.mail-workspace .thread-time{font-family:var(--font-mono);font-size:9px}.mail-workspace .thread-subject{font-size:11px;line-height:1.5}.mail-workspace .thread.is-unread .thread-subject{font-weight:600}.mail-workspace .thread-channel{font-size:9px}.mail-workspace .thread-preview{font-size:10px;line-height:1.65}.mail-workspace .thread-preview strong{font-weight:500}.mail-workspace .mail-history-list{margin-top:0;gap:6px;max-height:155px}.mail-workspace .mail-history{border-color:#dce5d2;background:#f9fbf5;padding:9px 10px;font-size:10px}.mail-workspace .mail-history p{font-size:9px;line-height:1.5}.mail-workspace .mail-history .link-btn{font-size:10px;min-height:28px}.mail-workspace .mail-history progress{accent-color:#75996a}.mail-workspace .mail-history.is-complete{padding:7px 10px}.mail-workspace .mail-history.is-complete p,.mail-workspace .mail-history.is-complete progress{display:none}.mail-workspace .mail-history.is-complete>div>span{font-size:9px}.mail-workspace.compact .thread{padding-block:10px}
.mail-workspace .reader{background:#fbfcf8}.mail-workspace .toolbar{background:#f4f7ef;border-bottom-color:#dce3d6;min-height:58px;padding:0 20px}.mail-workspace .icon-btn{color:#567150;border-radius:7px}.mail-workspace .icon-btn:hover{background:#e4eddb;color:#28583f}.mail-workspace .icon-group{border-color:#d7e1cd}.mail-workspace .reader-scroll{padding:22px clamp(24px,3vw,56px) 40px;scroll-padding:24px}.mail-workspace .reader-top{max-width:820px;width:100%;align-self:center;padding-bottom:22px;font-family:var(--font-mono);font-size:9px;color:#52664e}.mail-workspace .reader-top .link-btn{font-family:var(--font-sans);font-size:11px;color:#4f7355;gap:5px;padding:7px 9px}.mail-subject{font-family:Georgia,serif;font-size:clamp(27px,2.5vw,38px);font-weight:400;letter-spacing:-.7px;line-height:1.22;margin:0 0 26px;width:100%;max-width:820px;align-self:center;overflow-wrap:anywhere;color:#283f31}.mail-workspace .msg-head{width:100%;max-width:820px;align-self:center;padding-bottom:22px;gap:14px}.mail-workspace .msg-head .avatar{width:40px;height:40px;flex-shrink:0;background:#e4ecdc;color:#4b6c45;border:1px solid #d0dfc5;font-family:Georgia,serif;font-size:15px}.mail-sender{font-size:13px;font-weight:600;line-height:1.6}.mail-address{font-size:11px;color:#52664e;overflow-wrap:anywhere;line-height:1.65}.mail-workspace .msg-meta{gap:4px}.mail-workspace .msg-side{font-size:10px;gap:6px;max-width:45%;white-space:normal;overflow-wrap:anywhere;text-align:right}.mail-workspace .msg-side .provider-badge{font-size:10px}.mail-workspace .msg-side time{font-family:var(--font-mono);font-size:9px}.mail-workspace .triage{width:100%;max-width:820px;align-self:center;padding-block:14px;font-size:11px}.mail-workspace .mail-reading-controls{width:100%;max-width:820px;align-self:center;font-size:9px;margin:20px 0 0;color:#52664e;flex-wrap:wrap}.mail-workspace .mail-reading-controls .link-btn{font-size:10px}.mail-workspace .msg-body{width:100%;max-width:820px;align-self:center;line-height:1.85;font-size:14px;padding:24px 0 32px;color:#334639;overflow-wrap:anywhere;min-width:0}.mail-workspace .mail-rich{line-height:1.85}.mail-workspace .mail-rich h1,.mail-workspace .mail-rich h2,.mail-workspace .mail-rich h3{font-family:Georgia,serif;font-weight:400}.mail-workspace .mail-rich blockquote{border-color:#c9d8bd;color:#6a7c60}.mail-workspace .mail-rich td,.mail-workspace .mail-rich th{border-color:#d6e0cd}.mail-workspace .mail-rich a{color:#215b57}.mail-workspace .mail-trail{width:100%;max-width:820px;align-self:center;border-left:1px solid #d9e3cf;padding-left:18px;margin-top:8px}.mail-workspace .trail-card{position:relative;border-top:0;border-bottom:1px solid #e0e7d8;margin-bottom:8px}.mail-workspace .trail-card:before{content:'';position:absolute;left:-23px;top:25px;width:7px;height:7px;border:1px solid #a6bc98;border-radius:50%;background:#f0f5e9}.mail-workspace .trail-item{padding:17px 0;gap:10px;width:100%;color:#3e593b}.mail-workspace .trail-item .avatar{background:#eaf0e2;color:#6d8463;flex-shrink:0}.mail-workspace .trail-heading b{font-size:12px;font-weight:550}.mail-workspace .trail-heading time{font-size:9px;font-family:var(--font-mono);white-space:nowrap}.mail-workspace .trail-preview{font-size:11px}.mail-workspace .trail-card>.msg-body{width:auto;margin:0 0 0 38px;padding-top:2px}.mail-workspace .history-more{width:100%;max-width:820px;align-self:center}.mail-workspace .composer{width:100%;max-width:820px;align-self:center;border-color:#c9d9bd;background:#fffefb;box-shadow:0 3px 16px #29461e08}.mail-workspace .composer-head{background:#eff4e9;color:#5e7954;padding:12px}.mail-workspace .composer-foot{background:#f6f8f1}.mail-workspace .btn-brand{background:#215b57;border-color:#215b57}.mail-workspace .btn-brand:hover{background:#2b6b60}.mail-workspace .no-selection{color:#52664e;font-family:Georgia,serif;font-size:23px}
@media(max-width:1000px){.mail-workspace.is-mobile .list-head{padding: max(16px, env(safe-area-inset-top)) 16px 14px;gap:12px}.mail-workspace.is-mobile .list-title .inbox-heading{font-size:28px}.mail-workspace.is-mobile .inbox-eyebrow{margin-bottom:5px}.mail-workspace.is-mobile .list-head input{font-size:16px!important;min-height:44px}.mail-workspace.is-mobile .chips{gap:8px}.mail-workspace.is-mobile .chip{font-size:12px;min-height:38px}.mail-workspace.is-mobile .threads{padding:6px 10px calc(16px + env(safe-area-inset-bottom))}.mail-workspace.is-mobile .thread{padding:16px 12px 16px 23px;min-height:90px}.mail-workspace.is-mobile .thread-from{font-size:14px}.mail-workspace.is-mobile .thread-subject{font-size:13px}.mail-workspace.is-mobile .thread-preview{font-size:12px}.mail-workspace.is-mobile .thread-time{font-size:10px}.mail-workspace.is-mobile .thread .avatar{width:34px;height:34px;font-size:13px}.mail-workspace.is-mobile .toolbar{padding:max(6px,env(safe-area-inset-top)) 8px 6px;min-height:58px}.mail-workspace.is-mobile .reader-scroll{padding:20px 20px calc(28px + env(safe-area-inset-bottom))}.mail-workspace.is-mobile .reader-top{padding-bottom:20px;gap:12px}.mail-workspace.is-mobile .reader-top>div{gap:4px!important}.mail-workspace.is-mobile .reader-top .link-btn{font-size:12px;min-height:44px}.mail-workspace.is-mobile .mail-subject{font-size:30px;margin-bottom:23px}.mail-workspace.is-mobile .msg-head{flex-wrap:wrap;padding-bottom:18px;gap:10px}.mail-workspace.is-mobile .msg-side{flex-basis:100%;max-width:none;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;text-align:left;gap:8px 14px;padding-left:50px}.mail-workspace.is-mobile .msg-head .avatar{width:40px;height:40px}.mail-workspace.is-mobile .mail-sender{font-size:14px}.mail-workspace.is-mobile .mail-address{font-size:12px}.mail-workspace.is-mobile .mail-location{flex:1;min-width:0}.mail-workspace.is-mobile .msg-body{font-size:16px;line-height:1.8;padding-top:22px}.mail-workspace.is-mobile .mail-reading-controls{font-size:10px;gap:8px;margin-top:14px}.mail-workspace.is-mobile .mail-reading-controls .link-btn{font-size:11px}.mail-workspace.is-mobile .mail-trail{padding-left:14px}.mail-workspace.is-mobile .trail-card:before{left:-19px}.mail-workspace.is-mobile .trail-card>.msg-body{margin-left:0}.mail-workspace.is-mobile .trail-heading>span:first-child{flex-wrap:wrap;gap:4px 8px}.mail-workspace.is-mobile .composer{position:fixed;width:auto;align-self:auto;max-width:none;margin:0}.is-mobile .sidebar .folder-name{font-size:13px;min-height:44px}.is-mobile .sidebar .folder-caret,.is-mobile .sidebar .folder-sub{min-height:44px;min-width:44px}.is-mobile .sidebar .folder-sub{opacity:.7}.is-mobile .sidebar .mailbox-account-title{min-height:44px;font-size:11px}.is-mobile .sidebar .side-item{min-height:44px}.mail-workspace.is-mobile .mail-history-list{max-height:140px}.mail-workspace.is-mobile .mail-history .link-btn{min-height:44px}.mail-workspace.is-mobile .thread .dot{top:24px}}

/* Writing surfaces: the same paper, sage ink and editorial hierarchy as the inbox. */
.new-mail-dialog,.send-preview,.ai{--background:#f6f8f1;--foreground:#283f31;--card:#fcfdf9;--muted:#edf2e7;--muted-foreground:#52664e;--border:#d7e1cf;--input:#bacdb0;--primary:#215b57;--core-600:#215b57;--core-700:#194b47;--core-100:#dbe8d4;--core-50:#f1f5eb;--accent:#e8efdf;--ring:#326858;--brand-hover:#2b6b60;--brand-active:#194b47;color:var(--foreground);background:var(--card)}
.new-mail-dialog .network-eyebrow,.send-preview .network-eyebrow,.ai .network-eyebrow{color:#52664e;font-size:9px;line-height:1.5;letter-spacing:.12em}.writing-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 30px;background:#eff4e9;border-bottom:1px solid #d7e1cf;flex-shrink:0}.writing-head h3{font-family:Georgia,serif;font-weight:400;font-size:30px;letter-spacing:-.6px;line-height:1.2;margin:8px 0 0;color:#283f31}.writing-step{padding:7px 11px;border:1px solid #c8d8bb;border-radius:20px;font-size:10px;white-space:nowrap;color:#486442;background:#e5eddc}
.new-mail-dialog{width:min(820px,calc(100vw - 48px));max-width:820px;max-height:90dvh;padding:0;gap:0;overflow:hidden;border:1px solid #d7e1cf;border-radius:18px}.new-mail-dialog .composer-head h3{margin-top:8px}.new-mail-dialog .composer-close,.ai .close-btn{width:34px;height:34px;min-width:34px;border-radius:50%;border:1px solid #cad9be;background:#ffffff90;color:#3f6547;align-self:flex-start;flex-shrink:0}.compose-fields{display:flex;flex-direction:column;gap:14px;padding:24px 30px;min-height:0;flex:1;overflow:auto;overscroll-behavior:contain}.new-mail-dialog label{font-size:11px;gap:8px;color:#52664e}.new-mail-dialog input,.new-mail-dialog select{background:#fffefb;border-color:#d4dfca;padding:11px 12px;font-size:13px;border-radius:7px;color:#283f31;min-width:0;max-width:100%}.new-mail-dialog input:focus-visible,.new-mail-dialog select:focus-visible,.new-mail-dialog textarea:focus-visible{outline:2px solid #719363;outline-offset:2px}.compose-fields>.provider-badge{font-size:10px;align-self:flex-start;margin-top:-6px}.new-mail-dialog .compose-message{border-top:1px solid #dfe7d6;padding-top:20px;margin-top:6px}.new-mail-dialog textarea{border:0;border-radius:0;background:transparent;padding:8px 0;min-height:220px;line-height:1.85;font-size:14px;color:#283f31;resize:vertical}.new-mail-dialog .composer-foot{padding:16px 24px;background:#f0f4e9;border-top:1px solid #d7e1cf;gap:10px;flex-shrink:0}.new-mail-dialog .composer-foot .btn{font-size:11px;white-space:normal;line-height:1.5;height:auto;min-height:36px;padding:8px 11px}.new-mail-dialog .composer-status{font-size:10px;color:#52664e;line-height:1.5}.new-mail-dialog>.muted,.new-mail-dialog>p,.new-mail-dialog>.btn{margin:14px 24px;font-size:11px;line-height:1.6}.new-mail-dialog .btn-brand,.send-preview .btn-brand,.ai .btn-brand{background:#215b57;border-color:#215b57;color:#fff}.new-mail-dialog .btn-brand:hover,.send-preview .btn-brand:hover,.ai .btn-brand:hover{background:#2b6b60}.new-mail-dialog button:focus-visible,.send-preview button:focus-visible,.ai button:focus-visible{outline:2px solid #326858;outline-offset:3px}
.send-preview{width:min(760px,calc(100vw - 48px));max-width:760px;max-height:90dvh;border:1px solid #d7e1cf;border-radius:18px}.send-preview .dialog-body{padding:26px 30px;gap:22px;min-height:0;overflow:auto;overscroll-behavior:contain}.send-preview .recap{grid-template-columns:55px minmax(0,1fr);gap:12px 14px;font-size:12px;line-height:1.7}.send-preview .recap>span{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.send-preview .recap>.muted{font-size:10px;padding-top:2px}.send-preview-letter{border-top:1px solid #d7e1cf;padding-top:24px}.send-preview .send-body{max-height:none;overflow:visible;padding:18px 0 0;border:0;border-radius:0;background:transparent;line-height:1.85;font-size:14px;color:#283f31}.send-preview .dialog-body>p.muted{font-size:11px!important;line-height:1.75;border-left:2px solid #b3c8a3;padding:2px 0 2px 14px}.send-preview .dialog-foot{background:#f0f4e9;gap:12px;padding:16px 30px;flex-shrink:0}.send-preview .dialog-foot .btn{font-size:12px;min-height:40px}.send-preview .alert{font-size:12px;line-height:1.7}
.mail-workspace .ai,.ai{width:min(440px,calc(100% - 32px));border-color:#cbdcbe;border-radius:18px;box-shadow:0 12px 46px #263e2626}.ai-head{background:#eff4e9;padding:22px 20px;gap:12px;flex-shrink:0}.ai-logo{height:40px;width:40px;flex-shrink:0;border-radius:50%;background:#dfebd4;color:#326858;border:1px solid #bfd2b1;font-size:21px}.ai-title{font-family:Georgia,serif;font-size:28px;font-weight:400;letter-spacing:-.5px;line-height:1.2;margin:5px 0}.ai-head .muted{font-size:10px!important;color:#52664e;line-height:1.6}.ai-tabs{gap:4px;margin:16px 18px 0;padding:4px;border:1px solid #d7e1cf;border-radius:9px;background:#f0f4e9;flex-shrink:0}.ai-tab{font-size:11px;border:0;border-radius:6px;padding:9px 8px;color:#52664e}.ai-tab.is-on{color:#285c42;background:#fffefb;box-shadow:0 1px 4px #2943200f}.ai-body{padding:20px;gap:20px;min-height:0;overscroll-behavior:contain}.ai-body>.muted{line-height:1.8;font-size:11px!important}.ai .field-label{font-size:11px;font-weight:550;color:#3e5d38}.ai textarea,.ai select{background:#fffefb;font-size:13px;line-height:1.75;border-color:#ccdbbf;padding:12px;border-radius:8px}.ai textarea{min-height:100px}.ai .pill{font-size:10px;border-color:#cadaba;color:#486442}.ai .pill.is-on{color:#28583f;background:#dfebd4}.ai-result{border:0;border-left:2px solid #a8c296;border-radius:0;background:#f2f6ed;padding:16px 18px;line-height:1.85;font-size:13px;color:#283f31;overflow-wrap:anywhere}.ai-result>.network-eyebrow{display:block;margin-bottom:14px;white-space:normal}.ai-result-text{white-space:pre-wrap}.ai-foot{background:#eff4e9;padding:16px 20px;border-color:#d7e1cf;gap:10px;flex-shrink:0}.ai-foot .btn{font-size:11px;line-height:1.5;min-height:38px;height:auto;padding:9px 12px;white-space:normal}.ai .reply-memory{border-color:#d7e1cf;background:#f6f8f1;padding:14px;border-radius:10px;font-size:11px;line-height:1.7}.ai .reply-memory p{font-size:11px;line-height:1.7}.ai .reply-memory-head{gap:8px;flex-wrap:wrap}.ai .reply-memory-badge{font-size:9px;background:#e4eddc;color:#486442}.ai .reply-memory-traits span{background:#e4eddc;color:#486442;border-color:#cadaba}.ai .reply-memory-actions .btn{font-size:10px}.ai .field{gap:9px}
@media(max-width:1000px){.new-mail-dialog,.send-preview{width:100%;max-width:none;max-height:none;height:var(--vvh,100dvh);border:0;border-radius:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}.writing-head{padding:20px;gap:12px}.writing-head h3{font-size:27px}.new-mail-dialog .composer-close,.ai .close-btn{min-width:44px;min-height:44px}.compose-fields{padding:20px;gap:16px}.new-mail-dialog label{font-size:12px}.new-mail-dialog input,.new-mail-dialog select,.new-mail-dialog textarea{font-size:16px;min-height:44px}.new-mail-dialog textarea{min-height:180px;line-height:1.8}.new-mail-dialog .composer-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:8px}.new-mail-dialog .composer-foot .btn{font-size:12px;min-height:44px}.new-mail-dialog .composer-status{flex-basis:100%;order:-1}.new-mail-dialog .compose-message{padding-top:18px}.send-preview .writing-head{align-items:flex-start;flex-wrap:wrap}.send-preview .writing-step{font-size:10px}.send-preview .dialog-body{padding:22px 20px;gap:20px}.send-preview .recap{grid-template-columns:35px minmax(0,1fr);font-size:13px;gap:10px}.send-preview .send-body{font-size:16px;line-height:1.8}.send-preview .dialog-foot{padding:12px 20px calc(12px + env(safe-area-inset-bottom));gap:10px}.send-preview .dialog-foot .btn{min-height:44px;font-size:13px}.send-preview .dialog-body>p.muted{font-size:12px!important}.mail-workspace.is-mobile .ai,.is-mobile .ai{position:fixed;inset:0;width:auto;max-width:none;height:var(--vvh,100dvh);border:0;border-radius:0;box-shadow:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.ai-head{padding:18px 20px}.ai-title{font-size:29px}.ai-tabs{margin:14px 16px 0}.ai-tab{font-size:13px;min-height:44px}.ai-body{padding:20px;gap:20px}.ai textarea,.ai select{font-size:16px}.ai .pill{min-height:44px;font-size:12px}.ai-foot{padding:12px 16px}.ai-foot .btn{min-height:44px;font-size:13px}.ai .reply-memory-actions .btn{min-height:44px;font-size:11px}}

/* Account settings and connections — a continuous paper-and-sage workspace. */
.settings-page,.upkeep-page,.home-page,.connection-dialog,.wa-connect-dialog,.history-review,.auth-dialog,.account-disconnect,.calendar-page{--background:#f6f8f1;--foreground:#283f31;--card:#fcfdf9;--muted:#edf2e7;--muted-foreground:#52664e;--border:#d7e1cf;--input:#bacdb0;--primary:#215b57;--core-600:#215b57;--core-700:#194b47;--core-100:#dbe8d4;--core-50:#f1f5eb;--accent:#e8efdf;--ring:#326858;--brand-hover:#2b6b60;--brand-active:#194b47;color:var(--foreground);background:var(--card)}
.settings-page .contacts-scroll{width:100%;max-width:1180px;padding:38px clamp(24px,4vw,60px) 40px}.settings-heading{padding-bottom:20px;margin-bottom:22px;border-bottom:1px solid #d7e1cf}.settings-heading .network-eyebrow{color:#52664e}.settings-heading h1{font-size:40px;line-height:1.15;margin:12px 0}.settings-heading p{font-size:12px;line-height:1.8}.settings-intro{font-size:12px;line-height:1.9;color:#52664e;max-width:760px;margin:0 0 30px}.settings-accounts{gap:22px}.settings-page .history-account-card{background:#f6f8f0;border:1px solid #d7e1cf;padding:26px;border-radius:16px}.history-account-card>header{gap:16px}.history-account-card h2{font-family:Georgia,serif;font-size:24px;font-weight:400;letter-spacing:-.4px;line-height:1.3}.history-account-card header p{font-size:11px;color:#52664e;line-height:1.7}.settings-page .history-account-stats{gap:12px 28px;padding:20px 0;border-color:#d7e1cf;color:#52664e;font-size:11px}.history-account-stats strong{color:#344e37;font-variant-numeric:tabular-nums}.settings-page .history-account-control{gap:18px;margin:22px 0 18px}.history-account-control label{font-size:11px;gap:9px;color:#52664e}.settings-page .history-account-control select{font-size:13px;background:#fffefb;border-color:#c8d8bc;padding:11px 13px}.settings-page .btn-brand,.connection-dialog .btn-brand,.wa-connect-dialog .btn-primary,.history-review .btn-brand,.auth-dialog .btn-brand{background:#215b57;border-color:#215b57;color:#fff}.settings-page .btn-brand:hover,.connection-dialog .btn-brand:hover,.wa-connect-dialog .btn-primary:hover,.history-review .btn-brand:hover,.auth-dialog .btn-brand:hover{background:#2b6b60}.settings-page .btn{font-size:11px;min-height:38px;line-height:1.6;height:auto;white-space:normal;padding:9px 13px}.settings-page .history-account-card>.muted,.settings-footnote{font-size:11px;color:#52664e;line-height:1.8}.settings-footnote{max-width:760px;border-top:1px solid #d7e1cf;padding-top:20px;margin-top:28px}
.connection-dialog{width:min(820px,calc(100vw - 48px));max-width:820px;max-height:90dvh;border:1px solid #d7e1cf;border-radius:18px}.connection-dialog .dialog-steps{padding:22px 28px;background:#eff4e9;border-color:#d7e1cf;gap:20px;flex-shrink:0}.connection-dialog .step{font-size:10px;color:#52664e;gap:7px;min-width:0}.connection-dialog .step-n{height:25px;width:25px;flex-shrink:0;background:#e3ecda;border:1px solid #c7d8ba;font-size:10px;font-weight:500;color:#486442}.connection-dialog .step.is-on .step-n,.connection-dialog .step.is-done .step-n{background:#326858;border-color:#326858;color:#fff}.connection-dialog .step.is-on{color:#234a37}.connection-dialog .close-btn,.wa-connect-dialog .close-btn,.history-review .close-btn{height:34px;width:34px;min-width:34px;flex-shrink:0;display:grid;place-items:center;background:#ffffff90;border:1px solid #c8d8bc;border-radius:50%;color:#3f6547}.connection-dialog .dialog-body{padding:28px;gap:24px;min-height:0;overscroll-behavior:contain}.connection-dialog .dialog-body h3{font-family:Georgia,serif;font-size:31px;font-weight:400;letter-spacing:-.6px;line-height:1.2;color:#283f31}.connection-dialog .service{border-color:#d7e1cf;background:#f6f8f0;padding:16px;border-radius:12px;gap:16px;color:#283f31;min-width:0}.connection-dialog .service:hover:not(:disabled){background:#edf3e5;border-color:#aac398}.connection-dialog .service>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.connection-dialog .service .muted{font-size:11px!important;line-height:1.7;color:#52664e}.connection-dialog .service .badge{font-size:9px;white-space:normal;max-width:115px;line-height:1.5}.connection-dialog .service-mark{border-radius:10px;flex-shrink:0}.connection-dialog .svc-head{gap:16px;align-items:center}.connection-dialog .svc-head>div{min-width:0}.connection-dialog .svc-head .muted{font-size:12px!important;line-height:1.7}.connection-dialog .field{gap:10px}.connection-dialog .field-label{font-size:11px;color:#3e5d38;font-weight:550}.connection-dialog .muted{color:#52664e;line-height:1.8;font-size:11px}.connection-dialog .input,.connection-dialog select{width:100%;min-width:0;max-width:100%;border:1px solid #cbdabd;border-radius:8px;background:#fffefb;color:#283f31;padding:11px 12px;font:inherit;font-size:13px}.connection-dialog .perms{border-color:#d7e1cf;border-radius:12px;overflow:hidden;background:#f7f9f3}.connection-dialog .perm{padding:16px;border-color:#d7e1cf;gap:18px}.connection-dialog .perm>.switch{margin-left:auto}.connection-dialog .pill{font-size:11px;border-color:#c8d8bb;color:#486442}.connection-dialog .pill.is-on{background:#dfead4;color:#28583f}.connection-dialog .recap{font-size:12px;line-height:1.8;background:#f0f4e9;border-color:#d7e1cf}.connection-dialog .recap>span{min-width:0;overflow-wrap:anywhere}.connection-dialog .scope{padding:12px;border-color:#d7e1cf;background:#f6f8f0;font-size:11px;flex-wrap:wrap;gap:8px}.connection-dialog .scope code{font-size:9px;margin-left:0;overflow-wrap:anywhere;white-space:normal;max-width:100%}.connection-dialog .dialog-foot,.wa-connect-dialog .dialog-foot{background:#eff4e9;border-color:#d7e1cf;padding:16px 28px;flex-shrink:0;gap:12px}.connection-dialog .dialog-foot .btn,.wa-connect-dialog .dialog-foot .btn{font-size:12px;min-height:40px}.connection-dialog .check-row{font-size:12px;gap:12px;line-height:1.6}.connection-dialog .check-icon{background:#e5eddd;color:#486442}.connection-dialog .stat{background:#f0f4e9;border-color:#d7e1cf}.connection-dialog .stat strong{font-family:Georgia,serif;font-weight:400;font-size:30px}.connection-dialog .stat span{font-size:10px!important}
.wa-connect-dialog{width:min(840px,calc(100vw - 48px));max-width:840px;max-height:90dvh;border:1px solid #d7e1cf;border-radius:18px}.wa-connect-heading{padding:25px 30px;background:#eff4e9;border-bottom:1px solid #d7e1cf;gap:18px;flex-shrink:0}.wa-connect-brand{display:flex;flex-direction:column;gap:14px;min-width:0}.wa-connect-brand .network-eyebrow{font-size:9px;color:#52664e;line-height:1.6;letter-spacing:.11em}.wa-connect-dialog .dialog-body{padding:28px 30px;gap:24px;min-height:0;overscroll-behavior:contain}.wa-connect-dialog .dialog-body>.muted{font-size:12px;line-height:1.8;color:#52664e}.wa-connect-dialog .wa-qr-layout{grid-template-columns:264px minmax(0,1fr);gap:32px;padding:22px 0;border-top:1px solid #d7e1cf;border-bottom:1px solid #d7e1cf}.wa-connect-dialog .whatsapp-link{background:#fff;border:1px solid #d7e1cf;border-radius:14px;min-height:264px;min-width:0;color:#52664e;padding:0;font-size:12px;line-height:1.8}.wa-connect-dialog .whatsapp-qr{width:264px;height:264px;max-width:100%;background:#fff;padding:12px;border:0;border-radius:12px;object-fit:contain;flex-shrink:0}.wa-connect-dialog .wa-qr-layout h3{font-family:Georgia,serif;font-size:29px;font-weight:400;letter-spacing:-.5px;line-height:1.2;margin:0 0 20px;color:#283f31}.wa-connect-dialog .wa-link-steps{font-size:12px;line-height:1.8;padding-left:20px;color:#334f38}.wa-connect-dialog .wa-link-steps li{padding-left:5px;margin-bottom:12px}.wa-connect-dialog .wa-qr-layout .muted{font-size:11px;line-height:1.8;color:#52664e}.wa-connect-dialog .wa-connect-note{font-size:11px;line-height:1.85;color:#52664e}.wa-connect-dialog .wa-connect-note strong{color:#2f573d;font-weight:600}.wa-connect-dialog .wa-connect-success{border:1px solid #b6cda5;background:#edf4e6;color:#28583f;padding:24px;line-height:1.8}.wa-connect-dialog .wa-connect-success>strong{font-family:Georgia,serif;font-size:27px;font-weight:400}.wa-connect-dialog .wa-connect-success p{font-size:12px}
.history-review{width:min(620px,calc(100vw - 48px));max-width:620px;max-height:90dvh;border:1px solid #d7e1cf;border-radius:18px}.history-review .composer-head{padding:23px 26px;background:#eff4e9;border-color:#d7e1cf;flex-shrink:0}.history-review h3{font-family:Georgia,serif;font-size:25px;font-weight:400;letter-spacing:-.4px;line-height:1.3;margin:0}.history-review .dialog-body{padding:24px 26px;gap:18px;min-height:0;font-size:12px;line-height:1.9}.history-review .dialog-body p{margin:0}.history-review .dialog-body .btn{min-height:42px;flex-shrink:0}.auth-dialog{border:1px solid #d7e1cf;border-radius:18px;padding:28px;overflow:auto;max-height:90dvh}.auth-dialog h2{font-family:Georgia,serif;font-size:29px;font-weight:400;letter-spacing:-.5px;line-height:1.2}.auth-dialog .muted{font-size:12px;line-height:1.8;color:#52664e}.auth-device{border-color:#d7e1cf;gap:16px}.auth-dialog-actions{flex-wrap:wrap}.auth-dialog .btn{font-size:12px;min-height:40px}.account-disconnect{border:1px solid #d7e1cf;border-radius:18px}.account-disconnect .dialog-body h3{font-family:Georgia,serif;font-size:28px;font-weight:400;letter-spacing:-.5px;line-height:1.25}.account-disconnect .dialog-body{padding:26px;min-height:0;line-height:1.8}.account-disconnect .dialog-foot{background:#f0f4e9;border-color:#d7e1cf}
.settings-page button:focus-visible,.settings-page select:focus-visible,.connection-dialog button:focus-visible,.connection-dialog input:focus-visible,.connection-dialog select:focus-visible,.wa-connect-dialog button:focus-visible,.history-review button:focus-visible,.auth-dialog .btn:focus-visible{outline:2px solid #326858;outline-offset:3px}
@media(max-width:1000px){.settings-page .contacts-scroll{padding:24px 20px calc(28px + env(safe-area-inset-bottom))}.settings-heading h1{font-size:32px}.settings-heading{gap:10px;margin-bottom:20px}.settings-intro{font-size:12px;margin-bottom:24px}.settings-page .history-account-card{padding:20px}.settings-page .history-account-control{flex-direction:column;align-items:stretch;gap:14px}.settings-page .history-account-control label{min-width:0}.settings-page .history-account-control select{font-size:16px;min-height:44px}.settings-page .btn{font-size:12px;min-height:44px}.history-account-card h2{font-size:24px}.settings-page .history-account-stats{gap:12px 18px;line-height:1.7}.connection-dialog,.wa-connect-dialog,.history-review,.auth-dialog,.account-disconnect{width:100%;max-width:none;max-height:none;height:var(--vvh,100dvh);border:0;border-radius:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}.connection-dialog .dialog-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 38px;padding:18px 12px;gap:5px;overflow:visible}.connection-dialog .step{flex-direction:column;gap:7px;font-size:8px;line-height:1.4;text-align:center;overflow-wrap:anywhere}.connection-dialog .step-n{width:25px;height:25px}.connection-dialog .close-btn,.wa-connect-dialog .close-btn,.history-review .close-btn{width:38px;min-width:38px;min-height:44px}.connection-dialog .dialog-body{padding:24px 20px;gap:22px}.connection-dialog .dialog-body h3{font-size:29px}.connection-dialog .service{gap:12px;padding:14px 12px;flex-wrap:wrap}.connection-dialog .service>span:nth-child(2){flex-basis:calc(100% - 65px)!important}.connection-dialog .service .badge{max-width:none;margin-left:52px;font-size:10px}.connection-dialog .service>.muted{display:none}.connection-dialog .service .muted{font-size:12px!important}.connection-dialog .input,.connection-dialog select{font-size:16px;min-height:44px}.connection-dialog .perm{padding:14px 12px}.connection-dialog .switch{min-height:24px;min-width:40px}.connection-dialog .pill{font-size:12px;min-height:44px}.connection-dialog .dialog-foot,.wa-connect-dialog .dialog-foot{padding:14px 20px calc(14px + env(safe-area-inset-bottom))}.connection-dialog .dialog-foot .btn,.wa-connect-dialog .dialog-foot .btn{font-size:13px;min-height:44px}.connection-dialog .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.connection-dialog .stat{padding:12px 9px;min-width:0}.connection-dialog .stat strong{font-size:25px}.connection-dialog .check-row{flex-wrap:wrap}.wa-connect-heading{padding:22px 20px;gap:12px}.wa-connect-brand .network-eyebrow{font-size:8px}.wa-connect-dialog .dialog-body{padding:22px 20px;gap:20px}.wa-connect-dialog .wa-qr-layout{grid-template-columns:minmax(0,1fr);gap:24px;padding:20px 0}.wa-connect-dialog .whatsapp-link{width:264px;max-width:100%;justify-self:center;min-height:264px}.wa-connect-dialog .whatsapp-qr{width:264px;height:264px}.wa-connect-dialog .wa-qr-layout h3{font-size:28px;margin-bottom:18px}.wa-connect-dialog .wa-link-steps{font-size:14px;line-height:1.8}.wa-connect-dialog .wa-connect-note{font-size:12px}.history-review .composer-head{padding:22px 20px}.history-review .dialog-body{padding:22px 20px;font-size:13px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.auth-dialog{padding:24px 20px calc(24px + env(safe-area-inset-bottom))}.auth-device{flex-wrap:wrap}.auth-dialog .btn{font-size:13px;min-height:44px}.account-disconnect .dialog-body{padding:24px 20px}.account-disconnect .dialog-foot{padding-bottom:calc(14px + env(safe-area-inset-bottom))}}
@media(max-width:1000px){.connection-dialog .switch{width:56px;min-width:56px;height:44px;min-height:44px;border-width:12px 10px;background-clip:padding-box;box-shadow:none}}
.ai-launch{display:grid;place-items:center;width:38px;height:38px;border:1px solid #c5d7b8;border-radius:50%;background:#e8f0e0;color:#326858;flex-shrink:0}.ai-launch:hover{background:#dce9d0}.ai-launch svg{width:18px;height:18px}.compose-ai-layer{position:fixed;inset:0;z-index:55}.compose-ai-backdrop{position:absolute;inset:0;background:#243b2433}.compose-ai-layer .ai{position:absolute;inset:24px 24px 24px auto;width:min(460px,calc(100% - 48px))}@media(max-width:1000px){.ai-launch{width:44px;height:44px}.compose-ai-layer .ai{inset:0;width:100%;height:var(--vvh,100dvh);border:0;border-radius:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}}

/* WhatsApp media: private, responsive and sized independently of message text. */
.wa-media{position:relative;margin:0 0 6px;max-width:320px;min-width:120px;border-radius:12px;overflow:hidden;background:#e8eddf}
.wa-media img,.wa-media video{display:block;width:100%;max-height:360px;object-fit:contain;min-height:80px}
.wa-media [hidden]{display:none!important}
.wa-media-label{position:absolute;bottom:8px;left:8px;padding:3px 7px;background:#283f31d9;color:white;border-radius:6px;font-size:10px;pointer-events:none}
.wa-media-error{padding:22px 14px;color:#52664e;font-size:12px}
.wa-tools{display:flex;align-items:center;gap:6px;min-width:0}.wa-tools .btn{min-height:44px}
.wa-add-photo{position:relative;overflow:hidden;cursor:pointer}.wa-add-photo input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
.wa-add-photo:focus-within{outline:2px solid #215b57;outline-offset:2px}.wa-upload-note{font-size:11px;color:#52664e}
.wa-emoji{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;background:#eff4e9;border:1px solid #d3dfcc;border-radius:14px;padding:6px;max-width:410px}
.wa-emoji button{font-size:23px;min-width:0;min-height:44px;border:0;background:transparent;border-radius:8px;cursor:pointer}.wa-emoji button:hover{background:#dfead4}
.wa-attachment{display:flex;align-items:center;gap:12px;padding:10px;background:#eff4e9;border:1px solid #d3dfcc;border-radius:14px;font-size:12px}.wa-attachment .wa-media{width:90px;min-width:90px;margin:0}.wa-attachment .wa-media img{max-height:90px}.wa-attachment p{color:#52664e;margin:5px 0}.send-preview .wa-media{margin:12px 0}
@media(max-width:600px){.wa-media{max-width:min(280px,65vw)}.wa-composer{max-height:55dvh;overflow:auto}.wa-emoji{width:100%}.wa-upload-note{margin-left:auto}.wa-tools{flex-wrap:wrap}}

/* WhatsApp conversation workspace: charcoal surfaces, compact bubbles and one-line composer. */
.app.whatsapp-workspace{--background:#202324;--foreground:#e9edef;--card:#252a2c;--muted:#303638;--muted-foreground:#a9b2b7;--border:#363c3f;--input:#465053;--primary:#00a884;--core-600:#00a884;--core-700:#008a6d;--core-100:#154b3d;--core-50:#182f29;--stream-600:#00a884;--selected:#353b3e;--accent:#303638;--ring:#00a884;--brand-hover:#06bd95;--brand-active:#008b6c;background:#202324;color:#e9edef;color-scheme:dark}
.whatsapp-workspace .sidebar{background:#252829;border-color:#34393c;color:#dce1e4}.whatsapp-workspace .sidebar .side-item,.whatsapp-workspace .sidebar .folder-name,.whatsapp-workspace .sidebar .profile-trigger{color:#dce1e4}.whatsapp-workspace .sidebar .side-item:hover,.whatsapp-workspace .sidebar .folder-name:hover{background:#303638}.whatsapp-workspace .sidebar .side-item.is-on{background:#353b3e;color:#fff}.whatsapp-workspace .sidebar .muted,.whatsapp-workspace .sidebar .side-label{color:#a2acae}
.whatsapp-workspace .list,.whatsapp-workspace .list-head{background:#202324;border-color:#353a3d}.whatsapp-workspace .list-head{padding:20px 16px 12px;gap:14px}.whatsapp-workspace .list-title .inbox-heading{font:650 22px/1.3 var(--font-sans);letter-spacing:-.4px;color:#f0f2f3}.whatsapp-workspace .inbox-eyebrow{color:#b2bbbe}.whatsapp-workspace .list-head input{background:#303638;border:1px solid #42494c;border-radius:24px;min-height:42px;color:#e9edef;font-size:14px!important;padding-inline:16px}.whatsapp-workspace .list-head input::placeholder{color:#abb5ba}.whatsapp-workspace .chip{border-color:#454c4f;color:#bdc5c8;font-size:12px;padding:6px 13px}.whatsapp-workspace .chip.is-on{background:#103f32;color:#c9f3de;border-color:#245845}.whatsapp-workspace .wa-new-message{background:#00a884;color:#092c21;border:0;border-radius:50%;width:44px;height:44px;flex:none}.whatsapp-workspace .wa-new-message svg{width:23px;height:23px}
.whatsapp-workspace .threads{padding:4px 10px}.whatsapp-workspace .thread{--t-muted:#acb5ba;--t-dot:#25d366;--t-flag:#e6c582;--t-avbg:#3b4d50;--t-avfg:#e1ece9;padding:14px 10px 14px 18px;border-color:#33383b;border-radius:9px;gap:12px;margin:0;box-shadow:none;color:#e9edef}.whatsapp-workspace .thread:hover{background:#292f31}.whatsapp-workspace .thread.is-on{--t-muted:#bdc6c9;--t-avbg:#43615b;--t-avfg:#e4f0e9;background:#353b3e;color:#fff;border-color:#353b3e;box-shadow:none}.whatsapp-workspace .thread .avatar{width:46px;height:46px;border:0;font:500 16px/1 var(--font-sans)}.whatsapp-workspace .thread-from{font-size:14px;font-weight:600}.whatsapp-workspace .thread-preview{font-size:12px;color:#acb5ba;line-height:1.6}.whatsapp-workspace .thread-time{font:11px/1.4 var(--font-sans)}.whatsapp-workspace .thread.is-unread .thread-time{color:#25d366}.whatsapp-workspace .thread .dot{background:#25d366;left:6px;top:23px}.whatsapp-workspace .wa-sync{background:#263730;border:1px solid #3a5146;color:#b6c7bf;font-size:10px}.whatsapp-workspace .wa-sync strong{color:#c4d0d2}.whatsapp-workspace .wa-sync .link-btn{color:#6cdbb1}
.whatsapp-workspace .reader{background:#0b1013;border-color:#343b3e}.whatsapp-workspace .wa{--wa-green:#00a884;--wa-green-hover:#12bc96;--wa-green-active:#008a6d;--wa-in:#242a2d;--wa-out:#005c4b;--wa-ink:#e9edef;--wa-meta:#adb8bc;--wa-sand:#0b1013;gap:0}.whatsapp-workspace .wa-head{min-height:66px;padding:10px 18px;background:#252b2e;border-color:#343c40;gap:12px}.whatsapp-workspace .wa-avatar{width:42px;height:42px;background:#435951;color:#e4eee8;border:0;font:550 14px/1 var(--font-sans)}.whatsapp-workspace .wa-who strong{font-size:14px;font-weight:650;color:#eef1f3}.whatsapp-workspace .wa-who>span{font-size:11px;color:#b1babf}.whatsapp-workspace .wa-badge{background:none;color:#aabdb6;padding:0;margin-right:5px}.whatsapp-workspace .wa-badge .wa-brand-glyph{width:16px;height:16px}.whatsapp-workspace .wa-head .icon-btn{color:#c5cdd1;border:0;background:transparent;min-width:40px;min-height:40px}.whatsapp-workspace .wa-head .icon-btn:hover{background:#394145}.whatsapp-workspace .wa-head .ai-launch{border:1px solid #45524f;background:#2b3934;color:#7ce2b6;border-radius:50%}
.whatsapp-workspace .wa-timeline{background:#0b1013 url('/icons/chat-wallpaper.svg') repeat;background-size:340px 340px;scrollbar-color:#485256 transparent}.whatsapp-workspace .wa-thread{max-width:1100px;width:100%;padding:18px clamp(18px,4vw,66px) 24px;gap:2px}.whatsapp-workspace .wa-day{margin:12px 0 16px}.whatsapp-workspace .wa-day span{color:#c3cbd0;background:#1f292e;border:1px solid #303c42;box-shadow:0 2px 6px #0003;border-radius:8px;font-size:11px;padding:5px 12px}.whatsapp-workspace .wa-msg{margin-top:9px}.whatsapp-workspace .wa-msg.wa-cont{margin-top:1px}.whatsapp-workspace .wa-bubble{padding:7px 11px 8px;max-width:min(78%,620px);font-size:14px;line-height:1.4;border-radius:10px;box-shadow:0 1px 1px #0005}.whatsapp-workspace .wa-msg:not(.wa-cont) .wa-bubble{border-radius:10px}.whatsapp-workspace .wa-msg:not(.wa-cont) .wa-bubble:before{top:0;width:7px;height:11px}.whatsapp-workspace .wa-in:not(.wa-cont) .wa-bubble{border-top-left-radius:3px}.whatsapp-workspace .wa-out:not(.wa-cont) .wa-bubble{border-top-right-radius:3px}.whatsapp-workspace .wa-author{color:#c6a0f6;font-size:12px;margin:1px 0 4px;font-weight:650}.whatsapp-workspace .wa-time{font-size:10px;bottom:5px;right:8px;color:#b2bec1}.whatsapp-workspace .wa-out .wa-time{color:#b4d1c6}.whatsapp-workspace .wa-text::after{width:44px}.whatsapp-workspace .wa-has-media .wa-bubble{padding:4px;max-width:min(82%,400px);min-width:160px}.whatsapp-workspace .wa-has-media .wa-text{display:block;padding:4px 7px 6px}.whatsapp-workspace .wa-has-media .wa-author{padding:4px 7px}.whatsapp-workspace .wa-has-media .wa-time{background:#121b20cc;padding:3px 5px;border-radius:5px;color:#e0e6e8;bottom:7px;right:7px}.whatsapp-workspace .wa-has-media:has(.wa-text) .wa-time{background:none;padding:0;bottom:6px;right:9px}
.whatsapp-workspace .wa-media{background:#172026;max-width:380px;min-width:120px;border-radius:7px;margin:0;line-height:0}.whatsapp-workspace .wa-media img,.whatsapp-workspace .wa-media video{width:auto;max-width:100%;height:auto;max-height:520px;min-height:80px;object-fit:contain;display:block}.whatsapp-workspace .wa-media-label{font-size:9px;line-height:1.3;background:#111b21c9;color:#e9edef}.whatsapp-workspace .wa-media-error{color:#c5cdd1;line-height:1.6;min-height:90px}
.whatsapp-workspace .wa-composer{background:#171d20;border:0;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));max-height:55dvh;overflow:auto}.whatsapp-workspace .wa-compose-row{display:flex;align-items:flex-end;gap:10px;min-width:0}.whatsapp-workspace .wa-input{flex:1;min-width:0;align-items:flex-end;background:#2a3236;border:1px solid #3d484d;border-radius:24px;box-shadow:none}.whatsapp-workspace .wa-input:focus-within{border-color:#60746e;box-shadow:none}.whatsapp-workspace .wa-input textarea{min-width:0;min-height:44px;max-height:160px;field-sizing:content;padding:11px 4px 11px 16px;resize:none;color:#e9edef;font-size:14px;line-height:1.5}.whatsapp-workspace .wa-input textarea::placeholder{color:#abb6bc}.whatsapp-workspace .wa-input .wa-emoji-toggle{flex:none;align-self:flex-end;width:44px;height:44px;color:#b9c3c8;border:0;background:none;border-radius:50%}.whatsapp-workspace .wa-emoji-toggle svg{width:23px;height:23px}.whatsapp-workspace .wa-attach-control{position:relative;display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:#30393d;color:#d1d9dd;overflow:hidden;cursor:pointer}.whatsapp-workspace .wa-attach-control svg{width:25px;height:25px}.whatsapp-workspace .wa-attach-control input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.whatsapp-workspace .wa-attach-control:has(input:disabled){opacity:.4;cursor:default}.whatsapp-workspace .wa-attach-control:focus-within{outline:2px solid #74d7b1;outline-offset:2px}.whatsapp-workspace .wa-send{flex:none;width:44px;min-width:44px;height:44px;min-height:44px;padding:0!important;display:grid;place-items:center;border:0;border-radius:50%;background:#00a884;color:#062e25;box-shadow:none}.whatsapp-workspace .wa-send svg{width:22px;height:22px}.whatsapp-workspace .wa-send:disabled{background:#293c35;color:#8da59b;opacity:1}.whatsapp-workspace .wa-status{display:block;flex:none;min-width:0;color:#aeb9bf;font-size:11px;line-height:1.5;padding-left:54px;white-space:normal}.whatsapp-workspace .wa-status:empty{display:none}.whatsapp-workspace .wa-status.is-error{color:#ffb4ab}.whatsapp-workspace .wa-status.is-warn{color:#e6cc96}.whatsapp-workspace .wa-emoji{background:#263236;border-color:#465452;max-width:430px;box-shadow:0 8px 28px #0005}.whatsapp-workspace .wa-emoji button:hover{background:#3a4b48}.whatsapp-workspace .wa-attachment{background:#23352e;border-color:#3e5b4f;color:#e3eee6}.whatsapp-workspace .wa-attachment p{color:#b0c5b8}.whatsapp-workspace .wa-attachment .btn{color:#86e2b7}.whatsapp-workspace .wa-attachment .wa-media{width:80px;min-width:80px;line-height:0}.whatsapp-workspace .wa-attachment .wa-media img{max-height:90px}
.whatsapp-workspace .wa-more{position:relative;align-self:center}.whatsapp-workspace .wa-more>summary{display:grid;place-items:center;list-style:none;cursor:pointer;width:40px;height:40px;border-radius:50%;color:#d1d9dd}.whatsapp-workspace .wa-more>summary::-webkit-details-marker{display:none}.whatsapp-workspace .wa-more>summary:hover{background:#394145}.whatsapp-workspace .wa-more .menu{position:absolute;top:calc(100% + 8px);right:0;min-width:235px;max-width:calc(100vw - 32px);max-height:60dvh;overflow:auto;z-index:25;background:#273237;color:#e9edef;border:1px solid #455158;border-radius:12px;padding:6px;box-shadow:0 12px 36px #0007}.whatsapp-workspace .wa-more .menu button,.whatsapp-workspace .wa-folder-menu>summary{display:flex;gap:10px;align-items:center;width:100%;min-height:42px;text-align:left;border:0;background:transparent;color:#e9edef;padding:10px 12px;font-size:12px;border-radius:7px;cursor:pointer}.whatsapp-workspace .wa-more .menu button:hover,.whatsapp-workspace .wa-folder-menu>summary:hover{background:#3b494d}.whatsapp-workspace .wa-folder-menu>div{max-height:210px;overflow:auto;padding-left:15px;border-left:1px solid #61736f;margin:4px 12px 8px}
.whatsapp-workspace .ai{background:#202b30;color:#e9edef;border-color:#47545a}.whatsapp-workspace .ai-head,.whatsapp-workspace .ai-foot{background:#253438;border-color:#41534e}.whatsapp-workspace .ai-title{color:#e9edef}.whatsapp-workspace .ai .muted,.whatsapp-workspace .ai .network-eyebrow,.whatsapp-workspace .ai .field-label{color:#b3c5bc}.whatsapp-workspace .ai-tabs,.whatsapp-workspace .ai-result,.whatsapp-workspace .ai .reply-memory{background:#283a34;border-color:#476251;color:#e1eee6}.whatsapp-workspace .ai .ai-tab{color:#b6c8be}.whatsapp-workspace .ai .ai-tab.is-on,.whatsapp-workspace .ai .pill.is-on{background:#345345;color:#d7f4e1}.whatsapp-workspace .ai textarea,.whatsapp-workspace .ai select{background:#1d2a28;border-color:#52675b;color:#e9edef}.whatsapp-workspace .ai .pill{color:#c6d8cd;border-color:#52675b}
@media(max-width:1000px){.whatsapp-workspace .wa-head{min-height:64px;padding:8px 10px;gap:8px}.whatsapp-workspace .wa-back{width:34px;min-width:34px!important;flex:none}.whatsapp-workspace .wa-avatar{width:36px;height:36px}.whatsapp-workspace .wa-head-actions{gap:3px}.whatsapp-workspace .wa-head .icon-btn,.whatsapp-workspace .wa-more>summary{min-width:40px;min-height:44px;width:40px;height:44px}.whatsapp-workspace .wa-thread{padding:12px 18px 20px}.whatsapp-workspace .wa-bubble{max-width:88%;font-size:15px}.whatsapp-workspace .wa-has-media .wa-bubble{max-width:min(88%,380px)}.whatsapp-workspace .wa-media{max-width:100%}.whatsapp-workspace .wa-media img,.whatsapp-workspace .wa-media video{max-height:60dvh;max-width:100%}.whatsapp-workspace .wa-composer{padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:7px}.whatsapp-workspace .wa-compose-row{gap:7px}.whatsapp-workspace .wa-input textarea{font-size:16px;padding-left:12px}.whatsapp-workspace .wa-input .wa-emoji-toggle{width:40px}.whatsapp-workspace .wa-status{padding-left:51px}.whatsapp-workspace .wa-more .menu button,.whatsapp-workspace .wa-folder-menu>summary{min-height:44px;font-size:14px}.whatsapp-workspace .list-head{padding:16px 14px 12px}.whatsapp-workspace .list-title .inbox-heading{font-size:24px}.whatsapp-workspace .thread-from{font-size:15px}.whatsapp-workspace .thread-preview{font-size:13px}}
.whatsapp-workspace .sidebar .folder-row:hover{background:#303638}.whatsapp-workspace .sidebar .folder-row.is-on{background:#353b3e;box-shadow:inset 2px 0 #64c9a2}.whatsapp-workspace .sidebar .mailbox-account{border-color:#363f3c}.whatsapp-workspace .sidebar .mailbox-account-title,.whatsapp-workspace .sidebar .folder-caret{color:#a9bdb4}.whatsapp-workspace .sidebar .folder-name .ico,.whatsapp-workspace .sidebar .folder-row.is-on .folder-name .ico{color:#95c1ab}.whatsapp-workspace .sidebar .count,.whatsapp-workspace .sidebar .folder-name .count{background:#303f38;color:#c0d5c8}.whatsapp-workspace .sidebar button:focus-visible{outline-color:#7ce2b6}
/* Per-message replies and reactions: visible touch targets, no hover-only actions. */
.wa-msg{position:relative;flex-wrap:wrap;align-items:flex-start;gap:0 6px}.wa-message-action{display:grid;place-items:center;width:32px;height:32px;flex:none;border:0;border-radius:50%;background:#243036;color:#b8c7c9;cursor:pointer}.wa-message-action svg{width:18px;height:18px}.wa-message-action:hover,.wa-message-action[aria-expanded=true]{background:#3a4e4b;color:#e5f7ed}.wa-out>.wa-message-action{order:-1}.wa-quote{margin:0 0 6px;padding:8px 10px;border-left:3px solid #56cba5;border-radius:5px;background:#0003;min-width:0;overflow:hidden;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.wa-quote strong{display:block;color:#8fe4bf;font-size:12px;margin-bottom:3px}.wa-quote span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;color:inherit;opacity:.9}.wa-reply-banner{display:flex;align-items:center;gap:8px;min-width:0}.wa-reply-banner .wa-quote{flex:1;margin:0;background:#2a3838;color:#e2ebea}.wa-reply-banner .wa-quote span{-webkit-line-clamp:2}.wa-reply-banner .icon-btn{flex:none;width:44px;height:44px;color:#c2d2d0}.wa-reactions{display:flex;flex-basis:100%;gap:4px;padding-top:4px;flex-wrap:wrap}.wa-out>.wa-reactions{justify-content:flex-end}.wa-reactions button,.wa-reactions>span{display:flex;align-items:center;gap:5px;border:1px solid #40504e;background:#243330;color:#e0eee7;border-radius:18px;min-height:32px;padding:4px 9px;font-size:17px;cursor:pointer}.wa-reactions button span{font-size:11px}.wa-reactions .is-mine{border-color:#67c8a4;background:#1a473b}.wa-message-menu{position:relative;flex-basis:100%;max-width:360px;background:#253333;border:1px solid #49635b;border-radius:14px;box-shadow:0 5px 16px #0005;margin:6px 0 8px;padding:6px;display:flex;flex-direction:column;gap:5px;color:#e2eeea;order:3}.wa-out>.wa-message-menu{margin-left:auto}.wa-reply-action{display:flex;align-items:center;gap:8px;align-self:flex-start;min-height:44px;padding:8px 12px;background:none;border:0;color:inherit;font:inherit;font-size:13px;border-radius:8px;cursor:pointer}.wa-reply-action svg{width:18px;height:18px}.wa-reaction-picker{display:flex;gap:2px;justify-content:space-between}.wa-reaction-picker button{width:44px;height:44px;flex:none;background:none;border:0;border-radius:50%;font-size:24px;cursor:pointer}.wa-reaction-picker button:hover,.wa-reply-action:hover{background:#3c5248}.wa-menu-close{position:absolute;top:6px;right:6px;width:44px;height:44px;background:none;border:0;color:#c3d6d0;font-size:23px;cursor:pointer;border-radius:50%}.wa-message-action:focus-visible,.wa-reactions button:focus-visible,.wa-message-menu button:focus-visible{outline:2px solid #7de3ba;outline-offset:2px}.wa-message-menu button:disabled,.wa-reactions button:disabled,.wa-message-action:disabled{opacity:.45;cursor:default}.send-preview .wa-quote{background:#edf3ea;border-color:#669579;color:#314b3c}.send-preview .wa-quote strong{color:#285840}.send-preview .wa-quote span{display:block;overflow:visible}
@media(max-width:1000px){.wa-message-action{width:44px;height:44px;background:#24303699}.whatsapp-workspace .wa-bubble,.whatsapp-workspace .wa-has-media .wa-bubble{max-width:calc(100% - 50px)}.wa-reactions button{min-height:44px;min-width:44px}.wa-message-menu{max-width:100%}.wa-reaction-picker{gap:0}.wa-quote span{font-size:13px}}
.wa-mention-picker{border:1px solid #49635b;border-radius:14px;background:#253333;color:#e2eeea;box-shadow:0 -5px 20px #0004;overflow:auto;max-height:240px;flex-shrink:0}.wa-mention-picker header{display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 14px;font-size:12px;color:#a8c7b8}.wa-mention-picker header button{border:0;background:none;color:#c9ded4;width:44px;height:44px;font-size:22px;cursor:pointer}.wa-mention-picker [role=listbox]{display:flex;flex-direction:column}.wa-mention-picker [role=option]{display:flex;align-items:center;gap:11px;text-align:left;border:0;background:none;color:inherit;padding:9px 14px;min-height:56px;cursor:pointer;font:inherit}.wa-mention-picker [role=option]:hover,.wa-mention-picker [aria-selected=true]{background:#365248}.wa-mention-picker .avatar{width:32px;height:32px;background:#46645a;color:#dff4e9;font-size:13px;flex:none}.wa-mention-picker [role=option]>span:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}.wa-mention-picker strong{font-size:13px;overflow-wrap:anywhere}.wa-mention-picker small{font-size:11px;color:#b1c3bc}.wa-mention-picker p{margin:10px 14px;font-size:12px;line-height:1.6}.wa-mention-picker .link-btn{min-height:44px;margin-inline:14px;color:#8ce1b9}.wa-selected-mentions{display:flex;gap:6px;flex-wrap:wrap;min-width:0}.wa-selected-mentions button,.wa-selected-mentions>span{display:inline-flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid #537e68;border-radius:18px;background:#214a3a;color:#d9f7e7;font:inherit;font-size:12px;overflow-wrap:anywhere;max-width:100%}.wa-selected-mentions button{min-height:36px;cursor:pointer}.wa-selected-mentions button>span{font-size:18px}.send-preview .wa-selected-mentions>span{background:#edf3ea;color:#315942;border-color:#a4b89c}.wa-mention-picker button:focus-visible,.wa-selected-mentions button:focus-visible{outline:2px solid #7de3ba;outline-offset:-2px}@media(max-width:1000px){.wa-mention-picker{max-height:25dvh}.wa-mention-picker [role=option]{min-height:52px;padding:8px 12px}.wa-selected-mentions button{min-height:44px}.whatsapp-workspace .wa-composer:has(.wa-mention-picker){max-height:65dvh}}
.wa-mentioned-person{color:#84d9bf;background:#153f3566;border-radius:3px;padding-inline:2px;font-weight:550}

/* Private WhatsApp profile photos retain the existing initials underneath. */
.avatar,.person-profile-avatar {position:relative;overflow:hidden;flex-shrink:0;}
.wa-profile-photo {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.wa-profile-photo[hidden] {display:none;}

/* Keep email-import status readable when a WhatsApp thread activates the dark workspace. */
.whatsapp-workspace .mail-history {background:#26322f;border-color:#44534e;color:#e9edef;}
.whatsapp-workspace .mail-history strong {color:#e9edef;}
.whatsapp-workspace .mail-history>div>span,.whatsapp-workspace .mail-history p,.whatsapp-workspace .mail-history .muted {color:#b9c9c1;}
.whatsapp-workspace .mail-history .link-btn {color:#87dfb8;}
.whatsapp-workspace .mail-history progress {accent-color:#75cba8;}

/* Compact contact records and secondary help share the existing paper/sage palette. */
.section-title {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.section-title h4 {margin:0;}.help-tip {display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-width:26px;padding:0;margin-left:4px;border:0;border-radius:50%;background:transparent;color:var(--muted-foreground);cursor:help;font:16px/1 var(--font-sans);vertical-align:middle;}
.help-tip:hover,.help-tip:focus-visible {background:var(--muted);color:var(--foreground);outline:2px solid var(--ring);outline-offset:1px;}
.context-tooltip {position:fixed;z-index:10000;max-width:min(320px,calc(100vw - 24px));padding:12px 15px;border:1px solid #50675d;border-radius:12px;background:#203b32;color:#f0f5ef;box-shadow:0 8px 28px #10251a30;font:13px/1.6 var(--font-sans);white-space:normal;overflow-wrap:anywhere;}
.contact-fields dl {margin:12px 0;}.contact-field-row {padding:10px 0;border-bottom:1px solid var(--border);}.contact-field-row dt {display:flex;align-items:center;justify-content:space-between;color:var(--muted-foreground);font-size:12px;}.contact-field-row dd {margin:3px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6;}.contact-field-actions {display:flex;gap:16px;margin-top:5px;}.contact-field-actions .link-btn {font-size:11px;}
.contact-field-editor {display:grid;gap:12px;padding:16px;background:var(--muted);border-radius:14px;margin-top:14px;}.contact-field-editor label,.contact-file-import>label,.compact-contact-dialog label {display:grid;gap:6px;font-size:12px;}.contact-field-editor select,.contact-file-import select,.compact-contact-dialog select {min-height:40px;width:100%;}.contact-field-editor textarea {resize:vertical;width:100%;}.form-actions {display:flex;gap:8px;justify-content:flex-end;}
.contact-file-import {border-top:1px solid var(--border);margin-top:22px;padding-top:20px;display:grid;gap:16px;}.contact-file-drop {border:1px dashed #9aad9b;border-radius:14px;padding:20px;background:#f2f5ed;color:#294c38;}.contact-file-drop input {max-width:100%;margin-top:10px;}.contact-file-name,.import-summary {display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;}.contact-mapping {max-height:260px;overflow:auto;}.contact-mapping label {display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:14px;padding:8px 0;font-size:12px;}.import-sample {display:grid;gap:8px;max-height:240px;overflow:auto;}.import-sample article {display:grid;gap:4px;border:1px solid var(--border);border-radius:12px;padding:12px;font-size:13px;}.import-sample article span,.import-sample small {color:var(--muted-foreground);overflow-wrap:anywhere;}.compact-contact-dialog {max-width:460px;}.compact-contact-dialog .dialog-body {display:grid;gap:16px;}.contacts-head {flex-wrap:wrap;}.contact-fields .link-btn {white-space:normal;}
@media(max-width:1000px){.help-tip {width:44px;height:44px;min-width:44px;}.contact-fields .section-title {gap:4px;}.contact-field-actions .link-btn {min-height:44px;}.contact-mapping label {grid-template-columns:1fr;gap:4px;}.contact-file-drop {padding:14px;}.contact-field-editor {padding:12px;}.contact-field-editor select {min-height:44px;}.contacts-head .btn {min-height:44px;}.compact-contact-dialog {max-width:100%;}.context-tooltip {font-size:14px;}}
@media(max-width:1000px){
 .is-mobile .table{min-width:0;width:100%;overflow:visible;}.is-mobile .trow:not(.body){display:flex;min-height:44px;gap:10px;}.is-mobile .trow:not(.body) .th{display:none;}.is-mobile .trow:not(.body) .cell-check{width:44px;}
 .is-mobile .trow.body{display:grid;grid-template-columns:44px minmax(0,1fr) 72px;grid-template-areas:"check name last" ". title title" ". channels channels";gap:4px 8px;padding:12px 8px 12px 0;margin:8px 0;border:1px solid var(--border);border-radius:14px;}.is-mobile .trow.body>.cell-check{grid-area:check;align-self:start;min-height:40px;}.is-mobile .cell-name{grid-area:name;padding:0;gap:10px;min-height:40px;}.is-mobile .cell-name .avatar{width:32px;height:32px;font-size:12px;flex-shrink:0;}.is-mobile .cell-name .person-name{font-size:15px;text-align:left;}.is-mobile .cell-title{grid-area:title;padding:0 0 0 42px;font-size:12px;}.is-mobile .trow.body>div:nth-child(4){display:none;}.is-mobile .cell-channels{grid-area:channels;padding:5px 0 0 42px;}.is-mobile .ch-mark:not(.is-present){display:none;}.is-mobile .cell-last{grid-area:last;padding:0;text-align:right;font-size:10px;white-space:normal;align-self:start;line-height:1.7;}.is-mobile .picked-bar{flex-wrap:wrap;}.is-mobile .contacts-scroll{overflow-x:hidden;}
}
.defs-dialog, .view-dialog { width:min(640px,100%); max-height:90dvh; display:flex; flex-direction:column; }
.defs-dialog .dialog-body, .view-dialog .dialog-body { overflow:auto; }
@media(max-width:1000px) {
 .defs-dialog, .view-dialog, .contact-import-dialog { width:100%; max-width:none; max-height:none; height:var(--vvh,100dvh); }
 .dialog:is(.defs-dialog,.view-dialog,.contact-import-dialog) :is(input,select,textarea) { font-size:16px; min-height:44px; }
 :is(.defs-dialog,.view-dialog,.contact-import-dialog) .link-btn { min-height:44px; }
 :is(.defs-dialog,.view-dialog,.contact-import-dialog) .composer-head { padding-top:max(12px,env(safe-area-inset-top)); }
 :is(.defs-dialog,.view-dialog,.contact-import-dialog) .dialog-body { padding-bottom:calc(18px + env(safe-area-inset-bottom)); }
}
.def-create, .view-options, .export-panel, .mapping-save { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; }
.def-create label, .view-editor label, .view-options label, .export-panel label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted-foreground); flex:1; min-width:140px; }
.def-create select, .view-editor select, .export-panel select, .view-filter select, .def-item select { padding:8px; border:1px solid var(--border); border-radius:6px; background:var(--card); color:var(--foreground); min-height:38px; }
.def-list, .view-filters, .import-rows, .import-history ul, .undo-keep { list-style:none; padding:0; margin:12px 0 0; display:flex; flex-direction:column; gap:8px; }
.def-item { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--card); }
.def-item .grow { display:flex; flex-direction:column; gap:2px; min-width:0; overflow-wrap:anywhere; }
.def-item small { color:var(--muted-foreground); font-size:12px; }
.def-item.is-retired { opacity:.7; }
.def-mark { color:var(--core-700); font-size:10px; }
.def-destination { margin:0; font-size:12px; }
.view-editor { display:flex; flex-direction:column; gap:12px; }
.view-filter { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:10px; border:1px solid var(--border); border-radius:10px; background:var(--muted); }
.view-filter .input { flex:1; min-width:120px; }
.view-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.btn.danger { color:var(--destructive); }
.view-banner { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; padding:10px 14px; margin:14px 0 0; border:1px solid var(--core-200); border-radius:10px; background:var(--core-50); }
.view-banner .grow { display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; min-width:0; }
.view-warning { width:100%; margin:4px 0 0; font-size:12px; color:var(--destructive); }
.export-panel { margin:14px 0 0; padding:12px 14px; border:1px solid var(--border); border-radius:10px; background:var(--card); }
.export-panel .btn-brand, .export-panel .btn-brand:hover { color:var(--primary-foreground); }
.import-count { padding:1px 8px; border-radius:999px; border:1px solid var(--border); font-size:12px; }
.import-count.is-invalid { color:var(--destructive); border-color:var(--destructive); }
.import-count.is-create { background:var(--core-50); border-color:var(--core-200); color:var(--core-700); }
.import-row { display:flex; gap:10px; align-items:baseline; font-size:13px; padding:4px 0; border-bottom:1px dashed var(--border); }
.import-row .grow { display:flex; flex-direction:column; min-width:0; overflow-wrap:anywhere; }
.import-line { color:var(--muted-foreground); font-size:11px; min-width:40px; }
.import-outcome { color:var(--muted-foreground); font-size:12px; white-space:nowrap; }
.import-row.is-invalid .import-outcome { color:var(--destructive); }
.import-history { margin-top:20px; padding-top:14px; border-top:1px solid var(--border); }
.import-history li { display:flex; gap:10px; align-items:center; }
.import-history li .grow { display:flex; flex-direction:column; gap:2px; min-width:0; }
.import-history small { color:var(--muted-foreground); }
.undo-plan { margin-top:12px; padding:12px; border:1px solid var(--core-200); border-radius:10px; background:var(--muted); }
@media(max-width:760px) { .def-create .btn, .export-panel .btn, .mapping-save .btn { width:100%; }.view-filter > * { flex:1 1 100%; }.view-actions .btn { flex:1; }.import-outcome { white-space:normal; } }
.settings-nav { display:flex; gap:6px; flex-wrap:wrap; margin:6px 0 20px; }
.settings-tab { min-height:40px; padding:0 14px; border:1px solid var(--border); border-radius:999px; background:var(--card); color:var(--foreground); font-size:13px; font-weight:600; cursor:pointer; }
.settings-tab.is-on { background:var(--core-50); border-color:var(--core-200); color:var(--core-700); }
.settings-tab:focus-visible { outline:2px solid var(--ring, var(--primary)); outline-offset:2px; }
.workspace-badge { display:flex; align-items:center; gap:6px; margin:0 0 12px; font-size:13px; color:var(--muted-foreground); }
.workspace-badge > span { padding:4px 12px; border-radius:999px; background:var(--core-50); border:1px solid var(--core-200); color:var(--core-700); }
.settings-card { border:1px solid var(--border); border-radius:14px; background:var(--card); padding:18px 20px; margin-bottom:16px; display:flex; flex-direction:column; gap:12px; }
.settings-card h3, .settings-subsection h3 { margin:0; font-size:16px; display:flex; align-items:center; gap:6px; }
.settings-card-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.settings-subsection { margin-top:28px; }
.owner-preview { display:flex; align-items:center; gap:12px; }
.owner-preview small { display:block; color:var(--muted-foreground); font-size:12px; }
.owner-avatar { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--core-50); border:1px solid var(--core-200); color:var(--core-700); font-weight:700; }
.owner-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.owner-form label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted-foreground); }
.owner-form .field-label { display:flex; align-items:center; gap:4px; min-height:28px; }
.owner-form .field-label .help-tip { margin:0; }
.owner-conflict { border:1px solid var(--core-200); border-radius:10px; background:var(--muted); padding:12px; display:flex; flex-direction:column; gap:10px; overflow-x:auto; }
.owner-conflict table { border-collapse:collapse; font-size:13px; width:100%; }
.owner-conflict th, .owner-conflict td { text-align:left; padding:6px 8px; border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.owner-conflict tr.is-different td { font-weight:600; color:var(--core-700); }
.owner-form select { padding:8px; border:1px solid var(--border); border-radius:6px; background:var(--card); color:var(--foreground); min-height:38px; }
.settings-actions { display:flex; justify-content:flex-end; gap:8px; }
.account-cards, .settings-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.account-card { border:1px solid var(--border); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:10px; }
.account-card-head { display:flex; align-items:center; gap:10px; }
.account-card-head .grow { min-width:0; display:flex; flex-direction:column; overflow-wrap:anywhere; }
.account-card-head small { color:var(--muted-foreground); font-size:12px; }
.account-status { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--muted-foreground); white-space:nowrap; }
.account-actions { display:flex; flex-wrap:wrap; gap:8px; }
.settings-list li { display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px dashed var(--border); }
@media(max-width:1000px) {
 .settings-nav { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; margin-inline:-4px; padding:0 4px; }
 .settings-tab { min-height:44px; flex:0 0 auto; }
 .settings-card { padding:14px; border-radius:12px; }
 .owner-form .input, .owner-form select { font-size:16px; min-height:44px; }
 .account-actions .btn, .settings-actions .btn, .settings-card-head .btn { min-height:44px; flex:1 1 auto; }
 .settings-page .contacts-scroll { padding-bottom:calc(28px + env(safe-area-inset-bottom)); padding-left:max(16px, env(safe-area-inset-left)); padding-right:max(16px, env(safe-area-inset-right)); }
}
.upkeep-zone { font-size:12px; margin:4px 0 0; }
/* Header: title block and export on desktop; on mobile a menu/export row, then the title full width. */
.upkeep-head { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"title export"; align-items:end; gap:8px 16px; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--border); }
.upkeep-head .upkeep-title { grid-area:title; min-width:0; }
.upkeep-head .upkeep-title h1 { margin:6px 0; font-family:Georgia,serif; font-weight:400; font-size:34px; letter-spacing:-.8px; display:flex; align-items:center; gap:8px; }
.upkeep-head .upkeep-export { grid-area:export; }
.upkeep-head .upkeep-menu { grid-area:menu; }
@media(max-width:1000px) {
 .upkeep-head { grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"menu . export" "title title title"; align-items:center; }
 .upkeep-head .upkeep-title h1 { font-size:28px; }
 .upkeep-head .upkeep-export, .upkeep-head .upkeep-menu { min-height:44px; min-width:44px; }
 .upkeep-zone { overflow-wrap:anywhere; }
}
.upkeep-partial { font-size:12px; display:flex; align-items:center; gap:6px; }
.ledger-group { margin-top:20px; }
.ledger-group h2 { font-family:Georgia,serif; font-weight:400; font-size:20px; margin:0 0 8px; display:flex; gap:8px; align-items:baseline; }
.ledger { list-style:none; margin:0; padding:0; border-top:1px solid var(--border); }
.ledger-row { display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:12px; align-items:center; padding:12px 4px; border-bottom:1px solid var(--border); }
.ledger-date { display:flex; flex-direction:column; align-items:center; line-height:1; font-variant-numeric:tabular-nums; }
.ledger-date strong { font-family:Georgia,serif; font-weight:400; font-size:24px; color:var(--foreground); }
.ledger-date small { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted-foreground); margin-top:3px; }
.ledger-row.is-overdue .ledger-date strong { color:var(--destructive); }
.ledger-row.is-today .ledger-date strong { color:var(--primary); }
.ledger-body { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; min-width:0; }
.ledger-name { border:0; background:none; padding:0; font:inherit; font-weight:600; color:var(--foreground); cursor:pointer; text-align:left; overflow-wrap:anywhere; }
.ledger-name:hover { text-decoration:underline; }
.ledger-reason { width:100%; font-size:12px; color:var(--muted-foreground); }
.ledger-actions { display:flex; gap:6px; }
.priority-chip { font-size:11px; padding:1px 8px; border-radius:999px; border:1px solid var(--border); color:var(--muted-foreground); }
.priority-chip.is-high { background:var(--core-50); border-color:var(--core-200); color:var(--core-700); font-weight:600; }
.triage-more { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:12px; }
@media(max-width:1000px) { .triage-more .btn { min-height:44px; flex:1 1 100%; } }
.triage-list { list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:10px; }
.triage-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--card); }
.triage-row strong { flex:1 1 140px; overflow-wrap:anywhere; }
.triage-priority { display:flex; flex-wrap:wrap; gap:6px; }
.triage-row select, .upkeep-controls select { padding:8px; border:1px solid var(--border); border-radius:6px; background:var(--card); color:var(--foreground); min-height:38px; }
.upkeep-controls { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.upkeep-controls label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted-foreground); }
.upkeep-status { margin:8px 0 2px; font-size:14px; font-weight:600; }
.upkeep-status.is-overdue { color:var(--destructive); }
.upkeep-facts { margin:0; font-size:12px; }
.upkeep-actions, .reminder-form { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:8px; }
.upkeep-linked { margin-top:8px; padding:8px 10px; border:1px dashed var(--border); border-radius:8px; font-size:12px; }
.upkeep-linked ul { margin:4px 0 0; padding-left:16px; }
.upkeep-reminders { margin-top:12px; }
.upkeep-reminders h5 { margin:0; font-size:13px; }
.reminder-list { list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.reminder-item { display:flex; gap:8px; align-items:baseline; font-size:13px; overflow-wrap:anywhere; }
.reminder-item.is-done { opacity:.6; text-decoration:line-through; }
.reminder-date { font-variant-numeric:tabular-nums; color:var(--muted-foreground); min-width:52px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media(max-width:1000px) {
 .ledger-row { grid-template-columns:48px minmax(0,1fr); }
 .ledger-actions { grid-column:2; }
 .ledger-actions .btn, .upkeep-actions .btn, .triage-row .pill, .triage-row select, .upkeep-controls select, .reminder-form .btn { min-height:44px; }
 .upkeep-actions .input, .reminder-form .input, .triage-row select, .upkeep-controls select { font-size:16px; }
 .upkeep-controls { grid-template-columns:1fr; }
 .triage-row select { flex:1 1 100%; }
 /* Every control in « Suivi » is a 44px touch target; reminder rows wrap: date + note, then actions. */
 .person-upkeep .link-btn, .person-upkeep .btn, .person-upkeep select, .person-upkeep .input, .triage-row .link-btn, .triage-more .link-btn { min-height:44px; }
 .person-upkeep .link-btn, .triage-row .link-btn, .triage-more .link-btn { display:inline-flex; align-items:center; padding:0 10px; }
 .reminder-item { flex-wrap:wrap; align-items:center; row-gap:2px; }
 .reminder-item .grow { flex:1 1 60%; min-width:0; }
 .reminder-item .link-btn { flex:0 0 auto; }
 .reminder-form .input { flex:1 1 100%; }
}
.person-quicknav { display:none; }
@media(max-width:760px) {
 .person-profile-head { flex-wrap:wrap; position:sticky; top:0; z-index:2; }
 .person-quicknav { display:flex; gap:6px; width:100%; overflow-x:auto; scrollbar-width:none; }
 .person-quicknav button { flex:1 0 auto; min-height:44px; padding:0 14px; border:1px solid var(--border); border-radius:999px; background:var(--card); color:var(--foreground); font-size:13px; font-weight:600; cursor:pointer; }
 .person-quicknav button:focus-visible { outline:2px solid var(--ring, var(--primary)); outline-offset:2px; }
 [id^="person-section-"] { scroll-margin-top:12px; }
 [id^="person-section-"]:focus { outline:none; }
 [id^="person-section-"]:focus-visible { outline:2px solid var(--ring, var(--primary)); outline-offset:4px; }
}

/* ---- L4 Accueil: a quiet morning paper in the sage editorial palette ---- */
.home-paper { max-width:1120px; margin:0 auto; padding:8px 4px 40px; }
.home-masthead { display:flex; gap:12px; align-items:flex-end; padding-bottom:16px; margin-bottom:18px; border-bottom:3px double var(--border); }
.home-title h1 { margin:6px 0 2px; font-family:Georgia,serif; font-weight:400; font-size:40px; letter-spacing:-1px; line-height:1.05; }
.home-title h1::first-letter { text-transform:uppercase; }
.home-zone { margin:0; font-size:12px; }
.home-search { margin-bottom:22px; }
.home-search-bar { display:flex; gap:8px; align-items:center; border:1px solid var(--input); border-radius:999px; padding:4px 4px 4px 14px; background:var(--card); }
.home-search-bar:focus-within { border-color:var(--ring); box-shadow:0 0 0 3px var(--core-50); }
.home-search-bar .ico { display:inline-flex; color:var(--muted-foreground); }
.home-search-bar .ico svg { width:18px; height:18px; }
.home-search-bar .input { flex:1; border:0; background:transparent; box-shadow:none; min-width:0; }
.home-search-bar .btn { border-radius:999px; }
.home-search-note { font-size:12px; margin:8px 4px 0; }
.home-results ol { list-style:none; margin:12px 0 0; padding:0; }
.home-result { padding:12px 4px; border-bottom:1px solid var(--border); }
.home-result-head { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.home-result-head .muted { font-size:13px; }
.home-pick { margin-left:auto; display:inline-flex; gap:6px; align-items:center; font-size:12px; color:var(--muted-foreground); cursor:pointer; }
.home-matches { list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; gap:4px; font-size:13px; overflow-wrap:anywhere; }
.home-cite { display:inline-block; min-width:52px; margin-right:6px; padding:1px 7px; border-radius:999px; font-size:11px; letter-spacing:.04em; text-transform:uppercase; background:var(--core-50); color:var(--core-600); text-align:center; }
.home-cite.is-note { background:var(--accent); color:var(--muted-foreground); }
.home-cite.is-message { background:transparent; border:1px solid var(--border); color:var(--muted-foreground); }
.home-ai-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-start; margin-top:12px; }
.home-ai-actions .btn svg { width:15px; height:15px; }
.home-intro { flex:1 1 320px; display:flex; flex-direction:column; gap:8px; padding:12px; border:1px dashed var(--input); border-radius:12px; }
.home-intro p { margin:0; font-size:13px; }
.home-ai-panel { margin-top:14px; padding:16px 18px; border-left:3px solid var(--primary); background:var(--core-50); border-radius:0 12px 12px 0; display:flex; flex-direction:column; gap:8px; }
.home-ai-panel p { margin:0; }
.home-manifest { margin:0; padding-left:0; list-style:none; display:flex; flex-direction:column; gap:4px; font-size:13px; max-height:220px; overflow:auto; }
.home-ai-text { font-family:Georgia,serif; font-size:17px; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; }
.home-source { font-size:12px; }
.home-briefing { margin:0 0 22px; padding:16px 20px; border:1px solid var(--border); border-radius:14px; background:linear-gradient(180deg,var(--core-50),var(--card)); }
.home-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; }
.home-col h2 { font-family:Georgia,serif; font-weight:400; font-size:22px; margin:0 0 10px; display:flex; gap:8px; align-items:center; }
.home-sub { font-family:Georgia,serif; font-weight:400; font-size:17px; margin:22px 0 6px; }
.home-empty { font-style:italic; }
.home-filter { display:flex; gap:6px; margin-bottom:8px; }
.home-wait-list { list-style:none; margin:0; padding:0; }
.home-wait-row { display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:12px; align-items:center; padding:12px 4px; border-bottom:1px solid var(--border); }
.home-wait-age { display:flex; align-items:baseline; justify-content:center; gap:2px; font-variant-numeric:tabular-nums; }
.home-wait-age strong { font-family:Georgia,serif; font-weight:400; font-size:24px; color:var(--primary); }
.home-wait-age small { font-size:11px; color:var(--muted-foreground); }
.home-wait-body { display:flex; flex-direction:column; gap:2px; min-width:0; overflow-wrap:anywhere; }
.ledger-name.is-unknown { font-weight:600; }
.home-coverage { margin-top:12px; font-size:12px; color:var(--muted-foreground); }
.home-coverage summary { cursor:pointer; }
.home-coverage ul { margin:6px 0; padding-left:18px; }
.policy-group { border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px 18px; }
.policy-group legend { font-size:13px; font-weight:600; margin-bottom:6px; }
.policy-group .check, .policy-ack { display:inline-flex; gap:8px; align-items:center; font-size:13px; }
.policy-bounds { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px 14px; }
.policy-bounds label { display:flex; flex-direction:column; gap:4px; }
.policy-state { font-size:12px; padding:2px 10px; border-radius:999px; border:1px solid var(--border); color:var(--muted-foreground); }
.policy-state.is-on { background:var(--core-50); color:var(--core-600); border-color:var(--core-100); }
.briefing-jobs { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; font-size:13px; }
.briefing-jobs li { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.job-state { font-size:12px; color:var(--muted-foreground); }
.job-state.is-ambiguous, .job-state.is-failed { color:var(--destructive); }
@media(max-width:1000px) {
 .home-columns { grid-template-columns:1fr; gap:18px; }
 .home-title h1 { font-size:30px; }
 .home-search-bar { border-radius:14px; flex-wrap:wrap; padding:6px; }
 .home-search-bar .input { font-size:16px; min-height:44px; flex:1 1 60%; }
 .home-search-bar .btn, .home-page .btn, .home-page .pill, .home-page .link-btn, .home-pick, .home-page select, .home-policy .input, .home-policy select, .home-schedule select, .home-schedule .link-btn, .home-policy .check, .home-policy .btn, .home-schedule .btn { min-height:44px; }
 .home-page .link-btn, .home-schedule .link-btn { display:inline-flex; align-items:center; padding:0 8px; }
 .home-intro textarea, .home-policy .input, .home-policy select, .home-schedule select { font-size:16px; }
 .home-wait-row { grid-template-columns:48px minmax(0,1fr); }
 .home-wait-row > .btn { grid-column:2; justify-self:start; }
 .home-pick { margin-left:0; }
 /* Names and citations are full 44px targets on touch screens. */
 .home-page .ledger-name, .home-page .home-source, .home-matches .link-btn { min-height:44px; display:inline-flex; align-items:center; text-align:left; }
}

/* ---- L5 network lenses, table, graph controls, facets and the offline schematic map ---- */
.network-lenses { display:flex; gap:4px; flex-wrap:wrap; padding:4px 32px 0; }
.network-lens { font:inherit; font-size:12px; padding:7px 14px; border:1px solid transparent; border-radius:999px; background:transparent; color:#52664e; cursor:pointer; }
.network-lens.is-on { border-color:#cbd8c8; background:#edf2e8; color:#215b57; }
.network-filter { padding:10px 32px 0; max-width:420px; }
.network-summary { padding:12px 32px 0; margin:0; font-size:12px; color:#52664e; display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.network-coverage-box { margin:8px 32px 0; font-size:11px; color:#657a6c; }
.network-coverage-box summary { cursor:pointer; }
.network-coverage-box ul { margin:6px 0; padding-left:18px; }
.network-error { padding:8px 32px; }
.network-graph { padding:8px 0 0; }
.network-zoom { display:flex; gap:6px; align-items:center; justify-content:flex-end; padding:0 32px; }
.network-map { overflow:hidden; }
.network-map:focus-visible { outline:2px solid #215b57; outline-offset:-2px; }
.network-pan { position:absolute; inset:0; transform-origin:50% 50%; transition:transform .18s ease; }
.network-edges { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.network-edges line { stroke:#8aa58d; stroke-width:.35; stroke-dasharray:1.2 1; vector-effect:non-scaling-stroke; }
.network-map-note { display:block; padding:4px 32px 0; font-size:11px; color:#657a6c; }
.network-table-wrap { padding:14px 32px 0; overflow-x:auto; }
.network-table { width:100%; border-collapse:collapse; font-size:13px; }
.network-table th { text-align:left; font-weight:500; font-size:11px; color:#52664e; border-bottom:1px solid #dce3d6; padding:6px 8px; }
.network-table td { padding:8px; border-bottom:1px solid #e6ece2; vertical-align:middle; }
.network-table .num { font-variant-numeric:tabular-nums; text-align:right; width:5em; }
.network-table tr.is-quiet td { color:#7d8f80; }
.network-sort { font:inherit; border:0; background:transparent; color:inherit; cursor:pointer; padding:0; }
.network-why { display:flex; gap:6px; align-items:center; font-size:12px; color:#52664e; }
.network-pager { display:flex; gap:10px; align-items:center; padding:12px 32px; }
.network-edges-list, .network-deleted { padding:6px 32px 18px; }
.network-edges-list h3, .network-deleted h3 { font-family:Georgia,serif; font-weight:400; font-size:18px; margin:8px 0; display:flex; gap:6px; align-items:center; }
.network-edges-list ul, .network-deleted ul, .network-group-list { list-style:none; margin:0; padding:0; }
.network-edges-list li { padding:6px 0; border-bottom:1px solid #e6ece2; font-size:13px; }
.network-groups-head { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:0 32px 0 0; }
.network-group-list { padding:8px 32px 20px; }
.network-group-list li, .network-deleted li { display:flex; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid #e6ece2; }
.network-group-list .grow { display:flex; flex-direction:column; gap:2px; min-width:0; }
.network-group-people { font-size:12px; color:#7d8f80; overflow-wrap:anywhere; }
.network-city-mode { margin:12px 32px 0; width:max-content; }
.facet-list { list-style:none; margin:10px 0 0; padding:0 32px 20px; }
.facet-row { padding:10px 0; border-bottom:1px solid #e6ece2; }
.facet-head { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.facet-toggle { display:flex; gap:10px; align-items:baseline; border:0; background:transparent; font:inherit; color:#253a35; cursor:pointer; padding:0; text-align:left; }
.facet-toggle strong { font-family:Georgia,serif; font-weight:400; font-size:17px; }
.facet-count { font-variant-numeric:tabular-nums; font-size:12px; color:#215b57; background:#edf2e8; border-radius:999px; padding:1px 8px; }
.facet-pin { margin-left:auto; display:flex; gap:8px; align-items:center; font-size:12px; }
.facet-variants, .facet-sources { font-size:11px; margin:4px 0 0; }
.facet-people { list-style:none; margin:6px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:4px 14px; }
.pin-editor { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:8px 12px; margin-top:8px; padding:12px; border:1px dashed #cbd8c8; border-radius:12px; }
.pin-editor > p, .pin-editor .settings-actions { grid-column:1/-1; margin:0; }
.pin-editor label { display:flex; flex-direction:column; gap:4px; font-size:12px; }
.city-map { margin:12px 32px 0; }
.city-map svg { width:100%; height:auto; display:block; border:1px solid #dce3d6; border-radius:12px; background:#f3f6ef; }
.city-map .map-sea { fill:#f3f6ef; }
.city-map .map-grid { stroke:#dfe6da; stroke-width:1; }
.city-map .map-equator { stroke:#c9d5c4; stroke-width:1; stroke-dasharray:4 4; }
.city-map .map-pin circle { fill:#215b57; fill-opacity:.55; stroke:#fff; stroke-width:1.5; }
.city-map figcaption { margin-top:6px; font-size:11px; }
@media(max-width:600px) {
 .network-lenses, .network-filter, .network-summary, .network-table-wrap, .network-pager, .network-edges-list, .network-group-list, .facet-list, .network-deleted { padding-left:16px; padding-right:16px; }
 .network-coverage-box, .city-map, .network-city-mode { margin-left:16px; margin-right:16px; }
 .network-lens, .network-sort, .network-page-btn, .facet-toggle, .network-why .help-tip, .network-table .ledger-name, .facet-people .link-btn, .network-edges-list .link-btn, .facet-pin .link-btn, .network-groups-head .link-btn, .pin-editor .link-btn, .network-group-list .ledger-name { min-height:44px; display:inline-flex; align-items:center; }
 .network-filter .input, .pin-editor .input { font-size:16px; min-height:44px; }
 .network-pager .btn, .network-groups-head .btn, .network-group-list .btn, .network-deleted .btn, .pin-editor .btn { min-height:44px; }
 .network-table th:nth-child(5), .network-table td:nth-child(5) { display:none; }
 .network-table { font-size:12px; }
 .network-groups-head { padding:0 16px; }
}
/* L5 graph frame: bounded height (owner and overview visible above the fold), wide orbital rings, table below. */
.network-graph .network-map { aspect-ratio:auto; width:calc(100% - 64px); max-width:none; height:clamp(420px,58vh,560px); min-height:0; margin:8px auto 0; position:relative; }
.network-graph .network-ring { aspect-ratio:auto; }
.network-graph .network-map-note { position:static; width:auto; text-align:left; transform:none; padding:6px 32px 0; }
@media(max-width:600px) {
 .contact-mode button, .contacts .group-tab, .network-city-mode button { min-height:44px; display:inline-flex; align-items:center; }
}

/* ---- L6 agenda, account integrations and capability matrix ---- */
.calendar-page .contacts-scroll { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:start; }
.calendar-paper { max-width:880px; width:100%; margin:0 auto; padding:8px 4px 40px; }
.calendar-head { justify-content:space-between; flex-wrap:wrap; }
.calendar-span { font-size:18px; letter-spacing:0; }
.calendar-nav { display:flex; gap:6px; }
.calendar-coverage { font-size:12px; margin:0 0 14px; display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.calendar-day { margin-top:18px; }
.calendar-day h2 { font-family:Georgia,serif; font-weight:400; font-size:19px; margin:0 0 6px; text-transform:capitalize; }
.calendar-day ol { list-style:none; margin:0; padding:0; border-top:1px solid var(--border); }
.calendar-event { display:grid; grid-template-columns:120px minmax(0,1fr); gap:2px 14px; width:100%; text-align:left; padding:10px 4px; border:0; border-bottom:1px solid var(--border); background:transparent; color:var(--foreground); font:inherit; cursor:pointer; }
.calendar-event:hover, .calendar-event.is-on { background:var(--accent); }
.calendar-event:focus-visible { outline:2px solid var(--ring); outline-offset:-2px; }
.calendar-time { font-variant-numeric:tabular-nums; font-size:12px; color:var(--muted-foreground); grid-row:span 2; padding-top:2px; }
.calendar-title { font-weight:500; overflow-wrap:anywhere; }
.calendar-meta { font-size:12px; color:var(--muted-foreground); overflow-wrap:anywhere; }
.calendar-event.is-cancelled .calendar-title, .calendar-event.is-declined .calendar-title { text-decoration:line-through; color:var(--muted-foreground); }
.calendar-event.is-private .calendar-title { font-style:italic; color:var(--muted-foreground); }
.calendar-detail { position:sticky; top:12px; width:340px; max-height:calc(100dvh - 40px); overflow:auto; border:1px solid var(--border); border-radius:14px; background:var(--card); padding:18px 20px; }
.calendar-detail .close-btn { float:right; }
.calendar-detail h2 { font-family:Georgia,serif; font-weight:400; font-size:24px; margin:6px 0; overflow-wrap:anywhere; }
.calendar-detail h3 { font-size:13px; margin:16px 0 6px; display:flex; gap:6px; align-items:center; }
.calendar-when { font-size:13px; margin:0 0 6px; }
.calendar-person { padding:8px 0; border-bottom:1px solid var(--border); }
.calendar-person p { margin:2px 0; font-size:12px; display:flex; gap:4px; align-items:center; flex-wrap:wrap; }
.calendar-notes { margin:4px 0 0; padding-left:16px; font-size:12px; }
.calendar-attendees { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; font-size:13px; }
.person-meetings ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; font-size:12px; }
.account-integrations { border-top:1px dashed var(--border); margin-top:10px; padding-top:10px; display:flex; flex-direction:column; gap:10px; font-size:13px; }
.integration-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.import-source { display:flex; flex-direction:column; gap:4px; font-size:12px; margin:8px 0; }
.capability-list { list-style:none; margin:0 0 10px; padding:0; }
.capability { display:flex; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); }
.capability .grow { display:flex; flex-direction:column; gap:2px; min-width:0; }
.capability small { color:var(--muted-foreground); overflow-wrap:anywhere; }
.capability-state { font-size:12px; padding:2px 10px; border-radius:999px; border:1px solid var(--border); white-space:nowrap; }
.capability.is-available .capability-state { background:var(--core-50); color:var(--core-600); }
.capability.is-optional .capability-state, .capability.is-file .capability-state { background:var(--accent); }
.capability.is-unavailable .capability-state, .capability.is-pending .capability-state { color:var(--muted-foreground); }
@media(max-width:1000px) {
 .calendar-page .contacts-scroll { grid-template-columns:1fr; }
 .calendar-detail { position:fixed; inset:0; width:auto; max-height:none; border-radius:0; z-index:40; }
 .calendar-event { grid-template-columns:1fr; min-height:44px; }
 .calendar-time { grid-row:auto; }
 .calendar-nav .btn, .calendar-detail .close-btn, .calendar-detail .ledger-name, .calendar-attendees .link-btn, .account-integrations .btn, .account-integrations select, .account-integrations .link-btn, .account-integrations .check, .import-source select { min-height:44px; }
 .account-integrations select, .import-source select { font-size:16px; }
 .calendar-detail .ledger-name, .calendar-attendees .link-btn, .account-integrations .link-btn { display:inline-flex; align-items:center; }
}
