@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

/* ============================================================
   TOKENS — light default. A [data-theme="dark"] block further
   down flips every semantic token. The signature "thread"
   gradient (iris → teal → amber) stays the same in both themes.
   ============================================================ */
* { box-sizing: border-box; }
html { font-size: calc(100% * var(--font-scale, 1.1)); }
:root {
  /* Granite is the default palette. Semantic token names are retained so every
     screen changes together when a user selects a different color theme. */
  --bg: #f8f9fa;
  --surface: #ffffff;
  --surface-2: #e9ecef;
  --surface-3: #dee2e6;
  --ink: #212529;
  --ink-2: #495057;
  --ink-3: #6c757d;
  --line: #ced4da;
  --line-2: #e9ecef;

  --iris: #4b5055;
  --iris-deep: #34383c;
  --iris-soft: #eceeef;
  --iris-line: #c4c8cb;

  --emerald: #4b5055;      --emerald-bg: #eceeef;
  --amber: #6c757d;        --amber-bg: #e9ecef;
  --rose: #e01e37;         --rose-bg: #fbe5e8;
  --sky: #62686d;          --sky-bg: #eceeef;
  --violet: #c9184a;       --violet-bg: #fae5eb;

  --thread: linear-gradient(120deg, #777d82, #4b5055 48%, #34383c 76%, #202326);

  --shadow-1: 0 1px 2px rgba(0,54,78,.06), 0 1px 1px rgba(0,54,78,.03);
  --shadow-2: 0 10px 28px -10px rgba(0,54,78,.16), 0 3px 8px rgba(0,54,78,.05);
  --shadow-pop: 0 24px 64px -16px rgba(0,54,78,.30);

  /* Elevated floating surface — a hair cooler than sidebar white so the
     popover reads as "above" it, not the same layer. */
  --popover-bg: #f6f7fc;
  --popover-line: #dfe1ee;

  --r-lg: 18px; --r-md: 12px; --r-sm: 9px;
  --font-display: 'Inter', -apple-system, 'Segoe UI', sans-serif;
  --font-ui: 'Inter', -apple-system, 'Segoe UI', sans-serif;

  /* Legacy aliases so untouched templates keep rendering correctly */
  --black: #212529; --near-black: #212529; --gray-900: #212529;
  --gray-700: #495057; --gray-500: #6c757d; --gray-300: #ced4da;
  --gray-200: #dee2e6; --gray-100: #e9ecef; --white: #ffffff;
  --radius: 12px; --radius-sm: 9px;
}
.contract-native-preview{padding:0;overflow:auto;background:var(--surface-2)}.contract-native-preview .contract-preview-head{background:var(--surface);position:sticky;top:0;z-index:2}.contract-native-preview .contract-preview-head span{padding:3px 7px;border-radius:5px;background:var(--surface-3);color:var(--ink-3);font-size:.62rem;font-weight:800}.contract-document-readonly{width:min(760px,calc(100% - 32px));min-height:900px;margin:18px auto;padding:64px 70px}.pdf-unavailable-note{padding:11px;margin:16px 0;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}.pdf-unavailable-note strong{font-size:.76rem}.pdf-unavailable-note p{color:var(--ink-3);font-size:.7rem;line-height:1.5;margin:4px 0 0}
.portal-invoice-wrap{width:min(680px,calc(100% - 32px));margin:50px auto}.portal-invoice-wrap>.card{padding:28px}.portal-invoice-amount{font-family:var(--font-display);font-size:2.2rem;font-weight:800;margin:14px 0 20px}
.admin-contract-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px;align-items:start}.contract-admin-list{display:flex;flex-direction:column}.contract-admin-list article{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.contract-admin-list img{width:72px;height:54px;object-fit:cover;border-radius:8px}.contract-admin-list h3{margin:5px 0 2px}.contract-admin-list p,.contract-admin-list small{color:var(--ink-3);font-size:.74rem;margin:0}.contract-category-filter{display:flex;gap:6px;flex-wrap:wrap;margin:-8px 0 18px}.contract-category-filter button{padding:6px 11px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);box-shadow:none}.contract-category-filter button.active{background:var(--iris-soft);border-color:var(--iris);color:var(--iris-deep)}.contract-meta-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.contract-meta-grid label,.contract-merge-field{margin:0}.contract-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.contract-merge-field{position:relative;padding:11px;border:1px solid #e7c56f;border-radius:10px;background:#fff9e8}.contract-merge-field>span{display:block;margin-bottom:6px;font-weight:700;font-size:.78rem}.contract-merge-field textarea{background:var(--surface);margin:0}.contract-merge-field small{display:block;color:#9a6b00;margin-top:4px;font-family:var(--font-ui)}.contract-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.contract-preview-card{padding:0;overflow:hidden}.contract-preview-head{display:flex;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--line)}.contract-preview-head small{color:var(--ink-3)}.contract-preview-card iframe{display:block;width:100%;height:75vh;border:0;background:#e9ebf0}@media(max-width:850px){.admin-contract-layout,.contract-detail-grid{grid-template-columns:1fr}.contract-meta-grid,.contract-fields-grid{grid-template-columns:1fr}.contract-admin-list article{grid-template-columns:1fr auto}.contract-admin-list img{display:none}}
.contract-upload-panel{margin-bottom:16px}.contract-upload-panel[hidden]{display:none}.contract-upload-grid,.contract-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.contract-upload-grid label,.contract-edit-grid label{margin:0}.contract-upload-grid .wide,.contract-edit-grid .wide{grid-column:1/-1}.admin-contract-library{padding:0;overflow:hidden}.contract-library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line)}.contract-library-toolbar .template-search{margin:0;flex:1}.contract-status-tabs{display:flex;gap:4px}.contract-status-tabs button{padding:7px 10px;background:transparent;border:0;color:var(--ink-3);box-shadow:none;font-size:.74rem}.contract-status-tabs button.active{background:var(--iris-soft);color:var(--iris-deep)}.contract-status-tabs span{margin-left:4px}.admin-contract-table-head,.admin-contract-row{display:grid;grid-template-columns:minmax(250px,1.4fr) minmax(130px,.6fr) 100px 100px minmax(280px,auto);align-items:center;gap:12px}.admin-contract-table-head{padding:10px 18px;background:var(--surface-2);color:var(--ink-3);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.admin-contract-row{padding:12px 18px;border-top:1px solid var(--line-2)}.contract-row-main{display:flex;align-items:center;gap:11px;min-width:0}.contract-row-main>span:last-child,.admin-contract-row>span:nth-child(3){display:flex;flex-direction:column;min-width:0}.contract-row-main small,.admin-contract-row small{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-row-thumb{width:58px;height:44px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink-3);font-size:.58rem;font-weight:800}.contract-row-thumb img{width:100%;height:100%;object-fit:cover;border-radius:6px}.contract-row-actions{display:flex;justify-content:flex-end;gap:5px}.contract-row-actions form{margin:0}.contract-row-editor{padding:16px 18px;background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.contract-row-editor[hidden]{display:none}.contract-field-summary{padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.contract-field-summary>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.contract-field-summary code{padding:3px 6px;border-radius:5px;background:var(--iris-soft);color:var(--iris-deep);font-size:.65rem}@media(max-width:1100px){.admin-contract-table-head{display:none}.admin-contract-row{grid-template-columns:1fr auto}.admin-contract-row>span:nth-child(2),.admin-contract-row>span:nth-child(3),.admin-contract-row>span:nth-child(4){display:none}.contract-row-actions{grid-column:2}.contract-library-toolbar{align-items:stretch;flex-direction:column}.contract-upload-grid,.contract-edit-grid{grid-template-columns:1fr}.contract-upload-grid .wide,.contract-edit-grid .wide{grid-column:auto}}

[data-theme="dark"] {
  /* Neutral near-black, not the old navy-tinted dark — the app's ink/navy
     lives in --ink and the accent colors, not in the dark-mode background. */
  --bg: #212529;
  --surface: #343a40;
  --surface-2: #495057;
  --surface-3: #6c757d;
  --ink: #f8f9fa;
  --ink-2: #e9ecef;
  --ink-3: #adb5bd;
  --line: #495057;
  --line-2: #343a40;

  --iris: #aeb4b9;
  --iris-deep: #e9ecef;
  --iris-soft: rgba(174,180,185,.18);
  --iris-line: rgba(173,181,189,.45);

  --emerald: #5dc1d8;      --emerald-bg: rgba(39,157,187,.20);
  --amber: #ffd164;        --amber-bg: rgba(255,183,11,.16);
  --rose: #e01e37;         --rose-bg: rgba(224,30,55,.22);
  --sky: #88c4df;          --sky-bg: rgba(136,196,223,.18);
  --violet: #c9184a;       --violet-bg: rgba(201,24,74,.22);

  --shadow-1: 0 1px 2px rgba(0,0,0,.35);
  --shadow-2: 0 12px 30px -12px rgba(0,0,0,.55), 0 3px 8px rgba(0,0,0,.3);
  --shadow-pop: 0 30px 80px -20px rgba(0,0,0,.7);

  /* Elevated floating surface — a step lighter than --surface so the
     popover reads as "above" it in the dark theme. */
  --popover-bg: #1e1f23;
  --popover-line: #2b2c31;

  --white: var(--surface);
  --gray-100: var(--line-2); --gray-200: var(--line); --gray-300: var(--ink-3);
  --gray-500: var(--ink-3); --gray-700: var(--ink-2); --gray-900: var(--ink);
  --black: var(--ink); --near-black: var(--ink);
}

/* The former blue palette remains available as Ocean. */
[data-color-theme="slate"] {
  --iris: #006494; --iris-deep: #004b70; --iris-soft: #e1f1f7; --iris-line: #9bc9dc;
  --emerald: #006494; --emerald-bg: #e1f1f7; --sky: #006494; --sky-bg: #e1f1f7;
  --thread: linear-gradient(120deg, #006494, #343a40 48%, #c9184a 76%, #e01e37);
}
[data-theme="dark"][data-color-theme="slate"] {
  --iris: #5dc1d8; --iris-deep: #d8f3fa; --iris-soft: rgba(0,100,148,.30); --iris-line: rgba(93,193,216,.42);
  --emerald: #5dc1d8; --emerald-bg: rgba(39,157,187,.20); --sky: #88c4df; --sky-bg: rgba(136,196,223,.18);
}

/* Karbar's default palette is drawn from the product mark: layered teal,
   dark slate green, desert sand, and a warm floral-white paper surface. */
[data-color-theme="karbar"] {
  --bg:#FDF6ED;--surface:#FDF6ED;--surface-2:color-mix(in srgb,#E5C5A7 32%,#FDF6ED);--surface-3:#E5C5A7;
  --ink:#154744;--ink-2:#2A5854;--ink-3:#456A64;--line:#E5C5A7;--line-2:color-mix(in srgb,#E5C5A7 48%,#FDF6ED);
  --iris:#154744;--iris-deep:#154744;--iris-soft:color-mix(in srgb,#456A64 13%,#FDF6ED);--iris-line:#456A64;
  --emerald:#2A5854;--emerald-bg:color-mix(in srgb,#456A64 15%,#FDF6ED);--amber:#456A64;--amber-bg:color-mix(in srgb,#E5C5A7 52%,#FDF6ED);
  --rose:#154744;--rose-bg:color-mix(in srgb,#E5C5A7 44%,#FDF6ED);--sky:#456A64;--sky-bg:color-mix(in srgb,#456A64 13%,#FDF6ED);
  --violet:#2A5854;--violet-bg:color-mix(in srgb,#456A64 13%,#FDF6ED);--popover-bg:#FDF6ED;--popover-line:#E5C5A7;
  --thread:linear-gradient(120deg,#154744,#2A5854 32%,#456A64 58%,#E5C5A7 78%,#FDF6ED);
  --theme-accent:#154744;
  --black:#154744;--near-black:#154744;--gray-900:#154744;--gray-700:#2A5854;
  --gray-500:#456A64;--gray-300:#E5C5A7;--gray-200:#E5C5A7;--gray-100:#FDF6ED;
}
[data-theme="dark"][data-color-theme="karbar"] {
  --bg: #0c0d0f; --surface: #17181b; --surface-2: #1e1f23; --surface-3: #26272c;
  --ink: #f2f2f3; --ink-2: #c6c7cb; --ink-3: #8b8c92; --line: #2b2c31; --line-2: #212227;
  --iris:#456A64;--iris-deep:#FDF6ED;--iris-soft:rgba(69,106,100,.24);--iris-line:#456A64;
  --emerald:#456A64;--emerald-bg:rgba(69,106,100,.2);--amber:#E5C5A7;--amber-bg:rgba(229,197,167,.16);
  --rose:#E5C5A7;--rose-bg:rgba(229,197,167,.16);--sky:#456A64;--sky-bg:rgba(69,106,100,.2);
  --violet:#2A5854;--violet-bg:rgba(42,88,84,.28);--theme-accent:#154744;
}
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-ui);
  background: var(--bg);
  color: var(--ink);
  margin: 0; padding: 0;
  font-size: 14.5px; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
h1, h2, h3, .display { font-family: var(--font-display); letter-spacing: -0.02em; }
h1 { font-size: 1.62rem; font-weight: 800; margin: 0 0 4px; }
h2 { font-size: 1.02rem; font-weight: 700; margin: 0 0 12px; }
.subtitle { color: var(--ink-2); margin: 0 0 18px; font-size: 0.9rem; }
.money, .num, .kpi-value, .stat-value { font-variant-numeric: tabular-nums; }
:focus-visible { outline: 2px solid var(--iris); outline-offset: 2px; border-radius: 4px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ============================================================
   APP SHELL + SIDEBAR
   ============================================================ */
.app-shell { display: flex; gap: 20px; min-height: 100vh; padding: 16px; align-items: flex-start; position: relative; }
.main-content {
  flex: 1; width: 100%; min-width: 0; max-width: none;
  padding: 70px 10px 48px;
  /* fill-mode intentionally omitted: with fill-mode:both/forwards, some
     browsers keep reporting a non-"none" transform (an identity matrix)
     even after the animation ends, which silently makes this element a
     CSS containing block for any position:fixed descendant (e.g. the
     client drawer) — breaking its viewport-relative positioning once the
     page is scrolled. The end keyframe already matches this element's
     resting state, so no fill-mode is needed to hold it. */
  animation: none;
}
@keyframes pageIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.sidebar {
  width: 254px; flex-shrink: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  color: var(--ink-2);
  padding: 16px 10px 10px;
  display: flex; flex-direction: column;
  position: sticky; top: 16px; height: calc(100vh - 32px);
  overflow: visible;
  box-shadow: var(--shadow-1);
  transition: width .2s ease;
}
.sidebar.collapsed { width: 70px; }

.sidebar-top { display: flex; align-items: center; justify-content: center; min-height: 64px; margin-bottom: 18px; padding: 2px 4px; }
.product-logo{display:flex;width:100%;min-width:0;align-items:center;justify-content:center;padding:3px 8px;border:1px solid rgba(21,71,68,.18);border-radius:13px;background:#FDF6ED;text-decoration:none;box-shadow:0 1px 0 rgba(255,255,255,.5)}.product-logo:hover,.product-logo:focus-visible{border-color:rgba(21,71,68,.18);background:#FDF6ED;box-shadow:0 1px 0 rgba(255,255,255,.5);transform:none}.product-logo-full{display:block;width:176px;max-width:100%;height:49px;object-fit:contain}.product-logo-emblem{display:none;width:38px;height:38px;object-fit:contain}
/* Workspace brand (icon + business name) — lives in the persistent
   .workspace-topbar now, not the sidebar, so it stays visible across every
   page instead of scrolling away with the nav. */
.workspace-topbar .brand { display: flex; align-items: center; gap: 10px; min-width: 0; overflow: hidden; border-radius:11px; color:inherit; text-decoration:none; }
.workspace-topbar .brand:hover .brand-name{color:var(--ink)}
/* Signature: the workspace mark carries the thread as a halo ring */
.workspace-topbar .brand-mark {
  width: 32px; height: 32px; border-radius: 10px;
  background: var(--ink); color: #fff;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  position: relative; isolation: isolate;
}
.workspace-topbar .brand-mark.has-logo { border: 1px solid var(--line); background: var(--surface); }
.workspace-topbar .brand-mark img { width: 100%; height: 100%; border-radius: 9px; object-fit: contain; }
.workspace-topbar .brand-mark::after {
  content: ''; position: absolute; inset: -2px; border-radius: 12px;
  background: var(--thread); z-index: -1; opacity: .9;
}
.workspace-topbar .brand-text { display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.workspace-topbar .brand-text .brand-name {
  color: var(--ink); font-family: var(--font-display); font-weight: 800; font-size: 0.92rem;
  letter-spacing: -0.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.workspace-topbar .brand-text small { color: var(--ink-3); font-weight: 500; font-size: 0.66rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.workspace-switcher{display:flex;min-width:0;align-items:center;gap:10px;margin:0}.workspace-switcher label{margin:0;color:var(--ink-2);font-size:.72rem;font-weight:750;white-space:nowrap}.workspace-switcher select{width:min(270px,28vw);height:40px;margin:0;padding:7px 34px 7px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:.76rem;font-weight:750;box-shadow:none}.workspace-switcher select:hover,.workspace-switcher select:focus{border-color:var(--iris-line);background:var(--surface-2)}
.sidebar.collapsed .nav-group-label,
.sidebar.collapsed .label, .sidebar.collapsed .soon-tag,
.sidebar.collapsed .quick-add,
.sidebar.collapsed .profile-meta, .sidebar.collapsed .recent-block { display: none; }
.sidebar.collapsed .sidebar-top{width:100%;min-height:52px;margin-bottom:18px;padding:0}.sidebar.collapsed .product-logo{width:46px;height:46px;margin:0 auto;padding:3px}.sidebar.collapsed .product-logo-full{display:none}.sidebar.collapsed .product-logo-emblem{display:block}
.sidebar.collapsed>nav{align-items:center}.sidebar.collapsed .nav-group{width:100%;align-items:center}.sidebar.collapsed a.nav-item{display:grid;width:40px;min-height:31px;place-items:center;gap:0;margin-inline:auto;padding:0}.sidebar.collapsed a.nav-item .nav-icon{grid-area:1/1;margin:0}

/* The desktop collapse control is a slim handle attached to the rail edge. */
.sidebar-edge-toggle {
  position:absolute;top:88px;right:-12px;z-index:10;display:grid;width:23px;height:58px;
  place-items:center;margin:0;padding:0;border:1px solid var(--line-strong);border-radius:999px;
  background:var(--surface);color:var(--ink-2);box-shadow:0 4px 12px rgba(15,23,42,.12);
  cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;
}
.sidebar-edge-toggle:hover{border-color:var(--iris-line);background:var(--iris-soft);color:var(--iris-deep);box-shadow:0 5px 16px rgba(15,23,42,.18);transform:none}
.sidebar-edge-toggle svg{transition:transform .2s ease}
.sidebar.collapsed .sidebar-edge-toggle svg{transform:rotate(180deg)}

/* Search sits in the center of the persistent workspace toolbar. */
.topbar-search {
  position:relative;display:block;min-width:160px;max-width:440px;flex:1 1 360px;
  height:38px;margin:0 clamp(14px,3vw,42px);font-family:var(--font-ui);font-size:.72rem;text-align:left;
}
.topbar-search-field{display:flex;height:38px;align-items:center;gap:9px;margin:0;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-3);box-shadow:none}
.topbar-search-field:focus-within,.topbar-search.open .topbar-search-field{border-color:var(--iris);box-shadow:0 0 0 3px var(--iris-soft);color:var(--ink-2)}
.topbar-search input{min-width:0;height:34px;flex:1;margin:0;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;box-shadow:none}
.topbar-search input:focus{border:0;outline:0;box-shadow:none}
.topbar-search input::-webkit-search-cancel-button{cursor:pointer}
.topbar-search kbd{padding:2px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink-3);font-family:var(--font-ui);font-size:.58rem;font-weight:700;white-space:nowrap}
.topbar-search-results{position:absolute;top:calc(100% + 8px);right:0;left:0;z-index:980;max-height:min(52vh,430px);overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-pop)}
.topbar-search-results[hidden]{display:none}

/* Unified create launcher — shared by the sidebar and client surfaces. */
.create-new { position:relative; display:inline-flex; z-index:90; }
.create-new-trigger { display:flex; align-items:center; gap:8px; min-height:34px; margin:0; padding:7px 10px; border-radius:9px; border:1px solid var(--iris); background:var(--iris); color:#fff; font-size:.76rem; font-weight:700; box-shadow:none; white-space:nowrap; }
.create-new-trigger:hover { transform:none; box-shadow:var(--shadow-1); filter:brightness(.96); }
.create-new-caret { margin-left:auto; transition:transform .15s; }
.create-new.open .create-new-caret { transform:rotate(180deg); }
.create-new-menu { display:none; position:absolute; top:calc(100% + 7px); left:0; width:286px; padding:8px; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:var(--shadow-pop); z-index:200; }
.create-new.open .create-new-menu { display:block; animation:cmdkIn .14s ease-out both; }
.create-new-label { display:block; padding:4px 9px 6px; color:var(--ink-3); font-size:.58rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.create-new-menu a,.create-new-menu form>button { display:flex; width:100%; align-items:center; justify-content:flex-start; gap:10px; margin:0; padding:7px 8px; border:0; border-radius:8px; background:transparent; box-shadow:none; color:var(--ink); text-align:left; text-decoration:none; }
.create-new-menu form{width:100%;margin:0;padding:0}.create-new-menu a:hover,.create-new-menu form>button:hover { background:var(--iris-soft);transform:none; }
.create-new-menu a i,.create-new-menu form>button i { display:grid; place-items:center; width:29px; height:29px; flex:0 0 auto; border-radius:8px; background:var(--surface-2); color:var(--iris-deep); font-size:.82rem; font-style:normal; font-weight:800; }
.create-new-menu a span,.create-new-menu form>button span { display:flex; flex-direction:column; min-width:0; }
.create-new-menu a strong,.create-new-menu form>button strong { font-size:.76rem; line-height:1.25; }
.create-new-menu a small,.create-new-menu form>button small { color:var(--ink-3); font-size:.64rem; line-height:1.3; }
.create-new-floating{position:absolute;right:0;bottom:58px;z-index:3}
.create-new-floating .create-new-trigger{display:grid;width:42px;height:42px;min-height:42px;place-items:center;padding:0;border-radius:50%;border-color:var(--ink);background:var(--ink);box-shadow:0 10px 25px rgba(15,39,55,.2)}
.create-new-floating .create-new-trigger>span,.create-new-floating .create-new-caret{display:none}
.create-new-floating .create-new-trigger>svg:first-child{width:21px;height:21px}
.create-new-floating .create-new-menu{top:auto;right:0;bottom:calc(100% + 9px);left:auto;width:286px;max-height:min(620px,calc(100dvh - 140px));overflow-y:auto}
.ai-assistant.open .create-new-floating{visibility:hidden}
.client-create-row { display:flex; justify-content:flex-end; margin:-36px 0 12px; }
.create-new-page .create-new-menu { left:auto; right:0; }
.create-new-drawer .create-new-menu { top:calc(100% + 7px); bottom:auto; }
.create-new-drawer .create-new-trigger { min-height:32px; padding:6px 10px; }
.portal-access-card{margin:12px 0;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.portal-access-card>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.portal-access-card strong{font-size:.75rem}.portal-access-actions{margin-top:9px;justify-content:flex-start!important}.portal-access-actions form{margin:0}.portal-access-status{display:inline-flex;align-items:center;gap:5px;color:var(--ink-3);font-size:.65rem;font-weight:700;white-space:nowrap}.portal-access-status:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--amber)}.portal-access-status.active{color:var(--emerald)}.portal-access-status.active:before{background:var(--emerald)}
.time-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.time-row-actions .btn{margin:0}
.calendar-day{cursor:pointer}.calendar-event{width:100%;margin:0;border:0;text-align:left;box-shadow:none}.calendar-event:hover{filter:brightness(.97);transform:none;box-shadow:none}
.events-page{padding-bottom:60px}.events-workspace{display:grid;grid-template-columns:minmax(280px,360px) minmax(620px,1fr);gap:16px;align-items:start}.events-agenda-pane{max-height:calc(100vh - 150px);overflow:auto;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.events-pane-head h2{margin:3px 0 14px;font-size:1.15rem}.agenda-group{margin-bottom:18px}.agenda-group .agenda-date-label{position:sticky;top:-16px;z-index:2;padding:9px 0 7px;background:var(--surface)}.agenda-group .agenda-row{grid-template-columns:64px minmax(0,1fr) auto;padding:10px 0}.past-events summary{padding:10px 0;color:var(--ink-3);font-size:.72rem;font-weight:700;cursor:pointer}.agenda-row.muted{opacity:.65}.calendar-pane{margin:0;padding:0;overflow:hidden}.calendar-head{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}.calendar-head h2{min-width:210px;margin:0;text-align:center}.calendar-head .btn{margin-left:auto}.calendar-nav{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:1.35rem;text-decoration:none}.calendar-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:9px;border-right:1px solid var(--line-2);color:var(--ink-3);font-size:.61rem;font-weight:800;text-align:center;text-transform:uppercase}.calendar-day{display:flex;min-width:0;min-height:118px;flex-direction:column;align-items:stretch;margin:0;padding:8px;border:0;border-top:1px solid var(--line);border-right:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--ink);text-align:left;box-shadow:none}.calendar-day:hover{z-index:1;background:var(--iris-soft);transform:none;box-shadow:inset 0 0 0 1px var(--iris-line)}.calendar-day.outside{background:var(--surface-2)}.day-number{display:grid;place-items:center;width:24px;height:24px;margin-bottom:5px;border-radius:50%;font-size:.68rem;font-weight:750}.calendar-day.today .day-number{background:var(--iris);color:#fff}.day-events{display:flex;min-width:0;flex-direction:column;gap:3px}.calendar-event{display:block;overflow:hidden;padding:3px 5px;border-radius:5px;background:var(--iris-soft);color:var(--iris-deep);font-size:.57rem;text-overflow:ellipsis;white-space:nowrap}.calendar-event.internal-event{background:var(--surface-3);color:var(--ink-2)}.calendar-event b{font-weight:800}.day-events small{color:var(--ink-3);font-size:.56rem}.event-modal-card{display:flex;width:min(720px,calc(100vw - 28px));max-height:calc(100dvh - 32px);flex-direction:column;overflow:hidden}.event-modal-card>header{flex:0 0 auto}.event-modal-card>form{min-height:0;overflow-y:auto;padding:20px 22px 0}.event-modal-card>form>footer{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:9px;margin:18px -22px 0;padding:14px 22px;border-top:1px solid var(--line);background:var(--surface)}.event-date-time,.event-links-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.event-date-time-with-zone{grid-template-columns:1.15fr .85fr .85fr 1.4fr}.event-links-grid{grid-template-columns:1fr 1fr}.check-label{display:flex;align-items:center;gap:8px}.check-label input{width:auto;margin:0}.event-expense-fields{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:10px;padding:14px;border:1px solid var(--line-2);border-radius:11px;background:var(--surface-2)}.event-expense-fields[hidden]{display:none}.event-expense-fields>label[hidden]{display:none}.event-billing-summary{grid-column:1/-1;margin:0;padding:10px 12px;border-left:3px solid var(--iris);border-radius:7px;background:var(--surface);color:var(--ink-2);font-size:.72rem;line-height:1.45}@media(max-width:1100px){.events-workspace{grid-template-columns:1fr}.events-agenda-pane{max-height:none}.calendar-pane{overflow-x:auto}.calendar-weekdays,.month-grid{min-width:720px}}@media(max-width:680px){.native-modal{align-items:flex-start;padding:10px}.event-modal-card{max-height:calc(100dvh - 20px)}.event-date-time,.event-date-time-with-zone,.event-links-grid,.event-expense-fields{grid-template-columns:1fr}}
.agenda-row-clickable{border-radius:9px;cursor:pointer;transition:background .12s,box-shadow .12s}.agenda-row-clickable:hover,.agenda-row-clickable:focus-visible{background:var(--surface-2);box-shadow:0 0 0 5px var(--surface-2);outline:none}.agenda-row-clickable .agenda-title:after{content:'Edit';margin-left:7px;color:var(--iris-deep);font-size:.56rem;font-weight:800;opacity:0;transition:opacity .12s}.agenda-row-clickable:hover .agenda-title:after,.agenda-row-clickable:focus-visible .agenda-title:after{opacity:1}
#eventMeetingProviderRow[hidden]{display:none!important}.event-notify-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px}.event-notify-controls .check-label{margin:0}.event-import-actions{align-items:center;flex-wrap:wrap}.event-raw-url{display:flex;min-width:0;flex:1 0 100%;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.event-raw-url[hidden]{display:none}.event-raw-url code{min-width:0;flex:1;overflow:hidden;color:var(--ink-2);font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.event-email-preview{margin-top:13px;overflow:hidden;border:1px solid var(--iris-line);border-radius:14px;background:var(--surface)}.event-email-preview[hidden]{display:none}.event-email-preview>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid var(--line);background:var(--iris-soft)}.event-email-preview>header strong{display:block;margin-top:3px;font-size:.76rem}.event-email-preview-to{margin:0;padding:10px 15px;border-bottom:1px solid var(--line-2);color:var(--ink-3);font-size:.62rem}.event-email-preview-body{padding:15px;color:var(--ink-2);font-size:.7rem;line-height:1.55}.event-email-preview-body>div{display:flex;flex-direction:column;gap:3px;margin:12px 0;padding:13px;border-left:4px solid var(--iris);border-radius:9px;background:var(--surface-2)}.event-email-preview-body>div strong{color:var(--ink);font-size:.8rem}.event-email-preview-body p{margin:0 0 9px}.event-email-preview-body p:last-child{margin-bottom:0}@media(max-width:680px){.event-notify-controls{align-items:stretch;flex-direction:column}.event-notify-controls .btn{justify-content:center}}
@media(max-width:700px) { .client-create-row { margin:0 0 12px; justify-content:flex-start; } .create-new-page .create-new-menu { left:0; right:auto; } }

.sidebar > nav { flex:1; min-height:0; display:flex; flex-direction:column; justify-content:space-between; gap:0; padding:0 0 4px; overflow-x:hidden; overflow-y:auto; scrollbar-width:thin; scrollbar-color:transparent transparent; overscroll-behavior:contain; }
.sidebar > nav:hover { scrollbar-color:color-mix(in srgb,var(--ink-3) 44%,transparent) transparent; }
.sidebar > nav::-webkit-scrollbar{width:4px}.sidebar > nav::-webkit-scrollbar-track{background:transparent}.sidebar > nav::-webkit-scrollbar-thumb{border-radius:999px;background:transparent}.sidebar > nav:hover::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink-3) 44%,transparent)}
.sidebar .nav-group { display:flex; flex:0 0 auto; flex-direction:column; gap:3px; margin-bottom:0; }
.sidebar .nav-utility-group{margin-top:0;padding-top:8px;border-top:1px solid var(--line-2)}
.sidebar .nav-group-label {
  font-size: 0.58rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--ink-3); padding: 0 9px; margin-bottom: 4px;
  display: flex; align-items: center; gap: 8px;
}
.sidebar .nav-group-label::after { content: ''; flex: 1; height: 1px; background: var(--line-2); }
.sidebar a.nav-item, .sidebar-footer a {
  display: flex; align-items: center; gap: 10px;
  min-height: 31px; padding: 5px 9px; margin: 0;
  border-radius: 8px; text-decoration: none;
  color: var(--ink-2); font-size: 0.78rem; font-weight: 500;
  position: relative; transition: background .13s, color .13s;
}
.sidebar a.nav-item:hover, .sidebar-footer a:hover { background: var(--line-2); color: var(--ink); }
.nav-unread-badge { min-width:19px; height:19px; display:inline-grid; place-items:center; margin-left:auto; padding:0 5px; border-radius:99px; background:var(--rose); color:#fff; font-size:.58rem; font-weight:800; line-height:1; }
.sidebar.collapsed .nav-unread-badge { position:absolute; top:1px; right:2px; min-width:15px; height:15px; padding:0 3px; font-size:.5rem; }
.sidebar a.nav-item.active { background: var(--iris-soft); color: var(--iris-deep); font-weight: 600; }
/* Active pill dot carries the thread */
.sidebar a.nav-item.active::before {
  content: ''; position: absolute; left: -12px; top: 50%; transform: translateY(-50%);
  width: 3.5px; height: 20px; border-radius: 0 4px 4px 0; background: var(--thread);
}
.sidebar .nav-icon { flex-shrink: 0; opacity: .85; }
.sidebar a.nav-item.active .nav-icon { opacity: 1; }

/* On short desktop viewports, retain section distribution while trimming only
   the per-row density enough to avoid a default-size scrollbar. */
@media(max-height:820px) and (min-width:841px){
  .sidebar{padding-top:12px;padding-bottom:8px}
  .sidebar-top{min-height:52px;margin-bottom:12px}
  .sidebar.collapsed .sidebar-top{min-height:46px;margin-bottom:12px}
  .sidebar .nav-group{gap:1px}
  .sidebar .nav-utility-group{padding-top:6px}
  .sidebar .nav-group-label{margin-bottom:2px}
  .sidebar a.nav-item,.sidebar-footer a{min-height:28px;padding-top:3px;padding-bottom:3px}
  .sidebar.collapsed a.nav-item{min-height:28px;padding:0}
}
.sidebar .soon-tag {
  margin-left: auto; font-size: 0.58rem; font-weight: 700; letter-spacing: .04em;
  color: var(--ink-3); background: var(--line-2); border-radius: 5px; padding: 1.5px 6px;
  text-transform: uppercase;
}

/* Karbar's navigation stays confidently green. The darkest slate is reserved
   for the current destination so hover and selection remain unambiguous. */
[data-color-theme="karbar"] .sidebar{background:#456A64;border-color:#2A5854;color:#FDF6ED}
[data-color-theme="karbar"] .sidebar .nav-group-label{color:#FDF6ED}
[data-color-theme="karbar"] .sidebar .nav-group-label::after,[data-color-theme="karbar"] .sidebar .nav-utility-group{border-color:color-mix(in srgb,#E5C5A7 52%,transparent)}
[data-color-theme="karbar"] .sidebar .nav-group-label::after{background:color-mix(in srgb,#E5C5A7 52%,transparent)}
[data-color-theme="karbar"] .sidebar a.nav-item,[data-color-theme="karbar"] .sidebar-footer a{color:#FDF6ED}
[data-color-theme="karbar"] .sidebar a.nav-item:hover,[data-color-theme="karbar"] .sidebar-footer a:hover{background:#2A5854;color:#fff}
[data-color-theme="karbar"] .sidebar a.nav-item.active{background:#154744;color:#fff}
[data-color-theme="karbar"] .sidebar a.nav-item.active::before{background:#E5C5A7}
[data-color-theme="karbar"] .sidebar .soon-tag{background:#2A5854;color:#FDF6ED}
[data-color-theme="karbar"] .sidebar>nav:hover{scrollbar-color:rgba(253,246,237,.42) transparent}
[data-color-theme="karbar"] .sidebar>nav:hover::-webkit-scrollbar-thumb{background:rgba(253,246,237,.42)}
[data-color-theme="karbar"] .sidebar-edge-toggle{border-color:#2A5854;background:#FDF6ED;color:#154744}
[data-color-theme="karbar"] .sidebar-edge-toggle:hover{border-color:#154744;background:#E5C5A7;color:#154744}

/* Quick add button */
.quick-add {
  display: flex; align-items: center; justify-content: center; gap: 7px;
  width: 100%; margin: 2px 0 12px;
  background: var(--ink); color: #fff; border: none;
  border-radius: 10px; padding: 9px 10px;
  font-size: 0.84rem; font-weight: 600; font-family: var(--font-ui); cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
}
.quick-add:hover { transform: translateY(-1px); box-shadow: var(--shadow-2); }

/* Recent items (client-side, localStorage) */
.recent-block { margin-bottom: 12px; }
.recent-block a { font-size: 0.8rem; padding: 5.5px 10px; }
.recent-block .nav-icon { opacity: .6; }
.recent-block:empty { display: none; }

.workspace-topbar {
  position: absolute; z-index: 75; top: 16px; left: 272px; right: 16px; height: 54px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 10px 8px; border-bottom: 1px solid var(--line-2);
  background: color-mix(in srgb, var(--bg) 92%, transparent);
}
.sidebar.collapsed + .workspace-topbar { left: 98px; }
.workspace-topbar .brand{flex:0 0 250px}
.topbar-actions { display:flex; flex:0 0 auto; align-items:center; gap:8px; }
@media(max-width:1250px) and (min-width:761px){.workspace-switcher label{display:none}.workspace-switcher select{width:min(220px,20vw)}.topbar-search{margin-inline:14px}}
@media(max-width:900px) and (min-width:761px){.workspace-topbar .brand{min-width:130px;flex:0 1 180px}.topbar-search{width:42px;min-width:42px;max-width:42px;flex:0 0 42px;justify-content:center;padding:0}.topbar-search span,.topbar-search kbd{display:none}}
.topbar-profile { position: relative; }
.topbar-theme-toggle{display:grid;width:36px;height:36px;place-items:center;margin:0;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink-2);box-shadow:none;cursor:pointer}
.topbar-theme-toggle:hover{transform:none;border-color:var(--iris-line);background:var(--surface-2);color:var(--ink)}
.topbar-theme-toggle .theme-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.topbar-theme-toggle .theme-icon-sun{display:none}
[data-theme="dark"] .topbar-theme-toggle .theme-icon-moon{display:none}
[data-theme="dark"] .topbar-theme-toggle .theme-icon-sun{display:block}
.profile-chip {
  display: flex; align-items: center; gap: 6px; padding: 4px; border-radius: 999px;
  background: transparent; border: 1px solid transparent; cursor: pointer; text-align: left;
  font-family: var(--font-ui); color: var(--ink); margin: 0;
  transition: background .13s;
}
.profile-chip:hover, .profile-chip[aria-expanded="true"] { background: var(--surface-3); border-color: var(--line); transform: none; box-shadow: none; }
.profile-chip .avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--iris-soft); color: var(--iris-deep);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.72rem; font-weight: 700; flex-shrink: 0;
}
.profile-meta { min-width: 0; flex: 1; }
.profile-meta .p-name { font-size: 0.78rem; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.profile-meta .p-role { font-size: 0.68rem; color: var(--ink-3); text-transform: capitalize; }
.profile-caret { color: var(--ink-3); flex-shrink: 0; margin-right: 3px; transition: transform .15s; }
.profile-chip[aria-expanded="true"] .profile-caret { transform: rotate(180deg); color: var(--ink); }

/* Profile popover — floats above the sidebar footer */
.profile-popover {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  width: min(320px, calc(100vw - 28px));
  background: var(--popover-bg); border: 1px solid var(--popover-line); border-radius: 14px;
  box-shadow: var(--shadow-pop);
  padding: 14px 14px 12px;
  z-index: 90;
  display: none;
  animation: popIn .16s cubic-bezier(.22,.9,.3,1) both;
}
.profile-popover.open { display: block; }
@keyframes popIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.profile-popover .pp-head {
  display: flex; align-items: center; gap: 10px; padding-bottom: 12px; margin-bottom: 6px;
  border-bottom: 1px solid var(--popover-line);
}
.profile-popover .pp-head .avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--iris-soft); color: var(--iris-deep); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.82rem; }
.profile-popover .pp-head .pp-title { font-family: var(--font-display); font-weight: 700; font-size: 0.88rem; color: var(--ink); }
.profile-popover .pp-head .pp-sub { font-size: 0.72rem; color: var(--ink-3); }
.profile-popover label { margin: 10px 0 4px; font-size: 0.68rem; text-transform: uppercase; letter-spacing: .06em; }
/* Inputs on tinted popover — need surface bg to stay legible */
.profile-popover input, .profile-popover select { padding: 7px 10px; font-size: 0.83rem; background: var(--surface); }
.profile-popover .pp-actions { display: flex; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--popover-line); }
.profile-popover .pp-actions button { margin: 0; flex: 1; padding: 7px 10px; font-size: 0.8rem; }
.profile-popover .pp-actions a { flex: 1; padding: 7px 10px; font-size: 0.8rem; margin: 0; }
.profile-popover .pp-readonly { display: block; font-size: 0.82rem; color: var(--ink-2); padding: 7px 10px; background: var(--surface); border: 1px solid var(--popover-line); border-radius: 10px; }
.profile-popover .pp-readonly small { display: block; font-size: 0.66rem; color: var(--ink-3); margin-top: 2px; }

/* Menu view — the account button's default state: identity header, a
   list of quick links, plan status, logout. Editing name/phone/timezone
   moved behind the pencil icon (.pp-edit-view) instead of always showing
   inline, so this stays scannable. */
.pp-edit-btn {
  width: 28px; height: 28px; flex-shrink: 0; margin: 0; padding: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--surface); border: 1px solid var(--popover-line); border-radius: 8px;
  color: var(--iris-deep); cursor: pointer;
}
.pp-edit-btn:hover { background: var(--surface-3); transform: none; box-shadow: none; }
.pp-menu { display: flex; flex-direction: column; padding: 4px 0; }
.pp-menu-item {
  display: flex; align-items: center; gap: 11px; padding: 8px 6px; margin: 0;
  border-radius: 9px; text-decoration: none; color: var(--ink-2);
  font-size: 0.84rem; font-weight: 500; transition: background .12s, color .12s;
}
.pp-menu-item svg { flex-shrink: 0; color: var(--ink-3); }
.pp-menu-item:hover { background: var(--surface-3); color: var(--ink); }
.pp-menu-item:hover svg { color: var(--ink); }
.pp-menu + .pp-plan { margin-top: 4px; }
.pp-plan {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-top: 6px; padding: 10px 6px; border-top: 1px solid var(--popover-line); border-bottom: 1px solid var(--popover-line);
}
.pp-plan-name { font-size: 0.82rem; font-weight: 700; color: var(--ink); }
.pp-plan-sub { font-size: 0.72rem; color: var(--ink-3); margin-top: 1px; }
.pp-plan .btn { margin: 0; padding: 6px 12px; font-size: 0.76rem; flex: 0 0 auto; }
.pp-logout-row { padding-top: 4px; }
.pp-logout-row .pp-menu-item { color: var(--rose); }
.pp-logout-row .pp-menu-item svg { color: var(--rose); }
.pp-logout-row .pp-menu-item:hover { background: var(--rose-bg); }

/* Edit view — swapped in over the menu view when the pencil is clicked */
.pp-edit-head { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.pp-back-btn {
  width: 26px; height: 26px; flex-shrink: 0; margin: 0; padding: 0;
  display: flex; align-items: center; justify-content: center;
  background: transparent; border: none; box-shadow: none; color: var(--ink-2); cursor: pointer;
}
.pp-back-btn:hover { color: var(--ink); transform: none; }
.pp-edit-head strong { font-family: var(--font-display); font-size: 0.86rem; }

/* Theme toggle — pill switch in sidebar and admin topbar */
.theme-toggle {
  display: inline-flex; align-items: center; gap: 0;
  background: var(--surface-3); border: 1px solid var(--line);
  border-radius: 99px; padding: 2px; margin: 0;
  font-family: var(--font-ui); cursor: default;
}
.theme-toggle button {
  background: transparent; border: none; color: var(--ink-3);
  width: 26px; height: 22px; border-radius: 99px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; padding: 0; margin: 0;
  transition: background .15s, color .15s;
}
.theme-toggle button:hover { color: var(--ink); transform: none; box-shadow: none; }
.theme-toggle button.active { background: var(--surface); color: var(--ink); box-shadow: var(--shadow-1); }
.theme-toggle-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 0 4px; font-size: 0.72rem; color: var(--ink-3); font-weight: 600;
}
.color-theme-row { display:flex; flex-direction:column; gap:7px; margin-top:12px; }
.color-theme-row .theme-label { font-size:.72rem; }
.color-theme-toggle { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.color-theme-toggle button { display:flex; align-items:center; justify-content:center; gap:7px; padding:8px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--surface-2); color:var(--ink-2); box-shadow:none; font-size:.68rem; }
.color-theme-toggle button:hover { color:var(--ink); border-color:var(--ink-3); transform:none; box-shadow:none; }
.color-theme-toggle button.active { color:var(--ink); border-color:var(--iris); background:var(--surface); box-shadow:0 0 0 1px var(--iris); }
.palette-swatches { display:flex; }
.palette-swatches i { width:9px; height:15px; border:1px solid rgba(255,255,255,.45); margin-left:-2px; }
.palette-swatches i:first-child { margin-left:0; border-radius:4px 0 0 4px; }
.palette-swatches i:last-child { border-radius:0 4px 4px 0; }
[data-color-theme-set="slate"] .palette-swatches i:nth-child(1) { background:#006494; }
[data-color-theme-set="slate"] .palette-swatches i:nth-child(2) { background:#343a40; }
[data-color-theme-set="slate"] .palette-swatches i:nth-child(3) { background:#e01e37; }
[data-color-theme-set="karbar"] .palette-swatches i:nth-child(1) { background:#0b403e; }
[data-color-theme-set="karbar"] .palette-swatches i:nth-child(2) { background:#4f7f75; }
[data-color-theme-set="karbar"] .palette-swatches i:nth-child(3) { background:#9bb5ad; }
[data-color-theme-set="karbar"] .palette-swatches i:nth-child(4) { background:#f1dcc4; }
[data-color-theme-set="karbar"] .palette-swatches i:nth-child(5) { background:#d96732; }
[data-color-theme-set="granite"] .palette-swatches i:nth-child(1) { background:#777d82; }
[data-color-theme-set="granite"] .palette-swatches i:nth-child(2) { background:#4b5055; }
[data-color-theme-set="granite"] .palette-swatches i:nth-child(3) { background:#202326; }
.sidebar.collapsed .theme-toggle-row { justify-content: center; }
.theme-toggle-row .theme-label { font-size: 0.72rem; }
.sidebar.collapsed .theme-toggle-row .theme-label { display: none; }
.theme-toggle.billing-toggle button {
  width: auto; height: auto; padding: 6px 13px; font-size: 0.8rem; font-weight: 600; border-radius: 8px;
}
.logout-icon-btn { color: var(--ink-3); display: flex; padding: 6px; border-radius: 8px; }
.logout-icon-btn:hover { background: var(--surface-3); color: var(--ink); }

/* ============================================================
   PAGE HEADER PATTERN
   ============================================================ */
.page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.page-head .eyebrow {
  font-size: 0.66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--iris); margin-bottom: 5px; display: block;
}
.page-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.home-welcome{position:relative;isolation:isolate;min-height:230px;margin-bottom:22px;padding:38px 42px;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:linear-gradient(110deg,var(--surface) 0%,var(--surface) 40%,var(--surface-2) 100%);box-shadow:var(--shadow-1)}
.home-welcome-copy{position:relative;z-index:2;max-width:46%;padding:12px 0}.home-welcome-copy h1{max-width:15ch;margin:5px 0 10px;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.08}.home-welcome-copy .subtitle{max-width:36ch;margin:0;color:var(--ink-2);font-size:.88rem;line-height:1.55}
.home-welcome-art{position:absolute;z-index:1;inset:-5% -2% -7% 30%;background-position:right center;background-repeat:no-repeat;background-size:cover;mix-blend-mode:multiply;mask-image:linear-gradient(90deg,transparent 0%,#000 23%,#000 93%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 23%,#000 93%,transparent 100%);pointer-events:none}
.insight-briefing{margin:0 0 20px;padding:18px;border:1px solid var(--iris-line);border-radius:18px;background:linear-gradient(135deg,var(--surface),var(--iris-soft));box-shadow:var(--shadow-1)}.insight-briefing>header{display:flex;align-items:flex-start;gap:12px}.insight-briefing>header>div{min-width:0;flex:1}.insight-briefing>header h2{margin:3px 0 5px;font-size:1.12rem}.insight-briefing>header p{max-width:74ch;margin:0;color:var(--ink-2);font-size:.76rem;line-height:1.55}.insight-briefing>header .btn{flex:0 0 auto;margin:2px 0 0}.insight-mark{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:var(--iris);color:#fff}.insight-mark svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.insight-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-top:14px}.insight-card{position:relative;min-width:0;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:inherit;text-decoration:none;transition:border-color .14s,transform .14s,box-shadow .14s}.insight-card:hover{transform:translateY(-1px);border-color:var(--iris-line);box-shadow:var(--shadow-1)}.insight-card-label{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:.57rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.insight-card-label i{width:7px;height:7px;border-radius:50%;background:var(--sky)}.insight-card.tone-urgent .insight-card-label i{background:var(--rose)}.insight-card.tone-warning .insight-card-label i{background:var(--amber)}.insight-card.tone-positive .insight-card-label i,.insight-card.tone-opportunity .insight-card-label i{background:var(--emerald)}.insight-card>strong{display:block;margin-top:7px;font-size:.76rem}.insight-card>p{margin:4px 0 9px;color:var(--ink-2);font-size:.66rem;line-height:1.45}.insight-card-action{color:var(--iris-deep);font-size:.61rem;font-weight:800}.report-insight-briefing{margin-bottom:16px}.report-insight-briefing .insight-card-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.insight-card.tone-urgent .insight-card-label i{animation:insightUrgentPulse 1.35s ease-out infinite}.insight-card.tone-positive .insight-card-label i{animation:insightPositivePulse 2.4s ease-out infinite}@keyframes insightUrgentPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--rose) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}@keyframes insightPositivePulse{0%,55%{box-shadow:0 0 0 0 color-mix(in srgb,var(--emerald) 38%,transparent)}85%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){.insight-card.tone-urgent .insight-card-label i,.insight-card.tone-positive .insight-card-label i{animation:none}}
.home-daily-briefing{position:relative;isolation:isolate;min-height:440px;margin-bottom:22px;padding:34px 38px 28px;overflow:hidden;border:1px solid var(--iris-line);border-radius:22px;background:linear-gradient(120deg,var(--surface) 0%,var(--surface) 48%,var(--iris-soft) 100%);box-shadow:var(--shadow-1)}.home-daily-art{position:absolute;z-index:-1;top:0;right:0;width:46%;height:250px;object-fit:cover;object-position:center;mask-image:linear-gradient(90deg,transparent 0%,#000 27%,#000 100%),linear-gradient(180deg,#000 55%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 27%,#000 100%),linear-gradient(180deg,#000 55%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.home-daily-content{position:relative;z-index:1}.home-daily-heading{display:flex;align-items:flex-start;gap:12px;max-width:54%}.home-daily-heading>div{min-width:0}.home-daily-heading h1{margin:3px 0 8px;font-size:clamp(1.65rem,3vw,2.4rem);line-height:1.08}.home-daily-heading h2{margin:0 0 7px;font-size:1.08rem}.home-daily-heading p{margin:0;color:var(--ink-2);font-size:.76rem;line-height:1.55}.home-daily-briefing .home-daily-action{display:inline-flex;margin:16px 0 0}
.home-daily-briefing .insight-panel{position:relative;z-index:1;margin-top:22px;border:1px solid var(--iris-line);border-radius:16px;background:color-mix(in srgb,var(--surface) 95%,transparent);overflow:hidden}
.insight-panel-head{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--iris-line)}
.insight-panel-eyebrow{font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.insight-panel-count{min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:100px;background:var(--iris-soft);color:var(--iris-deep);font-size:.66rem;font-weight:800}
.insight-panel-list{display:flex;flex-direction:column;max-height:300px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.insight-panel-list::-webkit-scrollbar{width:6px}
.insight-panel-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.insight-row{display:flex;align-items:stretch;color:inherit;border-top:1px solid var(--iris-line);transition:background .15s}
.insight-row:first-child{border-top:none}
.insight-row:hover{background:color-mix(in srgb,var(--iris) 6%,transparent)}
.insight-row-link{display:grid;grid-template-columns:11px minmax(0,1fr) auto;gap:11px;align-items:start;min-width:0;flex:1;padding:11px 8px 11px 16px;color:inherit;text-decoration:none}
.insight-row-dot{width:8px;height:8px;border-radius:50%;background:var(--sky)}
.insight-row.tone-urgent .insight-row-dot{background:var(--rose)}
.insight-row.tone-warning .insight-row-dot{background:var(--amber)}
.insight-row.tone-positive .insight-row-dot,.insight-row.tone-opportunity .insight-row-dot{background:var(--emerald)}
.insight-row-main{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 9px;align-items:start}
.insight-row-main{grid-template-columns:112px minmax(0,1fr);gap:3px 12px}
.insight-row-label{grid-row:1/span 2;flex:0 0 auto;padding-top:2px;font-size:.58rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.insight-row-title{grid-column:2;min-width:0;max-width:none;font-size:.82rem;font-weight:700;line-height:1.35;white-space:normal;overflow:visible;text-overflow:clip}
.insight-row-body{grid-column:2;min-width:0;font-size:.75rem;line-height:1.48;color:var(--ink-2);white-space:normal;overflow:visible;text-overflow:clip}
.insight-row-cta{white-space:nowrap;color:var(--iris-deep);font-size:.66rem;font-weight:800;opacity:0;transition:opacity .15s}
.insight-row:hover .insight-row-cta{opacity:1}
.insight-row-dismiss-form{display:flex;flex:0 0 auto;align-items:center;margin:0;padding-right:8px}.insight-row-dismiss{display:grid;width:28px;height:28px;place-items:center;margin:0;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-3);box-shadow:none}.insight-row-dismiss svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.insight-row-dismiss:hover{transform:none;border-color:var(--line);background:color-mix(in srgb,var(--surface) 68%,transparent);color:var(--rose);box-shadow:none}
.insight-panel-foot{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border-top:1px solid var(--iris-line);background:color-mix(in srgb,var(--surface) 97%,transparent);color:var(--iris-deep);font-size:.72rem;font-weight:800;text-decoration:none}
.insight-panel-foot:hover{background:var(--iris-soft)}
@media(max-width:760px){.insight-row-main{grid-template-columns:1fr}.insight-row-label,.insight-row-title,.insight-row-body{grid-column:1;grid-row:auto}.insight-row-cta{display:none}}.home-daily-briefing .insight-card-grid{position:relative;margin-top:30px;grid-template-columns:repeat(3,minmax(0,1fr))}.home-daily-briefing .insight-card{background:color-mix(in srgb,var(--surface) 94%,transparent)}
.has-insight-art{position:relative;isolation:isolate;min-height:170px;overflow:hidden}.has-insight-art>header,.has-insight-art>.insight-card-grid{position:relative;z-index:1}.has-insight-art>header{max-width:64%}.insight-banner-art{position:absolute;z-index:0;top:0;right:0;width:42%;height:175px;object-fit:cover;object-position:center;opacity:.82;mask-image:linear-gradient(90deg,transparent 0%,#000 32%,#000 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 32%,#000 100%)}.has-insight-art>.insight-card-grid{margin-top:28px}.has-insight-art .insight-card{background:color-mix(in srgb,var(--surface) 96%,transparent)}
@media(max-width:900px){.home-daily-heading{max-width:68%}.home-daily-art{width:70%;opacity:.62}.home-daily-briefing .insight-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.has-insight-art>header{max-width:74%}.insight-banner-art{opacity:.55}}
@media(max-width:640px){.home-daily-briefing{min-height:0;padding:24px 18px}.home-daily-art{width:100%;height:270px;opacity:.3;mask-image:linear-gradient(180deg,#000 0%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 100%)}.home-daily-heading{max-width:100%}.home-daily-briefing .home-daily-action{margin-left:0}.home-daily-briefing .insight-card-grid{grid-template-columns:1fr;margin-top:26px}.has-insight-art>header{max-width:100%}.insight-banner-art{width:100%;height:150px;opacity:.2;mask-image:linear-gradient(180deg,#000 0%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 100%)}}
.home-daily-briefing{min-height:470px;background:var(--surface)}
.home-daily-briefing:before{content:'';position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--surface) 0%,color-mix(in srgb,var(--surface) 98%,transparent) 34%,color-mix(in srgb,var(--surface) 74%,transparent) 53%,transparent 78%)}
.home-daily-art{z-index:0;top:0;right:0;width:72%;height:100%;opacity:1;object-position:center;mask-image:none;-webkit-mask-image:none}
.home-daily-content{z-index:2}.home-daily-heading{max-width:55%}
.home-daily-briefing .insight-panel{z-index:3;width:50%;min-width:440px;background:color-mix(in srgb,var(--surface) 24%,transparent);box-shadow:0 10px 30px color-mix(in srgb,var(--ink) 9%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.home-daily-briefing .insight-panel-head,.home-daily-briefing .insight-row,.home-daily-briefing .insight-panel-foot{background:transparent}
.home-daily-briefing .insight-row:hover,.home-daily-briefing .insight-panel-foot:hover{background:color-mix(in srgb,var(--surface) 52%,transparent)}
@media(max-width:1100px){.home-daily-briefing .insight-panel{width:64%;min-width:0}}
@media(max-width:900px){.home-daily-art{width:82%;opacity:1}.home-daily-heading{max-width:66%}.home-daily-briefing .insight-panel{width:72%}.home-daily-briefing:before{background:linear-gradient(90deg,var(--surface) 0%,color-mix(in srgb,var(--surface) 96%,transparent) 42%,color-mix(in srgb,var(--surface) 60%,transparent) 68%,transparent 100%)}}
@media(max-width:640px){.home-daily-briefing{min-height:0}.home-daily-art{width:100%;height:100%;opacity:.56;mask-image:none;-webkit-mask-image:none}.home-daily-heading{max-width:100%}.home-daily-briefing .insight-panel{width:100%}.home-daily-briefing:before{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,transparent) 0%,color-mix(in srgb,var(--surface) 82%,transparent) 48%,var(--surface) 80%)}}
@media(max-width:640px){.insight-briefing{padding:14px}.insight-briefing>header{flex-wrap:wrap}.insight-briefing>header .btn{width:100%}.insight-card-grid{grid-template-columns:1fr}}
.ai-draft-assistant{display:grid;gap:9px;margin:0 0 18px;padding:14px;border:1px solid var(--iris-line);border-radius:13px;background:linear-gradient(145deg,var(--iris-soft),var(--surface))}.ai-draft-assistant strong{font-size:.78rem}.ai-draft-assistant p,.ai-draft-assistant small{margin:0;color:var(--ink-2);font-size:.64rem;line-height:1.45}.ai-draft-assistant textarea{width:100%;min-height:86px;resize:vertical;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);padding:9px;font:inherit;font-size:.68rem}.ai-draft-assistant .btn{justify-content:center;width:100%}
.ai-feature-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;margin:0 0 20px;padding:24px;border:1px solid var(--iris-line);border-radius:20px;background:radial-gradient(circle at 8% 10%,color-mix(in srgb,var(--iris) 18%,transparent),transparent 30%),linear-gradient(135deg,var(--iris-soft),var(--surface));box-shadow:var(--shadow-1)}.ai-feature-hero.has-feature-art{position:relative;isolation:isolate;overflow:hidden;background:var(--surface)}.ai-feature-hero.has-feature-art:after{content:'';position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--surface) 0%,color-mix(in srgb,var(--surface) 96%,transparent) 38%,color-mix(in srgb,var(--surface) 54%,transparent) 62%,transparent 88%)}.ai-feature-hero.has-feature-art>*:not(.ai-feature-art){position:relative;z-index:2}.ai-feature-art{position:absolute;z-index:0;inset:0 0 0 auto;width:62%;height:100%;object-fit:cover;object-position:center;pointer-events:none}.ai-feature-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--iris);color:#fff;font-size:1.35rem;box-shadow:0 9px 24px color-mix(in srgb,var(--iris) 28%,transparent)}.ai-feature-copy h2,.ai-template-guide h2{margin:4px 0 6px;font-size:1.18rem}.ai-feature-copy p,.ai-template-guide p{max-width:72ch;margin:0;color:var(--ink-2);font-size:.73rem;line-height:1.55}.ai-feature-points{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.ai-feature-points span{padding:4px 8px;border:1px solid var(--iris-line);border-radius:999px;background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--iris-deep);font-size:.58rem;font-weight:800}.ai-feature-cta{min-height:44px;padding-inline:18px;white-space:nowrap}.document-promo-secondary{opacity:.92}.ai-template-guide{display:flex;align-items:center;gap:15px;margin:0 0 18px;padding:18px;border:1px solid var(--iris-line);border-radius:16px;background:linear-gradient(135deg,var(--iris-soft),var(--surface))}.ai-template-guide .ai-feature-icon{width:44px;height:44px;flex:0 0 44px;border-radius:13px}.ai-ready-template{border-color:var(--iris)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--iris) 12%,transparent)}
@media(max-width:760px){.ai-feature-hero{grid-template-columns:auto 1fr}.ai-feature-hero.has-feature-art:after{background:color-mix(in srgb,var(--surface) 82%,transparent)}.ai-feature-art{width:100%;opacity:.62}.ai-feature-cta{grid-column:1/-1;width:100%;justify-content:center}}
.ai-document-composer{margin:0 0 22px;padding:22px;border:1px solid var(--iris-line);border-radius:20px;background:radial-gradient(circle at 0 0,color-mix(in srgb,var(--iris) 17%,transparent),transparent 35%),var(--surface);box-shadow:var(--shadow-2)}.ai-composer-heading{display:flex;gap:14px;align-items:flex-start}.ai-composer-heading h2{margin:3px 0 5px;font-size:1.15rem}.ai-composer-heading p{max-width:76ch;margin:0;color:var(--ink-2);font-size:.7rem;line-height:1.55}.ai-document-composer textarea{display:block;width:100%;min-height:126px;margin:17px 0 12px;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);font:inherit;font-size:.78rem;line-height:1.55;resize:vertical}.ai-document-composer textarea:focus{outline:3px solid color-mix(in srgb,var(--iris) 16%,transparent);border-color:var(--iris)}.ai-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.ai-composer-actions span{color:var(--ink-2);font-size:.64rem}.ai-document-composer.is-open{border-color:var(--iris);box-shadow:0 0 0 3px color-mix(in srgb,var(--iris) 10%,transparent),var(--shadow-2)}@media(max-width:640px){.ai-composer-actions{align-items:stretch;flex-direction:column}.ai-composer-actions .btn{width:100%;justify-content:center}}
.proposal-writing-page{max-width:none}.proposal-editor-full{display:block!important}.proposal-editor-full>div:first-child{width:100%}.proposal-editor-full>div:nth-child(2){display:none}.proposal-editor-full .editor-surface{min-height:720px}.proposal-editor-full .ProseMirror{width:100%;max-width:1120px;min-height:680px;margin:0 auto;padding:56px 72px}.proposal-editor-full+.drawer-overlay .drawer-body{padding:20px}.proposal-editor-full+.drawer-overlay label{display:grid;gap:6px;margin-bottom:14px}@media(max-width:700px){.proposal-editor-full .ProseMirror{padding:30px 22px}}
.proposal-editor-full .ProseMirror img{display:block;max-width:100%;height:auto;margin:22px auto;border-radius:4px}.proposal-editor-full .ProseMirror table{width:100%;margin:18px 0;border-collapse:collapse}.proposal-editor-full .ProseMirror th,.proposal-editor-full .ProseMirror td{min-width:80px;padding:8px 10px;border:1px solid #cfd3dc;vertical-align:top}.proposal-editor-full .ProseMirror th{background:#f3f4f7;font-weight:700}.proposal-editor-full .ProseMirror blockquote{margin:18px 0;padding:4px 0 4px 16px;border-left:3px solid var(--iris);color:#596071}
.document-action-bar{position:sticky;top:0;z-index:30;display:flex;justify-content:flex-end;align-items:center;gap:8px;min-height:58px;margin:-8px 0 18px;padding:9px 12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);box-shadow:var(--shadow-1)}.document-action-bar .btn,.document-action-bar button{flex:0 0 auto;margin:0;white-space:nowrap}@media(max-width:680px){.document-action-bar{position:static;justify-content:flex-start;overflow-x:auto}.document-action-bar .btn,.document-action-bar button{min-width:max-content}}
.document-action-bar.in-editor{position:sticky;top:0;margin:0;padding:11px 14px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:color-mix(in srgb,var(--surface-2) 94%,transparent);box-shadow:none}.document-action-label{margin-right:auto;color:var(--ink-3);font-size:.62rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.document-action-bar.in-editor+.editor-toolbar{margin:0;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--surface)}@media(max-width:680px){.document-action-bar.in-editor{position:sticky}.document-action-label{display:none}}
.document-upload-form{margin:0 0 20px}.document-upload-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;padding:24px;border:2px dashed var(--iris-line);border-radius:18px;background:linear-gradient(135deg,var(--surface),var(--iris-soft));text-align:center;cursor:pointer;transition:border-color .15s,transform .15s,background .15s}.document-upload-drop:hover,.document-upload-drop.dragging{border-color:var(--iris);background:var(--iris-soft);transform:translateY(-1px)}.upload-drop-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:9px;border-radius:12px;background:var(--iris);color:#fff;font-size:1.2rem;font-weight:800}.document-upload-drop strong{font-size:.86rem}.document-upload-drop small{margin-top:5px;color:var(--ink-3);font-size:.66rem}.document-upload-form .drawer-body label{display:grid;gap:6px;margin-bottom:14px}.upload-selected-name{padding:10px;border-radius:9px;background:var(--surface-2);color:var(--ink-2);font-size:.72rem;font-weight:700}
@media(max-width:820px){.home-welcome{min-height:205px;padding:26px 28px}.home-welcome-copy{max-width:58%}.home-welcome-art{inset:0 -20% 0 28%;opacity:.72;background-size:cover}}
@media(max-width:560px){.home-welcome{min-height:300px;align-items:flex-start;padding:24px}.home-welcome-copy{max-width:100%}.home-welcome-copy h1{max-width:100%;font-size:1.75rem}.home-welcome-copy .subtitle{max-width:90%}.home-welcome-art{inset:35% -20% -8% 8%;opacity:.52;mask-image:linear-gradient(180deg,transparent 0%,#000 28%,#000 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 28%,#000 100%)}}
.back-link {
  color: var(--ink-3); text-decoration: none; font-size: 0.8rem; font-weight: 600;
  display: inline-flex; align-items: center; gap: 5px; margin-bottom: 12px;
  transition: color .13s;
}
.back-link:hover { color: var(--ink); }

/* ============================================================
   BUTTONS / INPUTS
   ============================================================ */
button, .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  background: var(--ink); color: #fff; border: 1px solid var(--ink);
  border-radius: 10px; padding: 9px 16px;
  font-size: 0.85rem; font-weight: 600; font-family: var(--font-ui);
  cursor: pointer; text-decoration: none;
  transition: transform .12s ease, box-shadow .12s ease, background .12s;
  margin-top: 12px;
}
button:hover, .btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-2); }
button:active, .btn:active { transform: none; }
button.secondary, .btn.secondary {
  background: var(--surface); color: var(--ink); border: 1px solid var(--line);
  box-shadow: var(--shadow-1);
}
button.secondary:hover, .btn.secondary:hover { border-color: var(--ink-3); }
button:disabled, .btn:disabled { opacity: .55; cursor: not-allowed; transform: none !important; box-shadow: none !important; }
button.primary-accent, .btn.primary-accent { background: var(--iris); border-color: var(--iris); }
button.danger, .btn.danger { background: var(--rose); border-color: var(--rose); }
.btn.sm, button.sm { padding: 6px 12px; font-size: 0.78rem; margin: 0; border-radius: 8px; }

label { display: block; font-size: 0.78rem; font-weight: 600; color: var(--ink-2); margin: 14px 0 5px; }
input, textarea, select {
  width: 100%; font-family: var(--font-ui); font-size: 0.88rem; color: var(--ink);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 10px; padding: 9px 12px;
  transition: border-color .14s, box-shadow .14s;
}
input:focus, textarea:focus, select:focus {
  outline: none; border-color: var(--iris);
  box-shadow: 0 0 0 3px var(--iris-soft);
}
textarea { min-height: 84px; resize: vertical; }
input[type="checkbox"] { width: auto; }
input[type="file"] { padding: 8px; background: var(--surface-2); font-size: 0.8rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.error { color: var(--rose); font-size: 0.83rem; margin: 10px 0 0; }

/* ============================================================
   CARDS
   ============================================================ */
.card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: 20px 22px; margin-bottom: 16px;
  box-shadow: var(--shadow-1);
}
.card.hoverable { transition: transform .16s ease, box-shadow .16s ease, border-color .16s; }

/* Expanding "drawer" cards — Home's Urgent tasks / New leads / Projects /
   Invoices stack. Built on <details>/<summary> so expand/collapse needs no
   JS; padding moves from .card onto the summary/body so the whole header
   stays clickable edge to edge. */
.drawer-card { padding: 0; }
.drawer-card > summary.drawer-summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 18px 22px; cursor: pointer; list-style: none;
}
.drawer-card > summary.drawer-summary::-webkit-details-marker { display: none; }
.drawer-summary-title { display: flex; align-items: center; gap: 8px; font-size: 1.02rem; font-weight: 700; color: var(--ink); }
.drawer-caret { color: var(--ink-3); transition: transform .15s ease; flex-shrink: 0; }
.drawer-card[open] > summary .drawer-caret { transform: rotate(180deg); }
.drawer-card-body { padding: 0 22px 18px; }
.drawer-view-all { display: block; text-align: center; margin-top: 8px; font-size: 0.78rem; font-weight: 700; color: var(--iris-deep); text-decoration: none; }
.card.hoverable:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); border-color: var(--iris-line); }

/* KPI cards */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 20px; }
.kpi-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: 16px 18px; box-shadow: var(--shadow-1); position: relative; overflow: hidden;
  transition: transform .16s ease, box-shadow .16s ease;
  display: block; text-decoration: none; color: inherit;
}
.kpi-card[href]:hover { border-color: var(--iris-line); }
.kpi-card.active-drilldown{border-color:var(--iris);box-shadow:0 0 0 2px var(--iris-soft),var(--shadow-1)}
.kpi-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); }
.kpi-label { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-3); display: flex; align-items: center; gap: 6px; }
.kpi-value { font-family: var(--font-display); font-size: 1.55rem; font-weight: 800; letter-spacing: -0.02em; margin-top: 6px; }
.kpi-hint, .kpi-delta { font-size: 0.74rem; color: var(--ink-2); margin-top: 5px; }
.kpi-delta.up { color: var(--emerald); font-weight: 600; }
.kpi-delta.down { color: var(--rose); font-weight: 600; }
.kpi-icon {
  width: 28px; height: 28px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--iris-soft); color: var(--iris-deep);
}
.kpi-card.tone-emerald .kpi-icon { background: var(--emerald-bg); color: var(--emerald); }
.kpi-card.tone-amber .kpi-icon { background: var(--amber-bg); color: var(--amber); }
.kpi-card.tone-rose .kpi-icon { background: var(--rose-bg); color: var(--rose); }
.kpi-card.tone-sky .kpi-icon { background: var(--sky-bg); color: var(--sky); }

/* Status pills */
.status-badge, .pill {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 0.68rem; font-weight: 700; letter-spacing: .02em;
  border-radius: 999px; padding: 3.5px 10px;
  background: var(--line-2); color: var(--ink-2);
  text-transform: capitalize; white-space: nowrap;
}
.status-badge::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .75; }
.status-badge.paid, .status-badge.active, .status-badge.signed { background: var(--emerald-bg); color: var(--emerald); }
.status-badge.sent, .status-badge.trialing, .status-badge.in_progress { background: var(--amber-bg); color: var(--amber); }
.status-badge.past_due, .status-badge.suspended, .status-badge.overdue { background: var(--rose-bg); color: var(--rose); }
.status-badge.new, .status-badge.info { background: var(--sky-bg); color: var(--sky); }
.status-badge.draft { background: var(--line-2); color: var(--ink-2); }
.pill.disconnected { background: var(--amber-bg); color: var(--amber); }
.pill::before { display: none; }

/* Tag chips */
.chip { display: inline-flex; align-items: center; font-size: 0.7rem; font-weight: 600; color: var(--ink-2); background: var(--line-2); border-radius: 7px; padding: 2.5px 8px; }

/* ============================================================
   HEALTH INDICATOR (client-list-row status dot)
   ============================================================ */
.health-dot { display: inline-flex; align-items: center; gap: 6px; font-size: 0.7rem; font-weight: 600; }
.health-dot::before { content: ''; width: 7px; height: 7px; border-radius: 50%; }
.health-dot.good { color: var(--emerald); } .health-dot.good::before { background: var(--emerald); box-shadow: 0 0 0 3px var(--emerald-bg); }
.health-dot.watch { color: var(--amber); } .health-dot.watch::before { background: var(--amber); box-shadow: 0 0 0 3px var(--amber-bg); }
.health-dot.risk { color: var(--rose); } .health-dot.risk::before { background: var(--rose); box-shadow: 0 0 0 3px var(--rose-bg); }

/* ============================================================
   LIST ROWS / TABLES
   ============================================================ */
.client-row {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 13px 6px; border-bottom: 1px solid var(--line-2);
  text-decoration: none; color: inherit; border-radius: 8px;
  transition: background .12s;
}
.client-row:last-child { border-bottom: none; }
a.client-row:hover { background: var(--surface-2); }

.data-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.data-table th {
  text-align: left; font-size: 0.66rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--ink-3); padding: 10px 12px; border-bottom: 1px solid var(--line);
}
.data-table td { padding: 12px; border-bottom: 1px solid var(--line-2); vertical-align: middle; }
.data-table tr:last-child td { border-bottom: none; }
.data-table tbody tr { transition: background .12s; }
.data-table tbody tr:hover { background: var(--surface-2); }
.data-table .num { text-align: right; }
.row-link { font-weight: 600; color: var(--ink); text-decoration: none; }
.row-link:hover { color: var(--iris-deep); }

/* Progress */
.progress-track { height: 6px; background: var(--line-2); border-radius: 99px; overflow: hidden; }
.progress-fill { height: 100%; border-radius: 99px; background: var(--thread); transition: width .5s cubic-bezier(.22,.9,.3,1); }

/* Home: "Getting started" onboarding checklist */
.onboarding-head { display: flex; align-items: center; justify-content: space-between; gap:16px; margin-bottom: 10px; }
.onboarding-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.onboarding-hide {
  background: none; border: none; box-shadow: none; margin: 0; padding: 0;
  font-size: 0.76rem; font-weight: 600; color: var(--ink-3); cursor: pointer;
}
.onboarding-hide:hover { color: var(--ink); transform: none; }
.onboarding-dismiss{margin:0;padding:4px 9px;border:1px solid var(--line);border-radius:8px;background:transparent;box-shadow:none;color:var(--ink-3);font-size:.68rem;font-weight:650;cursor:pointer}
.onboarding-dismiss:hover{transform:none;border-color:var(--line);background:var(--surface-2);color:var(--ink)}

/* First-run Home coach marks. The measured spotlight follows each live target,
   while the tip's arrow changes sides to keep the target visually connected. */
.home-tour{position:fixed;z-index:1200;inset:0;pointer-events:none}.home-tour-shade{position:absolute;inset:0;background:rgba(8,26,25,.58);backdrop-filter:blur(1px);pointer-events:auto}.home-tour-spotlight{position:fixed;z-index:1;border:2px solid #fff;border-radius:16px;box-shadow:0 0 0 5px color-mix(in srgb,var(--iris) 72%,transparent),0 12px 40px rgba(0,0,0,.28);transition:inset .2s ease,width .2s ease,height .2s ease;pointer-events:none}.home-tour-tip{position:fixed;z-index:2;width:min(370px,calc(100vw - 24px));margin:0;padding:21px;border:1px solid var(--iris-line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 18px 52px rgba(0,0,0,.28);pointer-events:auto;animation:homeTourIn .18s ease-out}.home-tour-tip:before{content:'';position:absolute;width:18px;height:18px;background:var(--surface);border:1px solid var(--iris-line);transform:rotate(45deg)}.home-tour-tip[data-placement="right"]:before{left:-10px;top:34px;border-top:0;border-right:0}.home-tour-tip[data-placement="left"]:before{right:-10px;top:calc(50% - 9px);border-bottom:0;border-left:0}.home-tour-tip[data-placement="top"]:before{bottom:-10px;left:calc(50% - 9px);border-top:0;border-left:0}.home-tour-kicker{display:block;margin-bottom:8px;color:var(--iris-deep);font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.home-tour-tip h2{margin:0 28px 7px 0;font-size:1.05rem}.home-tour-tip p{margin:0;color:var(--ink-2);font-size:.75rem;line-height:1.55}.home-tour-tip footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.home-tour-tip footer>span{display:flex;gap:7px}.home-tour-close{position:absolute;top:12px;right:12px;width:30px;height:30px;margin:0;padding:0;border:0;background:transparent;color:var(--ink-3);font-size:1.25rem;box-shadow:none}.home-tour-close:hover{background:var(--surface-2);color:var(--ink);transform:none;box-shadow:none}.home-tour-skip{margin:0;padding:5px 0;border:0;background:transparent;color:var(--ink-3);font-size:.65rem;box-shadow:none}.home-tour-skip:hover{color:var(--ink);transform:none;box-shadow:none}.home-tour.is-closing{opacity:0;transition:opacity .15s}.home-tour-open{scroll-behavior:smooth}@keyframes homeTourIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:700px){.home-tour-tip{right:12px!important;bottom:12px!important;left:12px!important;top:auto!important;width:auto}.home-tour-tip:before{display:none}.home-tour-spotlight{border-radius:12px}.home-tour-tip footer{align-items:stretch;flex-direction:column}.home-tour-tip footer>span{justify-content:flex-end}.home-tour-skip{align-self:flex-start}}
@media(prefers-reduced-motion:reduce){.home-tour-tip{animation:none}.home-tour-spotlight{transition:none}}
.onboarding-list { display: flex; flex-direction: column; }
.onboarding-item { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line-2); }
.onboarding-item:last-child { border-bottom: none; }
.onboarding-item-icon {
  width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0; border: 2px solid var(--line);
  display: flex; align-items: center; justify-content: center; color: transparent;
}
.onboarding-item.done .onboarding-item-icon { background: var(--emerald); border-color: var(--emerald); color: #fff; }
.onboarding-item-label { flex: 1; min-width: 0; font-size: 0.86rem; font-weight: 600; color: var(--ink); }
.onboarding-item.done .onboarding-item-label { color: var(--ink-3); text-decoration: line-through; }
.onboarding-item-action { flex-shrink: 0; font-size: 0.78rem; font-weight: 700; color: var(--iris-deep); text-decoration: none; }
.onboarding-item.done .onboarding-item-action { color: var(--emerald); font-weight: 600; }
.progress-ring { --pct: 0; width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0;
  background: conic-gradient(var(--iris) calc(var(--pct) * 1%), var(--line-2) 0);
  display: flex; align-items: center; justify-content: center; position: relative;
}
.progress-ring::before { content: ''; position: absolute; inset: 5px; background: var(--surface); border-radius: 50%; }
.progress-ring span { position: relative; font-size: 0.62rem; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Bar chart (real data) */
.bar-chart { display: flex; align-items: flex-end; gap: 12px; height: 150px; padding-top: 10px; }
.bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 7px; height: 100%; justify-content: flex-end; }
.bar { width: 100%; max-width: 46px; border-radius: 7px 7px 3px 3px; background: linear-gradient(180deg, #6d72e2, var(--iris)); min-height: 3px; transition: height .6s cubic-bezier(.22,.9,.3,1); position: relative; }
.bar:hover { background: linear-gradient(180deg, var(--iris), var(--iris-deep)); }
.bar-label { font-size: 0.68rem; color: var(--ink-3); font-weight: 600; }
.bar-value { font-size: 0.64rem; color: var(--ink-2); font-weight: 700; font-variant-numeric: tabular-nums; }

/* Phase-one sales and document surfaces */
.lead-stage-kpis{margin-top:-3px;margin-bottom:20px}.lead-stage-kpis .pipeline-stage{display:block;text-decoration:none}.form-create-modal{overflow-y:auto}.form-create-modal .native-modal-card{display:flex;max-height:calc(100dvh - 32px);flex-direction:column;overflow:hidden}.form-create-modal .native-modal-card>form{display:flex;min-height:0;flex:1;flex-direction:column;overflow:hidden}.form-create-modal .report-modal-body{min-height:0;overflow-y:auto}.form-create-modal footer{flex:0 0 auto}
.contract-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.contract-list-thumb{display:grid;width:46px;height:54px;flex:0 0 46px;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink-3);font-size:.55rem;font-weight:800}.contract-list-thumb img{width:100%;height:100%;object-fit:cover}.contract-detail-grid>aside{display:flex;flex-direction:column;gap:12px}.contract-detail-grid>aside>.card{margin:0}.form-promo .document-promo-templates{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:850px){.contract-kpi-grid{grid-template-columns:repeat(2,1fr)}.form-promo .document-promo-templates{grid-template-columns:1fr}}@media(max-width:520px){.contract-kpi-grid{grid-template-columns:1fr}}

.rich-document-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.rich-document-editor,.rich-document-settings{margin:0}.rich-editor-toolbar{display:flex;gap:4px;flex-wrap:wrap;margin:-4px -4px 15px;padding-bottom:12px;border-bottom:1px solid var(--line)}.rich-editor-toolbar button{min-width:34px;padding:6px 9px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);box-shadow:none}.rich-editor-toolbar button:hover{transform:none;border-color:var(--iris)}.proposal-editor-mount{min-height:650px;padding:32px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#111;box-shadow:0 8px 28px rgba(15,23,42,.07)}.proposal-editor-mount .ProseMirror{min-height:580px;outline:0}.proposal-editor-mount .ProseMirror p{line-height:1.7}.rich-document-settings{position:sticky;top:16px}.rich-document-settings h2{margin-top:0}@media(max-width:850px){.rich-document-layout{grid-template-columns:1fr}.rich-document-settings{position:static}.proposal-editor-mount{padding:18px}}

/* Activity feed */
.activity-feed { display: flex; flex-direction: column; }
.event-timeline{display:flex;flex-direction:column;padding:4px 0}.event-timeline-item{display:grid;grid-template-columns:105px 16px minmax(0,1fr);gap:13px;min-height:88px;color:inherit;text-decoration:none}.event-timeline-item>time{padding-top:1px;color:var(--ink-3);font-size:.68rem;text-align:right;font-variant-numeric:tabular-nums}.event-timeline-item>i{position:relative;width:10px;height:10px;margin-top:3px;border-radius:50%;background:var(--iris);box-shadow:0 0 0 3px var(--surface)}.event-timeline-item>i:after{content:'';position:absolute;top:12px;bottom:-72px;left:4px;width:1px;background:var(--line)}.event-timeline-item:last-child>i:after{display:none}.event-timeline-item>i.invoice{background:var(--emerald)}.event-timeline-item>i.file{background:var(--sky)}.event-timeline-item>i.lead{background:var(--amber)}.event-timeline-item>span{min-width:0;padding-bottom:18px}.event-timeline-item small,.event-timeline-item strong,.event-timeline-item em{display:block}.event-timeline-item small{color:var(--ink-3);font-size:.6rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.event-timeline-item strong{margin-top:5px;overflow:hidden;font-size:.83rem;text-overflow:ellipsis;white-space:nowrap}.event-timeline-item em{margin-top:5px;color:var(--ink-2);font-size:.68rem;font-style:normal}.event-timeline-item:hover strong{color:var(--iris-deep)}.event-timeline.compact .event-timeline-item{grid-template-columns:82px 14px minmax(0,1fr);min-height:79px;gap:10px}.event-timeline.compact .event-timeline-item>time{font-size:.62rem}.event-timeline.compact .event-timeline-item strong{font-size:.76rem}@media(max-width:620px){.event-timeline-item,.event-timeline.compact .event-timeline-item{grid-template-columns:72px 13px minmax(0,1fr);gap:8px}.event-timeline-item>time{text-align:left;font-size:.58rem}.event-timeline-item strong{white-space:normal}}
.activity-item { display: flex; gap: 12px; padding: 11px 2px; border-bottom: 1px solid var(--line-2); align-items: flex-start; text-decoration: none; color: inherit; }
.activity-item:last-child { border-bottom: none; }
.activity-item:hover .a-title { color: var(--iris-deep); }
.a-icon { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: var(--line-2); color: var(--ink-2); }
.a-icon.invoice { background: var(--emerald-bg); color: var(--emerald); }
.a-icon.file { background: var(--sky-bg); color: var(--sky); }
.a-icon.project { background: var(--violet-bg); color: var(--violet); }
.a-body { min-width: 0; flex: 1; overflow: hidden; }
.a-title { display: block; font-size: 0.83rem; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.a-meta { display: block; font-size: 0.72rem; color: var(--ink-3); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.a-value { font-size: 0.78rem; font-weight: 700; color: var(--ink-2); white-space: nowrap; flex-shrink: 0; align-self: center; }

/* Empty states */
.empty-state { text-align: center; padding: 42px 20px; color: var(--ink-2); }
.empty-state .es-art {
  width: 64px; height: 64px; margin: 0 auto 14px; border-radius: 20px;
  background: var(--iris-soft); color: var(--iris);
  display: flex; align-items: center; justify-content: center;
}
.empty-state h3 { margin: 0 0 4px; font-size: 0.98rem; color: var(--ink); }
.empty-state p { margin: 0 0 6px; font-size: 0.83rem; }
.empty-hint { color: var(--ink-3); font-size: 0.8rem; }

/* Preview banner (sample-data screens) */
.preview-banner {
  display: flex; align-items: center; gap: 9px;
  background: var(--amber-bg); color: var(--amber); border: 1px solid #f2ddb4;
  font-size: 0.79rem; font-weight: 600; border-radius: var(--r-md);
  padding: 10px 14px; margin-bottom: 16px;
}
.preview-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--amber); animation: pulse 2s infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }

/* Proposal template gallery */
.template-search {
  display: flex; align-items: center; gap: 10px; max-width: 420px;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: 10px 14px; margin-bottom: 20px; color: var(--ink-3);
}
.template-search svg { flex-shrink: 0; }
.template-search input { border: none; padding: 0; flex: 1; font-size: 0.88rem; background: transparent; color: var(--ink); }
.template-search input:focus { outline: none; box-shadow: none; }
.template-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 18px; }
.template-card { display: flex; flex-direction: column; margin: 0; }
.template-card-preview {
  display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 4 / 3;
  border-radius: var(--r-md); border: 1px solid var(--line); color: #fff; cursor: pointer;
  margin: 0 0 10px; padding: 0; box-shadow: var(--shadow-1);
  transition: transform .16s ease, box-shadow .16s ease;
}
.template-card-preview:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); }
.template-card-preview.has-thumbnail { background-size: cover; background-position: center; background-repeat: no-repeat; }
.template-card-preview-icon { opacity: .9; }
.template-card-name { font-family: var(--font-display); font-weight: 700; font-size: 0.9rem; color: var(--ink); }
.template-card-desc { font-size: 0.76rem; color: var(--ink-3); margin: 3px 0 8px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.template-card-use {
  margin: auto 0 0; background: none; border: none; padding: 0; box-shadow: none;
  color: var(--iris-deep); font-weight: 700; font-size: 0.8rem; text-align: left; align-self: flex-start;
}
.template-card-use:hover { text-decoration: underline; transform: none; box-shadow: none; }

/* Platform admin proposal templates */
.admin-template-upload-card { max-width: 560px; }
.admin-template-list-card { padding: 8px 20px; margin-top: 18px; overflow: hidden; }
.admin-table-scroll { width: 100%; overflow-x: auto; }
.admin-template-table { width: 100%; table-layout: fixed; }
.admin-template-table th:nth-child(1) { width: 90px; }
.admin-template-table th:nth-child(2) { width: 20%; }
.admin-template-table th:nth-child(3) { width: auto; }
.admin-template-table th:nth-child(4) { width: 110px; }
.admin-template-table th:nth-child(5) { width: 150px; }
.admin-template-table td { overflow-wrap: anywhere; }
.template-edit-row[hidden] { display: none; }
.template-edit-row > td { padding: 0 12px 18px !important; border-top: 0 !important; }
.template-edit-panel { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 18px; }
.template-edit-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 16px; }
.template-edit-heading p { color: var(--ink-3); font-size: .8rem; margin: 4px 0 0; }
.template-edit-close { background: transparent; border: 0; box-shadow: none; color: var(--ink-3); padding: 0; font-size: 1.5rem; line-height: 1; }
.template-edit-close:hover { transform: none; box-shadow: none; color: var(--ink); }
.template-edit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.template-edit-grid label { margin-top: 0; }
.template-file-editor { min-width: 0; }
.current-file { min-height: 42px; display: flex; align-items: center; gap: 9px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; font-size: .78rem; color: var(--ink-2); }
.current-file > span:first-child { flex: 0 0 auto; color: var(--ink-3); font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.current-file strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.current-thumbnail { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.current-thumbnail img { width: 38px; height: 28px; border-radius: 4px; object-fit: cover; }
.replacement-label { margin: 10px 0 6px !important; font-size: .76rem; }
.replacement-label small { color: var(--ink-3); font-weight: 400; }
.template-file-editor input[type="file"] { width: 100%; font-size: .78rem; }
.template-edit-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.template-edit-actions .template-edit-close { font-size: .8rem; line-height: normal; }
@media (max-width: 800px) {
  .template-edit-grid { grid-template-columns: 1fr; }
  .admin-template-table { min-width: 720px; }
}

/* Proposal document editor (TipTap) */
.editor-toolbar {
  display: flex; align-items: center; gap: 4px; flex-wrap: wrap;
  padding: 10px 14px; border-bottom: 1px solid var(--line); background: var(--surface-2);
}
.editor-toolbar button {
  background: none; border: 1px solid transparent; color: var(--ink-2);
  width: 30px; height: 30px; border-radius: 7px; padding: 0; margin: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.82rem; font-weight: 700; box-shadow: none; cursor: pointer;
  transition: background .13s, color .13s;
}
.editor-toolbar button:hover { background: var(--line-2); color: var(--ink); transform: none; box-shadow: none; }
.editor-toolbar button.is-active { background: var(--iris-soft); color: var(--iris-deep); }
.editor-toolbar-sep { width: 1px; height: 20px; background: var(--line); margin: 0 4px; flex-shrink: 0; }
.editor-save-status { margin-left: auto; font-size: 0.74rem; color: var(--ink-3); white-space: nowrap; padding-left: 10px; }

.editor-surface { padding: 28px 40px 60px; min-height: 500px; }
.editor-surface .ProseMirror { outline: none; font-size: 0.92rem; color: var(--ink); line-height: 1.65; }
.editor-surface .ProseMirror h1 { font-family: var(--font-display); font-size: 1.7rem; font-weight: 800; margin: 0 0 14px; letter-spacing: -0.01em; }
.editor-surface .ProseMirror h2 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; margin: 22px 0 10px; }
.editor-surface .ProseMirror h3 { font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; margin: 18px 0 8px; }
.editor-surface .ProseMirror p { margin: 0 0 12px; }
.editor-surface .ProseMirror ul, .editor-surface .ProseMirror ol { margin: 0 0 12px; padding-left: 22px; }
.editor-surface .ProseMirror li { margin-bottom: 4px; }
.editor-surface .ProseMirror blockquote { border-left: 3px solid var(--line); margin: 0 0 12px; padding: 4px 0 4px 14px; color: var(--ink-2); }
.editor-surface .ProseMirror table { border-collapse: collapse; width: 100%; margin: 0 0 16px; }
.editor-surface .ProseMirror th, .editor-surface .ProseMirror td { border: 1px solid var(--line); padding: 8px 10px; text-align: left; font-size: 0.88rem; vertical-align: top; }
.editor-surface .ProseMirror th { background: var(--surface-2); font-weight: 700; }
.editor-surface .ProseMirror td p, .editor-surface .ProseMirror th p { margin: 0; }
.flash-banner {
  display: flex; align-items: center; gap: 9px; background: var(--emerald-bg); color: var(--emerald);
  border: 1px solid #cdeadd; font-size: 0.82rem; font-weight: 600;
  border-radius: var(--r-md); padding: 11px 14px; margin-bottom: 16px;
}
.flash-banner.error { background: var(--rose-bg); color: var(--rose); border-color: #f4cdd6; }
.flash-banner code { background: #fff; border-radius: 6px; padding: 2px 8px; font-size: 0.85rem; }
.suspend-banner {
  background: var(--rose-bg); color: var(--rose); border: 1px solid #f4cdd6;
  border-radius: var(--r-md); padding: 12px 14px; margin-bottom: 16px; font-size: 0.84rem;
}
.link-box {
  background: var(--surface); border: 1px dashed var(--iris-line); color: var(--iris-deep);
  border-radius: var(--r-md); padding: 10px 14px; font-size: 0.8rem; font-weight: 600;
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 4px;
  cursor: copy;
}

/* ============================================================
   CLIENT DETAIL / TABS
   ============================================================ */
.client-detail-layout { display: grid; grid-template-columns: 300px 1fr; gap: 18px; margin-top: 8px; align-items: start; }
.client-avatar {
  width: 60px; height: 60px; border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; color: #fff;
}
.info-field { margin-top: 14px; }
.info-field label { margin: 0 0 2px; font-size: 0.66rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); }
.info-field p { margin: 0; font-size: 0.85rem; }
.contact-stack { display: flex; margin-top: 6px; }
.contact-avatar-lg {
  width: 34px; height: 34px; border-radius: 50%; background: var(--iris-soft); color: var(--iris-deep);
  border: 2px solid var(--surface); display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 0.78rem; margin-left: -8px; box-shadow: var(--shadow-1);
}
.contact-stack .contact-avatar-lg:first-child { margin-left: 0; }
.contact-add-btn { background: var(--line-2); color: var(--ink-2); cursor: pointer; transition: background .13s; }
.contact-add-btn:hover { background: var(--iris-soft); color: var(--iris-deep); }
.contact-name-list { margin-top: 10px; }
.contact-name-row { padding: 6px 0; border-bottom: 1px solid var(--line-2); font-size: 0.82rem; }
.contact-name-row:last-child { border-bottom: none; }

.tab-nav { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 16px; }
.tab-link {
  text-decoration: none; color: var(--ink-2); font-size: 0.84rem; font-weight: 600;
  padding: 8px 14px 10px; border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: color .13s;
}
.tab-link:hover { color: var(--ink); }
.tab-link.active { color: var(--iris-deep); border-bottom-color: var(--iris); }

.project-table-card { padding: 6px 12px; }
.project-table-header { display: flex; justify-content: space-between; padding: 10px 8px; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); border-bottom: 1px solid var(--line-2); }
.project-table-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 8px; border-bottom: 1px solid var(--line-2); font-size: 0.86rem; transition: background .12s; border-radius: 8px; }
.project-table-row:hover { background: var(--surface-2); }
.project-name-cell { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.project-mini-logo { width: 26px; height: 26px; border-radius: 8px; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 0.6rem; font-weight: 700; }
.project-due { color: var(--ink-3); font-size: 0.78rem; }
.project-table-footer { display: flex; justify-content: space-between; align-items: center; padding: 11px 8px 9px; font-size: 0.76rem; color: var(--ink-3); }
.project-footer-arrow { color: var(--ink-2); display: flex; padding: 5px; border-radius: 7px; }
.project-footer-arrow:hover { background: var(--line-2); }

/* ============================================================
   PROJECT DETAIL
   ============================================================ */
.project-layout { display: grid; grid-template-columns: 1fr 320px; gap: 18px; margin-top: 10px; align-items: start; }
.project-main { min-width: 0; }
.project-side { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 16px; }
.side-panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-1); }
.side-panel-head { display: flex; justify-content: space-between; align-items: center; padding: 13px 16px; border-bottom: 1px solid var(--line-2); font-weight: 700; font-size: 0.84rem; font-family: var(--font-display); }
.side-panel-body { padding: 8px 12px 12px; max-height: 260px; overflow-y: auto; }
.icon-upload-btn { background: var(--line-2); border: none; color: var(--ink-2); width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; cursor: pointer; margin: 0; padding: 0; transition: background .13s, color .13s; }
.icon-upload-btn:hover { background: var(--iris-soft); color: var(--iris-deep); transform: none; box-shadow: none; }

.milestone-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 4px; border-bottom: 1px solid var(--line-2); }
.milestone-row:last-of-type { border-bottom: none; }
.milestone-check {
  width: 22px; height: 22px; min-width: 22px; border-radius: 7px;
  border: 1.5px solid var(--line); background: var(--surface); color: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; margin: 0; padding: 0; transition: all .15s;
}
.milestone-check:hover { border-color: var(--iris); transform: none; box-shadow: none; }
.milestone-check.checked { background: var(--emerald); border-color: var(--emerald); }

.budget-burn { margin-top: 4px; }
.budget-burn .bb-row { display: flex; justify-content: space-between; font-size: 0.74rem; color: var(--ink-2); margin-bottom: 5px; font-weight: 600; }

/* Files */
.file-item-wrap { display: flex; align-items: center; gap: 4px; }
.file-item {
  display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0;
  background: none; border: none; padding: 9px 6px; margin: 0;
  font-family: var(--font-ui); font-size: 0.83rem; color: var(--ink);
  cursor: pointer; text-align: left; border-radius: 8px;
  transition: background .12s;
}
.file-item:hover { background: var(--surface-2); transform: none; box-shadow: none; }
.file-icon {
  width: 34px; height: 34px; min-width: 34px; border-radius: 9px;
  background: var(--sky-bg); color: var(--sky);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.56rem; font-weight: 800; letter-spacing: .02em;
  overflow: hidden;
}
.file-icon.thumb { padding: 0; background: var(--surface-3); }
.file-icon.thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.file-name { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; }
.file-delete-btn { background: none; border: none; color: var(--ink-3); padding: 7px; margin: 0; cursor: pointer; border-radius: 7px; display: flex; }
.file-delete-btn:hover { background: var(--rose-bg); color: var(--rose); transform: none; box-shadow: none; }
.icon-btn { background: none; border: none; color: var(--ink-3); padding: 7px; margin: 0; cursor: pointer; border-radius: 7px; display: flex; }
.icon-btn:hover { background: var(--iris-soft); color: var(--iris-deep); transform: none; box-shadow: none; }

/* Drag-drop zone (progressive enhancement) */
.dropzone {
  border: 1.5px dashed var(--line); border-radius: var(--r-md);
  padding: 18px; text-align: center; color: var(--ink-3); font-size: 0.8rem;
  transition: border-color .15s, background .15s; margin-top: 12px;
}
.dropzone.dragover { border-color: var(--iris); background: var(--iris-soft); color: var(--iris-deep); }

/* File preview modal */
.file-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(21,23,28,.5); backdrop-filter: blur(4px); z-index: 200; align-items: center; justify-content: center; padding: 24px; }
.file-modal-overlay.open { display: flex; animation: pageIn .2s ease; }
.file-modal { background: var(--surface); border-radius: var(--r-lg); width: min(880px, 100%); max-height: 88vh; display: flex; flex-direction: column; overflow: hidden; box-shadow: var(--shadow-pop); }
.file-modal-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 18px; border-bottom: 1px solid var(--line); font-weight: 700; font-size: 0.9rem; font-family: var(--font-display); }
.file-modal-body { overflow: auto; padding: 0; min-height: 200px; max-height: 72vh; }
.file-modal-body iframe, .file-modal-body img { width: 100%; border: none; display: block; }
.file-modal-body iframe { height: 72vh; }
.file-modal-body img { object-fit: contain; max-height: 72vh; background: var(--surface-3); }
.file-modal-body .doc-render, .file-modal-body pre { padding: 24px; font-size: 0.85rem; }
.file-modal-body table { border-collapse: collapse; width: 100%; font-size: 0.8rem; }
.file-modal-body table td, .file-modal-body table th { border: 1px solid var(--line); padding: 5px 9px; }
/* PDF pages rendered via pdf.js as a scrollable stack of canvases */
.pdf-preview { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 20px; background: var(--surface-3); }
.pdf-preview canvas { box-shadow: var(--shadow-2); border-radius: 3px; max-width: 100%; height: auto; }

/* ============================================================
   INVOICE DOCUMENT
   ============================================================ */
.invoice-doc { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-2); margin-top: 14px; }
.invoice-banner img { width: 100%; max-height: 140px; object-fit: cover; display: block; }
.invoice-body { padding: 34px 40px; }
.invoice-head { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.invoice-brand { display: flex; gap: 14px; }
.invoice-logo { width: 54px; height: 54px; object-fit: contain; border-radius: 12px; border: 1px solid var(--line); }
.invoice-logo-placeholder { width: 54px; height: 54px; border-radius: 12px; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 800; }
.invoice-biz-name { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; }
.invoice-muted { color: var(--ink-3); font-size: 0.78rem; }
.invoice-meta { text-align: right; }
.invoice-title { font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; letter-spacing: .12em; color: var(--ink); }
.invoice-label { font-size: 0.64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-3); display: inline-block; min-width: 52px; }
.invoice-parties { display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); margin-bottom: 8px; font-size: 0.86rem; }
.invoice-dates div { margin-bottom: 3px; }
.invoice-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; margin-top: 10px; }
.invoice-table th { text-align: left; font-size: 0.64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-3); padding: 9px 8px; border-bottom: 1px solid var(--line); }
.invoice-table td { padding: 11px 8px; border-bottom: 1px solid var(--line-2); }
.invoice-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.invoice-table input { padding: 7px 10px; }
.invoice-totals { margin-left: auto; max-width: 280px; margin-top: 16px; }
.invoice-total-row { display: flex; justify-content: space-between; padding: 6px 8px; font-size: 0.87rem; color: var(--ink-2); }
.invoice-total-row.grand { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; color: var(--ink); border-top: 2px solid var(--ink); margin-top: 6px; padding-top: 10px; }
.invoice-notes { margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--line-2); font-size: 0.83rem; color: var(--ink-2); }
.invoice-client-search { display:flex; align-items:center; gap:10px; margin-bottom:12px; padding:10px 13px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); color:var(--ink-3); box-shadow:var(--shadow-1); }
.invoice-client-search input { flex:1; min-width:0; margin:0; padding:2px 0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.invoice-client-search input:focus { box-shadow:none; }
.invoice-client-search span { flex:0 0 auto; color:var(--ink-3); font-size:.7rem; font-weight:700; }
.invoice-client-results { max-height:62vh; overflow-y:auto; }
.invoice-client-results .client-row[hidden] { display:none; }
.row-remove { background: none; border: none; color: var(--ink-3); font-size: 1.1rem; cursor: pointer; padding: 4px 8px; margin: 0; border-radius: 7px; }
.row-remove:hover { background: var(--rose-bg); color: var(--rose); transform: none; box-shadow: none; }
/* Payment status timeline */
.pay-timeline { display: flex; align-items: center; gap: 0; margin: 18px 0 6px; }
.pay-step { display: flex; align-items: center; gap: 8px; font-size: 0.74rem; font-weight: 600; color: var(--ink-3); }
.pay-step .p-dot { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line); background: var(--surface); display: flex; align-items: center; justify-content: center; color: #fff; }
.pay-step.done { color: var(--emerald); }
.pay-step.done .p-dot { background: var(--emerald); border-color: var(--emerald); }
.pay-step.current { color: var(--iris-deep); }
.pay-step.current .p-dot { border-color: var(--iris); }
.pay-line { flex: 1; height: 2px; background: var(--line); margin: 0 10px; min-width: 30px; }
.pay-line.done { background: var(--emerald); }

/* ============================================================
   SETTINGS
   ============================================================ */
.settings-row { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line-2); }
.settings-row:last-child { border-bottom: none; }
.s-label { font-weight: 600; font-size: 0.88rem; }
.s-desc { color: var(--ink-3); font-size: 0.77rem; }

/* ============================================================
   COMMAND PALETTE (⌘K)
   ============================================================ */
.cmdk-overlay { display: none; position: fixed; inset: 0; background: rgba(21,23,28,.42); backdrop-filter: blur(5px); z-index: 300; align-items: flex-start; justify-content: center; padding: 12vh 20px 20px; }
.cmdk-overlay.open { display: flex; }
.cmdk {
  background: var(--surface); border-radius: 16px; width: min(600px, 100%);
  box-shadow: var(--shadow-pop); overflow: hidden;
  animation: cmdkIn .18s cubic-bezier(.22,.9,.3,1) both;
  border: 1px solid var(--line);
}
@keyframes cmdkIn { from { opacity: 0; transform: translateY(-8px) scale(.98); } to { opacity: 1; transform: none; } }
.cmdk-input-row { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line-2); color: var(--ink-3); }
.cmdk-input-row input { border: none; box-shadow: none; padding: 0; font-size: 1rem; background: transparent; }
.cmdk-input-row input:focus { box-shadow: none; }
.cmdk-list { max-height: 44vh; overflow-y: auto; padding: 8px; }
.cmdk-group-label { font-size: 0.64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); padding: 10px 12px 4px; }
.cmdk-item {
  display: flex; align-items: center; gap: 11px; padding: 9px 12px;
  border-radius: 10px; cursor: pointer; text-decoration: none; color: var(--ink);
  font-size: 0.88rem;
}
.cmdk-item .ck-icon { width: 28px; height: 28px; border-radius: 8px; background: var(--line-2); color: var(--ink-2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cmdk-item small { color: var(--ink-3); margin-left: auto; font-size: 0.72rem; }
.cmdk-item.selected, .cmdk-item:hover { background: var(--iris-soft); }
.cmdk-item.selected .ck-icon { background: #fff; color: var(--iris-deep); }
.cmdk-empty { padding: 26px; text-align: center; color: var(--ink-3); font-size: 0.85rem; }
.cmdk-foot { display: flex; gap: 14px; padding: 9px 16px; border-top: 1px solid var(--line-2); color: var(--ink-3); font-size: 0.68rem; font-weight: 600; }
.cmdk-foot kbd { background: var(--line-2); border-radius: 4px; padding: 1px 5px; font-family: var(--font-ui); }

/* ============================================================
   ADMIN — same design system as the app, with a slightly
   persistent sidebar identity. Colors come from theme tokens, so
   the tenant theme system affects admin exactly like the rest.
   ============================================================ */
.admin-shell { display:grid; grid-template-columns:252px minmax(0,1fr); min-height:100vh; background:var(--bg); color:var(--ink); }
.admin-sidebar { position:sticky; top:0; display:flex; width:252px; height:100vh; min-height:0; flex-direction:column; gap:18px; padding:22px 16px 16px; overflow-y:auto; border-right:1px solid var(--line); background:color-mix(in srgb,var(--surface) 94%,transparent); }
.admin-sidebar-head { display:flex; align-items:center; gap:12px; padding:0 7px 4px; }
.admin-sidebar-head .badge-mark { position:relative; isolation:isolate; display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; border-radius:11px; background:var(--ink); color:var(--surface); }
.admin-sidebar-head .badge-mark::after { content:''; position:absolute; z-index:-1; inset:-2px; border-radius:13px; background:var(--thread); }
.admin-brand-copy { min-width:0; }
.admin-brand-copy strong,.admin-brand-copy small { display:block; }
.admin-brand-copy strong { color:var(--ink); font-family:var(--font-display); font-size:.88rem; }
.admin-brand-copy small { margin-top:2px; color:var(--ink-3); font-size:.58rem; line-height:1.35; }
.admin-nav { display:flex; flex-direction:column; gap:3px; }
.admin-nav-label { margin:12px 9px 5px; color:var(--ink-3); font-size:.56rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.admin-nav-label:first-child { margin-top:0; }
.admin-nav a { display:flex; align-items:center; min-height:38px; padding:8px 11px; border-radius:9px; color:var(--ink-2); font-size:.72rem; font-weight:700; text-decoration:none; transition:color .13s,background .13s; }
.admin-nav a:hover { background:var(--surface-3); color:var(--ink); }
.admin-nav a.active { background:var(--iris-soft); color:var(--iris-deep); box-shadow:inset 3px 0 0 var(--iris); }
.admin-appearance { margin-top:auto; padding:13px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.admin-appearance-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:9px; color:var(--ink); font-size:.62rem; font-weight:800; }
.admin-appearance-head small { color:var(--emerald); font-size:.54rem; }
.admin-mode-toggle { width:100%; margin-bottom:10px; }
.admin-mode-toggle button { flex:1; margin:0; padding:6px; font-size:.6rem; }
.branding-palette-toggle.admin-palette-toggle { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.branding-palette-toggle.admin-palette-toggle button { display:flex; min-width:0; align-items:stretch; flex-direction:column; gap:5px; margin:0; padding:5px; border-radius:8px; background:var(--surface); text-align:center; }
.branding-palette-toggle.admin-palette-toggle button>span:last-child { overflow:hidden; padding:0 1px 1px; color:var(--ink-2); font-size:.48rem; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.branding-palette-toggle.admin-palette-toggle .palette-swatches { display:flex; width:100%; height:20px; overflow:hidden; border:1px solid color-mix(in srgb,var(--line) 75%,transparent); border-radius:5px; }
.branding-palette-toggle.admin-palette-toggle .palette-swatches i { width:auto; height:100%; flex:1; margin:0; border:0; border-radius:0; }
.branding-palette-toggle.admin-palette-toggle button.active { border-color:var(--iris); box-shadow:0 0 0 1px var(--iris); }
.admin-who { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; padding:3px 4px 0; color:var(--ink-3); font-size:.58rem; }
.admin-who span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-who a { padding:6px 8px; border:1px solid var(--line); border-radius:7px; color:var(--ink); font-size:.58rem; font-weight:700; text-decoration:none; }
.admin-who a:hover { background:var(--surface-3); }
.admin-content { width:100%; max-width:1236px; min-width:0; margin:0 auto; padding:30px 28px 60px; }

.admin-shell .admin-filters { display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.admin-shell .admin-filters input { max-width: 320px; }
.admin-shell .admin-filters select { width: auto; }
.admin-shell .admin-filters button { margin: 0; }
.admin-shell .health-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line-2); font-size: 0.84rem; }
.admin-shell .health-row:last-child { border-bottom: none; }
.admin-shell .health-row .h-label { color: var(--ink-3); }
.admin-shell .health-row .h-value { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.admin-shell .tenant-meta { display: flex; gap: 34px; margin: 4px 0 22px; }
.admin-shell .tenant-meta div { font-size: 0.76rem; color: var(--ink-3); }
.admin-shell .tenant-meta strong { display: block; font-family: var(--font-display); font-size: 1.25rem; color: var(--ink); font-variant-numeric: tabular-nums; }
.admin-shell .action-row { display: flex; gap: 10px; align-items: center; }
.admin-shell .action-row select, .admin-shell .action-row input { width: auto; flex: 1; }
.admin-shell .action-row button { margin: 0; white-space: nowrap; }
.panel-grid { display: grid; gap: 16px; }
.admin-section-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-3); margin: 30px 0 12px; display: flex; align-items: center; gap: 10px; }
.admin-section-label::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 20px; }
.stat-card { border: 1px solid var(--line); border-radius: var(--r-md); padding: 14px 16px; background: var(--surface); }
.stat-value { font-family: var(--font-display); font-size: 1.4rem; font-weight: 800; }
.stat-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); margin-top: 2px; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.admin-table th { text-align: left; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-3); padding: 10px 12px; border-bottom: 1px solid var(--line); }
.admin-table td { padding: 12px; border-bottom: 1px solid var(--line-2); vertical-align: middle; }
.admin-table tr:last-child td { border-bottom: none; }
.admin-table tbody tr { transition: background .12s; }
.admin-table tbody tr:hover { background: var(--surface-2); }
.admin-table .row-link { color: var(--ink); text-decoration: none; font-weight: 600; }
.admin-table .row-link:hover { color: var(--iris-deep); }

/* ============================================================
   AUTH + PUBLIC PAGES
   ============================================================ */
.wrap { max-width: 560px; margin: 0 auto; padding: 60px 24px; }
.auth-split { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; }
.auth-pane { display: flex; flex-direction: column; justify-content: center; padding: 60px 8vw; }
.auth-side {
  background: #00364e; color: #c8e3eb; position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between; padding: 44px 48px;
}
.auth-side::before {
  content: ''; position: absolute; inset: -40%;
  background:
    radial-gradient(600px 420px at 20% 15%, rgba(84,90,216,.35), transparent 60%),
    radial-gradient(520px 420px at 85% 80%, rgba(26,158,143,.22), transparent 60%),
    radial-gradient(420px 320px at 70% 20%, rgba(217,147,47,.14), transparent 60%);
  filter: blur(6px);
}
.auth-side > * { position: relative; }
.auth-side .quote { font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; color: #f3f4f8; line-height: 1.4; letter-spacing: -0.015em; max-width: 26ch; }
.auth-side .aside-brand { display: flex; align-items: center; gap: 10px; color: #f3f4f8; font-family: var(--font-display); font-weight: 800; }
.auth-side .aside-brand img{width:36px;height:36px;border-radius:10px;object-fit:contain}
.auth-side .aside-foot { color: #88c4df; font-size: 0.78rem; }
/* Login rail photo rotation — sourced from whatever's in public/images/bg
   (see listLoginImages() in server.js); the decorative gradient blur
   above is dropped in favor of the photos + a legibility scrim. */
.auth-side.has-photos::before { display: none; }
.auth-side-bg { position: absolute; inset: 0; overflow: hidden; }
.auth-side-photo { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.4s ease-in-out; }
.auth-side-photo.active { opacity: 1; }
.auth-side-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,16,21,.35) 0%, rgba(14,16,21,.55) 55%, rgba(14,16,21,.85) 100%); }

/* Landing */
.landing { background: var(--bg); }
.landing-nav { display: flex; justify-content: space-between; align-items: center; max-width: 1080px; margin: 0 auto; padding: 22px 28px; }
.landing-nav .brand { display: flex; align-items: center; gap: 10px; font-family: var(--font-display); font-weight: 800; font-size: 1rem; }
.landing-nav .brand .brand-mark { width: 32px; height: 32px; border-radius: 10px; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; position: relative; isolation: isolate; }
.landing-nav .brand .brand-mark::after { content: ''; position: absolute; inset: -2px; border-radius: 12px; background: var(--thread); z-index: -1; }
.login-link { text-decoration: none; font-weight: 600; font-size: 0.87rem; color: var(--ink); border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 8px 16px; box-shadow: var(--shadow-1); transition: transform .12s, box-shadow .12s; }
.login-link:hover { transform: translateY(-1px); box-shadow: var(--shadow-2); }
.hero { max-width: 760px; margin: 0 auto; text-align: center; padding: 72px 24px 46px; }
.hero .eyebrow { display: inline-flex; align-items: center; gap: 7px; font-size: 0.72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--iris-deep); background: var(--iris-soft); border: 1px solid var(--iris-line); border-radius: 999px; padding: 5px 13px; margin-bottom: 20px; }
.hero h1 { font-size: clamp(2rem, 4.6vw, 3.1rem); line-height: 1.08; letter-spacing: -0.035em; margin-bottom: 16px; }
.hero h1 em { font-style: normal; background: var(--thread); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero .lead { color: var(--ink-2); font-size: 1.02rem; max-width: 56ch; margin: 0 auto 26px; }
.cta-row { display: flex; gap: 10px; justify-content: center; }
.cta-row .btn { margin: 0; padding: 11px 22px; }
.cta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; max-width: 1080px; margin: 26px auto 90px; padding: 0 28px; }
.feature-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; box-shadow: var(--shadow-1); transition: transform .16s ease, box-shadow .16s ease; }
.feature-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); }
.feature-card h3 { margin: 12px 0 6px; font-size: 0.95rem; }
.feature-card p { margin: 0 0 12px; color: var(--ink-2); font-size: 0.82rem; }
.f-icon { width: 36px; height: 36px; border-radius: 11px; display: flex; align-items: center; justify-content: center; background: var(--iris-soft); color: var(--iris-deep); }
.f-status { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; border-radius: 999px; padding: 3px 10px; }
.f-status.live { background: var(--emerald-bg); color: var(--emerald); }
.f-status.soon { background: var(--line-2); color: var(--ink-3); }

/* Coming soon */
.coming-soon { text-align: center; padding: 60px 30px; }
.coming-soon .icon { font-size: 2rem; margin-bottom: 12px; }

/* Skeletons + reveal micro-interactions */
.skeleton { background: linear-gradient(90deg, var(--line-2) 25%, var(--surface-2) 50%, var(--line-2) 75%); background-size: 200% 100%; animation: shimmer 1.4s infinite; border-radius: 8px; }
@keyframes shimmer { to { background-position: -200% 0; } }
.reveal { opacity: 1; transform: none; animation: none; }
.reveal.d1,.reveal.d2,.reveal.d3,.reveal.d4 { animation-delay: 0s; }

/* ============================================================
   CLIENT LIST (compact rows — replaces card grid on the dashboard)
   ============================================================ */
.dashboard-split { display: grid; grid-template-columns: 1fr 300px; gap: 16px; align-items: start; }
.client-list { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-1); overflow: hidden; }
.client-list-row {
  display: flex; align-items: center; gap: 14px;
  padding: 13px 18px; border-bottom: 1px solid var(--line-2);
  cursor: pointer; transition: background .12s;
}
.client-list-row:last-child { border-bottom: none; }
.client-list-row:hover, .client-list-row:focus-visible { background: var(--surface-2); }
.client-list-row.static { cursor: default; }
.client-list-row.static:hover { background: none; }
.client-list-row:focus-visible { outline: none; box-shadow: inset 2px 0 0 var(--iris); }
.clr-avatar {
  width: 36px; height: 36px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700; font-size: 0.78rem; color: #fff;
}
.clr-id { min-width: 0; width: 180px; flex-shrink: 0; }
.clr-name { display: block; font-weight: 700; font-size: 0.87rem; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.clr-contact { display: block; font-size: 0.74rem; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.clr-stats { display: flex; gap: 28px; flex: 1; min-width: 0; }
.clr-stat { min-width: 0; }
.clr-stat .cs-label { display: block; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); }
.clr-stat .cs-value { display: block; font-size: 0.83rem; font-weight: 700; margin-top: 1px; white-space: nowrap; }
.clr-chevron { color: var(--ink-3); flex-shrink: 0; }
.client-list-row .status-badge { flex-shrink: 0; }
.client-list-row .health-dot { flex-shrink: 0; }
.client-list-row .warmth-chip { flex-shrink: 0; }
.entity-list-header{display:flex;align-items:center;gap:14px;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--surface-2);color:var(--ink-3)}
.entity-list-header>span:first-child{width:36px;flex:0 0 36px}
.entity-list-header>button:nth-child(2){width:180px;flex:0 0 180px}
.entity-list-header button{position:relative;margin:0;padding:0 16px 0 0;border:0;border-radius:0;background:transparent;color:inherit;font-size:.62rem;font-weight:800;letter-spacing:.06em;text-align:left;text-transform:uppercase;box-shadow:none}
.entity-list-header button:hover{color:var(--iris-deep);transform:none;box-shadow:none}
.entity-list-header button[data-direction]:after{position:absolute;right:2px;content:'↑';font-size:.7rem}
.entity-list-header button[data-direction="desc"]:after{content:'↓'}
.entity-list-header-stats{display:flex;min-width:0;flex:1;gap:28px}
.entity-list-header-stats button{min-width:0;flex:1}
.client-entity-header>button:nth-last-child(3){min-width:112px}
.client-entity-header>button:nth-last-child(2){min-width:58px}
.client-entity-header>span:last-child{width:88px;flex:0 0 88px}
.project-entity-header>button:nth-last-child(2){min-width:86px}
.project-entity-header>span:last-child{width:58px;flex:0 0 58px}
/* Leads/Projects/Invoices/Proposals rows are <details> now (inline expand
   instead of a slide-in drawer) — summary carries the row's look, the
   wrapping <details> carries the row-separator border. The Clients list
   keeps its plain-div + side-drawer pattern, unaffected by this. */
.client-list > details.client-list-row-wrap { border-bottom: 1px solid var(--line-2); }
.client-list > details.client-list-row-wrap:last-child { border-bottom: none; }
summary.client-list-row { cursor: pointer; list-style: none; border-bottom: none; }
summary.client-list-row::-webkit-details-marker { display: none; }
.client-list-row-wrap[open] .drawer-caret { transform: rotate(180deg); }
.list-row-expand { padding: 4px 18px 18px; }
.clr-details-link {
  flex-shrink: 0; font-size: 0.76rem; font-weight: 700; color: var(--iris-deep);
  text-decoration: none; padding: 4px 2px;
}
.clr-details-link:hover { text-decoration: underline; }
.drawer-section-title { margin: 0; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); }
.drawer-section-link { font-size: 0.74rem; font-weight: 700; color: var(--iris-deep); text-decoration: none; }
.drawer-section-link:hover { text-decoration: underline; }
@media (max-width: 1100px) {
  .clr-stats { display: none; }
  .entity-list-header-stats{display:none}
}

/* ============================================================
   DRAWER — slides in from the right, used for quick-look summaries
   without navigating away from the current list.
   ============================================================ */
.drawer-overlay {
  display: none; position: fixed; inset: 0; z-index: 250;
  background: rgba(21,23,28,.4); backdrop-filter: blur(3px);
}
.drawer-overlay.open { display: block; animation: pageIn .15s ease; }
.drawer {
  position: fixed; top: 0; right: 0; height: 100vh; width: min(400px, 92vw);
  background: var(--surface); border-left: 1px solid var(--line);
  box-shadow: var(--shadow-pop);
  display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform .22s cubic-bezier(.22,.9,.3,1);
}
.drawer-overlay.open .drawer { transform: translateX(0); }
.drawer-head { display: flex; align-items: center; gap: 12px; padding: 18px 18px 16px; border-bottom: 1px solid var(--line-2); }
.drawer-close { background: var(--surface-3); border: none; color: var(--ink-2); width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; cursor: pointer; margin: 0; padding: 0; flex-shrink: 0; }
.drawer-close:hover { background: var(--line); transform: none; box-shadow: none; }
.drawer-body { flex: 1; overflow-y: auto; padding: 18px; }
.drawer-foot { display: flex; gap: 8px; padding: 14px 18px; border-top: 1px solid var(--line-2); }
.drawer-foot a { flex: 1; margin: 0; text-align: center; }

/* Inline list drawers: quick-look content expands beneath the selected row. */
.client-list > .drawer-overlay {
  position: static; inset: auto; width: 100%; z-index: auto;
  background: transparent; backdrop-filter: none; padding: 0 16px 18px;
}
.client-list > .drawer-overlay.open { display: block; }
.client-list > .drawer-overlay .drawer {
  position: static; top: auto; right: auto; width: 100%; height: auto;
  max-height: none; background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--r-md); box-shadow: none; transform: none;
}
.client-list > .drawer-overlay.open .drawer { transform: none; }
.client-list > .drawer-overlay .drawer-body { overflow: visible; }
.client-list > .drawer-overlay .drawer-foot a { flex: 0 1 auto; margin-left: auto; }
.client-list > .drawer-overlay .drawer-head .drawer-close { display: none; }
.client-list > .drawer-overlay .drawer-head { display: none; }
@media (min-width: 900px) {
  .client-list > .drawer-overlay .drawer-body > .kpi-grid { max-width: 620px; }
}

/* Email workspace */
.messages-main { max-width: none; }
.messages-page-head { margin-bottom: 14px; }
.mail-shell { min-height: 690px; display: grid; grid-template-columns: 210px 340px minmax(360px, 1fr); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-1); }
.mail-folders { padding: 18px 12px; background: var(--surface-2); border-right: 1px solid var(--line); }
.mail-compose-button { display:flex; width:100%; text-align:center; margin-bottom:26px; text-decoration:none; }
.mail-folders nav { display: flex; flex-direction: column; gap: 4px; }
.mail-folders nav a { display: flex; justify-content: space-between; padding: 9px 11px; border-radius: 8px; color: var(--ink-2); text-decoration: none; font-size: .84rem; }
.mail-folders nav a.active, .mail-folders nav a:hover { background: var(--iris-soft); color: var(--iris-deep); font-weight: 700; }
.mail-folders nav small { color: var(--ink-3); }
.mail-folder-count { display:flex; align-items:center; gap:6px; }
.mail-folder-count b { min-width:20px; height:20px; display:grid; place-items:center; padding:0 5px; border-radius:99px; background:var(--rose); color:#fff; font-size:.58rem; }
.mail-folder-name { display:flex; align-items:center; gap:9px; }
.mail-folder-name svg { flex:0 0 auto; color:var(--ink-3); }
.mail-folders nav a.active .mail-folder-name svg, .mail-folders nav a:hover .mail-folder-name svg { color:var(--iris-deep); }
.mail-client-filter { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; flex-direction: column; }
.mail-client-filter strong { padding: 0 10px 8px; color: var(--ink-3); font-size: .67rem; text-transform: uppercase; letter-spacing: .05em; }
.mail-client-filter a { padding: 7px 10px; color: var(--ink-2); font-size: .78rem; text-decoration: none; border-radius: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail-client-filter a.active, .mail-client-filter a:hover { background: var(--surface); color: var(--ink); font-weight: 700; }
.mail-client-no-results{margin:5px 10px 0;color:var(--ink-3);font-size:.66rem;line-height:1.45}
.mail-list-pane { border-right: 1px solid var(--line); overflow-y: auto; max-height: 690px; }
.mail-list-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; padding: 18px; background: var(--surface); border-bottom: 1px solid var(--line); }
.mail-list-head span { color: var(--ink-3); font-size: .74rem; }
.mail-list-item { display: block; padding: 15px 18px; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line-2); }
.mail-list-item:hover, .mail-list-item.active { background: var(--iris-soft); }
.mail-list-item.unread { box-shadow: inset 3px 0 var(--iris); }
.mail-list-item > div { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.mail-list-item strong { font-size: .8rem; }
.mail-list-item time { color: var(--ink-3); font-size: .65rem; }
.mail-list-item b { display: block; font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail-list-item p { color: var(--ink-3); font-size: .73rem; margin: 3px 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail-reading-pane { display: flex; flex-direction: column; min-width: 0; }
.mail-reading-pane > header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 24px; border-bottom: 1px solid var(--line); }
.mail-reading-pane h2 { margin: 4px 0 0; font-size: 1.1rem; }
.mail-message-meta { display: flex; align-items: center; gap: 10px; padding: 18px 24px 0; }
.mail-message-meta > div { display: flex; flex-direction: column; font-size: .78rem; }
.mail-message-meta small { color: var(--ink-3); }
.mail-message-body { padding: 24px; white-space: pre-wrap; line-height: 1.65; font-size: .88rem; }
.mail-inline-images { display:flex; flex-wrap:wrap; gap:10px; padding:0 24px 20px; }
.mail-inline-images img { display:block; max-width:min(100%,560px); max-height:420px; border:1px solid var(--line); border-radius:10px; object-fit:contain; }
.mail-attachments { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 24px 20px; padding:12px; border:1px solid var(--line); border-radius:11px; background:var(--surface-2); }
.mail-attachments>strong { width:100%; color:var(--ink-3); font-size:.65rem; text-transform:uppercase; letter-spacing:.06em; }
.mail-attachments>a { display:flex; align-items:center; gap:8px; min-width:180px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); text-decoration:none; }
.mail-attachments>a>span:first-child { color:var(--iris-deep); font-size:1.1rem; }
.mail-attachments b,.mail-attachments small { display:block; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mail-attachments b { font-size:.72rem; }.mail-attachments small { color:var(--ink-3); font-size:.62rem; }
.mail-search{position:sticky;top:0;z-index:4;display:flex;gap:6px;padding:10px;background:var(--surface);border-bottom:1px solid var(--line)}.mail-search input{min-width:0;margin:0;padding:7px 9px}.mail-search button{flex:0 0 auto}.mail-list-pane .mail-list-head{top:52px}.mail-select-all{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink)}.mail-select-all input,.mail-row-check input{width:auto;margin:0}.mail-list-row{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);border-bottom:1px solid var(--line-2)}.mail-list-row .mail-list-item{border:0;padding-left:8px}.mail-row-check{display:grid;place-items:start center;margin:0;padding-top:18px}.mail-bulk-bar{position:sticky;top:103px;z-index:3;display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--iris-soft);border-bottom:1px solid var(--iris-line)}.mail-bulk-bar[hidden]{display:none}.mail-bulk-bar strong{margin-right:auto;font-size:.7rem}.mail-bulk-bar select{width:auto;min-width:120px;margin:0;padding:6px}.mail-attachment-pill{display:inline-flex;align-items:center;padding:2px 6px;margin-left:4px;border-radius:99px;background:var(--surface-2);color:var(--ink-3);font-size:.58rem;font-weight:700}.mail-action-menu{position:relative}.mail-action-menu summary{list-style:none;cursor:pointer}.mail-action-menu summary::-webkit-details-marker{display:none}.mail-action-menu>div{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:180px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-pop)}.mail-action-menu form{display:flex;flex-direction:column}.mail-action-menu button{padding:8px 9px;border:0;background:transparent;color:var(--ink);box-shadow:none;text-align:left}.mail-action-menu button:hover{background:var(--surface-2);transform:none}.mail-action-menu button.danger{color:var(--rose)}.mail-attachment-card{display:flex;align-items:center;gap:8px;min-width:260px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.mail-attachment-card>span:nth-child(2){min-width:0;flex:1}.mail-attachment-actions{display:flex;gap:5px}.mail-attachment-actions a,.mail-attachment-actions button{padding:4px;border:0;background:transparent;box-shadow:none;color:var(--iris-deep);font-size:.62rem;font-weight:700;text-decoration:none}.mail-project-add{width:100%;font-size:.7rem}.mail-project-add summary{cursor:pointer;color:var(--iris-deep);font-weight:700}.mail-project-add form,.mail-create-task form{display:flex;gap:7px;align-items:center;margin-top:7px}.mail-project-add select,.mail-create-task select{width:auto;min-width:180px;margin:0;padding:6px}.mail-create-task{align-self:flex-start;margin:0 24px 14px}.mail-create-task>summary{list-style:none}.mail-preview-modal{width:min(920px,calc(100vw - 32px));height:min(720px,calc(100vh - 32px));padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-pop)}.mail-preview-modal::backdrop{background:rgba(0,0,0,.6)}.mail-preview-modal header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.mail-preview-modal header button{padding:3px 8px;border:0;background:transparent;color:var(--ink);font-size:1.4rem;box-shadow:none}.mail-preview-modal iframe{display:block;width:100%;height:calc(100% - 50px);border:0;background:#fff}
.email-compose-window { position: fixed; right: 24px; bottom: 20px; z-index: 400; width: min(620px, calc(100vw - 32px)); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-pop); }
.email-compose-window > header { display: flex; justify-content: space-between; align-items: center; padding: 13px 16px; background: var(--surface-3); border-bottom: 1px solid var(--line); }
.email-compose-window > header a { color: var(--ink-2); font-size: 1.4rem; text-decoration: none; }
.email-compose-window form { display: flex; flex-direction: column; }
.email-compose-window label { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 8px; margin: 0; padding: 7px 14px; border-bottom: 1px solid var(--line); color: var(--ink-3); font-size: .76rem; }
.email-compose-window select, .email-compose-window input { border: 0; border-radius: 0; box-shadow: none; }
.email-compose-window > form > input { border-bottom: 1px solid var(--line); }
.email-compose-window textarea { min-height: 270px; border: 0; border-radius: 0; resize: vertical; box-shadow: none; padding: 16px; }
.email-compose-window footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-top: 1px solid var(--line); }
.email-compose-window footer small { color: var(--ink-3); }
.quick-email-overlay { display: none; position: fixed; inset: 0; z-index: 500; pointer-events: none; }
.quick-email-overlay.open { display: block; }
.quick-email-window { position: absolute; right: 24px; bottom: 20px; width: min(640px, calc(100vw - 32px)); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-pop); pointer-events: auto; animation: pageIn .16s ease; }
.quick-email-window > header { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; background: var(--surface-3); border-bottom: 1px solid var(--line); }
.quick-email-window > header button { border: 0; background: transparent; box-shadow: none; color: var(--ink-3); font-size: 1.4rem; line-height: 1; padding: 0; }
.quick-email-window > header button:hover { color: var(--ink); transform: none; }
.quick-email-window form { display: flex; flex-direction: column; }
.quick-email-recipient { display: grid; grid-template-columns: 34px 1fr; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--line); font-size: .78rem; }
.quick-email-recipient span { color: var(--ink-3); }
.quick-email-window input { border: 0; border-radius: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
.quick-email-window textarea { min-height: 280px; padding: 16px; border: 0; border-radius: 0; resize: vertical; box-shadow: none; }
.quick-email-window footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 62px; padding: 11px 14px; border-top: 1px solid var(--line); }
.quick-email-window footer span { color: var(--ink-3); font-size: .75rem; }
.quick-email-window footer span.success { color: var(--emerald); }
.quick-email-window footer span.error { color: var(--rose); }
.client-quick-actions { display: flex; gap: 8px; flex-wrap: wrap; padding: 14px 18px; border-bottom: 1px solid var(--line); background: var(--surface); }
.client-summary-section { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--surface); box-shadow: none; }
.client-summary-section.project-section,
.client-summary-section.invoice-section,
.client-summary-section.task-section,
.client-summary-section.contacts-section { border-top: 1px solid var(--line-2); }
.client-edit-form { padding: 16px; margin-bottom: 16px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); box-shadow: var(--shadow-1); }
.client-edit-form[hidden], .profile-client-edit[hidden] { display: none; }
.client-edit-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.client-edit-grid label { margin: 0; }
.profile-client-edit { display: grid; gap: 8px; padding: 12px; margin-bottom: 14px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2); }
.profile-client-edit label { margin: 0; }
.client-summary-section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.client-summary-section-head h3 { margin: 0; color: var(--ink-2); font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; }
.client-summary-section-head button { border: 0; background: transparent; box-shadow: none; padding: 0; }
.client-contact-list { display: flex; flex-direction: column; gap: 7px; }
.client-contact-row { display: grid; grid-template-columns: 34px minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 8px; border-radius: 8px; background: var(--surface-2); }
.client-contact-avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: var(--iris-soft); color: var(--iris-deep); font-size: .7rem; font-weight: 800; }
.client-contact-row > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.client-contact-row strong { font-size: .8rem; }
.client-contact-row strong small { color: var(--iris-deep); font-size: .6rem; text-transform: uppercase; }
.client-contact-row a:not(.btn) { color: var(--ink-3); font-size: .72rem; overflow: hidden; text-overflow: ellipsis; }
.drawer-contact-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto; gap: 7px; margin-top: 10px; }
.drawer-contact-form[hidden] { display: none; }
.client-list > .drawer-overlay .drawer-body { padding: 12px 16px 14px; }
.client-list > .drawer-overlay .drawer-body > div:first-child { margin-bottom: 10px !important; }
.client-list > .drawer-overlay .drawer-body > .kpi-grid { gap: 10px; margin-bottom: 10px !important; max-width: 560px; }
.client-list > .drawer-overlay .drawer-body > .kpi-grid .kpi-card { min-height: 0; padding: 12px 14px; border-radius: 10px; box-shadow: none; }
.client-list > .drawer-overlay .drawer-body > .kpi-grid .kpi-label { margin-bottom: 5px; font-size: .65rem; }
.client-list > .drawer-overlay .drawer-body > .kpi-grid .kpi-value { font-size: 1rem !important; }
.client-summary-section .activity-item { padding: 8px 2px; }
.client-summary-section .empty-hint { margin: 6px 0; }
.contact-editor-panel { margin-bottom: 16px; }
.contact-form-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) auto; align-items: end; gap: 10px; }
.contact-form-grid label, .contact-inline-edit label { margin: 0; }
.contact-directory { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: var(--surface); }
.contact-directory-row { display: grid; grid-template-columns: 42px minmax(200px,1fr) minmax(150px,.6fr) auto auto; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.contact-directory-person { display: flex; flex-direction: column; min-width: 0; }
.contact-directory-person span { color: var(--ink-3); font-size: .75rem; }
.contact-client-link { color: var(--iris-deep); font-size: .8rem; font-weight: 700; }
.contact-inline-edit { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto auto auto; align-items: end; gap: 10px; padding: 14px 72px; background: var(--surface-2); border-bottom: 1px solid var(--line); }
.contact-inline-edit[hidden] { display: none; }
.checkbox-label { display: flex; align-items: center; gap: 6px; padding-bottom: 10px; }
.checkbox-label input { width: auto; }
@media (max-width: 850px) { .contact-form-grid, .contact-inline-edit { grid-template-columns: 1fr 1fr; } .contact-directory-row { grid-template-columns: 42px 1fr auto; } .contact-client-link { grid-column: 2; } }
@media (max-width: 1050px) { .mail-shell { grid-template-columns: 180px 300px minmax(320px, 1fr); } }
@media (max-width: 820px) { .mail-shell { grid-template-columns: 160px 1fr; } .mail-reading-pane { grid-column: 1 / -1; min-height: 380px; border-top: 1px solid var(--line); } }

/* Secure client project portal */
.portal-page { min-height: 100vh; background: var(--surface-2); }
.portal-topbar { display: flex; justify-content: space-between; align-items: center; padding: 14px max(20px,calc((100vw - 1180px)/2)); background: var(--surface); border-bottom: 1px solid var(--line); }
.portal-topbar > div { display:flex;align-items:center;gap:10px; }.portal-topbar > span{color:var(--ink-3);font-size:.78rem}
.portal-wrap { width:min(1180px,calc(100% - 32px)); margin:24px auto 60px; }
.portal-welcome { padding:24px; margin-bottom:18px; border-radius:var(--r-lg); background:linear-gradient(135deg,var(--iris-soft),var(--surface)); border:1px solid var(--line); }
.portal-welcome h1 { margin:5px 0; }.portal-welcome p{color:var(--ink-2)}.portal-welcome ol{margin-bottom:0;color:var(--ink-2);font-size:.84rem;line-height:1.7}
.portal-project-tabs { display:flex;gap:7px;overflow-x:auto;margin-bottom:14px }.portal-project-tabs a{padding:9px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink-2);text-decoration:none;font-weight:700;font-size:.8rem}.portal-project-tabs a.active{background:var(--iris);color:white;border-color:var(--iris)}
.portal-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px }.portal-main-card{grid-column:1/-1}.portal-main-card h2{margin:4px 0}.portal-project-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.portal-project-meta span{display:flex;flex-direction:column;padding:12px;background:var(--surface-2);border-radius:8px}.portal-project-meta small{color:var(--ink-3);text-transform:uppercase;font-weight:700;font-size:.62rem}
.portal-upload{display:flex;gap:8px;align-items:center}.portal-list{display:flex;flex-direction:column;margin-top:10px}.portal-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line-2)}.portal-list span,.portal-list a:not(.btn){display:flex;flex-direction:column}.portal-list small{color:var(--ink-3)}
.portal-message-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.portal-message-list>div{max-width:85%;padding:9px 11px;border-radius:9px;background:var(--surface-2)}.portal-message-list>div.inbound{align-self:flex-end;background:var(--iris-soft)}.portal-message-list p{margin:3px 0;white-space:pre-wrap;font-size:.8rem}
@media(max-width:760px){.portal-grid{grid-template-columns:1fr}.portal-main-card{grid-column:auto}.portal-topbar>span{display:none}.portal-project-meta{grid-template-columns:1fr}.portal-upload{align-items:stretch;flex-direction:column}}
.portal-contact-add{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px}.portal-chat-launch,.portal-chat-widget{display:none!important}.portal-notification-banner{display:flex;align-items:center;gap:14px;padding:15px 16px;margin-bottom:16px;border:1px solid #e7c56f;border-left:5px solid #c88400;border-radius:var(--r-md);background:linear-gradient(100deg,#fff3cf 0%,var(--surface) 72%);color:var(--ink);text-decoration:none;box-shadow:0 4px 14px rgba(169,109,0,.09);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.portal-notification-banner:hover{transform:translateY(-1px);border-color:#c88400;box-shadow:0 7px 20px rgba(169,109,0,.15)}.portal-notification-banner:focus-visible{outline:3px solid var(--iris-line);outline-offset:3px}.portal-notification-content{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}.portal-notification-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.portal-notification-heading strong{font-size:.88rem}.portal-notification-banner small{color:var(--ink-2)}.portal-notification-badge{padding:3px 7px;border-radius:999px;background:#c88400;color:#fff;font-size:.57rem;font-weight:850;letter-spacing:.08em;line-height:1;text-transform:uppercase}.portal-notification-icon{position:relative;display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:#c88400;color:#fff;font-size:1rem;box-shadow:0 3px 9px rgba(169,109,0,.22)}.portal-notification-icon::after{content:"";position:absolute;right:-3px;top:-3px;width:9px;height:9px;border:2px solid var(--surface);border-radius:50%;background:#e33d52}.portal-notification-action{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:9px;background:var(--ink);color:var(--surface);font-size:.74rem;font-weight:750;white-space:nowrap}.portal-notification-banner:hover .portal-notification-action{gap:11px}@media(max-width:640px){.portal-notification-banner{align-items:flex-start}.portal-notification-action{padding:7px 9px}.portal-notification-action>span{display:none}}

.portal-notification-banner>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column}
[data-theme="dark"] .portal-notification-banner{border-color:rgba(255,209,100,.45);border-left-color:var(--amber);background:linear-gradient(100deg,rgba(255,183,11,.18) 0%,var(--surface) 72%)}

/* Today's follow-ups — the proactive nudge at the top of the page */
.followup-panel {
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow-1);
  padding: 18px 20px 16px;
  margin-bottom: 18px;
}
.followup-panel .fp-head { display: flex; align-items: center; gap: 9px; margin-bottom: 4px; }
.followup-panel .fp-head svg { color: var(--iris-deep); }
.followup-panel h2 { margin: 0; }
.followup-panel .subtitle { margin: 0 0 14px; }
.followup-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.followup-card {
  display: flex; gap: 11px; align-items: flex-start;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: 13px 14px; text-decoration: none; color: inherit;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s;
}
.followup-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); border-color: var(--iris-line); }
.followup-card .fc-avatar {
  width: 34px; height: 34px; border-radius: 10px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700; font-size: 0.8rem; color: #fff;
}
.followup-card .fc-name { font-weight: 700; font-size: 0.87rem; color: var(--ink); }
.followup-card .fc-reason { font-size: 0.74rem; color: var(--ink-3); margin-top: 1px; }
.followup-card .fc-reason.overdue { color: var(--rose); font-weight: 600; }
.followup-card .fc-value { margin-left: auto; font-size: 0.78rem; font-weight: 700; color: var(--ink-2); white-space: nowrap; }
.attention-feed{grid-template-columns:1fr}.attention-notification-card{align-items:stretch;padding:0;overflow:hidden}.attention-notification-card:hover{transform:none}.attention-notification-link{display:flex;min-width:0;flex:1;align-items:flex-start;gap:11px;padding:13px 14px;color:inherit;text-decoration:none}.attention-notification-link>span:last-child{display:flex;min-width:0;flex-direction:column}.attention-notification-link small{margin-bottom:3px;color:var(--ink-3);font-size:.56rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.attention-notification-card>form{display:flex;align-items:center;margin:0;padding:8px;border-left:1px solid var(--line-2)}
.followup-empty { display: flex; align-items: center; gap: 12px; padding: 6px 2px; color: var(--ink-2); font-size: 0.87rem; }
.followup-empty .fe-icon { width: 34px; height: 34px; border-radius: 10px; background: var(--emerald-bg); color: var(--emerald); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* Pinned — richer "plan card" style cards in a horizontally scrollable
   carousel, with left/right arrows for when there are more than fit. */
.pinned-carousel-wrap { position: relative; }
.pinned-carousel {
  display: flex; gap: 12px; overflow-x: auto; scroll-behavior: smooth;
  scroll-snap-type: x proximity; padding: 2px 2px 6px; margin: 0 -2px;
  scrollbar-width: none;
}
.pinned-carousel::-webkit-scrollbar { display: none; }
.pinned-card-v2 {
  flex: 0 0 280px; scroll-snap-align: start;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 16px 18px; text-decoration: none; color: inherit;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s;
}
.pinned-card-v2:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); border-color: var(--iris-line); }
.pinned-card-v2-head { display: flex; align-items: center; gap: 9px; min-height: 58px; padding: 12px 14px; margin: -16px -18px 14px; border-radius: var(--r-lg) var(--r-lg) 0 0; font-weight: 700; font-size: 0.92rem; color: #fff; }
.pinned-card-v2-head > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pinned-card-v2-icon { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; background: rgba(255,255,255,.16) !important; border: 1px solid rgba(255,255,255,.18); }
.pinned-card-client .pinned-card-v2-head { background: linear-gradient(135deg, #00364e, #087d9b); }
.pinned-card-project .pinned-card-v2-head { background: linear-gradient(135deg, #07566d, #279dbb); }
.pinned-card-invoice .pinned-card-v2-head { background: linear-gradient(135deg, var(--violet), var(--iris)); }
.pinned-stats-row { display: flex; margin-bottom: 12px; }
.pinned-stat { flex: 1; min-width: 0; padding: 0 8px; }
.pinned-stat:first-child { padding-left: 0; }
.pinned-stat + .pinned-stat { border-left: 1px solid var(--line-2); }
.pinned-stat-label { font-size: 0.62rem; color: var(--ink-3); text-transform: uppercase; letter-spacing: .02em; line-height: 1.25; }
.pinned-stat-value { font-size: 0.88rem; font-weight: 700; color: var(--ink); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pinned-divider { height: 1px; background: var(--line-2); margin: 0 0 10px; }
.pinned-notes-title { font-size: 0.74rem; font-weight: 700; color: var(--ink-2); margin-bottom: 7px; }
.pinned-note { display: flex; align-items: flex-start; gap: 6px; font-size: 0.78rem; color: var(--ink-2); margin-bottom: 6px; line-height: 1.35; }
.pinned-note:last-child { margin-bottom: 0; }
.pinned-note svg { flex-shrink: 0; margin-top: 2px; color: var(--emerald); }
.pinned-carousel-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); width: 30px; height: 30px;
  border-radius: 50%; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-2);
  display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2;
  padding: 0; margin: 0; color: var(--ink-2);
}
.pinned-carousel-arrow:hover { border-color: var(--iris-line); color: var(--iris-deep); transform: translateY(-50%); box-shadow: var(--shadow-2); }
.pinned-carousel-arrow.prev { left: -14px; }
.pinned-carousel-arrow.next { right: -14px; }
.pinned-carousel-arrow:disabled { opacity: .3; cursor: default; pointer-events: none; }

/* Home utility footer — a calm visual reset after the operational dashboard. */
.home-utility-footer { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(440px,.85fr); gap: 16px; margin: 30px 0 10px; padding-top: 22px; border-top: 1px solid var(--line); }
.home-tip-card { position: relative; display: grid; grid-template-columns: 112px minmax(0,1fr) auto; gap: 16px; align-items: center; min-height: 146px; padding: 18px 20px; overflow: hidden; color: var(--ink); border: 1px solid var(--iris-line); border-radius: var(--r-lg); background: linear-gradient(135deg, var(--iris-soft), var(--surface)); }
.home-tip-card .eyebrow { margin-bottom: 5px; }
.home-tip-card h3 { margin: 0 0 5px; font-size: 1rem; }
.home-tip-card p { max-width: 410px; margin: 0; color: var(--ink-2); font-size: .76rem; line-height: 1.55; }
.home-tip-art { display: grid; place-items: center; color: var(--iris); }
.home-tip-art svg { width: 108px; height: 82px; }
.home-tip-link { align-self: end; color: var(--iris-deep); font-size: .75rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.home-tip-link:hover { text-decoration: underline; }
.home-footer-links { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 16px; padding: 16px 4px; }
.home-footer-links > div { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.home-footer-links strong { color: var(--ink); font-size: .72rem; }
.home-footer-links a { color: var(--ink-3); font-size: .72rem; text-decoration: none; }
.home-footer-links a:hover { color: var(--iris-deep); }
.home-footer-support { position: relative; padding-left: 34px; }
.home-footer-support p { margin: 0; color: var(--ink-3); font-size: .68rem; line-height: 1.45; }
.home-support-art { position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 8px; color: var(--emerald); background: var(--emerald-bg); }
.home-support-art svg { width: 16px; height: 16px; }

/* Home: "Needs your attention" / "Upcoming" / "Recent" — three equal-height
   cards side by side, each with its own scrollable body so a busy list
   never stretches the row. */
.tri-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: stretch; margin-bottom: 16px; }
.tri-card { display: flex; flex-direction: column; height: 420px; margin-bottom: 0; }
.tri-card > h2, .tri-card .fp-head { flex-shrink: 0; }
.tri-card .tri-card-body { flex: 1; min-height: 0; overflow-y: auto; margin: 0 -4px; padding: 0 4px; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.tri-card .tri-card-body::-webkit-scrollbar { width: 6px; }
.tri-card .tri-card-body::-webkit-scrollbar-track { background: transparent; }
.tri-card .tri-card-body::-webkit-scrollbar-thumb { background: var(--line); border-radius: 99px; }
.tri-card .tri-card-body::-webkit-scrollbar-thumb:hover { background: var(--ink-3); }
.home-activity-timeline{padding-right:6px}.home-activity-timeline .event-timeline-item{grid-template-columns:52px 12px minmax(0,1fr);gap:8px}.home-activity-timeline .event-timeline-item time{font-size:.65rem}.home-activity-timeline .event-timeline-item strong{overflow:hidden;text-overflow:ellipsis}.recent-items-feed{max-height:360px;overflow-y:auto;padding-right:6px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.tri-card .followup-list { grid-template-columns: 1fr; }
.tri-card-foot { flex-shrink: 0; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line-2); text-align: center; }
.tri-card-foot a { font-size: 0.78rem; font-weight: 700; color: var(--iris-deep); text-decoration: none; }
@media (max-width: 980px) {
  .tri-row { grid-template-columns: 1fr; }
  .tri-card { height: auto; max-height: 420px; }
}

/* Pipeline strip */
.pipeline-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 18px; }
.pipeline-stage {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: 13px 15px; cursor: pointer; text-align: left;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s;
  font-family: var(--font-ui);
}
.pipeline-stage:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); }
.pipeline-stage.active { border-color: var(--iris); box-shadow: 0 0 0 3px var(--iris-soft); }
.pipeline-stage .ps-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); display: flex; align-items: center; gap: 6px; }
.pipeline-stage .ps-count { font-family: var(--font-display); font-size: 1.4rem; font-weight: 800; margin-top: 4px; }
.pipeline-stage .ps-value { font-size: 0.76rem; color: var(--ink-3); margin-top: 1px; font-variant-numeric: tabular-nums; }
.ps-dot { width: 7px; height: 7px; border-radius: 50%; }
.ps-dot.inbox { background: var(--sky); } .ps-dot.contacted { background: var(--amber); }
.ps-dot.qualified { background: var(--violet); } .ps-dot.proposal_sent { background: var(--emerald); }

/* Lead avatar + warmth indicator — reused by the Leads list row/drawer,
   lead detail header, and Home's New Leads card. */
.lead-avatar {
  width: 36px; height: 36px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700; font-size: 0.82rem; color: #fff;
}
.warmth-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 0.7rem; font-weight: 700; }
.warmth-chip::before { content: ''; width: 6px; height: 6px; border-radius: 50%; }
.warmth-chip.warmth-hot { color: var(--rose); } .warmth-chip.warmth-hot::before { background: var(--rose); box-shadow: 0 0 0 3px var(--rose-bg); }
.warmth-chip.warmth-warm { color: var(--amber); } .warmth-chip.warmth-warm::before { background: var(--amber); box-shadow: 0 0 0 3px var(--amber-bg); }
.warmth-chip.warmth-cold { color: var(--ink-3); } .warmth-chip.warmth-cold::before { background: var(--ink-3); box-shadow: 0 0 0 3px var(--line-2); }

/* Lead detail */
.lead-detail-layout { display: grid; grid-template-columns: 1fr 300px; gap: 18px; margin-top: 8px; align-items: start; }
.lead-timeline { display: flex; flex-direction: column; }
.lt-item { display: flex; gap: 12px; padding: 0 0 20px; position: relative; }
.lt-item::before { content: ''; position: absolute; left: 15px; top: 30px; bottom: 0; width: 1px; background: var(--line); }
.lt-item:last-child::before { display: none; }
.lt-icon {
  width: 31px; height: 31px; border-radius: 50%; flex-shrink: 0; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  background: var(--surface-3); color: var(--ink-2); border: 1px solid var(--line);
}
.lt-icon.system { background: var(--sky-bg); color: var(--sky); border-color: transparent; }
.lt-icon.call { background: var(--emerald-bg); color: var(--emerald); border-color: transparent; }
.lt-icon.email { background: var(--violet-bg); color: var(--violet); border-color: transparent; }
.lt-icon.meeting { background: var(--amber-bg); color: var(--amber); border-color: transparent; }
.lt-body { flex: 1; padding-top: 3px; }
.lt-kind { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); }
.lt-text { font-size: 0.87rem; color: var(--ink); margin: 3px 0 4px; line-height: 1.5; white-space: pre-wrap; }
.lt-time { font-size: 0.72rem; color: var(--ink-3); }
.lead-side-card { margin-bottom: 14px; }
.lead-side-card .ls-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line-2); font-size: 0.83rem; }
.lead-side-card .ls-row:last-child { border-bottom: none; }
.lead-side-card .ls-label { color: var(--ink-3); font-size: 0.76rem; }
.stage-pill-group { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.stage-pill {
  border: 1px solid var(--line); background: var(--surface); color: var(--ink-2);
  border-radius: 99px; padding: 5px 11px; font-size: 0.74rem; font-weight: 600;
  cursor: pointer; margin: 0; transition: all .13s;
}
.stage-pill:hover { border-color: var(--iris-line); transform: none; box-shadow: none; }
.stage-pill.active { background: var(--iris); border-color: var(--iris); color: #fff; }

/* ============================================================
   PIN STAR — instant toggle, appears on list rows/cards and detail headers
   ============================================================ */
.pin-star {
  background: none; border: none; padding: 4px; margin: 0; cursor: pointer;
  color: var(--ink-3); display: inline-flex; align-items: center; justify-content: center;
  border-radius: 7px; transition: color .13s, background .13s, transform .13s;
  flex-shrink: 0;
}
.pin-star:hover { background: var(--surface-3); color: var(--ink-2); transform: none; box-shadow: none; }
.pin-star.pinned { color: #ff9a00; }
.pin-star.pinned:hover { color: #d87500; }
.pin-star svg { transition: transform .15s; }
.pin-star.pinned svg { transform: scale(1.08); }

/* ============================================================
   TASKS — quick-add form + two-column board + urgency chips
   ============================================================ */
.task-quick-add { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.task-quick-add input, .task-quick-add select { margin: 0; }
.task-board { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; align-items: start; }
.task-column-head {
  display: flex; align-items: center; justify-content: space-between;
  font-family: var(--font-display); font-weight: 700; font-size: 0.92rem;
  padding: 4px 4px 12px;
}
.task-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: 12px 12px 12px 13px; margin-bottom: 10px;
  border-left: 3px solid var(--line);
}
.task-card.urgency-high { border-left-color: var(--rose); }
.task-card.urgency-medium { border-left-color: var(--amber); }
.task-card.urgency-low { border-left-color: var(--sky); }
.task-card.done { opacity: .68; }
/* Task cards are <details> now (inline expand to edit, no side drawer) —
   the row itself is the <summary>, reusing the flex layout the row div
   used to have, with the native marker stripped. */
.task-card > summary {
  display: flex; align-items: flex-start; gap: 10px; list-style: none; cursor: pointer;
}
.task-card > summary::-webkit-details-marker { display: none; }
.task-card .task-caret { align-self: center; margin-left: 2px; }
.task-card[open] .task-caret { transform: rotate(180deg); }
.task-card .task-inline-form { margin: 0; }
.task-edit-inline { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-2); }
.task-edit-inline .form-row { margin-top: 10px; }
.task-title { font-size: 0.87rem; font-weight: 600; color: var(--ink); }
.task-notes { font-size: 0.78rem; color: var(--ink-2); margin-top: 3px; }
.task-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 7px; font-size: 0.73rem; color: var(--ink-3); }
.task-meta a { color: var(--ink-3); text-decoration: none; font-weight: 600; }
.task-meta a:hover { color: var(--iris-deep); }
.urgency-chip { font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border-radius: 5px; padding: 2px 7px; }
.urgency-chip.urgency-high { background: var(--rose-bg); color: var(--rose); }
.urgency-chip.urgency-medium { background: var(--amber-bg); color: var(--amber); }
.urgency-chip.urgency-low { background: var(--sky-bg); color: var(--sky); }
@media (max-width: 900px) { .task-board { grid-template-columns: 1fr; } }

/* ============================================================
   EVENTS — agenda list grouped by date
   ============================================================ */
.agenda-date-label {
  font-family: var(--font-display); font-weight: 700; font-size: 0.82rem; color: var(--ink);
  margin: 22px 2px 8px; display: flex; align-items: center; gap: 10px;
}
.agenda-date-label::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.agenda-row { display: flex; gap: 14px; align-items: flex-start; padding: 13px 4px; border-bottom: 1px solid var(--line-2); }
.agenda-row:last-child { border-bottom: none; }
.agenda-time { width: 76px; flex-shrink: 0; font-size: 0.8rem; font-weight: 700; color: var(--ink); padding-top: 1px; }
.agenda-time small { display: block; font-weight: 500; color: var(--ink-3); font-size: 0.68rem; }
.agenda-body { flex: 1; min-width: 0; }
.agenda-title { font-size: 0.87rem; font-weight: 600; color: var(--ink); }
.agenda-meta { display: flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 0.76rem; color: var(--ink-3); flex-wrap: wrap; }
.agenda-desc { font-size: 0.79rem; color: var(--ink-2); margin-top: 6px; }

@media (max-width: 1020px) {
  .client-detail-layout, .project-layout, .lead-detail-layout, .dashboard-split { grid-template-columns: 1fr; }
  .project-side { position: static; }
  .pipeline-strip { grid-template-columns: repeat(2, 1fr); }
  .auth-split { grid-template-columns: 1fr; }
  .auth-side { display: none; }
}
@media (max-width: 920px) {
  .home-utility-footer { grid-template-columns: 1fr; }
  .home-footer-links { padding: 4px; }
}
@media (max-width: 760px) {
  .app-shell { flex-direction: column; padding: 10px; gap: 12px; }
  .workspace-topbar, .sidebar.collapsed + .workspace-topbar { position: absolute; top: 16px; left: auto; right: 14px; width: auto; height: 48px; padding: 0; border: 0; background: transparent; }
  .workspace-topbar .brand { display: none; }
  .main-content { padding-top: 16px; }
  .clr-id { width: auto; }
  .sidebar { position: static; width: 100% !important; height: auto; flex-direction: column; }
  .sidebar > nav { display:grid; grid-template-columns:1fr 1fr; gap:0 10px; padding-bottom:0; }
  .form-row { grid-template-columns: 1fr; }
  .invoice-body { padding: 22px; }
  .admin-shell { grid-template-columns:1fr; }
  .admin-sidebar { position:relative; width:100%; height:auto; gap:12px; padding:14px 16px; border-right:0; border-bottom:1px solid var(--line); }
  .admin-sidebar-head { padding:0; }
  .admin-nav { display:grid; grid-template-columns:1fr 1fr; gap:5px; }
  .admin-nav-label { grid-column:1/-1; margin:8px 4px 2px; }
  .admin-appearance { margin-top:0; }
  .branding-palette-toggle.admin-palette-toggle { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .admin-content { padding:20px 16px 36px; }
  .admin-shell .tenant-meta { flex-wrap: wrap; gap: 18px; }
  .page-head { align-items: flex-start; flex-direction: column; }
  .home-tip-card { grid-template-columns: 76px 1fr; gap: 10px; padding: 16px; }
  .home-tip-art svg { width: 72px; height: 62px; }
  .home-tip-link { grid-column: 2; justify-self: start; }
  .home-footer-links { grid-template-columns: 1fr 1fr; gap: 18px; }
  .home-footer-support { grid-column: 1 / -1; }
}
@media (max-height: 760px) and (min-width: 761px) {
  .sidebar { padding-top: 8px; padding-bottom: 8px; }
  .sidebar-top { min-height: 92px; margin-bottom: 4px; }
  .product-logo-full { height:68px; }
  .sidebar .nav-group-label { display: none; }
  .sidebar > nav { justify-content:flex-start; padding-bottom:2px; }
  .sidebar .nav-group { margin-bottom:0; }
  .sidebar a.nav-item { padding-top: 4px; padding-bottom: 4px; }
}
.contract-editor-page{max-width:none}.contract-editor-toolbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:10px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(10px);box-shadow:var(--shadow-1)}.contract-editor-toolbar label{margin:0}.contract-editor-toolbar>div{display:flex;align-items:center;gap:10px;white-space:nowrap}.contract-editor-toolbar>div span{color:var(--ink-3);font-size:.7rem}.contract-document-shell{display:grid;grid-template-columns:minmax(0,820px) 230px;justify-content:center;gap:16px;align-items:start}.contract-document-page{min-height:1050px;padding:76px 80px;background:#fff;color:#1c2029;border:1px solid #d9dce3;border-radius:3px;box-shadow:0 12px 35px rgba(30,35,50,.12);font-family:var(--font-ui);font-size:15px;line-height:1.7}.contract-document-page p{margin:0 0 14px}.contract-document-page h2{margin:24px 0 12px;font-family:var(--font-ui);color:#111827}.contract-doc-spacer{height:12px}.contract-inline-field{display:inline;position:relative;padding:2px 5px;border:1px dashed #d39b20;border-radius:4px;background:#fff3c4;color:#5f4300;cursor:text;box-decoration-break:clone;-webkit-box-decoration-break:clone}.contract-inline-field:hover,.contract-inline-field.editing{border-style:solid;background:#ffe99a;outline:2px solid rgba(211,155,32,.16)}.contract-inline-value{min-width:34px;outline:none}.contract-inline-placeholder{font-family:var(--font-ui);font-size:.78em;font-weight:700;color:#9a6b00}.contract-inline-field.has-value .contract-inline-placeholder{display:none}.contract-inline-field:not(.has-value) .contract-inline-value{display:none}.contract-inline-field.editing .contract-inline-value{display:inline}.contract-inline-field.editing .contract-inline-placeholder{display:none}.contract-editor-help{position:sticky;top:86px;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-size:.78rem}.contract-editor-help p{color:var(--ink-3);line-height:1.5}.contract-missing-field{display:block;width:100%;margin:5px 0;padding:7px 9px;text-align:left;background:#fff9e8;border:1px solid #e7c56f;color:#7a5700;box-shadow:none;font-size:.72rem}.contract-missing-field:hover{transform:none;background:#fff3c4}.contract-library-search{display:grid;grid-template-columns:minmax(260px,1fr) minmax(240px,360px);gap:12px;align-items:end;margin-bottom:18px}.contract-library-search .template-search{max-width:none;margin:0}.contract-library-search label{margin:0;color:var(--ink-3);font-size:.7rem}.contract-library-search select{margin-top:5px}@media(max-width:980px){.contract-editor-toolbar{position:static;grid-template-columns:1fr 1fr}.contract-document-shell{grid-template-columns:1fr}.contract-editor-help{position:static;order:-1}.contract-document-page{padding:42px 34px}.contract-library-search{grid-template-columns:1fr}}
.proposal-editor-toolbar{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto}.contract-native-preview{padding:0;overflow:auto;max-height:80vh}.contract-native-preview>.contract-document-page{margin:18px;min-width:650px}.pdf-unavailable-note{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-size:.76rem;color:var(--ink-3)}.pdf-unavailable-note strong{color:var(--ink-2)}.pdf-unavailable-note p{margin:5px 0 0;line-height:1.45}@media(max-width:980px){.proposal-editor-toolbar{grid-template-columns:1fr}.contract-native-preview>.contract-document-page{min-width:0;margin:10px}}

/* App-native confirmation and text-entry dialogs */
.app-dialog-overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(17,24,39,.48);backdrop-filter:blur(4px)}
.app-dialog-overlay.open{display:flex;animation:pageIn .16s ease}
.app-dialog{width:min(440px,100%);overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-pop);color:var(--ink)}
.app-dialog-header{padding:20px 22px 8px}.app-dialog-header h2{margin:0;font-size:1.08rem}
.app-dialog-body{padding:8px 22px 20px;color:var(--ink-2);line-height:1.55}.app-dialog-body p{margin:0}.app-dialog-body label{display:block;margin:2px 0 7px;color:var(--ink-2);font-size:.78rem;font-weight:700}.app-dialog-body input{width:100%;margin:0}
.app-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid var(--line);background:var(--surface-2)}
.app-dialog-confirm.danger{background:#d95a00;border-color:#d95a00;color:#fff}.app-dialog-confirm.danger:hover{background:#b74c00}
body.app-dialog-open{overflow:hidden}

/* Word-aware contextual document preview */
.contract-document-page{font-family:var(--font-ui);font-size:12pt;line-height:1.2}
.contract-document-page .contract-doc-content p{margin:0 0 8pt}.contract-document-page .contract-doc-content h2{font-family:inherit;margin:14pt 0 8pt}
.contract-field-list{display:flex;flex-direction:column;gap:7px;margin-top:12px;max-height:52vh;overflow:auto}
.contract-field-entry{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 11px;text-align:left;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);box-shadow:none}
.contract-field-entry:hover{transform:none;border-color:var(--iris);background:var(--iris-soft)}.contract-field-entry span{font-size:.72rem;font-weight:750}.contract-field-entry small{display:block;width:100%;overflow:hidden;color:var(--ink-3);font-size:.68rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.contract-field-entry.completed small{color:var(--ink-2)}

/* Project list drawers + comprehensive project workspace */
.project-summary-drawer{padding:0!important}.project-quick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface)}.project-quick-actions form{margin:0 0 0 auto}.project-drawer-kpis{grid-template-columns:repeat(4,minmax(0,1fr));padding:16px 18px 0;margin:0}.project-drawer-kpis .kpi-card{margin:0}.project-drawer-meta{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin:14px 18px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.project-drawer-meta small,.project-drawer-meta b,.project-drawer-meta a{display:block}.project-drawer-meta small{color:var(--ink-3);font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.project-drawer-meta b,.project-drawer-meta a{margin-top:3px;color:var(--ink-2);font-size:.78rem;text-decoration:none}.project-drawer-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 18px 18px}.project-drawer-sections .client-summary-section{margin:0;min-height:132px}.project-drawer-sections .drawer-lead-section{grid-column:1/-1;min-height:auto}.drawer-lead-body strong{font-size:.78rem}.drawer-lead-body p{margin:5px 0 0;color:var(--ink-2);font-size:.72rem;line-height:1.55}.project-drawer-sections .activity-item{padding:8px 3px}
.project-detail-page{padding-bottom:70px}.project-detail-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:14px 0 22px}.project-title-block{display:flex;gap:15px;align-items:center;min-width:0}.project-title-block h1{display:flex;align-items:center;gap:8px;margin:2px 0 4px;font-size:1.65rem}.project-title-block .eyebrow a{text-decoration:none}.project-head-meta{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:.72rem}.project-head-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.project-detail-tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:22px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.project-detail-tabs a{display:flex;align-items:center;gap:7px;flex:0 0 auto;padding:8px 14px;border-radius:8px;color:var(--ink-2);font-size:.78rem;font-weight:700;text-decoration:none}.project-detail-tabs a:hover{background:var(--surface-2);color:var(--ink)}.project-detail-tabs a.active{background:var(--iris-soft);color:var(--iris-deep)}.project-detail-tabs a span{min-width:19px;padding:1px 5px;border-radius:99px;background:var(--line);color:var(--ink-3);font-size:.6rem;text-align:center}.project-detail-tabs a.active span{background:var(--surface);color:var(--iris-deep)}.project-tab-panel{animation:pageIn .22s ease}.project-overview-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.project-overview-kpis .kpi-card{margin:0}.project-overview-kpis .kpi-value{font-size:1.18rem}.project-activity-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;align-items:start}.project-description-card{margin:0}.project-description-card>p{color:var(--ink-2);line-height:1.7}.project-date-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.project-date-row small,.project-date-row b{display:block}.project-date-row small{color:var(--ink-3);font-size:.65rem;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.project-date-row b{margin-top:4px;font-size:.78rem}.overdue-text{color:var(--rose)!important}.project-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.project-panel-head h2{font-size:1.22rem;margin:0 0 3px}.project-panel-head p{margin:0;color:var(--ink-3);font-size:.78rem}.project-upload-row{margin-bottom:15px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.project-upload-row form{display:grid;grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:10px}.project-upload-row input,.project-upload-row select{margin:0}.project-file-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-file-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.project-file-preview{display:flex;align-items:center;gap:11px;min-width:0;flex:1;padding:0;border:0;background:none;color:var(--ink);text-align:left;box-shadow:none}.project-file-preview>span:last-child{min-width:0}.project-file-preview strong,.project-file-preview small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-file-preview strong{font-size:.76rem}.project-file-preview small{margin-top:3px;color:var(--ink-3);font-size:.64rem}.project-file-card>div{display:flex;align-items:center;gap:7px}.project-file-card form{margin:0}.project-inline-form{margin-bottom:14px}.project-task-form-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}.project-inline-form label{margin:0}.project-task-list{padding:0;overflow:hidden}.project-task-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line-2)}.project-task-row:last-child{border-bottom:0}.project-task-row form{margin:0}.project-task-row strong,.project-task-row small{display:block}.project-task-row strong{font-size:.82rem}.project-task-row small{margin-top:3px;color:var(--ink-3);font-size:.68rem}.project-task-row.done strong{text-decoration:line-through;color:var(--ink-3)}.financial-kpis{margin-bottom:24px}.project-financial-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.project-financial-grid .client-summary-section-head>span{color:var(--ink-3);font-size:.7rem}.project-invoice-list,.project-milestones-card{margin:0;padding:8px 12px}.project-milestone-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-2)}.project-milestone-row form{margin:0}.project-milestone-row strong,.project-milestone-row small{display:block}.project-milestone-row strong{font-size:.75rem}.project-milestone-row small{color:var(--ink-3);font-size:.64rem}.project-milestone-row>b{font-size:.72rem}.project-milestone-add{display:grid;grid-template-columns:1.5fr .7fr 1fr auto;gap:7px;margin-top:13px}.project-milestone-add input{margin:0}.project-notes-layout{max-width:820px}.project-note-form{margin-bottom:14px}.project-note-form label{margin:0}.project-note-form textarea{margin-bottom:12px}.project-notes-list{display:flex;flex-direction:column;gap:10px}.project-note{margin:0}.project-note header{display:flex;justify-content:space-between;gap:12px}.project-note time{color:var(--ink-3);font-size:.68rem}.project-note p{margin:12px 0 0;white-space:pre-wrap;color:var(--ink-2);line-height:1.7}.project-details-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;align-items:start}.project-details-grid>.card{margin:0}.project-details-grid hr{height:1px;margin:22px 0;border:0;background:var(--line)}.project-detail-list{margin:0}.project-detail-list>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-2)}.project-detail-list dt{color:var(--ink-3);font-size:.7rem;font-weight:700;text-transform:uppercase}.project-detail-list dd{margin:0;color:var(--ink-2);font-size:.78rem}.project-detail-list dd a{color:var(--iris-deep);font-weight:700;text-decoration:none}.project-lead-card{grid-column:1/-1}.project-lead-card>p{color:var(--ink-2)}.project-lead-card>small{color:var(--ink-3)}
@media(max-width:980px){.project-drawer-kpis,.project-overview-kpis{grid-template-columns:repeat(2,1fr)}.project-drawer-sections,.project-activity-layout,.project-financial-grid,.project-details-grid{grid-template-columns:1fr}.project-lead-card{grid-column:auto}.project-detail-head{align-items:flex-start;flex-direction:column}.project-head-actions{justify-content:flex-start}.project-file-grid{grid-template-columns:1fr}}

/* Time tracking */
.time-page{max-width:1180px;padding-bottom:72px}.time-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.time-kpis .kpi-card{margin:0}.timer-card{margin-bottom:24px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm)}.timer-running{border-color:color-mix(in srgb,var(--iris) 30%,var(--line));background:linear-gradient(135deg,var(--surface),var(--iris-soft))}.timer-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:18px}.timer-state{display:flex;align-items:center;gap:7px;color:var(--emerald);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.timer-state i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 13%,transparent)}.timer-state.idle{color:var(--ink-3)}.timer-clock{margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:2.6rem;font-weight:650;letter-spacing:.02em;line-height:1}.timer-start,.timer-stop{min-width:150px;padding:12px 20px}.timer-stop{background:var(--rose);color:white}.timer-context{display:flex;align-items:center;gap:18px;padding-top:15px;border-top:1px solid var(--line);color:var(--ink-3);font-size:.75rem}.timer-context strong{color:var(--ink);font-size:.88rem}.timer-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding-top:18px;border-top:1px solid var(--line)}.timer-form-grid label{margin:0}.timer-description{grid-column:1/3}.rate-input{display:grid;grid-template-columns:auto 1fr auto;align-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface);overflow:hidden}.rate-input span{padding-left:12px;font-weight:700}.rate-input input{margin:0;border:0;box-shadow:none}.rate-input small{padding-right:11px;color:var(--ink-3);font-size:.64rem}.time-entry-section{margin-top:10px}.time-entry-section .client-summary-section-head{margin-bottom:11px}.time-entry-section .client-summary-section-head p{margin:3px 0 0;color:var(--ink-3);font-size:.72rem}.time-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.time-table{width:100%;border-collapse:collapse;min-width:880px}.time-table th{padding:11px 13px;background:var(--surface-2);color:var(--ink-3);font-size:.62rem;text-align:left;text-transform:uppercase;letter-spacing:.05em}.time-table td{padding:13px;border-top:1px solid var(--line-2);font-size:.75rem;vertical-align:middle}.time-table td strong,.time-table td small{display:block}.time-table td small{margin-top:3px;color:var(--ink-3);font-size:.64rem}.time-table .check-col{width:36px;text-align:center}.time-table .check-col input{width:15px;height:15px}.time-duration{font-weight:800;font-variant-numeric:tabular-nums}.time-table .status-badge{text-decoration:none}.time-invoice-bar{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:13px 0}.time-invoice-bar span{color:var(--ink-3);font-size:.7rem}.time-invoice-bar button:disabled{opacity:.45;cursor:not-allowed}.native-modal{display:none;position:fixed;inset:0;z-index:650;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.48);backdrop-filter:blur(4px)}.native-modal.open{display:flex}.native-modal-card{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-pop);animation:pageIn .18s ease}.native-modal-card>header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.native-modal-card>header h2{margin:3px 0 0}.native-modal-close{padding:3px 8px;border:0;background:transparent;color:var(--ink-3);font-size:1.7rem;box-shadow:none}.native-modal-close:hover{color:var(--ink);transform:none}.time-manual-card form{padding:22px}.manual-duration{display:flex;align-items:end;gap:10px;margin-bottom:20px;padding:17px;border-radius:12px;background:var(--surface-2)}.manual-duration label{flex:0 0 100px;margin:0}.manual-duration label:last-child{flex:1;margin-left:14px}.manual-duration input{margin:0;font-size:1.12rem}.manual-duration>span{padding-bottom:12px;color:var(--ink-3)}.manual-assignment,.manual-billing{display:grid;grid-template-columns:1fr 1fr;gap:12px}.time-manual-card footer{display:flex;justify-content:flex-end;gap:9px;margin:20px -22px -22px;padding:15px 22px;border-top:1px solid var(--line);background:var(--surface-2)}
@media(max-width:820px){.time-kpis,.timer-form-grid{grid-template-columns:1fr}.timer-description{grid-column:auto}.timer-top{align-items:flex-start}.timer-clock{font-size:2rem}.timer-context{align-items:flex-start;flex-direction:column;gap:6px}.manual-assignment,.manual-billing{grid-template-columns:1fr}.manual-duration{flex-wrap:wrap}.manual-duration label:last-child{flex-basis:100%;margin-left:0}}

.timer-description{display:flex;min-width:0;grid-column:1/3;grid-row:2/4;flex-direction:column}.timer-description textarea{height:100%;min-height:126px;resize:vertical}.timer-billing-stack{display:grid;min-width:0;grid-column:3;grid-row:2/4;grid-template-rows:1fr 1fr;gap:14px}.timer-billing-stack label{display:flex;min-width:0;flex-direction:column}.timer-billing-stack select,.timer-billing-stack .rate-input{margin-top:auto}
@media(max-width:820px){.timer-description,.timer-billing-stack{grid-column:auto;grid-row:auto}.timer-description textarea{min-height:112px}}

/* Expenses and expense reports */
.expense-page,.expense-report-page{max-width:1180px;padding-bottom:72px}.expense-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.expense-kpis .kpi-card{margin:0}.expense-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 190px 210px;gap:10px;margin-bottom:12px}.expense-toolbar .template-search,.expense-toolbar select{margin:0}.expense-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.expense-table{width:100%;min-width:940px;border-collapse:collapse}.expense-table th{padding:11px 13px;background:var(--surface-2);color:var(--ink-3);font-size:.62rem;text-align:left;text-transform:uppercase;letter-spacing:.05em}.expense-table td{padding:13px;border-top:1px solid var(--line-2);font-size:.73rem;vertical-align:middle}.expense-table td>strong,.expense-table td>small{display:block}.expense-table td>small{margin-top:3px;color:var(--ink-3);font-size:.63rem}.expense-table td:first-child,.expense-table th:first-child{width:38px;text-align:center}.expense-table input[type=checkbox]{width:15px;height:15px}.expense-table tfoot td{font-size:.82rem;font-weight:800;background:var(--surface-2)}.expense-reports-section{margin-top:30px}.expense-report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.expense-report-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0;padding:15px;text-decoration:none}.expense-report-card>span,.expense-report-card strong,.expense-report-card small{display:block}.expense-report-card small{margin-top:4px;color:var(--ink-3);font-size:.66rem}.expense-report-card>span:last-child{text-align:right}.expense-report-card b{margin-bottom:5px}.expense-modal-card{width:min(880px,100%)}.expense-modal-card form{padding:22px}.expense-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}.expense-form-grid label{margin:0}.expense-amount{display:grid;grid-template-columns:1fr 105px;gap:8px}.check-field{display:flex;align-items:center;gap:9px;padding-top:25px}.check-field input{width:18px;height:18px;margin:0}.expense-assignment{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:19px;padding:15px;border-radius:12px;background:var(--surface-2)}.expense-assignment label{margin:0}.expense-more{margin-top:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.expense-more summary{cursor:pointer;color:var(--ink-2);font-size:.75rem;font-weight:750}.expense-more>div{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.expense-more>div label:last-child{grid-column:1/-1}.receipt-upload{display:block;margin-top:17px;padding:15px;border:1px dashed var(--line);border-radius:10px}.receipt-upload input{margin:7px 0 0}.expense-modal-card footer,.report-modal-card>footer{display:flex;justify-content:flex-end;gap:9px;margin:20px -22px -22px;padding:15px 22px;border-top:1px solid var(--line);background:var(--surface-2)}.report-modal-card{width:min(570px,100%)}.report-modal-body{padding:22px}.report-modal-body>p{margin:0 0 17px;color:var(--ink-3);font-size:.75rem}.report-modal-card>footer{margin:0}.expense-report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:17px}.expense-report-summary>div{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.expense-report-summary small,.expense-report-summary strong{display:block}.expense-report-summary small{margin-bottom:7px;color:var(--ink-3);font-size:.64rem;text-transform:uppercase;font-weight:800}.expense-report-summary strong{font-size:1.12rem}.expense-report-delete{display:flex;justify-content:flex-end;margin-top:18px}
@media(max-width:850px){.expense-kpis,.expense-report-summary{grid-template-columns:repeat(2,1fr)}.expense-toolbar,.expense-form-grid,.expense-assignment,.expense-more>div{grid-template-columns:1fr}.expense-report-grid{grid-template-columns:1fr}.expense-more>div label:last-child{grid-column:auto}}

/* Scalable native form builder */
.forms-page{max-width:1120px}.form-list-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.form-list-kpis .kpi-card{margin:0}.form-search{max-width:440px;margin-bottom:12px}.custom-form-list{display:flex;flex-direction:column;gap:8px}.custom-form-row{display:grid;grid-template-columns:minmax(0,1fr) auto 110px auto auto;align-items:center;gap:14px;margin:0;padding:12px 14px}.custom-form-main{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none}.form-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--iris-soft);color:var(--iris-deep);font-size:1.15rem}.custom-form-main strong,.custom-form-main small,.form-response-count b,.form-response-count small{display:block}.custom-form-main small,.form-response-count small{margin-top:3px;color:var(--ink-3);font-size:.64rem}.form-response-count{text-decoration:none}.form-builder-page{max-width:none;padding:0 20px 40px}.form-builder-head{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px;border-bottom:1px solid var(--line)}.form-builder-head>div:first-child{display:grid;grid-template-columns:auto minmax(220px,420px);align-items:center;gap:2px 12px}.form-builder-head .back-link{grid-row:1/3;margin:0}.builder-title,.builder-description{margin:0;padding:2px 4px;border:0;background:transparent;box-shadow:none}.builder-title{font-family:var(--font-display);font-size:1.15rem;font-weight:800}.builder-description{font-size:.7rem;color:var(--ink-3)}.form-builder-actions{display:flex;align-items:center;gap:7px}.form-builder-layout{display:grid;grid-template-columns:230px minmax(420px,1fr) 270px;gap:14px;align-items:start;padding-top:14px}.form-toolbox,.form-properties,.form-canvas-shell{border:1px solid var(--line);border-radius:13px;background:var(--surface)}.form-toolbox,.form-properties{position:sticky;top:12px;padding:15px}.form-toolbox>strong,.form-properties strong{font-size:.77rem}.form-toolbox>p{margin:3px 0 12px;color:var(--ink-3);font-size:.65rem}.form-toolbox hr{height:1px;margin:17px 0;border:0;background:var(--line)}.form-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.form-tool-grid button{display:flex;align-items:center;gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:.62rem;text-align:left;box-shadow:none}.form-tool-grid button:hover{border-color:var(--iris);color:var(--iris-deep);transform:none}.form-tool-grid button span{display:grid;place-items:center;width:19px;height:19px;border-radius:5px;background:var(--surface);font-weight:800}.form-toolbox label,.form-properties label{margin-top:11px;font-size:.64rem}.form-toolbox select,.form-properties input,.form-properties select,.form-properties textarea{margin:4px 0 0;font-size:.7rem}.form-canvas-shell{min-height:700px;background:var(--surface-2)}.form-canvas-head{display:flex;align-items:center;justify-content:space-between;padding:11px 15px;border-bottom:1px solid var(--line);background:var(--surface);border-radius:13px 13px 0 0;color:var(--ink-2);font-size:.7rem;font-weight:750}.form-canvas-head small{color:var(--ink-3);font-size:.6rem;font-weight:500}.form-canvas{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:24px}.builder-empty{grid-column:1/-1;padding:100px 20px;text-align:center;color:var(--ink-3)}.builder-empty p{font-size:.72rem}.builder-field{position:relative;grid-column:1/-1;padding:16px 16px 16px 36px;border:1px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer}.builder-field.half{grid-column:auto}.builder-field.selected{border-color:var(--iris);box-shadow:0 0 0 2px var(--iris-soft)}.builder-field.dragging{opacity:.45}.drag-handle{position:absolute;left:12px;top:18px;color:var(--ink-3);cursor:grab}.builder-field label,.builder-field small{display:block}.builder-field label{margin:0 0 7px;font-size:.72rem}.builder-field small{margin:-3px 0 8px;color:var(--ink-3);font-size:.62rem}.builder-field input,.builder-field textarea,.builder-field select{margin:0;background:var(--surface-2)}.builder-field h2{margin:0}.builder-field p{margin:0;color:var(--ink-2);line-height:1.6}.builder-options{display:flex;flex-direction:column;gap:5px;color:var(--ink-2);font-size:.7rem}.builder-file{padding:12px;border:1px dashed var(--line);border-radius:8px;color:var(--ink-3);font-size:.68rem}.property-head{display:flex;align-items:center;justify-content:space-between}.property-head button{padding:0;border:0;background:transparent;color:var(--rose);font-size:.64rem;box-shadow:none}.property-head button:hover{transform:none}.builder-link-box{margin-top:18px;padding:10px;border-radius:9px;background:var(--surface-2)}.builder-link-box small{display:block;color:var(--ink-3);font-size:.6rem}.builder-link-box input{font-family:var(--font-ui)}.submission-list{padding:0;overflow:hidden}.submission-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line-2);text-decoration:none}.submission-row:last-child{border-bottom:0}.submission-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--iris-soft);color:var(--iris-deep);font-size:.65rem;font-weight:800}.submission-row strong,.submission-row small{display:block}.submission-row small{margin-top:3px;color:var(--ink-3);font-size:.64rem}.submission-row time{color:var(--ink-3);font-size:.67rem}.submission-detail-page{max-width:1000px}.submission-layout{display:grid;grid-template-columns:1fr 310px;gap:14px;align-items:start}.submission-answers{margin:0}.submission-answers>div{padding:14px 0;border-bottom:1px solid var(--line-2)}.submission-answers>div:last-child{border:0}.submission-answers small,.submission-answers strong{display:block}.submission-answers small{margin-bottom:6px;color:var(--ink-3);font-size:.65rem;text-transform:uppercase;font-weight:750}.submission-answers strong{white-space:pre-wrap}.submission-meta{margin:0}.public-form-body{min-height:100vh;background:linear-gradient(150deg,var(--surface-2),var(--bg));padding:50px 20px;color:var(--ink)}.public-form-wrap{width:min(760px,100%);margin:0 auto;padding:38px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-2)}.public-form-wrap>header{margin-bottom:28px}.public-form-brand{display:flex;align-items:center;gap:8px;color:var(--iris-deep);font-size:.72rem;font-weight:800}.public-form-brand i{width:9px;height:9px;border-radius:3px;background:var(--iris-deep);transform:rotate(45deg)}.public-form-wrap h1{margin:15px 0 8px;font-size:2rem}.public-form-wrap>header p{margin:0;color:var(--ink-2);line-height:1.65}.public-dynamic-form hr{height:1px;margin:24px 0;border:0;background:var(--line-2)}.public-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.public-form-grid>label,.public-form-heading,.public-form-paragraph{grid-column:1/-1}.public-form-grid>label.half{grid-column:auto}.public-form-grid label{margin:0;color:var(--ink);font-size:.76rem;font-weight:750}.public-form-grid label>small{display:block;margin:4px 0 8px;color:var(--ink-3);font-size:.65rem;font-weight:400}.public-form-grid input,.public-form-grid textarea,.public-form-grid select{margin:7px 0 0;border-color:var(--line);background:var(--surface)}.public-form-heading{padding-top:10px}.public-form-heading h2{margin:0}.public-form-heading p,.public-form-paragraph p{color:var(--ink-2);line-height:1.65}.public-choice-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.public-choice-list label{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px;font-weight:500}.public-choice-list input{width:16px;height:16px;margin:0}.public-form-submit{width:100%;margin-top:28px;padding:13px}.public-form-wrap>footer{margin-top:24px;color:var(--ink-3);font-size:.62rem;text-align:center}.public-form-success{text-align:center}.success-check{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 20px;border-radius:50%;background:var(--emerald-bg);color:var(--emerald);font-size:1.6rem}.public-form-success .public-form-brand{justify-content:center}.public-form-success p{color:var(--ink-2)}.public-form-success small{color:var(--ink-3)}

/* Form creation and designer viewport corrections */
.form-create-modal .report-modal-body{display:grid;gap:14px;padding-bottom:18px}.form-create-modal .report-modal-body label{margin:0}.form-create-modal textarea{min-height:110px;resize:vertical}.form-builder-page{padding-top:70px}.form-builder-head{min-height:auto;padding:8px 0 16px}.form-builder-actions{flex-wrap:wrap;justify-content:flex-end}.form-builder-actions .btn,.form-builder-actions button{margin-top:0}@media(max-width:1050px){.form-builder-actions{width:100%;justify-content:flex-start}}
.form-create-modal .native-modal-card>form>footer{display:flex;flex:0 0 auto;justify-content:flex-end;gap:9px;padding:16px 22px 20px;border-top:1px solid var(--line);background:var(--surface-2)}.form-template-gallery{grid-template-columns:repeat(3,minmax(180px,1fr));width:100%}.form-preset{display:flex;margin:0;min-width:0}.form-template-card{display:flex;width:100%;min-height:190px;margin:0;padding:16px;flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);text-align:left;box-shadow:none;cursor:pointer}.form-template-card:hover,.form-template-card:focus-visible{border-color:var(--iris);background:color-mix(in srgb,var(--iris-soft) 42%,var(--surface));transform:translateY(-2px);box-shadow:var(--shadow-1)}.form-template-card-top{display:flex;align-items:center;gap:10px;margin-bottom:15px}.form-template-icon{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border-radius:9px;background:var(--iris-soft);color:var(--iris-deep);font-size:1rem}.form-template-category{color:var(--ink-2);font-size:.7rem;font-weight:750;line-height:1.25}.form-template-card>strong{display:block;margin-bottom:7px;font-family:var(--font-display);font-size:.9rem;line-height:1.25}.form-template-description{display:block;color:var(--ink-2);font-size:.72rem;line-height:1.5}.form-template-action{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:15px;color:var(--iris-deep);font-size:.68rem;font-weight:800}.builder-slug-input{display:flex;align-items:center;margin-top:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);overflow:hidden}.builder-slug-input span{padding-left:8px;color:var(--ink-3);font-size:.58rem;white-space:nowrap}.builder-slug-input input{min-width:0;margin:0;border:0;background:transparent}.share-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.share-copy-row input,.share-copy-row textarea{margin:0}.share-copy-row textarea{min-height:82px;font-family:monospace;font-size:.64rem}.form-share-email{display:grid;gap:12px;padding-top:15px;border-top:1px solid var(--line)}.form-share-email label{margin:0}.form-share-email button{justify-self:end}.form-share-note{color:var(--ink-3)}.public-form-preview-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-18px -18px 24px;padding:10px 14px;border:1px solid var(--iris-line);border-radius:11px;background:var(--iris-soft);color:var(--iris-deep);font-size:.7rem}.public-form-preview-banner span{color:var(--ink-2)}@media(max-width:760px){.form-template-gallery{grid-template-columns:1fr}.share-copy-row{grid-template-columns:1fr}}
@media(max-width:1050px){.form-builder-layout{grid-template-columns:190px 1fr}.form-properties{position:static;grid-column:1/-1}.form-builder-head{align-items:flex-start;flex-direction:column;padding:14px 0}.custom-form-row{grid-template-columns:minmax(0,1fr) auto auto}.form-response-count{display:none}}@media(max-width:700px){.form-list-kpis,.public-form-grid,.submission-layout{grid-template-columns:1fr}.form-builder-layout{grid-template-columns:1fr}.form-toolbox{position:static}.form-canvas-shell{min-height:500px}.form-canvas{padding:12px}.builder-field.half{grid-column:1/-1}.public-form-wrap{padding:24px}.custom-form-row{grid-template-columns:minmax(0,1fr) auto}.custom-form-row>.status-badge,.custom-form-row>.btn{display:none}}

/* Live reporting hub */
.reports-page{max-width:1240px;padding-bottom:72px}.report-date-filter{display:flex;align-items:center;gap:7px}.report-date-filter select,.report-date-filter input{width:auto;min-width:135px;margin:0;padding:7px 9px;font-size:.68rem}.report-date-filter span{color:var(--ink-3);font-size:.65rem}.report-tabs{display:flex;align-items:center;gap:3px;margin-bottom:18px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow-x:auto}.report-tabs a{flex:0 0 auto;padding:8px 14px;border-radius:8px;color:var(--ink-2);font-size:.72rem;font-weight:750;text-decoration:none}.report-tabs a.active{background:var(--iris-soft);color:var(--iris-deep)}.report-tabs .report-export{margin-left:auto;color:var(--iris-deep)}.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:14px}.report-kpis .kpi-card{margin:0}.report-overview-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:13px;align-items:stretch}.report-overview-grid.lower{grid-template-columns:1fr 1fr;margin-top:13px}.report-overview-grid>.card{margin:0}.report-chart-card{min-height:360px}.report-chart-card .client-summary-section-head p{margin:3px 0 0;color:var(--ink-3);font-size:.65rem}.report-chart-card .client-summary-section-head>span{color:var(--ink-3);font-size:.64rem}.report-chart-legend{display:flex;justify-content:flex-end;gap:16px;margin:7px 0 4px}.report-chart-legend span{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:.61rem}.report-chart-legend span:before{content:'';width:8px;height:8px;border-radius:2px;background:currentColor}.report-chart-legend .invoiced{color:var(--iris)}.report-chart-legend .paid{color:var(--emerald)}.report-chart-legend .expense{color:var(--amber)}.report-bar-chart{display:flex;align-items:stretch;gap:10px;height:245px;padding:20px 4px 0;border-bottom:1px solid var(--line)}.report-month{display:flex;flex:1;min-width:30px;flex-direction:column;justify-content:flex-end;height:100%;text-align:center}.report-bars{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:calc(100% - 27px)}.report-bars i{display:block;width:min(15px,28%);min-height:2px;border-radius:3px 3px 0 0}.report-bars .invoiced{background:var(--iris)}.report-bars .paid{background:var(--emerald)}.report-bars .expense{background:var(--amber)}.report-month small{height:27px;padding-top:8px;color:var(--ink-3);font-size:.56rem;white-space:nowrap}.report-health-card h2,.report-ranking h2,.report-activity h2{margin-top:0}.report-health-card>div{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line-2)}.report-health-card>div span{color:var(--ink-3);font-size:.7rem}.report-health-card>div strong{font-size:.82rem}.report-ranking>a{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line-2);text-decoration:none}.report-ranking>a:last-child{border:0}.report-ranking strong,.report-ranking small,.report-ranking b{display:block}.report-ranking small{margin-top:3px;color:var(--ink-3);font-size:.62rem}.report-ranking>a>span:last-child{text-align:right}.report-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.report-mini-grid span{padding:13px;border-radius:9px;background:var(--surface-2);text-align:center}.report-mini-grid b,.report-mini-grid small{display:block}.report-mini-grid b{font-size:1.12rem}.report-mini-grid small{margin-top:4px;color:var(--ink-3);font-size:.58rem}.report-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:6px 0 13px}.report-section-head h2{margin:0}.report-section-head p{margin:4px 0 0;color:var(--ink-3);font-size:.72rem}.report-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.report-table{width:100%;min-width:900px;border-collapse:collapse}.report-table th{padding:11px 13px;background:var(--surface-2);color:var(--ink-3);font-size:.6rem;text-align:left;text-transform:uppercase;letter-spacing:.05em}.report-table td{padding:13px;border-top:1px solid var(--line-2);font-size:.72rem}.report-table td strong,.report-table td small{display:block}.report-table td small{margin-top:3px;color:var(--ink-3);font-size:.61rem}.report-table td a{text-decoration:none}.report-table .positive{color:var(--emerald);font-weight:750}.report-table .negative{color:var(--rose);font-weight:750}.report-margin{display:inline-block;width:54px;height:5px;margin-right:7px;border-radius:9px;background:var(--line);vertical-align:middle;overflow:hidden}.report-margin i{display:block;height:100%;background:var(--emerald)}
@media(max-width:950px){.reports-page .page-head{align-items:flex-start;flex-direction:column}.report-date-filter{flex-wrap:wrap}.report-kpis{grid-template-columns:repeat(2,1fr)}.report-overview-grid,.report-overview-grid.lower{grid-template-columns:1fr}}@media(max-width:600px){.report-kpis{grid-template-columns:1fr}.report-date-filter select,.report-date-filter input{min-width:120px}.report-chart-card{padding:14px}.report-bar-chart{gap:4px}}
@media(max-width:680px){.project-drawer-kpis,.project-overview-kpis{grid-template-columns:1fr 1fr}.project-drawer-meta{grid-template-columns:1fr}.project-drawer-sections{grid-template-columns:1fr}.project-drawer-sections .drawer-lead-section{grid-column:auto}.project-quick-actions form{margin-left:0}.project-date-row{grid-template-columns:1fr}.project-upload-row form,.project-task-form-grid,.project-milestone-add{grid-template-columns:1fr}.project-milestone-row{grid-template-columns:auto minmax(0,1fr)}.project-milestone-row>b,.project-milestone-row>a,.project-milestone-row>form:last-child{grid-column:2}.project-detail-list>div{grid-template-columns:1fr;gap:3px}}

/* ============================================================
   MOBILE APPLICATION SYSTEM
   Shared shell, navigation, touch targets, dense data and forms.
   ============================================================ */
.mobile-nav-toggle,.mobile-nav-overlay{display:none}
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  body.mobile-nav-open{overflow:hidden}
  .app-shell{display:block;min-height:100dvh;padding:0}
  .main-content,.form-builder-page{width:100%;max-width:none;padding:76px 14px 40px;margin:0}
  .mobile-nav-toggle{position:fixed;top:12px;left:12px;z-index:980;display:flex;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:5px;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-1)}
  .mobile-nav-toggle span{display:block;width:18px;height:2px;border-radius:2px;background:var(--ink);transition:transform .18s,opacity .18s}
  .mobile-nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .mobile-nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
  .mobile-nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .mobile-nav-overlay{position:fixed;inset:0;z-index:940;background:rgba(15,23,42,.5);backdrop-filter:blur(2px)}
  .mobile-nav-overlay.open{display:block}
  .sidebar,.sidebar.collapsed{position:fixed;inset:0 auto 0 0;z-index:960;display:flex;width:min(86vw,320px)!important;height:100dvh;padding:68px 14px 18px;overflow-y:auto;border-radius:0 18px 18px 0;transform:translateX(-105%);transition:transform .22s ease;box-shadow:var(--shadow-pop)}
  .sidebar.mobile-open{transform:translateX(0)}
  .sidebar-top{display:none}
  .sidebar>nav{display:block;padding:0}
  .sidebar .nav-group{margin-bottom:14px}
  .sidebar .nav-group-label{display:flex!important}
  .sidebar a.nav-item,.sidebar.collapsed a.nav-item{justify-content:flex-start;min-height:42px;padding:9px 10px}
  .sidebar.collapsed .label{display:flex}
  .sidebar.collapsed .nav-unread-badge{position:static;min-width:19px;height:19px;margin-left:auto}
  .sidebar-edge-toggle{display:none}
  .workspace-topbar,.sidebar.collapsed+.workspace-topbar{position:fixed;top:10px;right:10px;left:auto;z-index:930;width:auto;height:48px;padding:0;border:0;background:transparent}
  .workspace-topbar .brand{display:none}
  .topbar-search{width:42px;min-width:42px;max-width:42px;flex:0 0 42px;justify-content:center;margin:0 6px 0 0;padding:0;border-radius:50%}
  .topbar-search span,.topbar-search kbd{display:none}
  .profile-popover{position:fixed;top:64px;right:10px;left:10px;width:auto;max-height:calc(100dvh - 76px);overflow:auto}
  .page-head{align-items:flex-start;gap:12px;margin-bottom:18px}
  .page-head h1{font-size:clamp(1.45rem,7vw,2rem)}
  .page-head .subtitle{font-size:.84rem;line-height:1.5}
  .page-actions,.project-head-actions,.form-builder-actions,.client-quick-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .page-actions .btn,.page-actions button{min-height:40px}
  .card{padding:16px;border-radius:13px}
  .kpi-grid,.time-kpis,.expense-kpis,.report-kpis,.expense-report-summary{grid-template-columns:1fr 1fr;gap:9px}
  .kpi-card{min-height:0;padding:14px}
  .kpi-value{font-size:1.18rem}
  .dashboard-split,.client-detail-layout,.project-layout,.lead-detail-layout,.project-activity-layout,.project-financial-grid,.project-details-grid,.submission-layout,.settings-grid{grid-template-columns:1fr!important}
  .mobile-stack-grid,.panel-grid{grid-template-columns:1fr!important}
  .client-info-panel,.project-side,.form-toolbox,.form-properties{position:static}
  .form-row,.contact-form-grid,.client-edit-grid,.invoice-form-grid,.proposal-form-grid,.contract-editor-toolbar,.contract-meta-grid,.contract-fields-grid,.contract-upload-grid,.contract-edit-grid{grid-template-columns:1fr!important}
  input,select,textarea,button,.btn{font-size:16px}
  input,select,textarea{max-width:100%}
  .btn.sm,button.sm{font-size:.78rem}
  .drawer-overlay.open{position:fixed;inset:0;z-index:990;padding:0}
  .drawer-overlay .drawer,.drawer-overlay.open .drawer{width:100%;max-width:none;height:100dvh;border-radius:0;transform:none}
  .drawer-body{padding:14px}
  .drawer-foot{padding:12px 14px;flex-wrap:wrap}
  .client-list>.drawer-overlay.open{position:relative;inset:auto;z-index:auto}
  .client-list>.drawer-overlay .drawer{height:auto;border-radius:0}
  .native-modal,.app-dialog-overlay{align-items:flex-start;padding:8px}
  .native-modal-card,.app-dialog{width:100%;max-height:calc(100dvh - 16px);border-radius:14px}
  .native-modal-card>header,.app-dialog-header{padding:16px}
  .time-manual-card form,.expense-modal-card form,.report-modal-body{padding:16px}
  .time-manual-card footer,.expense-modal-card footer{margin:18px -16px -16px;padding:12px 16px;position:sticky;bottom:-16px}
  .manual-duration{display:grid;grid-template-columns:1fr auto 1fr auto;padding:12px}
  .manual-duration label{width:auto;flex:auto}
  .manual-duration label:last-child{grid-column:1/-1;margin:0}
  .manual-assignment,.manual-billing,.expense-form-grid,.expense-assignment,.expense-more>div{grid-template-columns:1fr}
  .table-wrap,.admin-table-scroll,.time-table-wrap,.expense-table-wrap,.report-table-wrap,.invoice-table-wrap{margin-right:-14px;margin-left:-14px;padding-left:14px;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  table{font-size:.76rem}
  .time-table,.expense-table,.report-table{min-width:720px}
  .time-invoice-bar{align-items:stretch;flex-direction:column}
  .time-invoice-bar .btn{width:100%}
  .timer-card{padding:16px}
  .timer-top{align-items:stretch;flex-direction:column}
  .timer-start,.timer-stop{width:100%;min-width:0}
  .timer-context{align-items:flex-start;flex-direction:column;gap:6px}
  .client-list-row,.list-row,.invoice-row{min-width:0}
  .project-detail-head{align-items:flex-start;flex-direction:column}
  .project-title-block{align-items:flex-start}
  .project-detail-tabs,.report-tabs,.pipeline-tabs{margin-right:-14px;margin-left:-14px;padding-right:14px;padding-left:14px;border-right:0;border-left:0;border-radius:0;overflow-x:auto}
  .project-overview-kpis,.project-drawer-kpis{grid-template-columns:1fr 1fr}
  .project-file-grid,.project-drawer-sections{grid-template-columns:1fr}
  .project-upload-row form,.project-task-form-grid,.project-milestone-add{grid-template-columns:1fr}
  .calendar-pane{margin-right:-14px;margin-left:-14px;border-right:0;border-left:0;border-radius:0}
  .calendar-head{position:sticky;left:0;min-width:100vw;padding:10px 14px}
  .calendar-head h2{min-width:0;flex:1;font-size:.95rem}
  .calendar-head .btn{display:none}
  .calendar-weekdays,.month-grid{min-width:700px}
  .calendar-day{min-height:100px}
  .events-agenda-pane{padding:14px}
  .agenda-group .agenda-row{grid-template-columns:58px minmax(0,1fr) auto}
  .form-builder-head{padding-top:0}
  .form-builder-head>div:first-child{grid-template-columns:1fr}
  .form-builder-head .back-link{grid-row:auto}
  .form-builder-layout{grid-template-columns:1fr}
  .form-tool-grid{grid-template-columns:repeat(2,1fr)}
  .form-canvas{grid-template-columns:1fr;padding:10px}
  .builder-field,.builder-field.half{grid-column:1/-1}
  .contract-document-page{min-height:0;padding:28px 20px;font-size:11pt}
  .contract-document-shell{display:block}
  .contract-editor-help{margin-bottom:12px}
  .quick-email-window{inset:8px!important;width:auto!important;height:calc(100dvh - 16px)!important;border-radius:14px!important}
  .cmdk-overlay{padding:8px;align-items:flex-start}
  .cmdk{width:100%;max-height:calc(100dvh - 16px);margin-top:0}
  .messages-main{padding-right:0;padding-left:0}
  .messages-page-head{padding:0 14px}
  .mail-shell{display:flex;min-height:0;flex-direction:column;border-right:0;border-left:0;border-radius:0}
  .mail-folders{padding:10px 14px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}
  .mail-compose-button{width:auto;margin:0 0 8px}
  .mail-folders nav{flex-direction:row;min-width:max-content}
  .mail-folders nav a{min-height:40px;align-items:center;gap:12px}
  .mail-client-filter{display:none}
  .mail-list-pane{max-height:none;border-right:0}
  .mail-list-pane .mail-list-head{top:52px}
  .mail-list-item{padding:13px 12px 13px 8px}
  .mail-reading-pane{min-height:55dvh;border-top:8px solid var(--surface-2)}
  .mail-reading-pane>header{align-items:flex-start;padding:15px;flex-wrap:wrap}
  .mail-reading-pane h2{font-size:1rem}
  .mail-message-meta{padding:15px 15px 0}
  .mail-message-body{padding:18px 15px}
  .mail-attachments{margin:0 15px 16px;padding:10px}
  .mail-attachment-card{width:100%;min-width:0;flex-wrap:wrap}
  .mail-attachment-actions{margin-left:auto}
  .mail-project-add form,.mail-create-task form{align-items:stretch;flex-direction:column}
  .mail-project-add select,.mail-create-task select{width:100%;min-width:0}
  .mail-create-task{margin:0 15px 14px}
  .mail-action-menu>div{position:fixed;top:auto;right:10px;bottom:10px;left:10px;width:auto}
  .email-compose-window{inset:8px;width:auto;height:calc(100dvh - 16px);border-radius:14px}
  .email-compose-window form{height:calc(100% - 50px)}
  .email-compose-window textarea{min-height:0;flex:1}
  .mail-preview-modal{width:calc(100vw - 16px);height:calc(100dvh - 16px)}
  .invoice-body{padding:16px}
  .invoice-header{align-items:flex-start;flex-direction:column;gap:14px}
  .invoice-totals{width:100%;max-width:none}
  .payment-strip{overflow-x:auto}
  .client-create-row{margin:0 0 12px;justify-content:flex-start}
  .create-new-page{width:100%}
  .create-new-page .create-new-trigger{width:100%;justify-content:center}
  .create-new-page .create-new-menu{position:fixed;top:70px;right:10px;left:10px;width:auto;max-height:calc(100dvh - 80px);overflow:auto}
  .client-summary-sections{grid-template-columns:1fr}
  .client-quick-actions form:last-child{margin-left:0!important}
  .pipeline-strip{grid-template-columns:1fr 1fr}
  .lead-card-head,.template-edit-heading,.contract-library-toolbar{align-items:flex-start;flex-direction:column}
  .settings-tabs{overflow-x:auto;white-space:nowrap}
  .admin-content{padding:24px 12px 30px}
  .admin-table-scroll{margin:0}
}
@media(max-width:480px){
  .main-content,.form-builder-page{padding-right:10px;padding-left:10px}
  .kpi-grid,.time-kpis,.expense-kpis,.report-kpis,.expense-report-summary,.project-overview-kpis,.project-drawer-kpis{grid-template-columns:1fr}
  .home-tip-card,.home-footer-links{grid-template-columns:1fr}
  .home-tip-art{display:none}
  .home-tip-link,.home-footer-support{grid-column:auto}
  .page-actions>.btn,.page-actions>button{flex:1 1 auto;justify-content:center}
  .app-dialog-actions{padding:12px;flex-wrap:wrap}
  .app-dialog-actions .btn{flex:1}
  .public-form-body{padding:14px 8px}
  .public-form-wrap{padding:18px;border-radius:14px}
  .public-form-wrap h1{font-size:1.5rem}
}

/* Branded post-checkout confirmation. */
.payment-success-body{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,var(--iris-soft),transparent 42%),var(--bg);color:var(--ink)}
.payment-success-card{width:min(620px,100%);padding:46px;border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-pop);text-align:center}
.payment-success-mark{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 22px;border-radius:50%;background:var(--emerald-bg);color:var(--emerald);box-shadow:0 0 0 10px color-mix(in srgb,var(--emerald-bg) 55%,transparent)}
.payment-success-card h1{margin:10px auto 12px;font-size:clamp(1.7rem,5vw,2.4rem);line-height:1.12;max-width:14ch}
.payment-success-card>p{max-width:52ch;margin:0 auto;color:var(--ink-2);line-height:1.65}
.payment-success-summary{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:10px;margin:28px 0;padding:14px;border-radius:14px;background:var(--surface-2);text-align:left}
.payment-success-summary span{min-width:0;padding:7px 9px}.payment-success-summary small,.payment-success-summary strong{display:block}.payment-success-summary small{margin-bottom:5px;color:var(--ink-3);font-size:.62rem;font-weight:750;text-transform:uppercase}.payment-success-summary strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}
.payment-success-return{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:220px;padding:12px 20px;text-decoration:none}.payment-success-return span{font-size:1.1rem}.payment-success-note{display:block;margin-top:16px;color:var(--ink-3)}
@media(max-width:560px){.payment-success-body{padding:10px}.payment-success-card{padding:30px 18px;border-radius:18px}.payment-success-summary{grid-template-columns:1fr}.payment-success-summary span{text-align:center}.payment-success-return{width:100%;min-width:0}}

/* Compact, consistent action hierarchy for client and project surfaces. */
.entity-toolbar{position:relative;align-items:center;flex-wrap:nowrap}.entity-toolbar>.portal-access-status{margin-left:4px}.entity-action-menu{position:relative;margin-left:auto}.entity-action-menu>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer}.entity-action-menu>summary::-webkit-details-marker{display:none}.entity-action-menu>summary span{font-size:1rem;line-height:0}.entity-action-menu>div{position:absolute;top:calc(100% + 7px);right:0;z-index:240;width:210px;padding:6px;border:1px solid var(--line);border-radius:11px;background:var(--surface);box-shadow:var(--shadow-pop)}.entity-action-menu a,.entity-action-menu button{display:flex;width:100%;align-items:center;gap:9px;margin:0;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--ink);font-size:.74rem;font-weight:650;text-align:left;text-decoration:none;box-shadow:none}.entity-action-menu a:hover,.entity-action-menu button:hover{background:var(--surface-2);transform:none}.entity-action-menu button.danger{color:var(--rose)}.entity-action-menu form,.project-quick-actions .entity-action-menu form{margin:0}.client-list{overflow:visible}.project-quick-actions{position:relative;flex-wrap:nowrap}.project-quick-actions>.entity-action-menu{margin-left:auto}.create-new-project .create-new-menu{left:0;right:auto}.project-head-actions .create-new-project .create-new-menu{left:auto;right:0}
.entity-action-menu form{width:100%}.entity-action-menu a>svg,.entity-action-menu button>svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.entity-action-menu a>span,.entity-action-menu button>span{min-width:0;flex:1}.entity-action-menu>div>a,.entity-action-menu>div>button,.entity-action-menu>div>form>button{justify-content:flex-start;text-align:left}
@media(max-width:760px){.entity-toolbar{width:100%;padding:12px 14px}.entity-toolbar>.portal-access-status{min-width:0;overflow:hidden;text-overflow:ellipsis}.entity-action-menu>div{position:fixed;top:auto;right:10px;bottom:10px;left:10px;width:auto;padding:8px}.entity-action-menu a,.entity-action-menu button{min-height:44px;font-size:.85rem}.project-quick-actions{padding:12px 14px}.project-head-actions .create-new-project .create-new-menu,.create-new-project .create-new-menu{position:fixed;top:70px;right:10px;left:10px;width:auto;max-height:calc(100dvh - 80px);overflow:auto}}

/* Selected client rows and their nested quick-look surface. */
.client-list-row.expanded{position:relative;background:linear-gradient(90deg,var(--iris-soft),var(--surface-2) 55%);box-shadow:none;z-index:2}.client-list-row.expanded .clr-chevron{color:var(--iris-deep);transform:rotate(90deg)}.client-list>.drawer-overlay{border-top:1px solid var(--iris-line);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 82%,var(--iris-soft));box-shadow:none}.client-list>.drawer-overlay .drawer{border-color:var(--line);background:transparent}.client-list>.drawer-overlay .client-summary-section,.client-list>.drawer-overlay .kpi-card{background:var(--surface);box-shadow:0 1px 2px rgba(15,23,42,.03)}

/* Brand color touchpoints: compact panel titles match the active workspace palette. */
.client-summary-section-head h2,.client-summary-section-head h3,.drawer-section-title,.drawer-section-title h2,.drawer-section-title h3{color:var(--iris-deep)}
.branding-intro{margin:-4px 0 18px;max-width:760px}.branding-theme-grid{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(360px,1.45fr);gap:16px;margin-bottom:22px}.branding-theme-grid>div{padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.branding-theme-grid .s-label{margin-bottom:9px}.branding-mode-toggle{width:max-content}.branding-palette-toggle{grid-template-columns:repeat(3,minmax(0,1fr))}.branding-palette-toggle button{background:var(--surface)}
@media(max-width:720px){.branding-theme-grid{grid-template-columns:1fr}.branding-palette-toggle{grid-template-columns:1fr}}

/* Professional, server-rendered client project workspace. */
.portal-workspace-page{min-height:100dvh;background:var(--surface-2);color:var(--ink)}
.portal-workspace-topbar{position:sticky;top:0;z-index:50;display:flex;height:70px;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1380px)/2));overflow:hidden;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px)}
.portal-header-banner{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.52}.portal-workspace-topbar.has-brand-banner:after{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--surface) 48%,transparent),color-mix(in srgb,var(--surface) 72%,transparent))}.portal-brand,.portal-account{position:relative;z-index:2}.portal-workspace-topbar.has-brand-banner .portal-brand,.portal-workspace-topbar.has-brand-banner .portal-account{padding:6px 9px;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface) 82%,transparent);box-shadow:var(--shadow-1);backdrop-filter:blur(8px)}
.portal-brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.portal-brand .brand-mark{display:grid;place-items:center;width:38px;height:38px;overflow:hidden;border-radius:11px;background:var(--iris);color:#fff;font-weight:850}.portal-brand .brand-mark.has-logo{border:1px solid color-mix(in srgb,var(--line) 75%,transparent);background:var(--surface)}.portal-brand .brand-mark img{width:100%;height:100%;object-fit:contain}.portal-brand>span:last-child,.portal-account{display:flex;flex-direction:column}.portal-brand strong{font-size:.83rem}.portal-brand small,.portal-account small{color:var(--ink-3);font-size:.62rem}.portal-account{align-items:flex-end;font-size:.74rem}
.portal-workspace-shell{display:grid;grid-template-columns:250px minmax(0,1fr);width:min(1380px,100%);min-height:calc(100dvh - 70px);margin:0 auto}.portal-workspace-sidebar{position:sticky;top:70px;height:calc(100dvh - 70px);padding:24px 18px;border-right:1px solid var(--line);background:var(--surface)}
.portal-project-picker{margin:0 0 22px;color:var(--ink-3);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em}.portal-project-picker select{margin-top:7px;background:var(--surface-2);font-size:.76rem;text-transform:none}
.portal-section-nav{display:flex;flex-direction:column;gap:4px}.portal-section-nav a{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;border-radius:9px;color:var(--ink-2);font-size:.76rem;font-weight:700;text-decoration:none}.portal-section-nav a:hover{background:var(--surface-2)}.portal-section-nav a.active{background:var(--iris-soft);color:var(--iris-deep)}.portal-section-nav i{font-style:normal;text-align:center}.portal-section-nav b{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:var(--surface);font-size:.55rem}.portal-sidebar-help{position:absolute;right:18px;bottom:22px;left:18px;padding:13px;border-radius:10px;background:var(--surface-2)}.portal-sidebar-help strong{font-size:.72rem}.portal-sidebar-help p{margin:5px 0;color:var(--ink-3);font-size:.64rem;line-height:1.45}.portal-sidebar-help a{color:var(--iris-deep);font-size:.65rem;font-weight:750;text-decoration:none}
.portal-workspace-main{min-width:0;padding:32px 36px 70px}.portal-project-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.portal-project-header h1{margin:4px 0 6px;font-size:1.8rem}.portal-project-header p{max-width:720px;margin:0;color:var(--ink-2);line-height:1.55}.portal-project-status{display:flex;align-items:flex-end;flex-direction:column;gap:7px}.portal-project-status strong{font-size:.68rem;color:var(--ink-3)}
.portal-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.portal-metric-grid article{padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-1)}.portal-metric-grid small,.portal-metric-grid strong,.portal-metric-grid em{display:block}.portal-metric-grid small{margin-bottom:7px;color:var(--ink-3);font-size:.61rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.portal-metric-grid strong{font-size:1.25rem}.portal-metric-grid em{margin-top:5px;color:var(--ink-3);font-size:.62rem;font-style:normal}.portal-metric-grid article>span{display:block;height:5px;margin-top:10px;border-radius:99px;background:var(--line)}.portal-metric-grid article>span i{display:block;height:100%;border-radius:inherit;background:var(--iris)}
.portal-overview-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.portal-panel{margin:0;padding:22px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-1)}.portal-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.portal-panel>header h2{margin:3px 0 0;font-size:1.05rem}.portal-panel>header p{margin:5px 0 0;color:var(--ink-3);font-size:.7rem}.portal-panel>header>a{color:var(--iris-deep);font-size:.68rem;font-weight:750;text-decoration:none}.portal-scope-panel>p{min-height:55px;color:var(--ink-2);line-height:1.65}.portal-scope-panel dl{display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px;margin:18px 0 0}.portal-scope-panel dl>div{padding:12px 0;border-top:1px solid var(--line-2)}.portal-scope-panel dt{color:var(--ink-3);font-size:.61rem;font-weight:750;text-transform:uppercase}.portal-scope-panel dd{margin:4px 0 0;font-size:.76rem;font-weight:700}.portal-overview-activity{grid-column:1/-1}
.portal-milestones,.portal-activity-list{display:flex;flex-direction:column}.portal-milestones>div,.portal-activity-list article{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid var(--line-2)}.portal-milestones>div:first-child,.portal-activity-list article:first-child{border-top:0}.portal-milestones i,.portal-activity-list i{display:grid;place-items:center;width:29px;height:29px;flex:0 0 auto;border-radius:8px;background:var(--surface-2);color:var(--ink-3);font-style:normal}.portal-milestones .done i{background:var(--emerald-bg);color:var(--emerald)}.portal-milestones span,.portal-activity-list span{min-width:0;flex:1}.portal-milestones strong,.portal-milestones small,.portal-activity-list strong,.portal-activity-list small{display:block}.portal-milestones strong,.portal-activity-list strong{font-size:.75rem}.portal-milestones small,.portal-activity-list small{margin-top:3px;color:var(--ink-3);font-size:.62rem}.portal-milestones b{font-size:.7rem}
.portal-section-panel{min-height:560px}.portal-timeline{max-width:820px}.portal-timeline article{display:grid;grid-template-columns:105px 14px minmax(0,1fr);gap:12px;min-height:78px}.portal-timeline time{padding-top:2px;color:var(--ink-3);font-size:.64rem;text-align:right}.portal-timeline article>i{position:relative;width:9px;height:9px;margin-top:4px;border-radius:50%;background:var(--iris)}.portal-timeline article>i:after{content:'';position:absolute;top:12px;bottom:-58px;left:4px;width:1px;background:var(--line)}.portal-timeline article:last-child>i:after{display:none}.portal-timeline article>div{padding-bottom:18px}.portal-timeline small,.portal-timeline strong,.portal-timeline span{display:block}.portal-timeline small{color:var(--ink-3);font-size:.61rem;text-transform:uppercase;font-weight:750}.portal-timeline strong{margin-top:4px;font-size:.8rem}.portal-timeline span{margin-top:3px;color:var(--ink-2);font-size:.68rem}
.portal-upload{display:flex;align-items:center;gap:8px}.portal-upload input{max-width:240px;margin:0}.portal-file-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portal-file-card{display:grid;grid-template-columns:68px minmax(0,1fr);gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.portal-file-icon{display:grid;width:68px;height:68px;place-items:center;margin:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--iris-deep);box-shadow:none}.portal-file-icon:hover{transform:none}.portal-file-icon img{width:100%;height:100%;object-fit:cover}.portal-file-icon span{font-size:.65rem;font-weight:850}.portal-file-card>div{min-width:0}.portal-file-card>div>strong,.portal-file-card>div>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-file-card>div>strong{font-size:.74rem}.portal-file-card>div>small{margin:4px 0 8px;color:var(--ink-3);font-size:.61rem}.portal-file-card footer{display:flex;grid-column:1/-1;gap:6px;padding-top:10px;border-top:1px solid var(--line-2)}.portal-file-card footer form{margin:0 0 0 auto}.portal-preview-dialog{width:min(1000px,calc(100vw - 24px));height:min(760px,calc(100dvh - 24px));padding:0;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.portal-preview-dialog::backdrop{background:rgba(15,23,42,.65)}.portal-preview-dialog header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.portal-preview-dialog header button{padding:2px 8px;border:0;background:transparent;color:var(--ink);font-size:1.5rem;box-shadow:none}.portal-preview-dialog iframe{width:100%;height:calc(100% - 50px);border:0;background:#fff}
.portal-messages-panel{padding-bottom:0;overflow:hidden}.portal-conversation{display:flex;max-height:520px;flex-direction:column;gap:10px;padding:4px 3px 20px;overflow-y:auto}.portal-conversation article{align-self:flex-start;width:min(78%,680px);padding:12px 14px;border-radius:4px 13px 13px 13px;background:var(--surface-2)}.portal-conversation article.inbound{align-self:flex-end;border-radius:13px 4px 13px 13px;background:var(--iris-soft)}.portal-conversation article>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.portal-conversation strong{font-size:.7rem}.portal-conversation time{color:var(--ink-3);font-size:.58rem}.portal-conversation p{margin:7px 0 0;white-space:pre-wrap;color:var(--ink-2);font-size:.78rem;line-height:1.55}.portal-message-compose{position:sticky;bottom:0;margin:0 -22px;padding:14px 22px;border-top:1px solid var(--line);background:var(--surface)}.portal-message-compose textarea{min-height:95px;margin:0}.portal-message-compose footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}.portal-message-compose footer span{color:var(--ink-3);font-size:.62rem}
.portal-billing-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.portal-billing-summary span{padding:15px;border-radius:10px;background:var(--surface-2)}.portal-billing-summary small,.portal-billing-summary strong{display:block}.portal-billing-summary small{margin-bottom:6px;color:var(--ink-3);font-size:.6rem;text-transform:uppercase;font-weight:750}.portal-billing-summary strong{font-size:1.1rem}.portal-invoice-list{display:flex;flex-direction:column;gap:9px}.portal-invoice-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:14px;border:1px solid var(--line);border-radius:11px}.portal-invoice-list article>div{display:flex;align-items:center;gap:11px;min-width:0}.portal-invoice-icon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border-radius:9px;background:var(--emerald-bg);color:var(--emerald);font-weight:850}.portal-invoice-list article>div span:last-child,.portal-invoice-list article>span{min-width:0}.portal-invoice-list article strong,.portal-invoice-list article small,.portal-invoice-list article>span b{display:block}.portal-invoice-list article small{margin-top:4px;overflow:hidden;color:var(--ink-3);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.portal-invoice-list article>span{text-align:right}.portal-invoice-list article>span strong{margin-bottom:5px}.portal-invoice-list article footer{display:flex;gap:6px}
.portal-people-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.portal-people-list article{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid var(--line);border-radius:10px}.portal-people-list article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--iris-soft);color:var(--iris-deep);font-size:.68rem;font-weight:850}.portal-people-list article>div{display:flex;min-width:0;flex-direction:column}.portal-people-list strong{font-size:.75rem}.portal-people-list strong b{margin-left:5px;color:var(--iris-deep);font-size:.55rem;text-transform:uppercase}.portal-people-list a,.portal-people-list small{overflow:hidden;color:var(--ink-3);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.portal-people-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.portal-people-actions form{padding:16px;border-radius:11px;background:var(--surface-2)}.portal-people-actions h3{margin:0 0 11px}.portal-people-actions input,.portal-people-actions select{margin:7px 0}.portal-people-actions p{color:var(--ink-3);font-size:.65rem}.portal-empty-wrap{width:min(700px,calc(100% - 24px));margin:80px auto}
@media(max-width:980px){.portal-workspace-shell{grid-template-columns:210px minmax(0,1fr)}.portal-workspace-main{padding:24px 20px}.portal-metric-grid{grid-template-columns:repeat(2,1fr)}.portal-overview-grid{grid-template-columns:1fr}.portal-overview-activity{grid-column:auto}.portal-file-grid{grid-template-columns:1fr}.portal-invoice-list article{grid-template-columns:1fr auto}.portal-invoice-list article footer{grid-column:1/-1}}
@media(max-width:720px){.portal-workspace-topbar{height:60px;padding:0 12px}.portal-account span{display:none}.portal-workspace-shell{display:block}.portal-workspace-sidebar{position:sticky;top:60px;z-index:30;width:100%;height:auto;padding:10px 12px;border-right:0;border-bottom:1px solid var(--line)}.portal-project-picker{margin:0 0 8px}.portal-project-picker select{margin:0}.portal-section-nav{flex-direction:row;overflow-x:auto}.portal-section-nav a{display:flex;min-width:max-content;padding:8px 10px}.portal-section-nav a i{display:none}.portal-sidebar-help{display:none}.portal-workspace-main{padding:20px 12px 50px}.portal-project-header{align-items:flex-start;flex-direction:column;gap:10px}.portal-project-header h1{font-size:1.45rem}.portal-project-status{align-items:flex-start;flex-direction:row}.portal-metric-grid{grid-template-columns:1fr 1fr}.portal-panel{padding:16px}.portal-panel>header{align-items:flex-start;flex-direction:column}.portal-scope-panel dl,.portal-billing-summary,.portal-people-list,.portal-people-actions{grid-template-columns:1fr}.portal-timeline article{grid-template-columns:75px 12px minmax(0,1fr)}.portal-upload{width:100%;align-items:stretch;flex-direction:column}.portal-upload input{max-width:none}.portal-conversation article{width:90%}.portal-message-compose{margin:0 -16px;padding:12px 16px}.portal-message-compose footer{align-items:stretch;flex-direction:column}.portal-message-compose footer .btn{width:100%}.portal-invoice-list article{grid-template-columns:1fr}.portal-invoice-list article>span{text-align:left}.portal-invoice-list article footer{grid-column:auto;flex-wrap:wrap}.portal-file-card footer{flex-wrap:wrap}.portal-preview-dialog{width:calc(100vw - 12px);height:calc(100dvh - 12px)}}
@media(max-width:760px){.workspace-topbar{gap:7px}.workspace-topbar .brand{display:flex}.workspace-topbar .brand-text{display:none}.workspace-switcher select{width:min(126px,31vw)}}
@media(max-width:480px){.topbar-theme-toggle{display:none}.workspace-switcher select{width:min(112px,30vw);padding-inline:9px 25px}}
@media(max-width:440px){.portal-metric-grid{grid-template-columns:1fr}.portal-file-card{grid-template-columns:52px minmax(0,1fr)}.portal-file-icon{width:52px;height:52px}}

/* The authenticated workspace uses every pixel available beside the sidebar.
   Page-level legacy caps are intentionally overridden here so dashboard,
   list, reporting, and detail surfaces all share the same outer edge. */
main.main-content{width:100%;max-width:none}

/* Keep every app menu inside the phone viewport. The account/search menus
   become viewport panels, while create menus stay within the mobile drawer. */
@media(max-width:760px){
  .profile-popover,
  .topbar-search-results{
    box-sizing:border-box;
    width:auto;
    max-width:calc(100vw - 20px);
    right:10px;
    left:10px;
  }
  .create-new-menu{
    box-sizing:border-box;
    width:min(286px,calc(100vw - 20px));
    max-width:calc(100vw - 20px);
  }
  .create-new-floating .create-new-menu{
    right:0;
    left:auto;
    width:min(286px,calc(86vw - 28px));
  }
  .create-new-drawer .create-new-menu{
    right:auto;
    left:0;
    width:min(286px,calc(100vw - 48px));
  }
}
.lead-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.kpi-card.active-drilldown{border-color:color-mix(in srgb,var(--iris) 45%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--iris) 18%,transparent)}.tone-rose{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--rose) 7%,var(--surface)))}@media(max-width:900px){.lead-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.lead-kpi-grid{grid-template-columns:1fr}}
.document-promo{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:20px;margin:18px 0 24px;padding:22px;border:1px solid color-mix(in srgb,var(--iris) 22%,var(--line));border-radius:16px;background:linear-gradient(135deg,var(--iris-soft),var(--surface) 55%)}.document-promo-copy h2{margin:5px 0 7px;font-size:1.15rem}.document-promo-copy p{margin:0 0 15px;color:var(--ink-2);font-size:.74rem;line-height:1.55}.document-promo-copy>div{display:flex;gap:7px;flex-wrap:wrap}.document-promo-copy form{margin:0}.document-promo-templates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mini-template-card,.mini-template-card>button{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:3px 10px;width:100%;min-width:0;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-align:left;text-decoration:none;box-shadow:none}.mini-template-card>button{padding:0;border:0}.mini-template-card:hover,.mini-template-card>button:hover{border-color:var(--iris);transform:none}.mini-template-card form{margin:0}.mini-template-thumb{display:grid;grid-row:1/3;width:42px;height:48px;place-items:center;overflow:hidden;border-radius:6px;background:var(--surface-2);color:var(--iris-deep);font-weight:850}.mini-template-thumb img{width:100%;height:100%;object-fit:cover}.mini-template-card strong{overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.mini-template-card small{color:var(--ink-3);font-size:.59rem}@media(max-width:800px){.document-promo{grid-template-columns:1fr}.document-promo-templates{grid-template-columns:1fr 1fr}}@media(max-width:520px){.document-promo-templates{grid-template-columns:1fr}}

/* Phase 2 communication workspaces */
.mail-client-search{margin:0 6px 10px}.mail-client-search-field{display:flex;height:38px;align-items:center;gap:8px;margin:0;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-3);box-shadow:none}.mail-client-search-field:focus-within{border-color:var(--iris);box-shadow:0 0 0 3px var(--iris-soft);color:var(--iris-deep)}.mail-client-search-field svg{flex:0 0 auto}.mail-client-search-field input{min-width:0;height:34px;margin:0;padding:0;border:0;background:transparent;color:var(--ink);font-size:.68rem;box-shadow:none}.mail-client-search-field input:focus{border:0;outline:0;box-shadow:none}.mail-advanced-search{position:relative;top:auto;display:block}.mail-search-primary{display:flex;gap:6px}.mail-search-primary input{flex:1}.mail-filter-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px;padding-top:9px}.mail-filter-grid[hidden]{display:none}.mail-filter-grid label{margin:0;color:var(--ink-3);font-size:.59rem}.mail-filter-grid label input{margin-top:4px}.mail-filter-check{display:flex!important;align-items:center;gap:7px}.mail-filter-check input{width:auto;margin:0!important}.mail-clear-filters{align-self:center;color:var(--iris-deep);font-size:.65rem;font-weight:700}.mail-list-pane .mail-list-head,.mail-list-pane .mail-bulk-bar{position:relative;top:auto}.mail-action-menu>div{width:215px}.mail-action-menu button{display:flex;width:100%;align-items:center;gap:10px;border-radius:7px}.mail-action-menu button svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mail-action-menu button span{min-width:0;flex:1}
.mail-filter-dialog{width:min(540px,calc(100vw - 24px));padding:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop)}.mail-filter-dialog::backdrop{background:rgba(15,23,42,.6);backdrop-filter:blur(2px)}.mail-filter-dialog>form{margin:0}.mail-filter-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:19px 21px;border-bottom:1px solid var(--line)}.mail-filter-dialog h2{margin:4px 0;font-size:1.15rem}.mail-filter-dialog header p{margin:0;color:var(--ink-3);font-size:.68rem}.mail-filter-dialog header>button{padding:0 7px;border:0;background:transparent;color:var(--ink-3);font-size:1.5rem;box-shadow:none}.mail-filter-dialog-body{display:grid;gap:15px;padding:21px}.mail-filter-dialog-body label{margin:0}.mail-filter-date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mail-filter-dialog-check{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.mail-filter-dialog-check input{width:auto;margin:3px 0 0}.mail-filter-dialog-check span{display:flex;flex-direction:column}.mail-filter-dialog-check small{margin-top:3px;color:var(--ink-3);font-size:.63rem;font-weight:400}.mail-filter-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 21px;border-top:1px solid var(--line);background:var(--surface-2)}.mail-filter-dialog footer>span{display:flex;gap:7px}.mail-search-primary .active-filter{border-color:var(--iris);color:var(--iris-deep)}.filter-active-dot{display:inline-block;width:6px;height:6px;margin-left:5px;border-radius:50%;background:var(--iris)}

/* Mail controls use compact rounded rectangles instead of pill-shaped fields. */
.mail-client-search-field,.mail-search-primary input{border-radius:9px}

/* Keep every attachment's file details and actions on the same columns. */
.mail-attachments{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));align-items:center;gap:8px 12px}
.mail-attachments>strong,.mail-project-add{grid-column:1/-1;width:100%}
.mail-attachment-card{display:grid;grid-template-columns:28px minmax(0,1fr) 112px;align-items:center;gap:8px;min-width:0}
.mail-attachment-card>span:nth-child(2){min-width:0}
.mail-attachment-actions{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4px}
.mail-attachment-actions a,.mail-attachment-actions button{display:inline-flex;justify-content:center;margin:0}
@media(max-width:1050px){.mail-attachments{grid-template-columns:1fr}}
@media(max-width:520px){.mail-filter-dialog{width:calc(100vw - 12px)}.mail-filter-date-row{grid-template-columns:1fr}.mail-filter-dialog footer{align-items:stretch;flex-direction:column}.mail-filter-dialog footer>span{display:grid;grid-template-columns:1fr 1fr}.mail-filter-dialog footer .btn{text-align:center}}
.chat-main{max-width:none}.chat-shell{display:grid;grid-template-columns:340px minmax(0,1fr);height:calc(100dvh - 150px);min-height:600px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1)}.chat-thread-pane{display:flex;min-height:0;flex-direction:column;border-right:1px solid var(--line);background:var(--surface-2)}.chat-customer-search{position:relative;margin:14px}.chat-customer-search svg{position:absolute;top:50%;left:11px;transform:translateY(-50%);color:var(--ink-3)}.chat-customer-search input{margin:0;padding-left:34px;background:var(--surface)}.chat-thread-heading{display:flex;justify-content:space-between;padding:0 16px 10px;color:var(--ink-3);font-size:.65rem;text-transform:uppercase;letter-spacing:.05em}.chat-thread-list{min-height:0;overflow-y:auto}.chat-thread{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid var(--line-2);color:var(--ink);text-decoration:none}.chat-thread:hover,.chat-thread.active{background:var(--surface)}.chat-thread.active{box-shadow:inset 3px 0 var(--iris)}.chat-thread>span:nth-child(2){min-width:0}.chat-thread strong,.chat-thread small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-thread strong{font-size:.76rem}.chat-thread small{margin-top:3px;color:var(--ink-3);font-size:.64rem}.chat-thread-meta{display:flex;align-items:flex-end;flex-direction:column;gap:6px}.chat-thread-meta time{color:var(--ink-3);font-size:.56rem}.chat-thread-meta b{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--iris);color:#fff;font-size:.55rem}.chat-conversation-pane{display:flex;min-width:0;min-height:0;flex-direction:column}.chat-conversation-pane>header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}.chat-conversation-pane>header>div{min-width:0;flex:1}.chat-conversation-pane>header strong,.chat-conversation-pane>header small{display:block}.chat-conversation-pane>header small{margin-top:3px;color:var(--ink-3);font-size:.63rem}.chat-transcript{display:flex;min-height:0;flex:1;flex-direction:column;gap:10px;padding:20px;overflow-y:auto;background:linear-gradient(180deg,var(--surface-2),var(--surface))}.chat-empty{margin:auto;text-align:center}.chat-empty p{color:var(--ink-3);font-size:.72rem}.chat-bubble{align-self:flex-start;width:min(75%,680px);padding:11px 13px;border:1px solid var(--line);border-radius:4px 13px 13px;background:var(--surface)}.chat-bubble.outbound{align-self:flex-end;border-color:var(--iris-line);border-radius:13px 4px 13px 13px;background:var(--iris-soft)}.chat-bubble small,.chat-bubble time{color:var(--ink-3);font-size:.58rem}.chat-bubble p{margin:5px 0;white-space:pre-wrap;font-size:.78rem;line-height:1.55}.chat-bubble time{display:block;text-align:right}.chat-compose{padding:14px 18px;border-top:1px solid var(--line)}.chat-compose textarea{min-height:82px;margin:0;resize:vertical}.chat-compose footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.chat-compose footer small{color:var(--ink-3);font-size:.61rem}
@media(max-width:900px){.chat-shell{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:700px){.mail-search-primary{flex-wrap:wrap}.mail-search-primary input{width:100%;flex-basis:100%}.mail-filter-grid{grid-template-columns:1fr 1fr}.chat-main{padding-right:0;padding-left:0}.chat-main>.page-head{padding:0 14px}.chat-shell{display:flex;height:auto;min-height:0;flex-direction:column;border-right:0;border-left:0;border-radius:0}.chat-thread-pane{max-height:330px;border-right:0;border-bottom:1px solid var(--line)}.chat-conversation-pane{min-height:65dvh}.chat-conversation-pane>header{align-items:flex-start;flex-wrap:wrap}.chat-bubble{width:90%}.chat-compose footer{align-items:stretch;flex-direction:column}.chat-compose .btn{width:100%}}

/* Safe rich-text controls shared by staff and client portal chat. */
.rich-chat-toolbar{position:relative;display:flex;align-items:center;gap:4px;padding:6px 7px;border:1px solid var(--line);border-bottom:0;border-radius:9px 9px 0 0;background:var(--surface-2)}.rich-chat-toolbar>button,.rich-chat-emoji-wrap>button,.rich-chat-emoji-picker button{min-width:30px;height:28px;margin:0;padding:4px 7px;border:0;border-radius:6px;background:transparent;color:var(--ink-2);font-size:.68rem;box-shadow:none}.rich-chat-toolbar button:hover{background:var(--surface);color:var(--ink);transform:none}.rich-chat-emoji-wrap{position:relative;margin-left:auto}.rich-chat-emoji-wrap>button{font-size:1rem}.rich-chat-emoji-picker{position:absolute;right:0;bottom:calc(100% + 7px);z-index:30;display:grid;width:220px;grid-template-columns:repeat(6,1fr);gap:3px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-pop)}.rich-chat-emoji-picker[hidden]{display:none}.rich-chat-emoji-picker button{font-size:1rem}.rich-chat-composer textarea,.portal-message-compose[data-rich-chat-ready] textarea{margin-top:0;border-radius:0 0 9px 9px}.rich-chat-content{margin:6px 0;color:var(--ink-2);font-size:.78rem;line-height:1.55}.rich-chat-content p{margin:0 0 5px;white-space:pre-wrap}.rich-chat-content p:last-child{margin-bottom:0}.rich-chat-content ul,.rich-chat-content ol{margin:5px 0;padding-left:20px}.rich-chat-content li{margin:2px 0}.chat-bubble .rich-chat-content{color:var(--ink)}
@media(max-width:520px){.rich-chat-toolbar{overflow:visible}.rich-chat-emoji-picker{position:fixed;right:10px;bottom:92px;left:10px;width:auto;grid-template-columns:repeat(6,1fr)}}

/* Phase 3 relationship and work-management surfaces. */
.structured-address-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.structured-address-grid label{margin:0}.profile-client-edit .structured-address-grid{grid-column:1/-1}.client-activity-full{margin:0 0 20px;padding:18px}.client-activity-full .event-timeline{max-height:440px;overflow-y:auto}.contact-kpi-grid,.task-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.contact-row-main-link{display:grid;grid-template-columns:42px minmax(200px,1fr) minmax(150px,.6fr);align-items:center;gap:12px;min-width:0;color:inherit;text-decoration:none}.contact-directory-row:hover{background:var(--surface-2)}.project-progress-summary{margin:0 0 12px}.project-progress-summary>div>span,.budget-utilization>span{display:block;height:8px;margin:9px 0;border-radius:99px;background:var(--line)}.project-progress-summary i,.budget-utilization i{display:block;height:100%;border-radius:inherit;background:var(--iris)}.project-progress-summary small,.budget-utilization small{color:var(--ink-3);font-size:.65rem}.task-weight-pill{padding:3px 7px;border-radius:99px;background:var(--iris-soft);color:var(--iris-deep);font-size:.62rem}.budget-utilization{padding:18px}.budget-utilization.warning i{background:var(--amber)}.budget-utilization.danger i{background:var(--rose)}.budget-utilization p{margin:8px 0;color:var(--ink-2);font-size:.72rem}.project-task-form-grid{grid-template-columns:2fr 1fr 1fr .7fr}
@media(max-width:800px){.contact-kpi-grid,.task-kpi-grid{grid-template-columns:1fr 1fr}.contact-row-main-link{grid-template-columns:42px minmax(0,1fr)}.contact-row-main-link .contact-client-link{grid-column:2}.structured-address-grid{grid-template-columns:1fr}.project-task-form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.contact-kpi-grid,.task-kpi-grid{grid-template-columns:1fr}.contact-directory-row{grid-template-columns:1fr auto auto}.contact-row-main-link{grid-template-columns:36px minmax(0,1fr)}.project-task-form-grid{grid-template-columns:1fr}}
.contact-directory-row{grid-template-columns:minmax(0,1fr) auto auto}.info-field p{white-space:pre-line}

/* Phase 4 finance discovery and reporting. */
.invoice-filter-bar{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(130px,1fr)) auto auto;align-items:end;gap:9px;margin:0 0 18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.invoice-filter-bar label{margin:0}.invoice-filter-bar label>span{display:block;margin-bottom:5px;color:var(--ink-3);font-size:.62rem;font-weight:800}.invoice-filter-bar input,.invoice-filter-bar select{margin:0}.expense-report-grid{grid-template-columns:1fr!important}.report-mini-grid a{padding:13px;border-radius:9px;background:var(--surface-2);text-align:center;text-decoration:none;color:inherit}.report-mini-grid a:hover{background:var(--iris-soft)}.report-mini-grid a b,.report-mini-grid a small{display:block}.report-mini-grid a small{margin-top:4px;color:var(--ink-3);font-size:.68rem}.report-chart-card h2,.report-health-card h2{font-size:1.35rem}.report-health-card>div span{font-size:.8rem}.report-health-card>div strong{font-size:1rem}
@media(max-width:1000px){.invoice-filter-bar{grid-template-columns:1fr 1fr 1fr}.invoice-filter-search{grid-column:1/-1}}
@media(max-width:650px){.invoice-filter-bar{grid-template-columns:1fr}.invoice-filter-search{grid-column:auto}}

/* Modern project-chat composer. */
.rich-chat-toolbar{z-index:5;gap:7px;padding:7px 9px;border-color:var(--line);border-radius:12px 12px 0 0;background:var(--surface);box-shadow:0 1px 0 var(--line)}.rich-chat-tool-group{display:flex;gap:2px;padding-right:7px;border-right:1px solid var(--line)}.rich-chat-toolbar button{position:relative;display:inline-flex;min-width:34px;height:34px;align-items:center;justify-content:center;margin:0;padding:7px;border:0;border-radius:8px;background:transparent;color:var(--ink-3);box-shadow:none}.rich-chat-toolbar button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.rich-chat-toolbar button:hover,.rich-chat-toolbar button.active{background:var(--iris-soft);color:var(--iris-deep);transform:none}.rich-chat-toolbar button[data-tip]:after{content:attr(data-tip);position:absolute;left:50%;top:calc(100% + 7px);z-index:50;padding:5px 7px;border-radius:6px;background:var(--ink);color:var(--surface);font-size:.58rem;font-weight:650;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,-3px);transition:.15s}.rich-chat-toolbar button[data-tip]:hover:after{opacity:1;transform:translate(-50%,0)}.rich-chat-emoji-wrap{margin-left:0}.rich-chat-emoji-picker{right:auto;top:calc(100% + 8px);bottom:auto;left:-8px;width:252px;grid-template-columns:repeat(6,1fr);gap:5px;padding:12px;border-radius:14px;box-shadow:0 18px 45px rgba(15,39,55,.18)}.rich-chat-emoji-picker .emoji-picker-title{grid-column:1/-1;margin-bottom:3px;color:var(--ink-3);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.rich-chat-emoji-picker button{min-width:32px;height:32px;padding:2px;font-size:1.05rem}.rich-chat-preview-toggle{margin-left:auto!important;gap:6px;width:auto!important;padding:7px 10px!important}.rich-chat-preview-toggle>span{font-size:.64rem;font-weight:750}.rich-chat-composer textarea,.portal-message-compose[data-rich-chat-ready] textarea{min-height:120px;padding:15px 17px;border-color:var(--line);border-top:0;border-radius:0 0 12px 12px;background:var(--surface);font-size:.82rem;line-height:1.6;box-shadow:none}.rich-chat-composer textarea:focus,.portal-message-compose[data-rich-chat-ready] textarea:focus{border-color:var(--iris-line);box-shadow:inset 0 0 0 1px var(--iris-line)}.rich-chat-preview{min-height:120px;margin:0;padding:15px 17px;border:1px solid var(--iris-line);border-top:0;border-radius:0 0 12px 12px;background:var(--surface);font-size:.82rem}.rich-chat-preview:empty:before{content:'Your formatted message preview will appear here.';color:var(--ink-3)}
@media(max-width:520px){.rich-chat-toolbar{gap:3px;padding:6px}.rich-chat-tool-group{gap:0;padding-right:3px}.rich-chat-toolbar button{min-width:31px}.rich-chat-preview-toggle>span{display:none}.rich-chat-emoji-picker{position:absolute;right:0;top:calc(100% + 7px);bottom:auto;left:0;width:min(252px,calc(100vw - 54px))}}

/* Direct-message editor: formatting is applied visibly, without exposing markup. */
.rich-chat-source{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}.rich-chat-editor{min-height:62px;max-height:180px;padding:12px 14px;overflow-y:auto;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;background:var(--surface);color:var(--ink);font-size:.82rem;line-height:1.55;outline:0}.rich-chat-editor:focus{border-color:var(--iris-line);box-shadow:inset 0 0 0 1px var(--iris-line)}.rich-chat-editor.invalid{border-color:var(--rose)}.rich-chat-editor:empty:before{content:attr(data-placeholder);color:var(--ink-3);pointer-events:none}.rich-chat-editor p,.rich-chat-editor div{margin:0}.rich-chat-editor ul,.rich-chat-editor ol{margin:3px 0;padding-left:22px}.rich-chat-editor li{margin:1px 0}.rich-chat-toolbar{padding:5px 7px}.rich-chat-toolbar button{min-width:30px;height:30px;padding:6px}.rich-chat-toolbar button svg{width:16px;height:16px}.rich-chat-preview-toggle{display:none!important}.chat-compose.rich-chat-composer footer{margin-top:8px}.portal-message-compose[data-rich-chat-ready] .rich-chat-toolbar{margin-top:0}

/* Phase 5 workspace settings control center. */
.settings-page{max-width:1180px;padding-bottom:110px;scroll-behavior:smooth}.settings-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.settings-health-card{display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;text-decoration:none;box-shadow:var(--shadow-1)}.settings-health-card:hover{transform:translateY(-1px);border-color:var(--iris-line)}.settings-health-card>span:last-child,.settings-health-card small,.settings-health-card strong{display:block}.settings-health-card small{margin-bottom:3px;color:var(--ink-3);font-size:.59rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.settings-health-card strong{font-size:.72rem}.settings-health-icon{display:grid!important;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:9px;background:var(--surface-2);color:var(--ink-2);font-size:.88rem;font-weight:800}.settings-health-card.ready .settings-health-icon{background:var(--emerald-bg);color:var(--emerald)}.settings-health-card.needs-attention .settings-health-icon{background:var(--amber-bg);color:var(--amber)}.settings-section-nav{position:sticky;top:0;z-index:35;display:flex;gap:3px;margin:0 0 14px;padding:5px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-1);backdrop-filter:blur(12px)}.settings-section-nav a{padding:8px 13px;border-radius:8px;color:var(--ink-2);font-size:.68rem;font-weight:750;text-decoration:none}.settings-section-nav a:hover{background:var(--iris-soft);color:var(--iris-deep)}.settings-section-card{scroll-margin-top:68px}.settings-section-heading{display:flex;align-items:flex-start;gap:11px;margin-bottom:18px}.settings-section-heading h2{margin:0}.settings-section-heading p{margin:4px 0 0;color:var(--ink-3);font-size:.68rem}.settings-section-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:9px;background:var(--iris-soft);color:var(--iris-deep);font-size:.85rem;font-weight:850}.settings-save-bar{position:sticky;bottom:12px;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding:11px 12px 11px 16px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 12px 35px rgba(15,39,55,.16);backdrop-filter:blur(14px)}.settings-save-bar span{color:var(--ink-3);font-size:.66rem}.settings-save-bar button{margin:0;white-space:nowrap}
@media(min-width:561px){.settings-save-bar{margin-right:150px}}
@media(max-width:900px){.settings-health{grid-template-columns:1fr 1fr}.settings-page .kpi-grid{grid-template-columns:1fr!important}}@media(max-width:560px){.settings-health{grid-template-columns:1fr}.settings-section-nav{overflow-x:auto}.settings-section-nav a{flex:0 0 auto}.settings-save-bar{align-items:stretch;flex-direction:column}.settings-save-bar button{width:100%}.settings-page{padding-bottom:130px}}

/* Expanded brand palettes and consistent themed card-title accents. */
[data-color-theme="sunny"]{--bg:#fff8ec;--surface:#fffdf9;--surface-2:#ffebcc;--surface-3:#f5dcc0;--ink:#001b2e;--ink-2:#285762;--ink-3:#6a7775;--line:#e8d2b7;--line-2:#f3e5d5;--iris:#ff7b00;--iris-deep:#b84a08;--iris-soft:#fff0dc;--iris-line:#f3b26f;--emerald:#1b6974;--emerald-bg:#e0f0f1;--amber:#b95800;--amber-bg:#ffebcc;--rose:#832c0f;--rose-bg:#f9e3da;--sky:#1b6974;--sky-bg:#e0f0f1;--violet:#832c0f;--violet-bg:#f9e3da;--thread:linear-gradient(120deg,#001b2e,#1b6974 30%,#ffebcc 55%,#ff7b00 76%,#832c0f);--theme-accent:linear-gradient(180deg,#1b6974,#ff7b00 65%,#832c0f)}
[data-theme="dark"][data-color-theme="sunny"]{--iris:#ff9b3d;--iris-deep:#ffd3a5;--iris-soft:rgba(255,123,0,.18);--iris-line:rgba(255,155,61,.42);--emerald:#55b9c2;--emerald-bg:rgba(27,105,116,.3);--amber:#ffc36c;--amber-bg:rgba(255,123,0,.18);--rose:#e98562;--rose-bg:rgba(131,44,15,.3);--sky:#55b9c2;--sky-bg:rgba(27,105,116,.3)}
[data-color-theme="pink"]{--bg:#fff7fa;--surface:#fffdfd;--surface-2:#fde2e8;--surface-3:#f9c7d4;--ink:#481829;--ink-2:#754254;--ink-3:#9a6d7b;--line:#f0c5d1;--line-2:#f9e4e9;--iris:#eb5785;--iris-deep:#b82f5d;--iris-soft:#fde2e8;--iris-line:#ef9db6;--emerald:#c94370;--emerald-bg:#fde2e8;--amber:#d95b84;--amber-bg:#fde7ed;--rose:#d62e66;--rose-bg:#fde2e8;--sky:#ef789d;--sky-bg:#fde7ed;--violet:#c53a69;--violet-bg:#fbe1e9;--thread:linear-gradient(120deg,#fde2e8,#f9b9ca 28%,#f5a0ba 52%,#ef789d 76%,#eb5785);--theme-accent:linear-gradient(180deg,#f9b9ca,#ef789d 58%,#eb5785)}
[data-theme="dark"][data-color-theme="pink"]{--iris:#ff86a9;--iris-deep:#ffd0dd;--iris-soft:rgba(235,87,133,.2);--iris-line:rgba(255,134,169,.42);--emerald:#f49ab6;--emerald-bg:rgba(235,87,133,.2);--rose:#ff86a9;--rose-bg:rgba(214,46,102,.24);--sky:#f4a3bb;--sky-bg:rgba(239,120,157,.2)}
[data-color-theme="sand"]{--bg:#f7f3ef;--surface:#fffdfb;--surface-2:#f4e9dd;--surface-3:#e1d1c5;--ink:#382e29;--ink-2:#65564d;--ink-3:#8b7b71;--line:#d9cbc1;--line-2:#eee5df;--iris:#a47f6b;--iris-deep:#765747;--iris-soft:#eee2da;--iris-line:#ccb3a4;--emerald:#8f7769;--emerald-bg:#eee7e2;--amber:#9b755f;--amber-bg:#f1e6dd;--rose:#9a665a;--rose-bg:#f1dfdb;--sky:#a8998d;--sky-bg:#efebe7;--violet:#80645a;--violet-bg:#eee3df;--thread:linear-gradient(120deg,#efefec,#d1c7bd 27%,#f4e9dd 52%,#e1d1c5 75%,#ccb3a4);--theme-accent:linear-gradient(180deg,#a8998d,#ccb3a4 55%,#8f6b59)}
[data-theme="dark"][data-color-theme="sand"]{--iris:#d6b6a5;--iris-deep:#f3ddd1;--iris-soft:rgba(204,179,164,.2);--iris-line:rgba(214,182,165,.42);--emerald:#c8b1a4;--emerald-bg:rgba(143,119,105,.25);--rose:#d9a99e;--rose-bg:rgba(154,102,90,.24);--sky:#c9bcb2;--sky-bg:rgba(168,153,141,.22)}
.branding-palette-toggle{grid-template-columns:repeat(2,minmax(0,1fr))}.branding-palette-toggle button{justify-content:flex-start}.branding-palette-toggle .palette-swatches i{width:8px}.branding-palette-toggle [data-color-theme-set="sunny"] .palette-swatches i:nth-child(1){background:#001b2e}.branding-palette-toggle [data-color-theme-set="sunny"] .palette-swatches i:nth-child(2){background:#1b6974}.branding-palette-toggle [data-color-theme-set="sunny"] .palette-swatches i:nth-child(3){background:#ffebcc}.branding-palette-toggle [data-color-theme-set="sunny"] .palette-swatches i:nth-child(4){background:#ff7b00}.branding-palette-toggle [data-color-theme-set="sunny"] .palette-swatches i:nth-child(5){background:#832c0f}.branding-palette-toggle [data-color-theme-set="pink"] .palette-swatches i:nth-child(1){background:#fde2e8}.branding-palette-toggle [data-color-theme-set="pink"] .palette-swatches i:nth-child(2){background:#f9b9ca}.branding-palette-toggle [data-color-theme-set="pink"] .palette-swatches i:nth-child(3){background:#f5a0ba}.branding-palette-toggle [data-color-theme-set="pink"] .palette-swatches i:nth-child(4){background:#ef789d}.branding-palette-toggle [data-color-theme-set="pink"] .palette-swatches i:nth-child(5){background:#eb5785}.branding-palette-toggle [data-color-theme-set="sand"] .palette-swatches i:nth-child(1){background:#efefec}.branding-palette-toggle [data-color-theme-set="sand"] .palette-swatches i:nth-child(2){background:#d1c7bd}.branding-palette-toggle [data-color-theme-set="sand"] .palette-swatches i:nth-child(3){background:#f4e9dd}.branding-palette-toggle [data-color-theme-set="sand"] .palette-swatches i:nth-child(4){background:#e1d1c5}.branding-palette-toggle [data-color-theme-set="sand"] .palette-swatches i:nth-child(5){background:#ccb3a4}
.card h2,.portal-panel h2,.project-panel h2,.drawer-lead-section>h3,.drawer-section-title{display:flex;align-items:center;gap:9px}.card h2:before,.portal-panel h2:before,.project-panel h2:before,.drawer-lead-section>h3:before,.drawer-section-title:before{content:'';display:inline-block;width:4px;height:1.08em;flex:0 0 4px;border-radius:99px;background:var(--theme-accent,var(--iris))}.card .kpi-label:before,.kpi-card h2:before{display:none}
@media(max-width:560px){.branding-palette-toggle{grid-template-columns:1fr}}

/* Large visual theme picker and solid theme-colored card titles. */
.branding-theme-grid{display:block;margin-bottom:22px;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.branding-theme-grid>div{padding:0;border:0;background:transparent}.branding-picker-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.branding-picker-head .s-label{margin:0 0 3px}.branding-picker-head small{color:var(--ink-3);font-size:.63rem}.branding-mode-toggle{flex:0 0 auto;width:auto}.branding-mode-toggle button{min-width:82px;margin:0}.branding-palette-toggle{grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px}.branding-palette-toggle button{display:flex;min-width:0;align-items:stretch;flex-direction:column;gap:9px;margin:0;padding:9px;border-radius:12px;background:var(--surface);text-align:left}.branding-palette-toggle button>span:last-child{padding:0 3px 3px;color:var(--ink);font-size:.7rem;font-weight:750}.branding-palette-toggle .palette-swatches{display:flex;width:100%;height:76px;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:9px}.branding-palette-toggle .palette-swatches i{width:auto;height:100%;flex:1;margin:0;border:0;border-radius:0}.branding-palette-toggle button.active{border-color:var(--iris);box-shadow:0 0 0 2px var(--iris-soft),0 8px 22px rgba(15,39,55,.08)}
.branding-palette-toggle [data-color-theme-set="granite"] .palette-swatches i:nth-child(1){background:#f8f9fa}.branding-palette-toggle [data-color-theme-set="granite"] .palette-swatches i:nth-child(2){background:#ced4da}.branding-palette-toggle [data-color-theme-set="granite"] .palette-swatches i:nth-child(3){background:#777d82}.branding-palette-toggle [data-color-theme-set="granite"] .palette-swatches i:nth-child(4){background:#4b5055}.branding-palette-toggle [data-color-theme-set="granite"] .palette-swatches i:nth-child(5){background:#202326}.branding-palette-toggle [data-color-theme-set="slate"] .palette-swatches i:nth-child(1){background:#e1f1f7}.branding-palette-toggle [data-color-theme-set="slate"] .palette-swatches i:nth-child(2){background:#5dc1d8}.branding-palette-toggle [data-color-theme-set="slate"] .palette-swatches i:nth-child(3){background:#006494}.branding-palette-toggle [data-color-theme-set="slate"] .palette-swatches i:nth-child(4){background:#343a40}.branding-palette-toggle [data-color-theme-set="slate"] .palette-swatches i:nth-child(5){background:#e01e37}.branding-palette-toggle [data-color-theme-set="karbar"] .palette-swatches i:nth-child(1){background:#456A64}.branding-palette-toggle [data-color-theme-set="karbar"] .palette-swatches i:nth-child(2){background:#154744}.branding-palette-toggle [data-color-theme-set="karbar"] .palette-swatches i:nth-child(3){background:#E5C5A7}.branding-palette-toggle [data-color-theme-set="karbar"] .palette-swatches i:nth-child(4){background:#FDF6ED}.branding-palette-toggle [data-color-theme-set="karbar"] .palette-swatches i:nth-child(5){background:#2A5854}
.card h2,.portal-panel h2,.project-panel h2,.drawer-lead-section>h3,.drawer-section-title{color:var(--iris-deep)}.card h2:before,.portal-panel h2:before,.project-panel h2:before,.drawer-lead-section>h3:before,.drawer-section-title:before{background:var(--iris)}
[data-color-theme="karbar"] .card{border-left:4px solid #154744}
[data-color-theme="karbar"] .card h2,[data-color-theme="karbar"] .portal-panel h2,[data-color-theme="karbar"] .project-panel h2,[data-color-theme="karbar"] .drawer-lead-section>h3,[data-color-theme="karbar"] .drawer-section-title{width:fit-content;max-width:100%;padding:7px 11px;border-radius:0 8px 8px 0;background:#154744;color:#fff}
[data-color-theme="karbar"] .card h2:before,[data-color-theme="karbar"] .portal-panel h2:before,[data-color-theme="karbar"] .project-panel h2:before,[data-color-theme="karbar"] .drawer-lead-section>h3:before,[data-color-theme="karbar"] .drawer-section-title:before{background:#E5C5A7}
@media(max-width:900px){.branding-palette-toggle{grid-template-columns:repeat(2,minmax(140px,1fr))}}@media(max-width:560px){.branding-picker-head{align-items:flex-start;flex-direction:column}.branding-mode-toggle{width:100%}.branding-mode-toggle button{flex:1}.branding-palette-toggle{grid-template-columns:1fr 1fr}.branding-palette-toggle .palette-swatches{height:62px}}@media(max-width:390px){.branding-palette-toggle{grid-template-columns:1fr}}

/* Subscription integrity warning. */
.billing-conflict-alert{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:14px 15px;border:1px solid var(--rose);border-left:5px solid var(--rose);border-radius:11px;background:var(--rose-bg)}.billing-conflict-alert strong{color:var(--rose)}.billing-conflict-alert p{margin:3px 0 0;color:var(--ink-2);font-size:.68rem;line-height:1.5}.billing-conflict-alert form,.billing-conflict-alert button{flex:0 0 auto;margin:0}@media(max-width:650px){.billing-conflict-alert{align-items:stretch;flex-direction:column}.billing-conflict-alert button{width:100%}}

/* Expense-report selection belongs inside the creation workflow. */

/* Compact tenant-aware AI assistant. */
.ai-assistant{position:fixed;right:22px;bottom:20px;z-index:120}.ai-assistant-launcher{display:flex;align-items:center;gap:8px;height:48px;margin:0;padding:0 17px;border:1px solid color-mix(in srgb,var(--iris) 72%,#000);border-radius:99px;background:var(--iris);color:#fff;font-size:.72rem;font-weight:800;box-shadow:0 12px 30px rgba(15,39,55,.22)}.ai-assistant-launcher:hover{transform:translateY(-1px);filter:brightness(1.04)}.ai-assistant-launcher svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ai-assistant.open .ai-assistant-launcher{visibility:hidden}.ai-assistant-panel{position:absolute;right:0;bottom:0;display:flex;width:min(390px,calc(100vw - 28px));height:min(590px,calc(100dvh - 32px));flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 22px 60px rgba(15,39,55,.24)}.ai-assistant-panel[hidden]{display:none}.ai-assistant-panel>header{display:flex;align-items:center;gap:10px;padding:14px 15px;border-bottom:1px solid var(--line);background:var(--surface)}.ai-assistant-panel>header>span:nth-child(2){min-width:0;flex:1}.ai-assistant-panel>header strong,.ai-assistant-panel>header small{display:block}.ai-assistant-panel>header strong{font-size:.8rem}.ai-assistant-panel>header small{margin-top:2px;color:var(--ink-3);font-size:.59rem}.ai-assistant-panel>header button{width:32px;height:32px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--ink-3);font-size:1.3rem;box-shadow:none}.ai-assistant-panel>header button:hover{background:var(--surface-2);color:var(--ink);transform:none}.ai-assistant-mark{display:grid!important;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:var(--iris);color:#fff;font-size:.82rem;font-weight:900}.ai-assistant-messages{display:flex;min-height:0;flex:1;flex-direction:column;gap:10px;padding:16px;overflow-y:auto;background:linear-gradient(180deg,var(--surface-2),var(--surface))}.ai-assistant-message{align-self:flex-start;max-width:88%;padding:10px 12px;border:1px solid var(--line);border-radius:5px 13px 13px;background:var(--surface)}.ai-assistant-message.user{align-self:flex-end;border-color:var(--iris-line);border-radius:13px 5px 13px 13px;background:var(--iris-soft)}.ai-assistant-message.error{border-color:var(--rose);background:var(--rose-bg)}.ai-assistant-message p{margin:0;white-space:pre-wrap;color:var(--ink);font-size:.73rem;line-height:1.55}.ai-assistant-sources{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.ai-assistant-sources a{padding:4px 7px;border:1px solid var(--iris-line);border-radius:99px;background:var(--iris-soft);color:var(--iris-deep);font-size:.58rem;font-weight:750;text-decoration:none}.ai-assistant-prompts{display:flex;flex-wrap:wrap;gap:6px}.ai-assistant-prompts button{margin:0;padding:6px 9px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--ink-2);font-size:.6rem;box-shadow:none}.ai-assistant-prompts button:hover{border-color:var(--iris-line);color:var(--iris-deep);transform:none}.ai-assistant-form{padding:11px 12px 9px;border-top:1px solid var(--line);background:var(--surface)}.ai-assistant-form textarea{min-height:54px;max-height:110px;margin:0;padding:10px 42px 10px 11px;border-radius:12px;resize:none;font-size:.72rem;line-height:1.45}.ai-assistant-form footer{display:flex;align-items:center;justify-content:space-between;min-height:30px;margin-top:5px}.ai-assistant-form footer small{color:var(--ink-3);font-size:.56rem}.ai-assistant-form footer button{display:grid;place-items:center;width:32px;height:32px;margin:-41px 5px 0 auto;padding:0;border-radius:9px;background:var(--iris);box-shadow:none}.ai-assistant-form footer button svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2;stroke-linejoin:round}.ai-assistant-note{margin:0;padding:0 12px 10px;color:var(--ink-3);font-size:.53rem;text-align:center}.ai-assistant button:disabled{opacity:.55;cursor:wait}
@media(max-width:560px){.ai-assistant{right:12px;bottom:12px}.ai-assistant-launcher{width:48px;padding:0;justify-content:center}.ai-assistant-launcher span{display:none}.create-new-floating{bottom:58px}.ai-assistant-panel{position:fixed;right:8px;bottom:8px;left:8px;width:auto;height:min(620px,calc(100dvh - 16px));border-radius:16px}}
.ai-assistant-actions{display:flex;gap:2px}.ai-assistant-actions button{width:29px!important;height:29px!important;font-size:.82rem!important}.ai-assistant-chart{margin-top:10px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}.ai-assistant-chart canvas{display:block;width:100%;height:auto}.ai-chart-download{display:block;margin:6px 0 0 auto!important;padding:5px 8px!important;border:0!important;background:transparent!important;color:var(--iris-deep)!important;font-size:.58rem!important;box-shadow:none!important}.ai-assistant-history{max-height:55%;padding:13px;overflow-y:auto;border-bottom:1px solid var(--line);background:var(--surface)}.ai-assistant-history>strong,.ai-assistant-share>strong{display:block;margin-bottom:9px;font-size:.7rem}.ai-assistant-history [hidden],.ai-assistant-share[hidden]{display:none}.ai-assistant-history button{display:flex;width:100%;align-items:center;justify-content:space-between;margin:0;padding:9px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);text-align:left;box-shadow:none}.ai-assistant-history button:hover{background:var(--surface-2);transform:none}.ai-assistant-history button strong,.ai-assistant-history button small{display:block}.ai-assistant-history button strong{font-size:.65rem}.ai-assistant-history button small{margin-top:2px;color:var(--ink-3);font-size:.54rem}.ai-assistant-share{padding:13px;border-bottom:1px solid var(--line);background:var(--surface)}.ai-assistant-share select{margin:0}.ai-assistant-share footer{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}.ai-assistant-share footer button{margin:0}.ai-assistant-share>small{display:block;margin-top:7px;color:var(--ink-3);font-size:.58rem}.ai-assistant-message p a{color:var(--iris-deep);font-weight:750;text-decoration:underline}.ai-settings-history{display:grid;gap:6px}.ai-settings-history>a{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border:1px solid var(--line);border-radius:10px;color:inherit;text-decoration:none}.ai-settings-history>a:hover{border-color:var(--iris-line);background:var(--iris-soft)}.ai-settings-history strong,.ai-settings-history small{display:block}.ai-settings-history small{margin-top:3px;color:var(--ink-3);font-size:.6rem}.ai-settings-history b{color:var(--iris-deep);font-size:.63rem}
/* Maximize/minimize: dock the panel as an embedded right sidebar that pushes the
   page content aside (like the left nav), instead of floating over the page. */
.ai-assistant #aiAssistantMinimize{display:none}
.ai-assistant.maximized #aiAssistantMaximize{display:none}
.ai-assistant.maximized #aiAssistantMinimize{display:inline-block}
body.ai-assistant-maximized{--ai-side:440px;overflow-x:hidden}
.ai-assistant.maximized.open .ai-assistant-panel{position:fixed;top:16px;right:16px;bottom:16px;left:auto;width:var(--ai-side);height:auto;max-height:none;border-radius:var(--r-lg);box-shadow:var(--shadow-1)}
.ai-assistant.maximized.open .ai-assistant-message{max-width:82%}
/* Reserve the docked width on the shell and the fixed topbar so no content, and
   nothing in the topbar, ends up hidden behind the panel. */
@media(min-width:761px){
  body.ai-assistant-maximized .app-shell{padding-right:calc(var(--ai-side) + 36px)}
  body.ai-assistant-maximized .workspace-topbar{right:calc(var(--ai-side) + 36px)}
}
/* Below the mobile breakpoint there's no room to push content, so the docked
   panel falls back to a near-full-width sheet. */
@media(max-width:760px){
  .ai-assistant.maximized.open .ai-assistant-panel{top:8px;right:8px;bottom:8px;left:8px;width:auto}
}
/* AI chart KPI tiles + canvas-chart title (rendered on the white chart card). */
.ai-chart-title{display:block;margin-bottom:8px;color:#111827;font-size:.74rem;font-weight:800}
.ai-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:7px}
.ai-kpi-tile{padding:9px 10px;border:1px solid #e5e7eb;border-radius:9px;background:#f8f9fb}
.ai-kpi-tile strong{display:block;color:#111827;font-size:.95rem;font-variant-numeric:tabular-nums}

/* Assistant readability controls and full-width visual results. */
.ai-assistant-panel>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px}
.ai-assistant-identity{display:flex;min-width:0;align-items:center;gap:10px;flex:1}
.ai-assistant-identity>span:last-child{min-width:0}
.ai-assistant-identity strong,.ai-assistant-identity small{white-space:nowrap}
.ai-assistant-header-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.ai-assistant-text-size{display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:9px}
.ai-assistant-text-size button{width:35px!important;height:30px!important;font-size:.68rem!important;font-weight:800}
.ai-assistant-actions{gap:5px}
.ai-assistant-actions button{width:38px!important;height:38px!important;font-size:1.05rem!important}
.ai-assistant-actions .ai-assistant-new{width:auto!important;padding:0 10px!important;font-size:.68rem!important;font-weight:800!important}
.ai-assistant-actions .ai-assistant-new span{font-size:.95rem}
.ai-assistant-window-actions{display:flex;align-items:center;gap:2px}
.ai-assistant-window-actions button{width:32px;height:32px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--ink-3);font-size:1.25rem;box-shadow:none}
.ai-assistant-window-actions button:hover{background:var(--surface-2);color:var(--ink);transform:none}
.ai-assistant-message:has(.ai-assistant-chart){width:100%;max-width:100%}
.ai-assistant-chart{position:relative;margin-top:12px;padding:0;border:0;background:transparent}
.ai-chart-visual{position:relative;width:100%;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#fff}
.ai-chart-visual.ai-chart-kpi{padding:14px}
.ai-chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 2px 0}
.ai-assistant-chart canvas{object-fit:contain;outline:none}
.ai-assistant-chart canvas:focus-visible{border-radius:8px;box-shadow:0 0 0 3px var(--iris-line)}
.ai-chart-tooltip{position:absolute;z-index:2;min-width:126px;padding:8px 10px;border:1px solid #d7d9e0;border-radius:9px;background:rgba(255,255,255,.97);color:#111827;box-shadow:0 8px 24px rgba(15,23,42,.16);pointer-events:none}
.ai-chart-tooltip[hidden]{display:none}
.ai-chart-tooltip strong,.ai-chart-tooltip span{display:block;font-size:.7rem;line-height:1.35}
.ai-chart-tooltip span{margin-top:2px;color:#5d6471;font-variant-numeric:tabular-nums}
.ai-chart-hint{display:inline-block;margin:0;color:var(--ink-3);font-size:.64rem}
.ai-chart-download{display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;padding:8px 12px!important;border:1px solid var(--iris-line)!important;border-radius:8px!important;background:var(--iris-soft)!important;color:var(--iris-deep)!important;font-size:calc(.68rem * var(--ai-text-scale,1))!important;font-weight:800!important;box-shadow:none!important}
.ai-chart-download:hover{border-color:var(--iris)!important;background:color-mix(in srgb,var(--iris-soft) 72%,var(--surface))!important;transform:none!important}
.ai-assistant-message p{font-size:calc(.73rem * var(--ai-text-scale,1))}
.ai-assistant-sources a{font-size:calc(.58rem * var(--ai-text-scale,1))}
.ai-assistant-prompts button{font-size:calc(.6rem * var(--ai-text-scale,1))}
.ai-assistant-form textarea{font-size:calc(.72rem * var(--ai-text-scale,1))}
.ai-assistant-history button strong{font-size:calc(.65rem * var(--ai-text-scale,1))}
.ai-assistant-history button small{font-size:calc(.54rem * var(--ai-text-scale,1))}
.ai-chart-title{font-size:calc(.82rem * var(--ai-text-scale,1))}
body.ai-assistant-maximized{--ai-side:min(520px,38vw)}

.ai-assistant-form{position:relative;padding:11px 12px 9px}
.ai-assistant-form textarea{min-height:88px;padding:12px 58px 12px 12px}
.ai-assistant-form footer button{position:absolute;top:53px;right:20px;width:38px;height:38px;margin:0}
.ai-assistant-form footer{margin-top:5px;padding-right:48px}

.ai-assistant:not(.maximized) .ai-assistant-panel>header{align-items:stretch;flex-direction:column;gap:9px}
.ai-assistant:not(.maximized) .ai-assistant-header-controls{width:100%;justify-content:space-between}

@media(max-width:560px){
  .ai-assistant-panel>header{align-items:stretch;flex-direction:column;gap:9px;padding:10px 12px}
  .ai-assistant-identity{width:100%}
  .ai-assistant-mark{display:grid!important}
  .ai-assistant-header-controls{width:100%;justify-content:space-between;gap:5px}
  .ai-assistant-actions{gap:2px}
  .ai-assistant-actions button{width:34px!important;height:34px!important}
  .ai-assistant-actions .ai-assistant-new{padding:0 8px!important}
  .ai-assistant-text-size button{width:32px!important;height:28px!important}
  .ai-assistant-chart{padding:8px}
}

@media(min-width:561px) and (max-width:760px){
  .ai-assistant-panel>header{align-items:stretch;flex-direction:column;gap:9px}
  .ai-assistant-header-controls{width:100%;justify-content:flex-end}
}
.ai-kpi-tile small{display:block;margin-top:2px;color:#6b7280;font-size:.56rem}
/* Segmented range toggle (admin AI token burn, reusable). */
.seg-toggle{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.seg-toggle a{padding:6px 12px;border-radius:7px;color:var(--ink-3);font-size:.72rem;font-weight:700;text-decoration:none;white-space:nowrap}
.seg-toggle a:hover:not(.active){color:var(--ink)}
.seg-toggle a.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(15,39,55,.12)}

/* Project task Kanban: half-viewport workspace with internal scrolling. */
.project-kanban{height:50vh;min-height:420px;display:flex;flex-direction:column;margin-top:14px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-1)}
.tasks-project-board-section{margin:24px 0}.tasks-project-board-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:12px}.tasks-project-board-head h2{margin:4px 0;font-size:1.25rem}.tasks-project-board-head p{max-width:720px;margin:0;color:var(--ink-3);font-size:.72rem;line-height:1.5}.tasks-project-picker{min-width:min(360px,100%);margin:0}.tasks-project-picker label{display:grid;gap:5px;margin:0;color:var(--ink-3);font-size:.65rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.tasks-project-picker select{margin:0;background:var(--surface)}.tasks-project-board-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;background:var(--surface-2);color:var(--ink-2);font-size:.72rem}.tasks-project-board-meta+.project-kanban{margin-top:0;border-radius:0 0 16px 16px}.tasks-project-board-meta .btn{margin:0}
.project-kanban-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--surface)}
.project-kanban-head h3{margin:2px 0 3px;font-size:1.05rem}.project-kanban-head p{margin:0;color:var(--ink-3);font-size:.7rem}.project-kanban-expand{flex:0 0 auto}.project-kanban-head-actions{display:flex;align-items:center;gap:8px}.project-kanban-head-actions .btn{margin:0}
.project-kanban-scroll{min-height:0;flex:1;padding:12px;overflow:auto;background:var(--surface-2)}
.project-kanban-columns{display:grid;grid-template-columns:repeat(var(--task-workflow-columns),minmax(240px,1fr));gap:11px;min-width:max(100%,var(--task-workflow-min));height:100%}
.project-kanban-column{display:flex;min-height:0;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface) 88%,transparent);overflow:hidden}
.project-kanban-column>header{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-bottom:1px solid var(--line)}
.project-kanban-column>header span{display:flex;align-items:center;gap:7px;font-size:.72rem;font-weight:800}.project-kanban-column>header b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--surface-2);color:var(--ink-3);font-size:.62rem}
.kanban-status-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.kanban-status-dot.in_progress{background:var(--sky)}.kanban-status-dot.review{background:var(--amber)}.kanban-status-dot.completed{background:var(--emerald)}
.project-kanban-cards{min-height:100px;flex:1;padding:9px;overflow-y:auto;transition:background .15s,box-shadow .15s}.project-kanban-cards.is-drag-over{background:var(--iris-soft);box-shadow:inset 0 0 0 2px var(--iris-line)}
.kanban-empty{margin:25px 8px;color:var(--ink-3);font-size:.67rem;text-align:center}.kanban-empty[hidden]{display:none}
.project-kanban-card{margin-bottom:8px;padding:10px;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 2px 8px rgba(15,39,55,.05);cursor:grab;transition:transform .14s,box-shadow .14s,opacity .14s}
.project-kanban-card:hover,.project-kanban-card:focus{outline:none;transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,39,55,.1)}.project-kanban-card.urgency-high{border-left-color:var(--rose)}.project-kanban-card.urgency-medium{border-left-color:var(--amber)}.project-kanban-card.urgency-low{border-left-color:var(--sky)}.project-kanban-card.done{opacity:.68}.project-kanban-card.done>strong{text-decoration:line-through}.project-kanban-card.is-dragging{opacity:.35}.project-kanban-card.is-saving{pointer-events:none;opacity:.55}
.project-kanban-card-top,.project-kanban-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-kanban-card>strong{display:block;margin-top:8px;font-size:.76rem}.project-kanban-card>p{display:-webkit-box;margin:5px 0 0;overflow:hidden;color:var(--ink-2);font-size:.67rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-kanban-card footer{margin-top:10px}.project-kanban-card footer small{font-size:.61rem}.project-kanban-card footer label{margin:0}.kanban-move-select{width:31px;height:28px;margin:0;padding:0 4px;border-radius:7px;color:transparent;font-size:0;background-position:center}.kanban-move-select:focus{width:108px;padding:4px 22px 4px 7px;color:var(--ink);font-size:.63rem}
.project-kanban-status{min-height:24px;padding:5px 14px;border-top:1px solid var(--line);color:var(--ink-3);font-size:.62rem;background:var(--surface)}
.project-kanban.is-fullscreen{position:fixed;inset:12px;z-index:1000;width:auto;height:auto;min-height:0;margin:0;border-radius:16px;box-shadow:0 24px 80px rgba(15,39,55,.35)}
body.kanban-fullscreen-open{overflow:hidden}body.kanban-fullscreen-open:before{content:'';position:fixed;inset:0;z-index:999;background:rgba(15,23,42,.48)}
.project-kanban.is-fullscreen .project-kanban-columns{grid-template-columns:repeat(var(--task-workflow-columns),minmax(280px,1fr));min-width:max(100%,var(--task-workflow-min))}.project-kanban.is-fullscreen .project-kanban-head{padding:17px 20px}.task-workflow-editor{flex:0 0 auto;max-height:52vh;overflow:auto;border-bottom:1px solid var(--line);border-radius:0}.task-workflow-editor[hidden]{display:none}.project-kanban:has(.task-workflow-editor:not([hidden])){height:auto;max-height:none;overflow:visible}.project-kanban:has(.task-workflow-editor:not([hidden])) .project-kanban-scroll{height:48vh;flex:none}
@media(max-width:760px){.tasks-project-board-head{align-items:stretch;flex-direction:column}.tasks-project-picker{min-width:0}.tasks-project-board-meta{align-items:flex-start;flex-direction:column}.tasks-project-board-meta .btn{width:100%;justify-content:center}.project-kanban{height:55vh;min-height:390px}.project-kanban-head{align-items:flex-start}.project-kanban-head p{display:none}.project-kanban-head-actions{align-items:stretch;flex-direction:column}.project-kanban-columns{grid-template-columns:repeat(var(--task-workflow-columns),minmax(82vw,1fr));min-width:var(--task-workflow-min)}.project-kanban.is-fullscreen{inset:6px}.project-kanban.is-fullscreen .project-kanban-columns{grid-template-columns:repeat(var(--task-workflow-columns),minmax(86vw,1fr));min-width:var(--task-workflow-min)}}

/* Cross-project portfolio workflow board. */
.portfolio-board{height:50vh;min-height:440px;display:flex;flex-direction:column;margin:0 0 20px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-1)}
.portfolio-board-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border-bottom:1px solid var(--line)}.portfolio-board-head h2{margin:2px 0 3px;font-size:1.1rem}.portfolio-board-head p{margin:0;color:var(--ink-3);font-size:.72rem}
.portfolio-board-scroll{min-height:0;flex:1;padding:12px;overflow:auto;background:var(--surface-2)}
.portfolio-board-columns{display:grid;grid-template-columns:repeat(5,minmax(225px,1fr));gap:10px;min-width:1165px;height:100%}
.portfolio-board-column{display:flex;min-height:0;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.portfolio-board-column>header{display:flex;align-items:center;justify-content:space-between;padding:10px 11px;border-bottom:1px solid var(--line)}.portfolio-board-column>header span{display:flex;align-items:center;gap:7px;font-size:.7rem;font-weight:800}.portfolio-board-column>header b{display:grid;place-items:center;min-width:21px;height:21px;border-radius:99px;background:var(--surface-2);color:var(--ink-3);font-size:.6rem}
.portfolio-status-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.portfolio-status-dot.active{background:var(--sky)}.portfolio-status-dot.waiting{background:var(--amber)}.portfolio-status-dot.review{background:var(--iris)}.portfolio-status-dot.completed{background:var(--emerald)}
.portfolio-board-cards{min-height:90px;flex:1;padding:8px;overflow-y:auto}.portfolio-board-cards.is-drag-over{background:var(--iris-soft);box-shadow:inset 0 0 0 2px var(--iris-line)}.portfolio-board-empty{margin:24px 6px;color:var(--ink-3);font-size:.65rem;text-align:center}.portfolio-board-empty[hidden]{display:none}
.portfolio-project-card{margin-bottom:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 2px 8px rgba(15,39,55,.05);cursor:grab;transition:transform .14s,box-shadow .14s,opacity .14s}.portfolio-project-card:hover,.portfolio-project-card:focus{outline:none;transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,39,55,.1)}.portfolio-project-card.is-dragging{opacity:.35}.portfolio-project-card.is-saving{pointer-events:none;opacity:.55}
.portfolio-project-card-top,.portfolio-project-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.portfolio-project-card-top>b{color:var(--ink-3);font-size:.62rem}.portfolio-project-card>a{display:block;margin-top:9px;color:inherit;text-decoration:none}.portfolio-project-card>a strong,.portfolio-project-card>a small{display:block}.portfolio-project-card>a strong{font-size:.76rem}.portfolio-project-card>a small{margin-top:2px;color:var(--ink-3);font-size:.63rem}.portfolio-project-progress{height:5px;margin-top:10px;overflow:hidden;border-radius:99px;background:var(--line)}.portfolio-project-progress i{display:block;height:100%;border-radius:inherit;background:var(--iris)}.portfolio-project-card footer{margin-top:9px}.portfolio-project-card footer>span{font-size:.59rem}.portfolio-project-card footer label{margin:0}.portfolio-move-select{width:31px;height:28px;margin:0;padding:0 4px;border-radius:7px;color:transparent;font-size:0;background-position:center}.portfolio-move-select:focus{width:104px;padding:4px 22px 4px 7px;color:var(--ink);font-size:.62rem}
.portfolio-board-status{min-height:24px;padding:5px 14px;border-top:1px solid var(--line);color:var(--ink-3);font-size:.62rem}.portfolio-board.is-fullscreen{position:fixed;inset:12px;z-index:1000;width:auto;height:auto;min-height:0;margin:0;box-shadow:0 24px 80px rgba(15,39,55,.35)}body.portfolio-board-fullscreen-open{overflow:hidden}body.portfolio-board-fullscreen-open:before{content:'';position:fixed;inset:0;z-index:999;background:rgba(15,23,42,.48)}
@media(max-width:760px){.portfolio-board{height:55vh;min-height:410px}.portfolio-board-head p{display:none}.portfolio-board-columns{grid-template-columns:repeat(5,minmax(82vw,1fr));min-width:calc(410vw + 40px)}.portfolio-board.is-fullscreen{inset:6px}}

/* Crisp assistant controls, matching the sidebar's stroke icon system. */
.ai-assistant-actions button svg,.ai-assistant-window-actions button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.ai-assistant-actions .ai-assistant-new{gap:6px!important}.ai-assistant-actions .ai-assistant-new svg{width:17px;height:17px}
.ai-assistant-window-actions button{display:grid;place-items:center}

/* Full-page navigation should paint at its final state immediately. Interactive
   overlays keep their own targeted animations; page shells and tab content do not. */
.main-content,.project-tab-panel{animation:none!important}
.report-expense-picker{margin:18px 0 0;padding:0;border:0}.report-expense-picker legend{margin-bottom:6px;color:var(--ink);font-size:.72rem;font-weight:800}.report-expense-picker>#reportSelectionCount{margin-bottom:9px;color:var(--ink-3);font-size:.65rem}.report-expense-list{max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:11px}.report-expense-list>label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:0;padding:11px 12px;border-bottom:1px solid var(--line-2);cursor:pointer}.report-expense-list>label:last-child{border-bottom:0}.report-expense-list>label:hover{background:var(--surface-2)}.report-expense-list input{width:17px;height:17px;margin:0}.report-expense-list strong,.report-expense-list small{display:block}.report-expense-list small{margin-top:3px;color:var(--ink-3);font-size:.6rem}.report-expense-list b{font-size:.68rem;white-space:nowrap}.receipt-upload{font-size:0}.receipt-upload:before{content:'Add receipt';display:block;color:var(--ink);font-size:.72rem;font-weight:800}.receipt-upload:after{content:'Attach a receipt image or PDF as supporting documentation.';display:block;margin-top:4px;color:var(--ink-3);font-size:.62rem}.receipt-upload input{display:block;font-size:.7rem}

/* First-use polish. */
.home-daily-briefing .home-daily-action{margin-top:26px}

/* First-use pages intentionally sit in open space instead of looking like an empty card. */
.section-empty{min-height:clamp(430px,62vh,680px);display:grid;grid-template-columns:minmax(280px,520px) minmax(280px,480px);align-items:center;justify-content:center;gap:clamp(24px,5vw,78px);padding:clamp(36px,6vw,86px) clamp(18px,5vw,72px);border:0;background:transparent;box-shadow:none}
.section-empty-visual{width:100%;max-width:520px;color:var(--iris-deep)}.section-empty-visual svg{display:block;width:100%;height:auto;overflow:visible}.section-empty-blob{fill:color-mix(in srgb,var(--iris) 12%,var(--surface));stroke:none}.section-empty-orbit{fill:color-mix(in srgb,var(--amber) 22%,var(--surface));stroke:var(--amber);stroke-width:2}.section-empty-spark{fill:var(--iris);stroke:none}.section-empty-object{fill:var(--surface);stroke:currentColor;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.section-empty-visual.has-ai-art{overflow:hidden;border:1px solid var(--iris-line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-2)}.section-empty-ai-art{display:block;width:100%;aspect-ratio:3/1;object-fit:cover;object-position:center}
.section-empty-copy{max-width:450px}.section-empty-copy h2{font-size:clamp(2rem,3.3vw,3.25rem);line-height:1.04;letter-spacing:-.035em;margin:8px 0 16px}.section-empty-copy p{font-size:1.03rem;line-height:1.7;color:var(--ink-2);margin:0 0 26px;max-width:42ch}.section-empty-copy form{margin:0}
@media(max-width:800px){.section-empty{grid-template-columns:1fr;text-align:center;min-height:520px;gap:10px;padding:34px 18px}.section-empty-visual{max-width:360px;margin:auto}.section-empty-copy{margin:auto}.section-empty-copy p{margin-left:auto;margin-right:auto}}
@media(max-width:640px){.onboarding-head{align-items:flex-start;flex-direction:column}.onboarding-actions{width:100%;justify-content:flex-start}}

/* ============================================================
   COMPLETE BRAND PALETTES
   Every custom theme maps the supplied colors across surfaces, text,
   borders, actions, statuses, and gradients. Dark mode is a complete
   surface system for each palette rather than the default charcoal theme
   with one accent swapped in.
   ============================================================ */
[data-color-theme="slate"]{
  --bg:#e1f1f7;--surface:#f9fdff;--surface-2:#c9e9f2;--surface-3:#5dc1d8;
  --ink:#343a40;--ink-2:#006494;--ink-3:#4f7585;--line:#9bc9dc;--line-2:#d7edf4;
  --iris:#006494;--iris-deep:#004b70;--iris-soft:#e1f1f7;--iris-line:#5dc1d8;
  --emerald:#007d8f;--emerald-bg:#d4f2f4;--amber:#9b5d00;--amber-bg:#fff0cf;
  --rose:#e01e37;--rose-bg:#fde3e7;--sky:#5dc1d8;--sky-bg:#e1f1f7;
  --violet:#e01e37;--violet-bg:#fde3e7;--popover-bg:#f1faff;--popover-line:#9bc9dc;
  --thread:linear-gradient(120deg,#e1f1f7,#5dc1d8 24%,#006494 52%,#343a40 76%,#e01e37);--theme-accent:linear-gradient(180deg,#5dc1d8,#006494 62%,#e01e37)
}
[data-theme="dark"][data-color-theme="slate"]{
  --bg:#111d23;--surface:#182a32;--surface-2:#343a40;--surface-3:#006494;
  --ink:#e1f1f7;--ink-2:#bfe7f1;--ink-3:#5dc1d8;--line:#24586d;--line-2:#203943;
  --iris:#5dc1d8;--iris-deep:#e1f1f7;--iris-soft:rgba(0,100,148,.34);--iris-line:rgba(93,193,216,.55);
  --emerald:#5dc1d8;--emerald-bg:rgba(0,100,148,.3);--amber:#ffd27a;--amber-bg:rgba(201,122,0,.2);
  --rose:#ff6678;--rose-bg:rgba(224,30,55,.25);--sky:#5dc1d8;--sky-bg:rgba(93,193,216,.16);
  --violet:#e01e37;--violet-bg:rgba(224,30,55,.25);--popover-bg:#20343d;--popover-line:#006494
}

[data-color-theme="sunny"]{
  --bg:#ffebcc;--surface:#fffaf2;--surface-2:#f8dfb9;--surface-3:#f2bf88;
  --ink:#001b2e;--ink-2:#1b6974;--ink-3:#617777;--line:#e2b98a;--line-2:#f2dac0;
  --iris:#ff7b00;--iris-deep:#a63d00;--iris-soft:#fff0dc;--iris-line:#ffad5c;
  --emerald:#1b6974;--emerald-bg:#d9eceb;--amber:#a94f00;--amber-bg:#ffebcc;
  --rose:#832c0f;--rose-bg:#f6ded5;--sky:#1b6974;--sky-bg:#d9eceb;
  --violet:#832c0f;--violet-bg:#f6ded5;--popover-bg:#fff6e8;--popover-line:#e2b98a;
  --thread:linear-gradient(120deg,#001b2e,#1b6974 28%,#ffebcc 52%,#ff7b00 76%,#832c0f);--theme-accent:linear-gradient(180deg,#1b6974,#ff7b00 64%,#832c0f)
}
[data-theme="dark"][data-color-theme="sunny"]{
  --bg:#001b2e;--surface:#0b3544;--surface-2:#1b6974;--surface-3:#285762;
  --ink:#ffebcc;--ink-2:#f6d8b0;--ink-3:#dca56f;--line:#285762;--line-2:#123f4c;
  --iris:#ff9b3d;--iris-deep:#ffebcc;--iris-soft:rgba(255,123,0,.22);--iris-line:rgba(255,155,61,.5);
  --emerald:#69c1c4;--emerald-bg:rgba(27,105,116,.45);--amber:#ffbf65;--amber-bg:rgba(255,123,0,.24);
  --rose:#f08c67;--rose-bg:rgba(131,44,15,.45);--sky:#7dd0d3;--sky-bg:rgba(27,105,116,.38);
  --violet:#ff7b00;--violet-bg:rgba(131,44,15,.4);--popover-bg:#123f4c;--popover-line:#1b6974
}

[data-color-theme="pink"]{
  --bg:#fde2e8;--surface:#fff9fb;--surface-2:#f9b9ca;--surface-3:#f5a0ba;
  --ink:#4a1b2b;--ink-2:#8f3a59;--ink-3:#a45a72;--line:#ef9db6;--line-2:#f8ccd8;
  --iris:#eb5785;--iris-deep:#a92652;--iris-soft:#fde2e8;--iris-line:#ef789d;
  --emerald:#c43d69;--emerald-bg:#f9b9ca;--amber:#b84e70;--amber-bg:#f8ccd8;
  --rose:#d62e66;--rose-bg:#fde2e8;--sky:#ef789d;--sky-bg:#f9b9ca;
  --violet:#f5a0ba;--violet-bg:#fde2e8;--popover-bg:#fff3f7;--popover-line:#ef9db6;
  --thread:linear-gradient(120deg,#fde2e8,#f9b9ca 25%,#f5a0ba 50%,#ef789d 75%,#eb5785);--theme-accent:linear-gradient(180deg,#f9b9ca,#ef789d 58%,#eb5785)
}
[data-theme="dark"][data-color-theme="pink"]{
  --bg:#24111a;--surface:#351824;--surface-2:#512435;--surface-3:#743049;
  --ink:#fde2e8;--ink-2:#f9b9ca;--ink-3:#f5a0ba;--line:#743049;--line-2:#49202f;
  --iris:#ef789d;--iris-deep:#fde2e8;--iris-soft:rgba(235,87,133,.25);--iris-line:rgba(239,120,157,.52);
  --emerald:#f5a0ba;--emerald-bg:rgba(249,185,202,.16);--amber:#f9b9ca;--amber-bg:rgba(245,160,186,.18);
  --rose:#eb5785;--rose-bg:rgba(235,87,133,.28);--sky:#f5a0ba;--sky-bg:rgba(239,120,157,.2);
  --violet:#f9b9ca;--violet-bg:rgba(245,160,186,.2);--popover-bg:#421d2b;--popover-line:#743049
}

[data-color-theme="sand"]{
  --bg:#efefec;--surface:#fffdfb;--surface-2:#f4e9dd;--surface-3:#e1d1c5;
  --ink:#4b3c34;--ink-2:#765f53;--ink-3:#9b8173;--line:#d1c7bd;--line-2:#e9e0d9;
  --iris:#a47f6b;--iris-deep:#6d4e3e;--iris-soft:#eee2da;--iris-line:#ccb3a4;
  --emerald:#8f7769;--emerald-bg:#efefec;--amber:#9b755f;--amber-bg:#f4e9dd;
  --rose:#9a665a;--rose-bg:#e1d1c5;--sky:#a8998d;--sky-bg:#efefec;
  --violet:#80645a;--violet-bg:#e1d1c5;--popover-bg:#f8f3ee;--popover-line:#d1c7bd;
  --thread:linear-gradient(120deg,#efefec,#d1c7bd 27%,#f4e9dd 52%,#e1d1c5 75%,#ccb3a4);--theme-accent:linear-gradient(180deg,#a8998d,#ccb3a4 55%,#8f6b59)
}
[data-theme="dark"][data-color-theme="sand"]{
  --bg:#29221e;--surface:#3a302b;--surface-2:#57483f;--surface-3:#765f53;
  --ink:#efefec;--ink-2:#f4e9dd;--ink-3:#d1c7bd;--line:#765f53;--line-2:#4b3d36;
  --iris:#ccb3a4;--iris-deep:#f4e9dd;--iris-soft:rgba(204,179,164,.23);--iris-line:rgba(225,209,197,.48);
  --emerald:#d1c7bd;--emerald-bg:rgba(143,119,105,.35);--amber:#e1d1c5;--amber-bg:rgba(164,127,107,.28);
  --rose:#d9a99e;--rose-bg:rgba(154,102,90,.3);--sky:#c9bcb2;--sky-bg:rgba(168,153,141,.25);
  --violet:#ccb3a4;--violet-bg:rgba(128,100,90,.35);--popover-bg:#463a33;--popover-line:#765f53
}

[data-color-theme="lavender"]{
  --bg:#f2e9e4;--surface:#fffaf8;--surface-2:#c9ada7;--surface-3:#9a8c98;
  --ink:#22223b;--ink-2:#4a4e69;--ink-3:#786d7a;--line:#c9ada7;--line-2:#e5d6d2;
  --iris:#4a4e69;--iris-deep:#22223b;--iris-soft:#e4d9df;--iris-line:#9a8c98;
  --emerald:#6f6475;--emerald-bg:#ddd0d5;--amber:#9a6e65;--amber-bg:#eadbd6;
  --rose:#8b5e70;--rose-bg:#e7d5dc;--sky:#9a8c98;--sky-bg:#ded3da;
  --violet:#4a4e69;--violet-bg:#ddd0d9;--popover-bg:#f9f1ee;--popover-line:#c9ada7;
  --thread:linear-gradient(120deg,#22223b,#4a4e69 28%,#9a8c98 52%,#c9ada7 76%,#f2e9e4);--theme-accent:linear-gradient(180deg,#22223b,#4a4e69 52%,#c9ada7)
}
[data-theme="dark"][data-color-theme="lavender"]{
  --bg:#22223b;--surface:#2e304c;--surface-2:#4a4e69;--surface-3:#625d70;
  --ink:#f2e9e4;--ink-2:#c9ada7;--ink-3:#9a8c98;--line:#4a4e69;--line-2:#353750;
  --iris:#c9ada7;--iris-deep:#f2e9e4;--iris-soft:rgba(154,140,152,.25);--iris-line:rgba(201,173,167,.5);
  --emerald:#b7a6b2;--emerald-bg:rgba(154,140,152,.25);--amber:#d8b5ad;--amber-bg:rgba(201,173,167,.22);
  --rose:#c99aaa;--rose-bg:rgba(154,140,152,.3);--sky:#9a8c98;--sky-bg:rgba(74,78,105,.45);
  --violet:#c9ada7;--violet-bg:rgba(74,78,105,.55);--popover-bg:#383a56;--popover-line:#4a4e69
}

[data-color-theme="vibrant"]{
  --bg:#fff7e5;--surface:#fffdf8;--surface-2:#e4f1dd;--surface-3:#b9d49a;
  --ink:#204e69;--ink-2:#577590;--ink-3:#4d908e;--line:#9bc6bc;--line-2:#dbe9df;
  --iris:#277da1;--iris-deep:#195671;--iris-soft:#dceef5;--iris-line:#4d908e;
  --emerald:#43aa8b;--emerald-bg:#dcebd0;--amber:#f8961e;--amber-bg:#f9c74f;
  --rose:#f94144;--rose-bg:#ffd8cd;--sky:#4d908e;--sky-bg:#d9ece8;
  --violet:#f3722c;--violet-bg:#ffe0c5;--popover-bg:#f2fbf4;--popover-line:#90be6d;
  --thread:linear-gradient(120deg,#f94144,#f3722c 12%,#f8961e 24%,#f9844a 36%,#f9c74f 48%,#90be6d 60%,#43aa8b 72%,#4d908e 82%,#577590 91%,#277da1);--theme-accent:linear-gradient(180deg,#f94144,#f8961e 28%,#90be6d 50%,#43aa8b 70%,#277da1)
}
[data-theme="dark"][data-color-theme="vibrant"]{
  --bg:#173446;--surface:#20495a;--surface-2:#577590;--surface-3:#4d908e;
  --ink:#fff7e5;--ink-2:#dcebd0;--ink-3:#90be6d;--line:#4d908e;--line-2:#285668;
  --iris:#69c9e8;--iris-deep:#fff7e5;--iris-soft:rgba(39,125,161,.38);--iris-line:rgba(77,144,142,.65);
  --emerald:#62d2ad;--emerald-bg:rgba(67,170,139,.32);--amber:#f9c74f;--amber-bg:rgba(248,150,30,.28);
  --rose:#ff696b;--rose-bg:rgba(249,65,68,.3);--sky:#71c3c0;--sky-bg:rgba(77,144,142,.35);
  --violet:#ff9b62;--violet-bg:rgba(243,114,44,.3);--popover-bg:#245568;--popover-line:#577590
}

/* Keep legacy templates on the selected palette too. */
[data-color-theme="slate"],[data-color-theme="karbar"],[data-color-theme="sunny"],[data-color-theme="pink"],[data-color-theme="sand"],[data-color-theme="lavender"],[data-color-theme="vibrant"]{
  --black:var(--ink);--near-black:var(--ink);--gray-900:var(--ink);--gray-700:var(--ink-2);--gray-500:var(--ink-3);--gray-300:var(--line);--gray-200:var(--surface-3);--gray-100:var(--surface-2);--white:var(--surface)
}

.branding-upload-help{display:block;margin:-2px 0 8px;color:var(--ink-3);font-size:.63rem;line-height:1.45}
.branding-palette-toggle [data-color-theme-set="lavender"] .palette-swatches i:nth-child(1){background:#22223b}.branding-palette-toggle [data-color-theme-set="lavender"] .palette-swatches i:nth-child(2){background:#4a4e69}.branding-palette-toggle [data-color-theme-set="lavender"] .palette-swatches i:nth-child(3){background:#9a8c98}.branding-palette-toggle [data-color-theme-set="lavender"] .palette-swatches i:nth-child(4){background:#c9ada7}.branding-palette-toggle [data-color-theme-set="lavender"] .palette-swatches i:nth-child(5){background:#f2e9e4}
.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(1){background:#f94144}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(2){background:#f3722c}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(3){background:#f8961e}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(4){background:#f9844a}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(5){background:#f9c74f}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(6){background:#90be6d}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(7){background:#43aa8b}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(8){background:#4d908e}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(9){background:#577590}.branding-palette-toggle [data-color-theme-set="vibrant"] .palette-swatches i:nth-child(10){background:#277da1}

/* Dark variants share Karbar's true charcoal surface system. Palettes stay
   visible in actions, headings, borders and statuses instead of tinting the UI. */
[data-theme="dark"][data-color-theme="slate"],
[data-theme="dark"][data-color-theme="karbar"],
[data-theme="dark"][data-color-theme="sunny"],
[data-theme="dark"][data-color-theme="pink"],
[data-theme="dark"][data-color-theme="sand"],
[data-theme="dark"][data-color-theme="lavender"],
[data-theme="dark"][data-color-theme="vibrant"]{
  --bg:#0c0d0f;--surface:#17181b;--surface-2:#1e1f23;--surface-3:#26272c;
  --ink:#f2f2f3;--ink-2:#c6c7cb;--ink-3:#8b8c92;--line:#2b2c31;--line-2:#212227;
  --popover-bg:#1e1f23;--popover-line:#2b2c31;
  --black:#0c0d0f;--near-black:#f2f2f3;--gray-900:#f2f2f3;--gray-700:#c6c7cb;
  --gray-500:#8b8c92;--gray-300:#2b2c31;--gray-200:#26272c;--gray-100:#1e1f23;--white:#17181b
}
[data-theme="dark"][data-color-theme="slate"]{
  --iris:#006494;--iris-deep:#5dc1d8;--iris-soft:rgba(0,100,148,.24);--iris-line:#5dc1d8;
  --emerald:#5dc1d8;--emerald-bg:rgba(93,193,216,.14);--amber:#f0b44c;--amber-bg:rgba(240,180,76,.14);
  --rose:#e01e37;--rose-bg:rgba(224,30,55,.18);--sky:#5dc1d8;--sky-bg:rgba(93,193,216,.14);--violet:#e01e37;--violet-bg:rgba(224,30,55,.18)
}
[data-color-theme="sunny"]{--iris:#001b2e;--iris-deep:#001b2e;--iris-line:#1b6974}
[data-theme="dark"][data-color-theme="sunny"]{
  --iris:#001b2e;--iris-deep:#ffebcc;--iris-soft:rgba(27,105,116,.24);--iris-line:#1b6974;
  --emerald:#1b6974;--emerald-bg:rgba(27,105,116,.2);--amber:#ff7b00;--amber-bg:rgba(255,123,0,.16);
  --rose:#ff7b00;--rose-bg:rgba(255,123,0,.16);--sky:#1b6974;--sky-bg:rgba(27,105,116,.2);--violet:#ff7b00;--violet-bg:rgba(255,123,0,.16)
}
[data-theme="dark"][data-color-theme="pink"]{
  --iris:#ef789d;--iris-deep:#ef789d;--iris-soft:rgba(239,120,157,.17);--iris-line:#ef789d;
  --emerald:#ef789d;--emerald-bg:rgba(239,120,157,.14);--amber:#ef789d;--amber-bg:rgba(239,120,157,.14);
  --rose:#ef789d;--rose-bg:rgba(239,120,157,.18);--sky:#ef789d;--sky-bg:rgba(239,120,157,.14);--violet:#ef789d;--violet-bg:rgba(239,120,157,.14)
}
[data-theme="dark"][data-color-theme="sand"]{
  --iris:#ccb3a4;--iris-deep:#f4e9dd;--iris-soft:rgba(204,179,164,.16);--iris-line:#ccb3a4;
  --emerald:#ccb3a4;--emerald-bg:rgba(204,179,164,.12);--amber:#ccb3a4;--amber-bg:rgba(204,179,164,.12);
  --rose:#ccb3a4;--rose-bg:rgba(204,179,164,.16);--sky:#ccb3a4;--sky-bg:rgba(204,179,164,.12);--violet:#ccb3a4;--violet-bg:rgba(204,179,164,.12)
}
[data-theme="dark"][data-color-theme="lavender"]{
  --iris:#c9ada7;--iris-deep:#f2e9e4;--iris-soft:rgba(201,173,167,.16);--iris-line:#9a8c98;
  --emerald:#c9ada7;--emerald-bg:rgba(201,173,167,.12);--amber:#c9ada7;--amber-bg:rgba(201,173,167,.12);
  --rose:#c9ada7;--rose-bg:rgba(201,173,167,.16);--sky:#9a8c98;--sky-bg:rgba(154,140,152,.14);--violet:#c9ada7;--violet-bg:rgba(201,173,167,.12)
}
[data-theme="dark"][data-color-theme="vibrant"]{
  --iris:#277da1;--iris-deep:#43aa8b;--iris-soft:rgba(39,125,161,.22);--iris-line:#4d908e;
  --emerald:#43aa8b;--emerald-bg:rgba(67,170,139,.16);--amber:#f9c74f;--amber-bg:rgba(249,199,79,.15);
  --rose:#f94144;--rose-bg:rgba(249,65,68,.18);--sky:#4d908e;--sky-bg:rgba(77,144,142,.17);--violet:#f3722c;--violet-bg:rgba(243,114,44,.16)
}
[data-theme="dark"][data-color-theme="sunny"] .primary-accent{box-shadow:inset 0 0 0 1px #1b6974}

.business-address-fields,.business-identity-fields,.banner-destinations{margin:14px 0 16px;padding:0;border:0}.business-address-fields legend,.business-identity-fields legend,.banner-destinations legend{color:var(--ink);font-size:.72rem;font-weight:800}.business-address-fields>p,.business-identity-fields>p{margin:3px 0 11px;color:var(--ink-3);font-size:.63rem}.address-field-grid,.business-identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 14px}.address-field-grid label,.business-identity-grid label{margin:0}.address-field-grid label>span,.business-identity-grid label>span{color:var(--ink-3);font-weight:500}.address-field-wide{grid-column:1/-1}.banner-destinations{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0 0}.banner-destinations legend{width:100%;margin-bottom:1px}.banner-destinations label{display:inline-flex;align-items:center;gap:7px;margin:0;color:var(--ink-2);font-size:.67rem;font-weight:700}.banner-destinations input{width:17px;height:17px;margin:0;accent-color:var(--iris)}#themeSaveStatus{margin-left:3px;color:var(--emerald);font-weight:750}#themeSaveStatus.error{color:var(--rose)}
@media(max-width:640px){.address-field-grid,.business-identity-grid{grid-template-columns:1fr}.address-field-wide{grid-column:auto}}

.business-address-fields,.business-identity-fields{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.address-field-grid,.business-identity-grid,.address-field-grid>*,.business-identity-grid>*{min-width:0}
.public-form-brand img{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface);object-fit:contain}

/* Appearance tuning: Lavender uses its purple-gray as the interaction focus;
   Vibrant distributes warm, green, yellow and ocean accents across the UI. */
[data-theme="dark"][data-color-theme="lavender"]{
  --iris:#9a8c98;--iris-deep:#c9ada7;--iris-soft:rgba(154,140,152,.2);--iris-line:#9a8c98;
  --emerald:#c9ada7;--emerald-bg:rgba(201,173,167,.13);--amber:#9a8c98;--amber-bg:rgba(154,140,152,.15);
  --rose:#c9ada7;--rose-bg:rgba(201,173,167,.16);--sky:#9a8c98;--sky-bg:rgba(154,140,152,.16);--violet:#9a8c98;--violet-bg:rgba(154,140,152,.16)
}
[data-color-theme="vibrant"]{
  --iris:#f3722c;--iris-deep:#bd4818;--iris-soft:#ffe0c5;--iris-line:#43aa8b;
  --emerald:#43aa8b;--emerald-bg:#dcebd0;--amber:#f8961e;--amber-bg:#f9c74f;
  --rose:#f94144;--rose-bg:#ffd8cd;--sky:#277da1;--sky-bg:#d9ece8;--violet:#f9844a;--violet-bg:#ffe0c5
}
[data-theme="dark"][data-color-theme="vibrant"]{
  --iris:#f3722c;--iris-deep:#f9c74f;--iris-soft:rgba(243,114,44,.2);--iris-line:#43aa8b;
  --emerald:#43aa8b;--emerald-bg:rgba(67,170,139,.16);--amber:#f9c74f;--amber-bg:rgba(249,199,79,.15);
  --rose:#f94144;--rose-bg:rgba(249,65,68,.18);--sky:#4d908e;--sky-bg:rgba(77,144,142,.17);--violet:#f9844a;--violet-bg:rgba(249,132,74,.16)
}
[data-theme="dark"][data-color-theme="vibrant"] .card h2:before,[data-theme="dark"][data-color-theme="vibrant"] .settings-section-icon{background:linear-gradient(135deg,#f94144,#f8961e 38%,#43aa8b 70%,#277da1)}

/* Team, delegation, and multi-company plan features. */
.project-task-form-grid{grid-template-columns:2fr 1fr 1fr .7fr 1fr}
.plan-feature-limits{display:grid;gap:3px;margin:9px 0 2px;color:var(--ink-2);font-size:.61rem;font-weight:700}.plan-feature-limits span:before{content:'✓';margin-right:6px;color:var(--emerald)}
.feature-limit-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.feature-limit-summary strong{font-size:.72rem}.feature-limit-summary span{color:var(--ink-3);font-size:.61rem;text-align:right}
.team-add-form{display:grid;grid-template-columns:1.25fr 1fr .65fr auto;gap:9px;margin:0 0 15px}.team-add-form input,.team-add-form select,.team-add-form button,.company-add-form input,.company-add-form button{margin:0}
.team-member-list,.company-list{display:grid;gap:7px}.team-member-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.team-member-avatar{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:var(--iris-soft);color:var(--iris-deep);font-size:.66rem;font-weight:850}.team-member-row strong,.team-member-row small,.company-row strong,.company-row small{display:block}.team-member-row strong,.company-row strong{font-size:.72rem}.team-member-row small,.company-row small{margin-top:2px;color:var(--ink-3);font-size:.58rem}.team-role-form{display:flex;align-items:center;gap:6px}.team-role-form select,.team-role-form button,.team-member-row>form>button,.company-row form,.company-row button{margin:0}.team-role-form select{width:auto;min-width:92px}.danger-text{color:var(--rose)!important}
.company-add-form{display:flex;gap:9px;margin:0 0 15px}.company-add-form input{flex:1}.company-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.company-row-actions{display:flex;align-items:center;gap:7px}.company-row-actions form,.company-row-actions button{margin:0}@media(max-width:620px){.company-row{align-items:flex-start;flex-direction:column}.company-row-actions{width:100%;flex-wrap:wrap}.company-row-actions form{flex:1}.company-row-actions button{width:100%;justify-content:center}}
.feature-gate-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;padding:12px 13px;border:1px solid var(--amber);border-radius:10px;background:var(--amber-bg);font-size:.67rem}.feature-gate-panel a,.feature-gate-note a{color:var(--iris-deep);font-weight:800}.feature-gate-note{display:block;margin:9px 0 0;color:var(--ink-3);font-size:.6rem}.task-assignee{display:block;margin-top:8px;color:var(--iris-deep);font-size:.58rem;font-weight:750}
@media(max-width:820px){.project-task-form-grid{grid-template-columns:1fr 1fr}.team-add-form{grid-template-columns:1fr 1fr}.team-add-form button{grid-column:1/-1}.team-member-row{grid-template-columns:38px minmax(0,1fr)}.team-member-row>.status-badge,.team-member-row>form{grid-column:2}.feature-limit-summary{align-items:flex-start;flex-direction:column}.feature-limit-summary span{text-align:left}}
@media(max-width:520px){.project-task-form-grid{grid-template-columns:1fr}.team-add-form{grid-template-columns:1fr}.team-add-form button{grid-column:auto}.company-add-form{align-items:stretch;flex-direction:column}}

/* Contact initials need a defined surface; transparent avatars hid white text. */
.contact-directory-row .clr-avatar,.chat-thread .clr-avatar,.chat-conversation-pane>header>.clr-avatar{border:1px solid var(--iris-line);background:var(--iris-soft);color:var(--iris-deep)}

/* Portal chat uses the same visual grammar as the email workspace: a white,
   compact conversation list beside a reading pane. */
.chat-shell{grid-template-columns:340px minmax(0,1fr);height:auto;min-height:0;flex:1 1 auto;align-items:stretch;overflow:hidden;background:var(--surface)}
.chat-thread-pane{position:static;align-self:stretch;height:100%;min-height:0;border-right:1px solid var(--line);border-bottom:0;background:var(--surface)}
.chat-customer-search{position:relative;margin:0;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface)}.chat-customer-search svg{left:23px}.chat-customer-search input{height:40px;margin:0;padding-left:34px}
.chat-thread-heading{min-height:48px;align-items:center;padding:0 14px;border-bottom:1px solid var(--line);color:var(--ink-3);letter-spacing:0;text-transform:none}.chat-thread-heading strong{color:var(--ink);font-size:.7rem}.chat-thread-heading span{font-size:.62rem}
.chat-thread-list{min-height:0;flex:1;overflow-y:auto;background:var(--surface)}.chat-thread{min-height:76px;grid-template-columns:36px minmax(0,1fr) auto;padding:11px 14px;border-top:0;border-bottom:1px solid var(--line-2);background:var(--surface)}.chat-thread:hover{background:var(--surface-2)}.chat-thread.active{background:var(--iris-soft);box-shadow:inset 3px 0 var(--iris)}.chat-thread small{margin-top:3px}
.chat-conversation-pane{height:100%;min-height:0;background:var(--surface)}.chat-conversation-pane>header{min-height:70px;flex:0 0 auto;padding:12px 18px;background:var(--surface)}
.chat-transcript{display:block;min-height:0;flex:1 1 auto;padding:0;overflow-y:auto;background:var(--surface)}
.chat-message{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;padding:13px 18px;border-bottom:1px solid var(--line-2);background:var(--surface)}
.chat-message.outbound{background:var(--surface);box-shadow:inset 3px 0 var(--iris)}.chat-message-avatar{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:.62rem;font-weight:800}
.chat-message.outbound .chat-message-avatar{border-color:var(--iris-line);background:var(--iris-soft);color:var(--iris-deep)}.chat-message-body{min-width:0}.chat-message-body>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-message-body strong{font-size:.7rem}.chat-message-body time{color:var(--ink-3);font-size:.57rem;white-space:nowrap}.chat-message .rich-chat-content{margin:3px 0 0;color:var(--ink-2);font-size:.73rem;line-height:1.45}
.chat-message-meta{display:flex;align-items:center;gap:6px}.chat-message-meta form{margin:0}.chat-message-delete{display:grid;width:26px;height:26px;place-items:center;margin:0;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--ink-3);box-shadow:none}.chat-message-delete svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chat-message-delete:hover{border-color:var(--line);background:var(--rose-bg);color:var(--rose);transform:none;box-shadow:none}

/* The full-profile action belongs with the drawer's primary toolbar actions. */
#clientDrawer .drawer-foot,#clientDrawer #cdProfileTop{display:none}
.chat-compose{margin-top:auto;padding:10px 16px 12px;border-top:1px solid var(--line);background:var(--surface)}.chat-compose.rich-chat-composer footer{margin-top:7px}.chat-compose .rich-chat-editor{min-height:58px;max-height:none;overflow:visible;padding:9px 11px}.chat-compose footer small{align-self:center}@media(min-width:701px){.chat-compose footer{padding-right:138px}}
.rich-chat-toolbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.rich-chat-toolbar::-webkit-scrollbar{display:none}.rich-chat-emoji-strip{display:flex;align-items:center;flex:0 0 auto;gap:1px;margin-left:0}.rich-chat-emoji-strip button{min-width:28px!important;width:28px;height:28px!important;padding:2px!important;font-size:.95rem!important}.rich-chat-emoji-strip button:hover{background:var(--iris-soft)}
@media(max-width:900px){.chat-shell{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:700px){.chat-shell{height:auto;min-height:0;overflow:visible}.chat-thread-pane{position:static;height:auto;min-height:0;max-height:none}.chat-conversation-pane{height:auto;min-height:0}.chat-transcript{max-height:none}.rich-chat-emoji-strip{width:auto;justify-content:flex-start;margin-left:0;padding-top:0;border-top:0}}

/* Email and portal chat fill the monitor without forcing a page scrollbar.
   Each pane uses auto overflow, so a scrollbar exists only when its own content
   is taller than the available workspace. */
.messages-main,.chat-main{display:flex;height:calc(100dvh - 32px);min-height:0;flex-direction:column}
.messages-main>.page-head,.chat-main>.page-head,.messages-main>.flash-banner{flex:0 0 auto}
.mail-shell{height:auto;min-height:0;flex:1 1 auto}
.mail-folders,.mail-list-pane,.mail-reading-pane{min-height:0;overflow-y:auto}
.mail-list-pane{max-height:none}
.mail-folders,.mail-list-pane,.mail-reading-pane,.chat-thread-list,.chat-transcript{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.mail-folders{scrollbar-color:transparent transparent}.mail-folders:hover{scrollbar-color:color-mix(in srgb,var(--ink-3) 38%,transparent) transparent}
.mail-folders::-webkit-scrollbar,.mail-list-pane::-webkit-scrollbar,.mail-reading-pane::-webkit-scrollbar,.chat-thread-list::-webkit-scrollbar,.chat-transcript::-webkit-scrollbar{width:8px;height:8px}.mail-folders::-webkit-scrollbar{width:4px}.mail-folders::-webkit-scrollbar-track,.mail-list-pane::-webkit-scrollbar-track,.mail-reading-pane::-webkit-scrollbar-track,.chat-thread-list::-webkit-scrollbar-track,.chat-transcript::-webkit-scrollbar-track{background:transparent}.mail-folders::-webkit-scrollbar-thumb{border:0;border-radius:999px;background:transparent}.mail-folders:hover::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink-3) 38%,transparent)}.mail-list-pane::-webkit-scrollbar-thumb,.mail-reading-pane::-webkit-scrollbar-thumb,.chat-thread-list::-webkit-scrollbar-thumb,.chat-transcript::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--line);background-clip:padding-box}
@media(max-width:760px){.messages-main,.chat-main{display:block;height:auto;min-height:100dvh}.mail-shell,.chat-shell{height:auto;min-height:0;overflow:visible}.mail-folders,.mail-list-pane,.mail-reading-pane{max-height:none;overflow:visible}}

/* Document rows are inert; the subtly accented overflow control is the only
   row-level action affordance. */
.document-list-row{position:relative;cursor:default}.document-list-row:hover{background:var(--surface-2)}.document-list-row>.row-overflow-menu{margin-left:0}
.row-overflow-menu>summary{display:grid!important;place-items:center;width:34px;height:34px;padding:0!important;border:1px solid var(--iris-line);border-radius:9px;background:var(--iris-soft);color:var(--iris-deep);box-shadow:0 2px 8px rgba(15,23,42,.08)}.row-overflow-menu>summary:hover,.row-overflow-menu[open]>summary{background:color-mix(in srgb,var(--iris-soft) 72%,var(--surface));box-shadow:0 0 0 2px var(--iris-soft)}.row-overflow-menu>summary>span{font-size:1.35rem!important;line-height:1!important;transform:translateY(-1px)}.row-overflow-menu>div{width:176px}.row-overflow-menu button:disabled{cursor:not-allowed;opacity:.42}.row-overflow-menu button:disabled:hover{background:transparent}
@media(max-width:680px){.document-list-row{gap:9px;padding:11px}.document-list-row .clr-stats,.document-list-row>.clr-contact{display:none}.row-overflow-menu>summary{width:38px;height:38px}}
/* ---------- Dedicated appearance settings ---------- */
.appearance-settings-page{padding-bottom:110px}.appearance-page-head{align-items:flex-end}.appearance-page-nav{display:flex;gap:6px;margin:-4px 0 18px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--surface);width:max-content}.appearance-page-nav a{padding:8px 13px;border-radius:8px;color:var(--ink-2);font-size:.72rem;font-weight:750;text-decoration:none}.appearance-page-nav a.active{background:var(--ink);color:var(--surface);box-shadow:var(--shadow-sm)}.appearance-settings-form{display:grid;gap:18px}.appearance-brand-card,.appearance-theme-card,.appearance-surface-card{padding:22px}.appearance-logo-row{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.appearance-logo-preview{display:grid;width:64px;height:64px;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font-size:1.3rem}.appearance-logo-preview img{width:100%;height:100%;object-fit:contain}.appearance-logo-row>div strong,.appearance-logo-row>div small,.appearance-upload-row>div strong,.appearance-upload-row>div small{display:block}.appearance-logo-row>div small,.appearance-upload-row>div small{margin-top:3px;color:var(--ink-3);font-size:.64rem}.appearance-upload-button{position:relative;overflow:hidden;cursor:pointer;white-space:nowrap}.appearance-upload-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.appearance-file-name{max-width:150px;overflow:hidden;color:var(--ink-3);font-size:.61rem;text-overflow:ellipsis;white-space:nowrap}.appearance-surface-card{overflow:hidden}.appearance-surface-head{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(180px,280px);align-items:center;gap:14px;margin:-22px -22px 18px;padding:20px 22px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,var(--surface),var(--surface-2))}.appearance-surface-number{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:var(--ink);color:var(--surface);font-size:.7rem;font-weight:850;letter-spacing:.08em}.appearance-surface-head h2{margin:2px 0 4px;font-size:1.18rem}.appearance-surface-head p{margin:0;max-width:690px;color:var(--ink-2);font-size:.72rem}.appearance-current-preview{width:100%;height:70px;border:1px solid var(--line);border-radius:11px;object-fit:cover}.appearance-upload-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:12px;margin-bottom:20px;padding:13px 14px;border:1px dashed var(--line-strong);border-radius:12px;background:var(--surface-2)}.appearance-gallery-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 10px}.appearance-gallery-head strong,.appearance-gallery-head small{display:block}.appearance-gallery-head small{margin-top:2px;color:var(--ink-3);font-size:.61rem}.appearance-gallery-head>span{padding:4px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);font-size:.58rem;font-weight:800}.appearance-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.appearance-gallery-option{position:relative;display:grid;grid-template-rows:96px auto;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.appearance-gallery-option:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.appearance-gallery-option:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.appearance-gallery-option input{position:absolute;top:8px;right:8px;z-index:3;width:17px;height:17px;margin:0;accent-color:var(--accent)}.appearance-option-art{position:relative;display:block;overflow:hidden;background:var(--surface-2)}.appearance-option-art>img{width:100%;height:100%;object-fit:cover}.appearance-gallery-option>span:last-child{display:block;min-width:0;padding:9px 10px}.appearance-gallery-option>span:last-child strong,.appearance-gallery-option>span:last-child small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appearance-gallery-option>span:last-child strong{font-size:.67rem}.appearance-gallery-option>span:last-child small{margin-top:2px;color:var(--ink-3);font-size:.56rem}.appearance-option-art.none{display:grid;place-items:center;background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 9px,var(--line) 10px,var(--line) 11px)}.appearance-option-art.none i{width:42px;height:2px;transform:rotate(-26deg);border-radius:2px;background:var(--ink-3)}.appearance-option-art.auto img{position:absolute;width:78%;height:76%;top:12%;left:11%;border:2px solid var(--surface);border-radius:7px;object-fit:cover;transform:translate(calc(var(--stack) * 8px),calc(var(--stack) * -3px)) rotate(calc((var(--stack) - 1) * 2deg));box-shadow:var(--shadow-sm)}.appearance-option-art.auto img:nth-child(1){z-index:3}.appearance-option-art.auto img:nth-child(2){z-index:2}.appearance-option-art.auto img:nth-child(3){z-index:1}.appearance-save-bar{z-index:15}.home-daily-briefing.no-art:before{display:none}.home-daily-briefing.no-art{background:var(--surface)}

.appearance-type-card{padding:22px}.font-scale-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.font-scale-option{position:relative;display:flex;align-items:center;gap:12px;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer}.font-scale-option:has(input:checked){border-color:var(--iris);background:var(--iris-soft);box-shadow:0 0 0 2px var(--iris-line)}.font-scale-option input{position:absolute;top:10px;right:10px;width:16px;height:16px;margin:0;accent-color:var(--iris)}.font-scale-preview{display:grid;width:46px;height:46px;flex:0 0 46px;place-items:center;border-radius:11px;background:var(--surface-2);color:var(--ink);font-family:var(--font-display);font-weight:850}.font-scale-option strong,.font-scale-option small{display:block}.font-scale-option strong{font-size:.7rem}.font-scale-option small{margin-top:3px;color:var(--ink-3);font-size:.59rem}

/* Compact Ask KRBR history rows keep titles left and dates aligned right. */
.ai-assistant-history button{gap:10px;padding:7px 9px}.ai-assistant-history button strong{min-width:0;overflow:hidden;font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.ai-assistant-history button time{flex:0 0 auto;color:var(--ink-3);font-size:.54rem;white-space:nowrap}.ai-settings-history>a{gap:16px;padding:8px 11px}.ai-settings-history>a strong{min-width:0;overflow:hidden;font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.ai-settings-history>a time{flex:0 0 auto;color:var(--ink-3);font-size:.58rem;white-space:nowrap}

@media(max-width:1100px){.appearance-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.font-scale-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.appearance-page-head{align-items:flex-start}.appearance-page-nav{width:100%}.appearance-page-nav a{flex:1;text-align:center}.appearance-logo-row{grid-template-columns:auto minmax(0,1fr)}.appearance-logo-row .appearance-upload-button,.appearance-logo-row .appearance-file-name{grid-column:2}.appearance-surface-head{grid-template-columns:auto minmax(0,1fr)}.appearance-current-preview{grid-column:1/-1;height:90px}.appearance-upload-row{grid-template-columns:1fr}.appearance-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.appearance-file-name{max-width:100%}}
@media(max-width:480px){.appearance-gallery,.font-scale-options{grid-template-columns:1fr}.appearance-gallery-option{grid-template-columns:120px 1fr;grid-template-rows:84px}.appearance-page-head .btn{width:100%}}

/* ---------- Sectioned settings, profile controls, and Help Center ---------- */
.settings-tabs{display:flex;gap:5px;margin:0 0 18px;padding:5px;overflow-x:auto;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-1);scrollbar-width:thin}.settings-tabs a{flex:0 0 auto;padding:10px 14px;border-radius:9px;color:var(--ink-2);font-size:.78rem;font-weight:760;text-decoration:none;white-space:nowrap}.settings-tabs a:hover{background:var(--surface-2);color:var(--ink)}.settings-tabs a.active{background:var(--ink);color:var(--surface);box-shadow:var(--shadow-sm)}
.billing-change-preview,.subscription-control-panel,.account-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}.billing-change-preview{border-color:var(--emerald);background:var(--emerald-bg)}.billing-change-preview h3,.subscription-control-panel h3,.account-danger-zone h3{margin:5px 0 7px;font-size:1rem}.billing-change-preview p,.subscription-control-panel p,.account-danger-zone p{max-width:72ch;margin:0;color:var(--ink-2);font-size:.72rem;line-height:1.55}.billing-change-preview form,.subscription-control-panel form,.account-danger-zone form{flex:0 0 auto;margin:0}.subscription-cancel-form{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) auto;align-items:end;gap:9px}.subscription-cancel-form label{margin:0;font-size:.65rem}.subscription-cancel-form select,.subscription-cancel-form input{margin:5px 0 0}.account-danger-zone{align-items:flex-start;border-color:color-mix(in srgb,var(--rose) 50%,var(--line));background:var(--rose-bg)}.account-danger-zone .eyebrow,.account-danger-zone h3{color:var(--rose)}.account-delete-blocker{display:grid;max-width:390px;gap:6px;padding:14px;border:1px solid color-mix(in srgb,var(--rose) 35%,var(--line));border-radius:11px;background:var(--surface)}.account-delete-blocker strong,.account-delete-blocker span{display:block}.account-delete-blocker span{color:var(--ink-3);font-size:.65rem;line-height:1.45}.account-delete-blocker .btn{justify-self:start;margin-top:5px}@media(max-width:900px){.billing-change-preview,.subscription-control-panel,.account-danger-zone{align-items:stretch;flex-direction:column}.billing-change-preview form,.subscription-control-panel form,.account-danger-zone form{align-self:flex-start}.subscription-cancel-form{width:100%;grid-template-columns:1fr}.account-delete-blocker{max-width:none}}
.pp-theme-toggle{width:100%;border:0;background:transparent;font-family:var(--font-ui);text-align:left;cursor:pointer}.pp-theme-toggle:hover{transform:none;box-shadow:none}.pp-theme-toggle>span:nth-of-type(1){flex:1}.pp-switch{position:relative;width:36px;height:21px;flex:0 0 36px;margin-left:auto;border:1px solid #8f9aa4;border-radius:999px;background:#b7c0c8;box-shadow:inset 0 1px 2px rgba(15,23,42,.18);transition:background .16s ease,border-color .16s ease}.pp-switch i{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.4);transition:transform .16s ease}.pp-theme-toggle[data-current-theme="dark"] .pp-switch{border-color:var(--iris);background:var(--iris)}.pp-theme-toggle[data-current-theme="dark"] .pp-switch i{transform:translateX(15px)}
.help-center-page{max-width:1220px;padding-bottom:70px}.help-hero{position:relative;margin-bottom:18px;padding:34px clamp(22px,5vw,58px);overflow:hidden;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--ink),color-mix(in srgb,var(--ink) 72%,var(--iris)));color:#fff;box-shadow:var(--shadow-2)}.help-hero:after{content:'';position:absolute;right:-70px;bottom:-100px;width:300px;height:300px;border:46px solid color-mix(in srgb,var(--iris) 38%,transparent);border-radius:50%}.help-hero>*{position:relative;z-index:1}.help-hero .eyebrow{color:color-mix(in srgb,#fff 76%,var(--iris-soft))}.help-hero h1{margin:6px 0 8px;color:#fff;font-size:clamp(2rem,5vw,3.4rem)}.help-hero>p{max-width:720px;margin:0;color:rgba(255,255,255,.78);font-size:.84rem;line-height:1.65}.help-search{display:flex;max-width:720px;align-items:center;gap:10px;margin:24px 0 0;padding:0 14px;border:1px solid rgba(255,255,255,.26);border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 16px 40px rgba(0,0,0,.18)}.help-search svg{width:19px;height:19px;fill:none;stroke:#5d6670;stroke-width:2}.help-search input{width:100%;height:48px;margin:0;padding:0;border:0;background:transparent;color:#17212b;box-shadow:none}.help-search input:focus{border:0;box-shadow:none;outline:0}
.help-quick-start{margin-bottom:18px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-1)}.help-quick-start>div{margin-bottom:15px}.help-quick-start h2{margin:3px 0 0}.help-quick-start ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.help-quick-start li{display:flex;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.help-quick-start li>span{display:grid;width:27px;height:27px;flex:0 0 27px;place-items:center;border-radius:8px;background:var(--ink);color:var(--surface);font-size:.65rem;font-weight:850}.help-quick-start strong,.help-quick-start p,.help-quick-start a{display:block}.help-quick-start strong{font-size:.72rem}.help-quick-start p{min-height:49px;margin:4px 0 8px;color:var(--ink-3);font-size:.62rem;line-height:1.45}.help-quick-start a{color:var(--iris-deep);font-size:.61rem;font-weight:800;text-decoration:none}
.help-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px;align-items:start}.help-index{position:sticky;top:16px;display:flex;flex-direction:column;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-1)}.help-index strong{padding:6px 11px 12px;color:var(--ink);font-size:.78rem}.help-index a{padding:10px 11px;border-radius:9px;color:var(--ink-2);font-size:.72rem;font-weight:680;line-height:1.25;text-decoration:none}.help-index a:hover{background:var(--iris-soft);color:var(--iris-deep)}.help-content{display:grid;gap:13px}.help-topic{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-1);scroll-margin-top:18px}.help-topic-icon{display:grid;width:39px;height:39px;place-items:center;border-radius:11px;background:var(--iris-soft);color:var(--iris-deep);font-size:.9rem;font-weight:850}.help-topic h2{margin:3px 0 7px;font-size:1.15rem}.help-topic p{margin:0;color:var(--ink-2);font-size:.72rem;line-height:1.58}.help-topic ol{margin:13px 0 0;padding-left:19px;color:var(--ink-2);font-size:.69rem;line-height:1.55}.help-topic li+li{margin-top:5px}.help-topic a{color:var(--iris-deep)}.help-topic-link{display:inline-flex;margin-top:13px;font-size:.66rem;font-weight:800;text-decoration:none}.help-settings-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 0}.help-settings-list>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.help-settings-list dt{color:var(--ink);font-size:.67rem;font-weight:800}.help-settings-list dd{margin:3px 0 0;color:var(--ink-3);font-size:.61rem;line-height:1.45}
.help-faq{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-1);scroll-margin-top:18px}.help-faq h2{margin:4px 0 14px}.help-faq details{border-top:1px solid var(--line)}.help-faq details:last-of-type{border-bottom:1px solid var(--line)}.help-faq summary{position:relative;padding:13px 30px 13px 1px;color:var(--ink);font-size:.72rem;font-weight:750;cursor:pointer;list-style:none}.help-faq summary::-webkit-details-marker{display:none}.help-faq summary:after{content:'+';position:absolute;right:4px;color:var(--ink-3);font-size:1.05rem}.help-faq details[open] summary:after{content:'–'}.help-faq details p{margin:-3px 0 14px;padding-right:24px;color:var(--ink-2);font-size:.68rem;line-height:1.6}.help-no-results{padding:28px;border:1px dashed var(--line-strong);border-radius:14px;color:var(--ink-3);text-align:center}.help-support{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:24px;border:1px solid var(--iris-line);border-radius:16px;background:var(--iris-soft)}.help-support h2{margin:3px 0 5px}.help-support p{margin:0;color:var(--ink-2);font-size:.7rem}.help-support .btn{flex:0 0 auto}
@media(max-width:1050px){.help-quick-start ol{grid-template-columns:1fr 1fr}.help-layout{grid-template-columns:1fr}.help-index{position:static;display:flex;flex-direction:row;overflow-x:auto}.help-index strong{display:none}.help-index a{flex:0 0 auto}}
@media(max-width:760px){.workspace-switcher label{display:none}.workspace-switcher select{width:min(210px,45vw)}.settings-tabs{margin-top:2px}.help-hero{padding:25px 20px}.help-quick-start ol{grid-template-columns:1fr}.help-quick-start p{min-height:0}.help-settings-list{grid-template-columns:1fr}.help-support{align-items:flex-start;flex-direction:column}.help-support .btn{width:100%}}
@media(max-width:480px){.workspace-switcher select{width:min(150px,42vw);padding-inline:10px 28px}.help-topic{grid-template-columns:1fr}.help-topic-icon{width:34px;height:34px}.help-search input{font-size:.72rem}}
/* Integrations */
.integration-card>.integration-options{grid-area:unset;grid-column:1/-1}
.integrations-page{max-width:1440px}.integrations-hero{align-items:flex-start}.integrations-hero p{max-width:760px}.integration-security-badge{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,var(--card));color:var(--accent-dark);font-weight:750;font-size:.78rem}.integration-security-badge:before{content:'✓';display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--accent-dark);color:white}.integration-group{margin:34px 0}.integration-group>header{display:flex;align-items:end;justify-content:space-between;gap:28px;margin:0 2px 14px}.integration-group>header h2{margin:4px 0 0}.integration-group>header>p{max-width:620px;color:var(--muted);margin:0;text-align:right}.integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.integration-card{position:relative;display:grid;grid-template-columns:58px 1fr;grid-template-areas:'logo copy' 'state state' 'actions actions';gap:14px 16px;min-height:245px;padding:22px;border:1px solid var(--border);border-top:5px solid var(--dark-slate-grey-2,#2A5854);border-radius:22px;background:var(--card);box-shadow:var(--shadow-sm)}.integration-card.is-connected{border-top-color:#2a8b72}.integration-logo{grid-area:logo;width:56px;height:56px;display:grid;place-items:center;border-radius:15px;font-size:1.35rem;font-weight:850;background:#f3f4f6;color:#263238}.integration-logo-gmail{color:#c5221f;background:#fff5f3}.integration-logo-outlook_mail,.integration-logo-outlook_calendar{color:#0866c6;background:#eff7ff}.integration-logo-google_calendar{color:#1a73e8;background:#f1f6ff;font-size:1rem}.integration-logo-zoom{color:#2d8cff;background:#eef6ff}.integration-logo-paypal{color:#003087;background:#f2f7ff}.integration-logo-square{color:#111;background:#f1f1f1}.integration-logo-stripe{color:#635bff;background:#f2f0ff}.integration-card-copy{grid-area:copy}.integration-card h3{margin:3px 0 7px;font-size:1.15rem}.integration-card p{margin:0;color:var(--muted);line-height:1.45}.integration-card small{display:block;margin-top:10px;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-weight:700}.integration-state{grid-area:state;display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:13px;color:var(--muted);font-size:.78rem;font-weight:750}.integration-state:before{content:'';width:8px;height:8px;border-radius:50%;background:#a7adb4}.is-connected .integration-state:before{background:#2a8b72;box-shadow:0 0 0 4px rgba(42,139,114,.12)}.integration-card>.btn,.integration-card>form,.integration-actions{grid-area:actions;align-self:end}.integration-card>form .btn{width:100%}.integration-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.default-chip{padding:7px 10px;border-radius:999px;background:rgba(42,139,114,.12);color:#176451;font-size:.75rem;font-weight:800}.integration-options{grid-column:1/-1;display:grid!important;grid-template-columns:1fr 1fr;gap:10px}.integration-options label{font-size:.74rem;font-weight:800}.integration-options select{width:100%;margin-top:5px}.integration-options button{grid-column:1/-1}.zapier-panel{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:24px;border:1px solid var(--border);border-top:5px solid #2A5854;border-radius:22px;background:var(--card)}.zapier-panel h3{margin-top:0}.api-token-form{display:flex;gap:9px;margin-top:17px}.api-token-form input{flex:1}.api-token-reveal{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:16px;padding:14px;border-radius:14px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border))}.api-token-reveal strong{grid-column:1/-1}.api-token-reveal code{overflow:auto;padding:9px;background:var(--card);border-radius:8px}.api-token-list>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.api-token-list span{display:flex;flex-direction:column;gap:4px}.api-token-list small{color:var(--muted)}.zapier-panel footer{grid-column:1/-1;padding-top:16px;border-top:1px solid var(--border)}.zapier-panel footer p{color:var(--muted)}.btn.disabled{pointer-events:none;opacity:.48}
@media(max-width:1100px){.integration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.integration-grid,.zapier-panel{grid-template-columns:1fr}.integration-group>header{display:block}.integration-group>header>p{text-align:left;margin-top:8px}.api-token-form{flex-direction:column}}
.payment-options-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#FDF6ED,#edf4f1)}.payment-options-card{width:min(570px,100%);padding:30px;border:1px solid #d8e0dc;border-radius:28px;background:#fff;box-shadow:0 22px 70px rgba(21,71,68,.14)}.payment-options-card header img{width:118px;height:auto;margin-bottom:24px}.payment-options-card h1{margin:6px 0}.payment-options-card header p{color:#5f6966}.payment-due{display:flex;justify-content:space-between;gap:18px;padding:18px 0;margin:20px 0;border-top:1px solid #e1e7e4;border-bottom:1px solid #e1e7e4}.payment-due span{display:flex;flex-direction:column;gap:5px}.payment-due span:last-child{text-align:right}.payment-due small{color:#71807b;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.payment-due strong{font-size:1.1rem}.payment-provider-list{display:grid;gap:10px}.payment-provider-list>a{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;padding:14px;border:1px solid #dbe3df;border-radius:15px;color:#162421;text-decoration:none;transition:.16s}.payment-provider-list>a:hover{border-color:#456A64;transform:translateY(-1px);box-shadow:0 8px 20px rgba(21,71,68,.08)}.payment-provider-list a>span:nth-child(2){display:flex;flex-direction:column}.payment-provider-list small{color:#6b7773;margin-top:3px}.payment-provider-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#eef3f1;font-size:1.25rem;font-weight:900}.payment-provider-mark.stripe{color:#635bff}.payment-provider-mark.paypal{color:#003087}.payment-options-card>footer{margin-top:22px;color:#71807b;font-size:.76rem;line-height:1.5}
.integration-logo{padding:13px;background:#fff;box-shadow:inset 0 0 0 1px rgba(21,71,68,.08)}.integration-logo img{display:block;width:100%;height:100%;object-fit:contain}#zapier>header>div{display:grid;grid-template-columns:48px auto;align-items:center;column-gap:12px}#zapier>header>div:before{content:'';grid-row:1/3;width:48px;height:48px;border:1px solid var(--border);border-radius:14px;background:#fff url('/images/integrations/zapier.svg') center/27px no-repeat}#zapier>header .eyebrow,#zapier>header h2{grid-column:2}.payment-provider-mark{padding:10px;background:#fff;border:1px solid #e3e8e6}.payment-provider-mark img{display:block;width:100%;height:100%;object-fit:contain}

/* Flat panels and theme-led title bands. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.card,.kpi-card,.portfolio-board,.portfolio-project-card,.ai-feature-hero,.ai-document-composer,.document-action-bar{box-shadow:none}
.card.hoverable:hover,.kpi-card:hover,.portfolio-project-card:hover,.portfolio-project-card:focus{box-shadow:none}
[data-color-theme="karbar"] .card h2{width:auto;max-width:none;padding:0;border-radius:0;background:transparent;color:var(--iris-deep)}
[data-color-theme="karbar"] .card{border-left-width:1px}
.card>.settings-section-heading:first-child{align-items:center;gap:13px;margin:-20px -22px 20px;padding:16px 22px;border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0;background:var(--iris);color:#fff}
.card>.settings-section-heading:first-child h2,.card>.settings-section-heading:first-child p{color:#fff}
.card>.settings-section-heading:first-child p{opacity:.82}
.card>.settings-section-heading:first-child h2:before{display:none}
.card>.settings-section-heading:first-child .settings-section-icon{background:rgba(255,255,255,.16);color:#fff}
.card>h2:first-child{margin:-20px -22px 18px;padding:15px 22px;border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0;background:var(--iris);color:#fff}
.card>h2:first-child:before{background:rgba(255,255,255,.62)}
.appearance-brand-card,.appearance-type-card,.appearance-theme-card,.appearance-surface-card{overflow:hidden}
.card>.appearance-surface-head:first-child{background:var(--iris);color:#fff}
.card>.appearance-surface-head:first-child h2,.card>.appearance-surface-head:first-child p{color:#fff}
.card>.appearance-surface-head:first-child h2:before{display:none}
.appearance-logo-row,.appearance-upload-row,.branding-theme-grid,.font-scale-option,.appearance-surface-head{background:var(--surface)}
.appearance-surface-head{box-shadow:none}

/* Proposal and contract feature panels keep their art but no decorative panel shading. */
.ai-feature-hero{grid-template-columns:54px minmax(0,1fr);min-height:310px;align-content:center;align-items:start;column-gap:20px;row-gap:0;padding:38px 34px;background:var(--surface)}
.ai-feature-copy{max-width:58%;align-self:center}
.ai-feature-copy h2{margin-top:8px;font-size:1.35rem;line-height:1.25}
.ai-feature-copy p{margin-top:10px;line-height:1.65}
.ai-feature-points{margin-top:17px}
.ai-feature-action{display:flex;justify-content:flex-start;margin-top:25px}
.ai-feature-action form{margin:0}
.ai-feature-cta{justify-content:center;min-height:46px;margin:0;padding-inline:20px}
.ai-feature-icon{box-shadow:none}
.ai-document-composer,.ai-template-guide{background:var(--surface);box-shadow:none}
.ai-document-composer.is-open{box-shadow:0 0 0 3px color-mix(in srgb,var(--iris) 10%,transparent)}
.document-save-button:before{content:'✓';font-weight:900}

/* Two deliberate task-entry rows keep every field legible at larger text sizes. */
.task-quick-add{display:grid;gap:10px}
.task-quick-row{display:grid;gap:10px;align-items:center}
.task-quick-primary{grid-template-columns:minmax(260px,2fr) minmax(160px,.8fr) minmax(170px,.8fr)}
.task-quick-context{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(160px,1fr) minmax(110px,.55fr) auto}
.task-quick-row>*{min-width:0;width:100%;margin:0}
.task-quick-row button{width:auto;min-width:108px;margin:0;justify-content:center}

@media(max-width:900px){.topbar-search input,.topbar-search kbd{display:none}.topbar-search.open{position:absolute;right:74px;left:160px;width:auto;max-width:none}.topbar-search.open input,.topbar-search.open kbd{display:block}.topbar-search-results{min-width:300px}.task-quick-primary,.task-quick-context{grid-template-columns:1fr 1fr}.task-quick-primary input:first-child{grid-column:1/-1}}
@media(max-width:760px){.topbar-search.open{position:fixed;top:10px;right:64px;left:10px;width:auto;max-width:none}.topbar-search.open .topbar-search-field{background:var(--surface)}.topbar-search-results{position:fixed;top:58px;right:10px;left:10px;max-height:55vh}.ai-feature-hero{grid-template-columns:44px 1fr;min-height:360px;padding:28px 22px}.ai-feature-copy{max-width:100%}.ai-feature-art{width:100%;opacity:.42}.task-quick-primary,.task-quick-context{grid-template-columns:1fr}.task-quick-primary input:first-child{grid-column:auto}.task-quick-row button{width:100%}}

/* Workspace-configurable project workflow. */
.portfolio-board{position:relative;height:56vh;min-height:500px}
.portfolio-board.is-customizing{height:auto;min-height:0;overflow:visible}
.portfolio-board:has(.portfolio-workflow-details[open]){height:auto;min-height:0;overflow:visible}
.portfolio-board-actions{display:flex;align-items:center;gap:8px}
.portfolio-board-actions .btn{margin:0}
.portfolio-workflow-details>summary{position:absolute;top:20px;right:164px;z-index:4;width:max-content;margin:0;list-style:none;cursor:pointer}
.portfolio-workflow-details>summary::-webkit-details-marker{display:none}
.portfolio-workflow-details[open]>summary{background:var(--iris);color:#fff}
.portfolio-board-columns{grid-template-columns:repeat(var(--workflow-columns),minmax(250px,1fr));min-width:max(100%,var(--workflow-min))}
.portfolio-board-column{border-top:4px solid var(--stage-color)}
.portfolio-status-dot{background:var(--stage-color)}
.portfolio-project-progress i{background:var(--stage-color)}
.workflow-status-badge{border:1px solid color-mix(in srgb,var(--status-color) 42%,var(--line));background:color-mix(in srgb,var(--status-color) 14%,var(--surface));color:var(--status-color)}
.portfolio-project-card footer{display:grid;grid-template-columns:1fr;align-items:start;gap:7px}
.portfolio-project-card footer>span{display:block}
.portfolio-project-card footer label{display:block;width:100%}
.portfolio-move-select,.portfolio-move-select:focus{width:100%;height:34px;margin:0;padding:5px 30px 5px 9px;color:var(--ink);font-size:.64rem;background-position:right 9px center}
.portfolio-workflow-editor{padding:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.portfolio-workflow-editor[hidden]{display:none}
.portfolio-workflow-editor>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.portfolio-workflow-editor>header strong{font-size:.86rem}
.portfolio-workflow-editor>header p{margin:4px 0 0;color:var(--ink-3);font-size:.64rem}
.workflow-order-status{min-height:20px;color:var(--forest);font-size:.64rem;font-weight:750;white-space:nowrap}.workflow-order-status.is-error{color:var(--rose)}
.workflow-stage-editor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px}
.workflow-stage-editor{min-width:0;overflow:hidden;border:1px solid var(--line);border-top:4px solid var(--stage-color);border-radius:13px;background:var(--surface);transition:opacity .15s,box-shadow .15s,transform .15s}.workflow-stage-editor.is-reordering,.workflow-status-editor-row.is-reordering{opacity:.58;box-shadow:0 12px 28px rgba(21,71,68,.16)}
.workflow-stage-editor-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--line)}
.workflow-stage-editor-head>.workflow-order-controls{grid-column:1;grid-row:1;justify-self:start}.workflow-stage-editor-head>.workflow-stage-form{grid-column:1/-1;grid-row:2}.workflow-stage-editor-head>form:last-child{grid-column:2;grid-row:1;margin:0}
.workflow-order-controls{display:flex;align-items:center;gap:2px}.workflow-order-controls button{display:grid;width:24px;height:28px;place-items:center;margin:0;padding:0;border:0;border-radius:6px;background:transparent;color:var(--ink-3);font:inherit;font-size:.7rem;box-shadow:none}.workflow-order-controls button:hover{transform:none;background:var(--surface-2);color:var(--forest);box-shadow:none}.workflow-order-controls button:disabled{opacity:.24;cursor:not-allowed}.workflow-order-controls .workflow-drag-handle{cursor:grab;font-size:1rem}.workflow-order-controls .workflow-drag-handle:active{cursor:grabbing}.workflow-status-order-controls{flex-direction:column}.workflow-status-order-controls button{width:22px;height:18px;font-size:.58rem}.workflow-status-order-controls .workflow-drag-handle{height:23px;font-size:.85rem}
.workflow-stage-form,.workflow-status-form,.workflow-add-status-form,.workflow-add-stage-form{display:grid;align-items:center;gap:7px;margin:0}
.workflow-stage-form{grid-template-columns:34px minmax(100px,1fr) auto;flex:1}
.workflow-status-form{grid-template-columns:30px minmax(90px,1fr) auto;flex:1}
.workflow-add-status-form{grid-template-columns:30px minmax(90px,1fr) auto;margin-top:7px}
.workflow-stage-form input,.workflow-status-form input,.workflow-add-status-form input,.workflow-add-stage-form input,.workflow-add-stage-form select{min-width:0;margin:0}
.workflow-stage-form input[type="color"],.workflow-add-stage-form input[type="color"]{width:34px;height:34px;padding:3px}
.workflow-status-form input[type="color"],.workflow-add-status-form input[type="color"]{width:30px;height:30px;padding:3px}
.workflow-stage-form input[type="text"],.workflow-status-form input[type="text"],.workflow-add-status-form input[type="text"]{height:34px;padding:6px 8px}
.workflow-stage-form button,.workflow-status-form button,.workflow-add-status-form button,.workflow-stage-editor-head button{margin:0}
.workflow-status-editor-list{padding:10px}
.workflow-status-editor-row{display:flex;align-items:center;gap:5px;padding:5px 0;border-bottom:1px solid var(--line-2)}
.workflow-status-editor-row>form:first-child{min-width:0;flex:1}
.workflow-status-editor-row>form:last-child{margin:0}
.workflow-remove-icon{display:grid;width:28px;height:28px;place-items:center;margin:0;padding:0;border:0;border-radius:7px;background:transparent;color:var(--ink-3);font-size:1rem;box-shadow:none}
.workflow-remove-icon:hover{transform:none;background:var(--rose-bg);color:var(--rose);box-shadow:none}
.workflow-add-stage-form{grid-template-columns:36px minmax(180px,1fr) auto;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.workflow-add-stage-form button{margin:0}
@media(max-width:760px){.portfolio-board-head{align-items:flex-start;gap:12px;padding-bottom:62px}.portfolio-board-actions{align-items:stretch;flex-direction:column}.portfolio-board-actions .btn{width:100%;justify-content:center}.portfolio-workflow-details>summary{top:92px;right:14px;left:14px;justify-content:center;width:auto}.portfolio-board-columns{grid-template-columns:repeat(var(--workflow-columns),minmax(82vw,1fr));min-width:var(--workflow-min)}.workflow-add-stage-form{grid-template-columns:36px 1fr}.workflow-add-stage-form button{grid-column:1/-1}}

/* Scheduling */
.scheduling-admin-page,.scheduling-form-page{padding-bottom:80px}
.scheduling-admin-head{align-items:flex-end}.scheduling-limit-card{display:grid;grid-template-columns:1fr minmax(220px,360px);align-items:center;gap:24px;margin:18px 0 24px;padding:18px 22px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.scheduling-limit-card strong,.scheduling-limit-card span{display:block}.scheduling-limit-card strong{font-size:.86rem}.scheduling-limit-card span{margin-top:4px;color:var(--ink-3);font-size:.68rem}.scheduling-limit-track{height:8px;overflow:hidden;border-radius:99px;background:var(--surface-2)}.scheduling-limit-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--forest),var(--orange))}
.scheduling-sync-strip{display:grid;grid-template-columns:minmax(240px,1fr) repeat(3,minmax(150px,.55fr));gap:10px;margin:0 0 24px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.scheduling-sync-strip>div{align-self:center;padding:4px 8px}.scheduling-sync-strip>div strong{display:block;margin-top:5px;font-size:.76rem}.scheduling-sync-strip>a{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);text-decoration:none}.scheduling-sync-strip>a.connected{border-color:color-mix(in srgb,var(--forest) 35%,var(--line));background:var(--forest-soft)}.scheduling-sync-strip img{width:28px;height:28px;object-fit:contain}.scheduling-sync-strip b,.scheduling-sync-strip small{display:block}.scheduling-sync-strip b{font-size:.65rem}.scheduling-sync-strip small{margin-top:3px;color:var(--ink-3);font-size:.56rem}
.scheduling-page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px;margin-bottom:24px}.scheduling-page-card{display:flex;min-height:360px;flex-direction:column;padding:22px}.scheduling-page-card>header{display:flex;align-items:center;justify-content:space-between;color:var(--ink-3);font-size:.66rem}.scheduling-page-card h2{margin:24px 0 8px;font-size:1.3rem}.scheduling-page-card>p{min-height:44px;margin:0;color:var(--ink-3);font-size:.76rem;line-height:1.55}.scheduling-page-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:22px 0;background:var(--line)}.scheduling-page-stats span{padding:12px 8px;background:var(--surface);color:var(--ink-3);font-size:.61rem}.scheduling-page-stats b{display:block;margin-bottom:4px;color:var(--ink);font-size:.75rem}.scheduling-page-card>label{color:var(--ink-3);font-size:.61rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.scheduling-share-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:6px}.scheduling-share-row input{min-width:0;margin:0;font-size:.66rem}.scheduling-page-card>footer{display:flex;gap:8px;margin-top:auto;padding-top:20px}.scheduling-page-card>footer .btn{flex:1;justify-content:center}.scheduling-empty{grid-column:1/-1;padding:70px 30px;text-align:center}.scheduling-empty>span{display:grid;width:54px;height:54px;place-items:center;margin:0 auto 16px;border-radius:50%;background:var(--forest-soft);color:var(--forest);font-size:1.7rem}.scheduling-empty h2{margin:0 0 8px}.scheduling-empty p{max-width:520px;margin:0 auto 22px;color:var(--ink-3)}
.scheduling-bookings-card{padding:0;overflow:hidden}.scheduling-bookings-card>header{display:flex;align-items:end;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.scheduling-bookings-card>header h2{margin:4px 0 0}.scheduling-bookings-card>header a{font-size:.7rem;font-weight:750}.scheduling-bookings-card td small{display:block;margin-top:3px;color:var(--ink-3);font-size:.6rem}.scheduling-bookings-card .empty-hint{padding:28px}
.scheduling-builder{display:grid;gap:18px;max-width:1120px}.scheduling-builder-section{padding:24px}.scheduling-builder-section>header{display:grid;grid-template-columns:40px 1fr;gap:14px;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--line)}.scheduling-builder-section>header>span{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:var(--forest);color:#fff;font-size:.65rem;font-weight:800}.scheduling-builder-section h2{margin:0 0 4px;font-size:1.05rem}.scheduling-builder-section header p{margin:0;color:var(--ink-3);font-size:.69rem}.scheduling-fields{display:grid;gap:16px}.scheduling-fields.two-col{grid-template-columns:1fr 1fr}.scheduling-fields.three-col{grid-template-columns:repeat(3,1fr)}.scheduling-fields .wide{grid-column:1/-1}.scheduling-fields label,.scheduling-builder-section>label,.booking-contact-fields label,.booking-question-list label{display:block;font-size:.7rem;font-weight:750}.scheduling-fields input,.scheduling-fields select,.scheduling-fields textarea,.scheduling-builder-section>label textarea{width:100%;margin:7px 0 0}.scheduling-fields small,.scheduling-builder-section label>small{display:block;margin-top:5px;color:var(--ink-3);font-size:.59rem;font-weight:500;line-height:1.45}.scheduling-fields.compact input{max-width:180px}.availability-editor{overflow:hidden;margin-bottom:22px;border:1px solid var(--line);border-radius:13px}.availability-row{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:18px;padding:11px 14px;border-bottom:1px solid var(--line)}.availability-row:last-child{border:0}.availability-day{display:flex;align-items:center;gap:9px;font-size:.7rem;font-weight:750}.availability-day input{width:auto;margin:0}.availability-row>div{display:flex;align-items:center;gap:10px}.availability-row input[type=time]{width:145px;margin:0}.availability-row>div span{color:var(--ink-3);font-size:.64rem}.scheduling-team-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px;margin-top:18px}.scheduling-team-picker[hidden]{display:none}.scheduling-team-picker label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}.scheduling-team-picker input{width:auto;margin:0}.scheduling-team-picker b,.scheduling-team-picker small{display:block}.scheduling-team-picker b{font-size:.7rem}.scheduling-team-picker small{margin-top:3px;color:var(--ink-3);font-size:.58rem}.scheduling-publish-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px}.scheduling-publish-card h2{margin:0 0 5px;font-size:1rem}.scheduling-publish-card p{margin:0;color:var(--ink-3);font-size:.67rem}.toggle-row{display:flex;align-items:center;gap:9px;font-size:.72rem;font-weight:750}.toggle-row input{width:auto;margin:0}.scheduling-color-control{display:flex;align-items:center;gap:12px;margin-top:16px}.scheduling-color-control input[type=color]{width:58px;height:44px;padding:3px}.scheduling-color-control input[type=text]{width:130px;margin:0;font-family:monospace;text-transform:uppercase}

/* Public booking pages */
body.public-booking-page{min-height:100vh;margin:0;background:#f7f2ea;color:#132522;font-family:var(--font-ui);font-size:16px}.public-booking-page *{box-sizing:border-box}.public-booking-shell{width:min(980px,calc(100% - 32px));margin:28px auto 60px}.public-booking-brand{display:flex;align-items:center;gap:11px;margin-bottom:18px}.public-booking-brand img,.public-booking-brand>span{width:46px;height:46px;object-fit:contain;border-radius:10px}.public-booking-brand>span{display:grid;place-items:center;background:var(--booking-accent);color:#fff;font-weight:800}.public-booking-brand b{font-size:.85rem}.public-booking-banner{height:250px;overflow:hidden;border-radius:24px 7px 24px 7px;background:#e9e1d6}.public-booking-banner.compact{height:170px}.public-booking-banner img{width:100%;height:100%;object-fit:cover}.public-booking-intro{padding:42px 4px 28px}.public-booking-intro .eyebrow{color:var(--booking-accent)}.public-booking-intro h1{max-width:760px;margin:10px 0 12px;font-size:clamp(2.5rem,7vw,5.3rem);line-height:.94;letter-spacing:-.06em}.public-booking-intro>p{max-width:650px;margin:0;color:#5f6f6b;line-height:1.65}.public-booking-facts{display:flex;flex-wrap:wrap;gap:0;margin-top:28px}.public-booking-facts span{padding:0 22px;border-right:1px solid rgba(21,71,68,.15);color:#64716f;font-size:.73rem}.public-booking-facts span:first-child{padding-left:0}.public-booking-facts span:last-child{border:0}.public-booking-facts b{color:#132522}.public-booking-form{display:grid;gap:16px}.booking-step,.booking-confirmation-card,.booking-change-card,.public-booking-unavailable{padding:28px;border:1px solid rgba(21,71,68,.14);border-radius:20px 6px 20px 6px;background:#fffdfa;box-shadow:0 18px 50px rgba(21,71,68,.07)}.booking-step>header{display:grid;grid-template-columns:38px 1fr;gap:12px;margin-bottom:22px}.booking-step>header>span{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:var(--booking-accent);color:#fff;font-weight:800}.booking-step h2{margin:1px 0 4px;font-size:1.15rem}.booking-step header p{margin:0;color:#6f7d79;font-size:.72rem}.booking-day-list{display:grid;gap:8px}.booking-day-list details{border-top:1px solid #d6ddda}.booking-day-list summary{display:flex;align-items:center;justify-content:space-between;padding:16px 2px;cursor:pointer;list-style:none}.booking-day-list summary::-webkit-details-marker{display:none}.booking-day-list summary span{font-weight:780}.booking-day-list summary small{color:#71807c}.booking-slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;padding:0 0 16px}.booking-slot-grid label{position:relative}.booking-slot-grid input{position:absolute;opacity:0;pointer-events:none}.booking-slot-grid span{display:block;padding:11px 8px;border:1px solid rgba(21,71,68,.2);border-radius:9px;color:var(--booking-accent);text-align:center;font-size:.73rem;font-weight:760;cursor:pointer}.booking-slot-grid input:checked+span{border-color:var(--booking-accent);background:var(--booking-accent);color:#fff}.booking-slot-grid input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--booking-accent) 25%,transparent);outline-offset:2px}.booking-contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.booking-contact-fields label:last-of-type{grid-column:1/-1}.booking-contact-fields input,.booking-question-list textarea{width:100%;margin:7px 0 0;border-color:rgba(21,71,68,.18);background:#fff}.booking-question-list{display:grid;gap:16px}.booking-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-radius:18px 5px 18px 5px;background:#154744;color:#fff}.booking-submit strong,.booking-submit small{display:block}.booking-submit small{margin-top:4px;color:rgba(255,255,255,.68);font-size:.7rem}.booking-submit button,.booking-change-card button{min-height:48px;padding:0 24px;border:0;border-radius:99px;background:var(--booking-accent);color:#fff;font:inherit;font-weight:800;cursor:pointer}.booking-submit button{background:#d96732}.public-booking-footer{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:30px;color:#78837f;font-size:.62rem}.public-booking-footer img{width:82px;height:30px;object-fit:contain}.booking-error,.booking-success{display:flex;gap:8px;margin:16px 0;padding:15px 18px;border-radius:12px;background:#fff0eb;color:#8c3219;font-size:.76rem}.booking-success{background:#e7f3ee;color:#154744}.booking-success b,.booking-success span{display:block}.booking-manage-shell{max-width:820px}.booking-confirmation-card{margin-top:18px}.booking-confirmation-card h1{margin:16px 0 24px;font-size:clamp(2rem,5vw,3.8rem);letter-spacing:-.05em}.booking-confirmation-details{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:1px;background:rgba(21,71,68,.14)}.booking-confirmation-details>div{padding:18px;background:#fffdfa}.booking-confirmation-details small,.booking-confirmation-details strong,.booking-confirmation-details span{display:block}.booking-confirmation-details small,.booking-instructions small{margin-bottom:6px;color:#6b7874;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em}.booking-confirmation-details strong{font-size:.78rem;line-height:1.45}.booking-confirmation-details span{margin-top:4px;color:#6b7874;font-size:.68rem}.booking-instructions{margin-top:22px;padding:18px;border-radius:12px;background:#f6f1e9}.booking-instructions p{margin:5px 0 0;line-height:1.55}.booking-payment-callout{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:18px;border-radius:13px;background:#fff2e9}.booking-payment-callout strong,.booking-payment-callout span{display:block}.booking-payment-callout span{margin-top:4px;color:#6b7874;font-size:.68rem}.booking-payment-callout a{padding:11px 17px;border-radius:99px;background:#d96732;color:#fff;text-decoration:none;font-size:.73rem;font-weight:800}.booking-change-card{margin-top:16px;padding-top:8px;padding-bottom:8px}.booking-change-card>details{border-bottom:1px solid rgba(21,71,68,.14)}.booking-change-card>details:last-child{border:0}.booking-change-card>details>summary{display:flex;align-items:center;justify-content:space-between;padding:18px 0;cursor:pointer;list-style:none}.booking-change-card>details>summary::-webkit-details-marker{display:none}.booking-change-card summary b,.booking-change-card summary small{display:block}.booking-change-card summary small{margin-top:4px;color:#6b7874;font-size:.67rem}.booking-change-card>details>form{padding-bottom:20px}.booking-change-card .booking-day-list{max-height:420px;overflow:auto;margin-bottom:14px}.booking-change-card .booking-cancel-button{background:#9d3e2a}.public-booking-unavailable{text-align:center}.public-booking-unavailable h2{margin:0 0 8px}.public-booking-unavailable p{margin:0;color:#6b7874}
.booking-calendar{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:22px}.booking-calendar-toolbar{display:grid;grid-column:1;grid-template-columns:42px 1fr 42px;align-items:center;gap:9px}.booking-calendar-toolbar h3{margin:0;text-align:center;font-size:1rem}.booking-calendar-toolbar button{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(21,71,68,.16);border-radius:50%;background:#fff;color:var(--booking-accent);font-size:1rem;cursor:pointer}.booking-calendar-toolbar button:disabled{opacity:.3;cursor:not-allowed}.booking-calendar-weekdays{display:grid;grid-column:1;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:-10px;color:#71807c;text-align:center;font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.booking-calendar-grid{display:grid;grid-column:1;grid-template-columns:repeat(7,minmax(0,1fr));align-content:start;gap:6px}.booking-calendar-blank{min-height:68px}.booking-calendar-day{display:flex;min-width:0;min-height:68px;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:9px;border:1px solid rgba(21,71,68,.14);border-radius:11px;background:#fff;color:#183b38;text-align:left}.booking-calendar-day strong{font-size:.78rem}.booking-calendar-day small{overflow:hidden;width:100%;color:#6d7c78;font-size:.53rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.booking-calendar-day.is-available{cursor:pointer}.booking-calendar-day.is-available:hover{border-color:var(--booking-accent);background:color-mix(in srgb,var(--booking-accent) 7%,#fff)}.booking-calendar-day.is-selected{border-color:var(--booking-accent);background:var(--booking-accent);color:#fff;box-shadow:0 7px 18px color-mix(in srgb,var(--booking-accent) 20%,transparent)}.booking-calendar-day.is-selected small{color:rgba(255,255,255,.78)}.booking-calendar-day.is-today strong{padding-bottom:2px;border-bottom:2px solid #d96732}.booking-calendar-day.is-unavailable{border-color:#ead6d0;background:#f5f2ef;color:#a24b38;cursor:not-allowed}.booking-calendar-day.is-unavailable strong{text-decoration:line-through;text-decoration-thickness:1.5px}.booking-calendar-day.is-unavailable small{color:#a87569}.booking-calendar-legend{display:flex;grid-column:1;gap:18px;color:#6f7d79;font-size:.58rem}.booking-calendar-legend span{display:flex;align-items:center;gap:6px}.booking-calendar-legend i{display:block;width:10px;height:10px;border-radius:3px;background:#fff;border:1px solid var(--booking-accent)}.booking-calendar-legend i.is-unavailable{border-color:#ca8d7e;background:#f5e5df}.booking-calendar-times{grid-column:2;grid-row:1/5;min-width:0;padding:20px;border-radius:16px 5px 16px 5px;background:#f4efe7}.booking-calendar-times .eyebrow{color:var(--booking-accent);font-size:.55rem}.booking-calendar-times h3{margin:7px 0 18px;font-size:.92rem;line-height:1.35}.booking-calendar-times .booking-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:0}.booking-slot-grid label.is-unavailable span,.booking-slot-grid span.is-unavailable{border-color:#dfc4bc;background:#eeeae6;color:#a24b38;text-decoration:line-through;cursor:not-allowed;opacity:.85}.booking-calendar-empty{grid-column:1/-1;margin:0;color:#71807c;font-size:.68rem;line-height:1.5}.booking-calendar-noscript{padding:14px;border-radius:10px;background:#fff0eb;color:#8c3219}.booking-change-card .booking-calendar{margin-bottom:18px}.booking-change-card button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.scheduling-admin-head{align-items:stretch}.scheduling-limit-card{grid-template-columns:1fr}.scheduling-sync-strip{grid-template-columns:1fr}.scheduling-page-grid{grid-template-columns:1fr}.scheduling-page-stats{grid-template-columns:1fr}.scheduling-page-card{min-height:0}.scheduling-fields.two-col,.scheduling-fields.three-col{grid-template-columns:1fr}.scheduling-fields.compact input{max-width:none}.availability-row{grid-template-columns:1fr;gap:8px}.availability-row>div{justify-content:space-between}.availability-row input[type=time]{width:min(42%,145px)}.scheduling-publish-card,.booking-submit,.booking-payment-callout{align-items:stretch;flex-direction:column}.public-booking-shell{width:min(100% - 20px,980px);margin-top:10px}.public-booking-banner{height:190px;border-radius:18px 5px 18px 5px}.public-booking-intro{padding:30px 4px 22px}.public-booking-facts{gap:12px}.public-booking-facts span{padding:0 10px}.booking-step,.booking-confirmation-card,.booking-change-card{padding:20px}.booking-contact-fields,.booking-confirmation-details{grid-template-columns:1fr}.booking-contact-fields label:last-of-type{grid-column:auto}.booking-slot-grid{grid-template-columns:repeat(3,1fr)}.booking-submit button{width:100%}.booking-payment-callout a{text-align:center}.booking-calendar{grid-template-columns:1fr;gap:15px}.booking-calendar-toolbar,.booking-calendar-weekdays,.booking-calendar-grid,.booking-calendar-legend,.booking-calendar-times{grid-column:1}.booking-calendar-times{grid-row:auto;padding:16px}.booking-calendar-day{min-height:58px;padding:7px 5px}.booking-calendar-day small{font-size:.48rem}.booking-calendar-times .booking-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-calendar-blank{min-height:58px}}
.booking-calendar{align-items:start}.booking-calendar-picker{display:grid;gap:15px}.booking-calendar-toolbar,.booking-calendar-weekdays,.booking-calendar-grid,.booking-calendar-legend{grid-column:auto}.booking-calendar-times{grid-column:2;grid-row:auto;max-height:540px;overflow:auto}
@media(max-width:760px){.booking-calendar-times{grid-column:1;max-height:430px}}

/* Scheduling branding, form alignment, and event notification preferences */
.scheduling-form-page>.page-header{align-items:flex-start;margin-bottom:26px}.scheduling-form-page>.page-header>.btn{margin-bottom:8px}.scheduling-fields.compact>label{display:flex;min-width:0;flex-direction:column;align-items:stretch;gap:7px}.scheduling-fields.compact>label>input,.scheduling-fields.compact>label>select{width:100%;max-width:none;margin:0}.scheduling-fields.compact>label>small{min-height:1.4em;margin:0}.scheduling-banner-card{display:grid;grid-template-columns:minmax(220px,340px) minmax(0,1fr) auto;align-items:center;gap:22px;padding:22px}.scheduling-banner-preview{height:118px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.scheduling-banner-preview img{width:100%;height:100%;object-fit:cover}.scheduling-banner-preview.empty{display:grid;place-items:center;color:var(--ink-3);font-size:.65rem}.scheduling-banner-card h2{margin:5px 0 7px;font-size:1.05rem}.scheduling-banner-card p{max-width:62ch;margin:0;color:var(--ink-3);font-size:.68rem;line-height:1.55}.scheduling-banner-card>.btn{white-space:nowrap}.notification-settings-form{display:grid;gap:16px}.notification-preference-list{display:grid;gap:1px;overflow:hidden;margin-top:20px;border:1px solid var(--line);border-radius:14px;background:var(--line)}.notification-preference-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px;background:var(--surface);cursor:pointer}.notification-preference-row:hover{background:var(--surface-2)}.notification-preference-row strong,.notification-preference-row small{display:block}.notification-preference-row strong{font-size:.78rem}.notification-preference-row small{max-width:70ch;margin-top:5px;color:var(--ink-3);font-size:.64rem;line-height:1.45}.notification-preference-row input{width:20px;height:20px;flex:0 0 20px;margin:0;accent-color:var(--forest)}
@media(max-width:860px){.scheduling-banner-card{grid-template-columns:1fr}.scheduling-banner-card>.btn{justify-self:start}.scheduling-banner-preview{height:150px}}
.event-source-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#eef5ff;color:#185abc;font-size:.66rem;font-weight:800;line-height:1.1}.event-source-badge:before{content:'G';display:grid;place-items:center;width:15px;height:15px;border-radius:4px;background:#fff;color:#4285f4;font-size:.58rem;box-shadow:0 0 0 1px rgba(66,133,244,.2)}.event-source-badge.outlook_calendar{background:#edf6ff;color:#075fae}.event-source-badge.outlook_calendar:before{content:'O';background:#0878d1;color:#fff}.event-source-badge.zoom{background:#eef5ff;color:#1766d2}.event-source-badge.zoom:before{content:'Z';background:#2d8cff;color:#fff}.event-source-mini{display:inline-block;margin-right:4px;padding:1px 4px;border-radius:4px;background:#fff;color:#185abc;font-size:.48rem;font-style:normal;font-weight:850;vertical-align:1px}.event-join-inline{display:inline-flex;margin-top:6px;color:var(--accent-dark);font-size:.72rem;font-weight:800}.event-import-details{margin:14px 0;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--accent) 6%,var(--card))}.event-import-details[hidden]{display:none}.event-import-details>div:first-child{display:flex;align-items:center;gap:10px}.event-import-details p{margin:9px 0 0;color:var(--muted);font-size:.8rem}.event-import-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.integration-error{margin-top:10px!important;padding:9px 10px;border-radius:9px;background:var(--rose-bg);color:var(--rose)!important;font-size:.67rem!important;line-height:1.45!important}.booking-confirmation-details .btn{display:inline-flex;margin-top:12px;white-space:nowrap}
.event-participant-editor{display:grid;gap:11px;margin:15px 0;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.event-participant-editor>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.event-participant-editor strong,.event-participant-editor small{display:block}.event-participant-editor strong{font-size:.78rem}.event-participant-editor small{margin-top:3px;color:var(--ink-3);font-size:.62rem}.event-participant-editor>header>span{color:var(--ink-3);font-size:.62rem;font-weight:750;white-space:nowrap}.event-participant-chips{display:flex;flex-wrap:wrap;gap:7px;min-height:28px}.event-participant-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:6px 7px 6px 10px;border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:.65rem;font-weight:700;box-shadow:inset 0 0 0 1px var(--line)}.event-participant-chip button{display:grid;width:18px;height:18px;place-items:center;padding:0;border:0;border-radius:50%;background:var(--surface-3);color:var(--ink-2);cursor:pointer}.event-participant-existing,.event-participant-new{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.event-participant-new{grid-template-columns:minmax(130px,.7fr) minmax(190px,1fr) auto}.event-participant-existing select,.event-participant-new input{margin:0}.event-participant-editor .btn{white-space:nowrap}@media(max-width:680px){.event-participant-new{grid-template-columns:1fr}.event-participant-existing{grid-template-columns:1fr}.event-participant-editor .btn{justify-content:center}}

/* Gated, contextual KRBR actions on the briefing and Action Center. */
.home-daily-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:18px}.home-daily-actions .home-daily-action{margin:0}.home-daily-actions form{display:inline-flex;margin:0}.insight-ai-button,.insight-ai-locked{border-color:var(--iris-line)!important;background:var(--iris-soft)!important;color:var(--iris-deep)!important}.insight-ai-locked{border-style:dashed!important}
.insight-row:has(.insight-ai-actions){flex-wrap:wrap}.insight-ai-actions{display:flex;order:3;flex:1 0 100%;align-items:center;flex-wrap:wrap;gap:7px;padding:0 44px 10px 150px}.insight-ai-actions form,.attention-ai-actions form{display:inline-flex;margin:0}.insight-ai-actions button,.attention-ai-actions button{margin:0;padding:7px 11px;border:1px solid var(--iris-line);border-radius:999px;background:var(--iris-soft);color:var(--iris-deep);font-size:.68rem;font-weight:780;line-height:1.2;box-shadow:none}.insight-ai-actions button:hover,.attention-ai-actions button:hover{transform:none;border-color:var(--iris);background:color-mix(in srgb,var(--iris-soft) 72%,var(--surface))}
.attention-notification-card:has(.attention-ai-actions){flex-wrap:wrap}.attention-ai-actions{display:flex;order:3;flex:1 0 100%;align-items:center;flex-wrap:wrap;gap:7px;padding:0 54px 13px 67px}.attention-ai-upsell{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:14px;padding:14px 16px;border:1px solid var(--iris-line);border-radius:14px;background:linear-gradient(110deg,var(--iris-soft),var(--surface));color:inherit;text-decoration:none}.attention-ai-upsell .insight-mark{width:34px;height:34px}.attention-ai-upsell strong,.attention-ai-upsell small{display:block}.attention-ai-upsell strong{font-size:.76rem}.attention-ai-upsell small{margin-top:3px;color:var(--ink-2);font-size:.62rem;line-height:1.4}.attention-ai-upsell b{color:var(--iris-deep);font-size:.64rem;white-space:nowrap}

/* Suggested questions demonstrate the assistant's visual and analytical range. */
.ai-assistant-prompts{display:grid;grid-template-columns:1fr;gap:7px;width:100%}.ai-assistant-prompts button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;width:100%;padding:9px 10px;border-radius:11px;text-align:left}.ai-assistant-prompts button>span{grid-row:1/span 2;align-self:start;padding:3px 6px;border-radius:999px;background:var(--iris-soft);color:var(--iris-deep);font-size:.5rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.ai-assistant-prompts button>strong,.ai-assistant-prompts button>small{grid-column:2;display:block}.ai-assistant-prompts button>strong{color:var(--ink);font-size:.64rem;line-height:1.25}.ai-assistant-prompts button>small{color:var(--ink-3);font-size:.53rem}.ai-assistant-welcome{max-width:100%}.ai-assistant.maximized .ai-assistant-prompts{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.insight-ai-actions{padding-left:27px}.attention-ai-actions{padding-left:14px}.attention-ai-upsell{grid-template-columns:auto minmax(0,1fr)}.attention-ai-upsell>b{display:none}.ai-assistant.maximized .ai-assistant-prompts{grid-template-columns:1fr}}
.project-task-entry-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:14px;align-items:stretch}.project-task-entry-grid>.card{margin:0}.project-connect-task{display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:20px}.project-connect-task h3{margin:5px 0 7px;font-size:.92rem}.project-connect-task p,.project-connect-task>small{margin:0;color:var(--ink-3);font-size:.64rem;line-height:1.5}.project-connect-task form{display:grid;gap:10px}.project-connect-task select{width:100%;margin-top:6px}.project-connect-task button{justify-self:start}@media(max-width:900px){.project-task-entry-grid{grid-template-columns:1fr}}

/* Clients and Projects: headers and rows share the exact same column tracks. */
#clientList>.client-entity-header,
#clientList>.client-list-row{
  display:grid;
  grid-template-columns:36px minmax(220px,1.35fr) minmax(330px,1.65fr) minmax(150px,.8fr) minmax(88px,.45fr) 36px 65px 15px;
  gap:14px;
  align-items:center;
}
#clientList>.client-entity-header>span:first-child,
#clientList>.client-list-row>.clr-avatar{grid-column:1;width:36px}
#clientList>.client-entity-header>button:nth-child(2),
#clientList>.client-list-row>.clr-id{grid-column:2;width:auto}
#clientList>.client-entity-header>.entity-list-header-stats,
#clientList>.client-list-row>.clr-stats{grid-column:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
#clientList>.client-entity-header>button:nth-last-child(3),
#clientList>.client-list-row>.health-dot{grid-column:4;min-width:0}
#clientList>.client-entity-header>button:nth-last-child(2),
#clientList>.client-list-row>.status-badge{grid-column:5;justify-self:start}
#clientList>.client-list-row>.pin-star{grid-column:6}
#clientList>.client-list-row>.clr-details-link{grid-column:7}
#clientList>.client-list-row>.clr-chevron{grid-column:8}
#clientList>.client-entity-header>span:last-child{grid-column:6/9;width:auto}

#projectList>.project-entity-header,
#projectList>details>.client-list-row{
  display:grid;
  grid-template-columns:64px minmax(230px,1.25fr) minmax(420px,1.8fr) minmax(190px,.75fr) 36px 15px;
  gap:14px;
  align-items:center;
}
#projectList>.project-entity-header>span:first-child,
#projectList>details>.client-list-row>.progress-ring{grid-column:1}
#projectList>.project-entity-header>button:nth-child(2),
#projectList>details>.client-list-row>.clr-id{grid-column:2;width:auto}
#projectList>.project-entity-header>.entity-list-header-stats,
#projectList>details>.client-list-row>.clr-stats{grid-column:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
#projectList>.project-entity-header>button:nth-last-child(2),
#projectList>details>.client-list-row>.status-badge{grid-column:4;justify-self:end}
#projectList>details>.client-list-row>.pin-star{grid-column:5}
#projectList>details>.client-list-row>.drawer-caret{grid-column:6}
#projectList>.project-entity-header>span:last-child{grid-column:5/7;width:auto}

#clientList>.client-list-row .clr-stat .cs-label,
#projectList>details>.client-list-row .clr-stat .cs-label{display:none}
#clientList>.client-list-row .clr-stat .cs-value,
#projectList>details>.client-list-row .clr-stat .cs-value{margin-top:0}

@media(max-width:1100px){
  #clientList>.client-entity-header,
  #clientList>.client-list-row{grid-template-columns:36px minmax(180px,1fr) minmax(140px,auto) minmax(80px,auto) 36px 65px 15px}
  #clientList>.client-entity-header>.entity-list-header-stats,
  #clientList>.client-list-row>.clr-stats{display:none}
  #clientList>.client-entity-header>button:nth-last-child(3),
  #clientList>.client-list-row>.health-dot{grid-column:3}
  #clientList>.client-entity-header>button:nth-last-child(2),
  #clientList>.client-list-row>.status-badge{grid-column:4}
  #clientList>.client-list-row>.pin-star{grid-column:5}
  #clientList>.client-list-row>.clr-details-link{grid-column:6}
  #clientList>.client-list-row>.clr-chevron{grid-column:7}
  #clientList>.client-entity-header>span:last-child{grid-column:5/8}

  #projectList>.project-entity-header,
  #projectList>details>.client-list-row{grid-template-columns:64px minmax(200px,1fr) minmax(150px,auto) 36px 15px}
  #projectList>.project-entity-header>.entity-list-header-stats,
  #projectList>details>.client-list-row>.clr-stats{display:none}
  #projectList>.project-entity-header>button:nth-last-child(2),
  #projectList>details>.client-list-row>.status-badge{grid-column:3}
  #projectList>details>.client-list-row>.pin-star{grid-column:4}
  #projectList>details>.client-list-row>.drawer-caret{grid-column:5}
  #projectList>.project-entity-header>span:last-child{grid-column:4/6}
}
/* ============================================================
   Proposal studio
   ============================================================ */
.proposal-studio-body{overflow:hidden;background:#e8ebe9}
.proposal-studio-shell{height:100vh;display:flex;flex-direction:column;color:var(--ink)}
.proposal-studio-topbar{height:68px;flex:0 0 68px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:relative;z-index:20}
.proposal-studio-title,.proposal-studio-title>div,.proposal-studio-top-actions{display:flex;align-items:center;gap:12px}.proposal-studio-title>div{align-items:flex-start;flex-direction:column;gap:1px}.proposal-studio-title>div>span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:800}.proposal-studio-title input{border:0;background:transparent;padding:0;box-shadow:none;font-size:1.02rem;font-weight:800;min-width:320px;height:auto}.proposal-studio-title input:focus{box-shadow:none;outline:0}.proposal-studio-back{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;text-decoration:none;font-size:1.7rem;color:var(--ink)}
.studio-save-status{font-size:.75rem;color:var(--ink-3);min-width:68px;text-align:right}.proposal-studio-flash{position:fixed;top:76px;left:50%;z-index:40;transform:translateX(-50%)}
.proposal-studio{flex:1;min-height:0;display:grid;grid-template-columns:224px minmax(520px,1fr) 330px}
.proposal-studio-pages,.proposal-studio-inspector{background:var(--surface);overflow:auto}.proposal-studio-pages{border-right:1px solid var(--line);padding:16px 12px}.proposal-studio-inspector{border-left:1px solid var(--line)}
.studio-panel-head{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 14px}.studio-panel-head>div{display:flex;flex-direction:column;gap:3px}.studio-panel-head button{width:30px;height:30px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:1.2rem}
.studio-page-list{display:flex;flex-direction:column;gap:7px}.studio-page-list>button{display:grid;grid-template-columns:28px 1fr 14px;gap:8px;align-items:center;width:100%;border:1px solid transparent;border-radius:10px;background:transparent;padding:10px 8px;text-align:left;color:var(--ink)}.studio-page-list>button:hover{background:var(--surface-2)}.studio-page-list>button.active{background:var(--soft);border-color:var(--line-strong)}.studio-page-list strong,.studio-page-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-page-list strong{font-size:.8rem}.studio-page-list small{font-size:.65rem;color:var(--ink-3);margin-top:3px}.studio-page-list i{font-style:normal;color:var(--ink-3)}.studio-page-number{width:25px;height:32px;display:grid;place-items:center;background:#fff;border:1px solid #ccd2cf;border-radius:3px;font-size:.66rem;font-weight:800;box-shadow:0 2px 4px #19352e12}
.proposal-studio-workspace{display:flex;flex-direction:column;min-width:0;min-height:0}.studio-canvas-toolbar{height:42px;flex:0 0 42px;border-bottom:1px solid #cdd2d0;background:#f4f6f5;display:flex;align-items:center;justify-content:center;gap:6px;color:#56625e;font-size:.72rem}.studio-canvas-toolbar button{width:27px;height:27px;border:1px solid #cbd2cf;background:#fff;color:#243c35;border-radius:7px}.studio-canvas-toolbar span:not(.studio-canvas-hint){min-width:38px;text-align:center;font-weight:700}.studio-canvas-hint{position:absolute;margin-left:430px;color:#7d8783}.studio-canvas-scroll{flex:1;min-height:0;overflow:auto;padding:38px;display:flex;justify-content:center;align-items:flex-start}
/* Theme defaults live on :root so a document's own palette — set on :root by the
   published view, or on <html> by the editor — overrides them. Declaring them on
   .proposal-page instead would beat the inherited value and pin every proposal to
   the Evergreen palette. */
:root{--ps-accent:#0f514c;--ps-accent2:#e16b38;--ps-paper:#fffaf2;--ps-ink:#123f3b;--ps-font:Inter;--ps-heading:Georgia}
.studio-page-canvas,.proposal-page{position:relative;background:var(--ps-paper);color:var(--ps-ink);font-family:var(--ps-font),sans-serif}
.studio-page-canvas{width:816px;min-height:1056px;padding:78px 76px 68px;box-shadow:0 15px 45px #182c2630;transform:scale(var(--studio-zoom));transform-origin:top center;margin-bottom:calc(-1056px * (1 - var(--studio-zoom)))}.studio-page-canvas.is-cover{background:linear-gradient(145deg,var(--ps-paper) 55%,color-mix(in srgb,var(--ps-accent) 9%,var(--ps-paper)) 55%);padding-top:130px}.studio-page-canvas>footer,.proposal-page>footer{position:absolute;left:76px;right:76px;bottom:28px;display:flex;justify-content:space-between;color:color-mix(in srgb,var(--ps-ink) 55%,transparent);font-size:.7rem}
.studio-block{position:relative;border:1px solid transparent;border-radius:8px;padding:2px;margin:-3px -4px 14px;transition:border-color .15s,box-shadow .15s}.studio-block:hover{border-color:color-mix(in srgb,var(--ps-accent) 38%,transparent)}.studio-block.selected{border-color:var(--ps-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ps-accent) 13%,transparent)}.studio-block [contenteditable]{outline:0;border-radius:4px}.studio-block [contenteditable]:focus{background:color-mix(in srgb,#fff 60%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ps-accent) 20%,transparent)}.studio-block-actions{display:none;position:absolute;right:-1px;top:-34px;z-index:5;background:var(--ps-accent);border-radius:7px 7px 0 0;overflow:hidden}.studio-block.selected>.studio-block-actions{display:flex}.studio-block-actions button{width:31px;height:31px;border:0;border-right:1px solid #ffffff2b;background:transparent;color:#fff}.studio-block-actions button:hover{background:#ffffff18}
.ps-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--ps-accent2);font-size:.72rem;font-weight:900;margin:0 0 22px}.ps-hero{max-width:640px;margin:25px 0 55px}.ps-hero h1,.ps-heading{font-family:var(--ps-heading),serif}.ps-hero h1{font-size:3.45rem;line-height:1.03;letter-spacing:-.045em;margin:0 0 20px}.ps-hero p{font-size:1.22rem;line-height:1.5;margin:0;max-width:570px}.ps-heading{font-size:2rem;line-height:1.15;letter-spacing:-.025em;margin:0 0 24px}.ps-rich{font-size:.98rem;line-height:1.72}.ps-rich p:first-child{margin-top:0}.ps-rich p:last-child{margin-bottom:0}.ps-callout{border-left:6px solid var(--ps-accent2);background:color-mix(in srgb,#fff 72%,var(--ps-paper));padding:21px 24px;margin:28px 0;border-radius:0 10px 10px 0}.ps-callout h3,.ps-callout p{margin:0}.ps-callout p{margin-top:7px;line-height:1.6}.ps-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:28px 0}.ps-stats>div{border:1px solid color-mix(in srgb,var(--ps-ink) 18%,transparent);border-radius:12px;padding:20px}.ps-stats strong,.ps-stats span{display:block}.ps-stats strong{font-size:1.8rem;color:var(--ps-accent)}.ps-stats span{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;margin-top:4px}.ps-services{margin:18px 0}.ps-services article{display:flex;gap:14px;padding:17px 0;border-bottom:1px solid color-mix(in srgb,var(--ps-ink) 14%,transparent)}.ps-services article>span{color:var(--ps-accent2);font-weight:900}.ps-services h3,.ps-services p{margin:0}.ps-services h3{font-size:1rem}.ps-services p{font-size:.84rem;line-height:1.55;margin-top:5px}.ps-pricing>h2{font-family:var(--ps-heading),serif;font-size:1.65rem}.ps-pricing>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.ps-pricing article{border:1px solid color-mix(in srgb,var(--ps-ink) 18%,transparent);padding:21px;border-radius:14px;background:color-mix(in srgb,#fff 45%,transparent)}.ps-pricing article.featured{border:2px solid var(--ps-accent);background:#fff}.ps-pricing small{text-transform:uppercase;font-size:.62rem;letter-spacing:.08em;color:var(--ps-accent2);font-weight:900}.ps-pricing h3{font-size:1rem;margin:8px 0}.ps-pricing strong{font-size:1.7rem;color:var(--ps-accent)}.ps-pricing p{font-size:.8rem;line-height:1.5}.ps-timeline{list-style:none;padding:0;margin:22px 0}.ps-timeline li{display:flex;gap:18px;border-bottom:1px solid color-mix(in srgb,var(--ps-ink) 14%,transparent);padding:15px 0}.ps-timeline li>span{color:var(--ps-accent2);font-weight:900}.ps-timeline h3,.ps-timeline p{margin:0}.ps-timeline h3{font-size:.95rem}.ps-timeline p{font-size:.8rem;margin-top:4px}.ps-meta{display:flex;gap:36px;margin:70px 0 20px}.ps-meta dt{text-transform:uppercase;font-size:.62rem;letter-spacing:.08em;color:color-mix(in srgb,var(--ps-ink) 60%,transparent)}.ps-meta dd{font-weight:800;margin:5px 0}.ps-divider{border:0;border-top:1px solid color-mix(in srgb,var(--ps-ink) 20%,transparent);margin:30px 0}.ps-spacer{height:70px}.ps-image{margin:24px 0}.ps-image img{display:block;width:100%;max-height:480px;object-fit:cover;border-radius:10px}
/* Bundled cover art sits at the top of a cover page as a banner rather than a
   captioned figure, so it reads as part of the design. */
.ps-image.is-cover-art{margin:0 0 30px}.ps-image.is-cover-art img{max-height:260px;border-radius:12px}.ps-image figcaption{font-size:.72rem;color:color-mix(in srgb,var(--ps-ink) 65%,transparent);margin-top:8px}.ps-image-placeholder{width:100%;height:220px;border:1px dashed color-mix(in srgb,var(--ps-accent) 45%,transparent);border-radius:12px;background:color-mix(in srgb,var(--ps-accent) 5%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ps-accent);font-size:1.5rem}.ps-image-placeholder strong{font-size:.9rem}.ps-image-placeholder span{font-size:.72rem}.ps-acceptance{border:1px solid color-mix(in srgb,var(--ps-ink) 18%,transparent);border-radius:14px;padding:24px;margin-top:25px}.ps-acceptance h2{font-family:var(--ps-heading),serif;margin:0 0 10px}.ps-signature-line{display:flex;gap:24px;margin-top:55px}.ps-signature-line span{flex:1;border-top:1px solid color-mix(in srgb,var(--ps-ink) 55%,transparent);padding-top:7px;font-size:.66rem;text-transform:uppercase}
.studio-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:3}.studio-tabs button{height:45px;border:0;border-bottom:2px solid transparent;background:transparent;font-size:.7rem;font-weight:800;color:var(--ink-3)}.studio-tabs button.active{border-bottom-color:var(--accent);color:var(--accent)}.studio-tab-panel{display:none;padding:16px}.studio-tab-panel.active{display:block}.studio-panel-copy{font-size:.73rem;color:var(--ink-3);line-height:1.5;margin:0 0 14px}.studio-component-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.studio-component-grid button{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px;text-align:left;font-size:.73rem;font-weight:750;color:var(--ink)}.studio-component-grid button:hover{border-color:var(--accent);background:var(--soft)}.studio-component-grid button span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--surface-2);color:var(--accent);font-weight:900}.studio-selection-editor{border-top:1px solid var(--line);margin-top:17px;padding-top:16px}.studio-empty-selection{text-align:center;padding:20px 10px;color:var(--ink-3)}.studio-empty-selection strong{color:var(--ink);font-size:.82rem}.studio-empty-selection p,.studio-edit-tip{font-size:.7rem;line-height:1.5}.studio-selection-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.studio-selection-head>div{display:flex;flex-direction:column;gap:3px}.studio-selection-head button{border:0;background:transparent;color:var(--danger);font-size:.7rem;font-weight:800}.studio-selection-editor label,.studio-tab-panel>label{font-size:.7rem;font-weight:800}.studio-selection-editor input,.studio-tab-panel input,.studio-tab-panel select{margin-top:5px}.studio-edit-tip{color:var(--ink-3);background:var(--surface-2);padding:9px;border-radius:8px}.studio-merge-fields{display:flex;flex-direction:column;gap:6px}.studio-merge-fields button{border:1px solid var(--line);background:var(--surface);border-radius:9px;text-align:left;padding:9px}.studio-merge-fields code{display:block;font-size:.68rem;color:var(--accent);font-weight:800}.studio-merge-fields span{display:block;font-size:.65rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
.studio-preview-overlay{padding:20px}.studio-preview-dialog{width:min(1100px,96vw);height:calc(100vh - 40px);margin:auto;background:#eef0ef;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-3)}.studio-preview-dialog>header{height:72px;flex:0 0 72px;background:var(--surface);border-bottom:1px solid var(--line);padding:0 20px;display:flex;align-items:center;justify-content:space-between}.studio-preview-dialog>header>div:last-child{display:flex;gap:8px;align-items:center}.studio-preview-dialog h2{margin:2px 0 0}.studio-preview-pages{overflow:auto;padding:34px}.proposal-page{width:816px;min-height:1056px;margin:0 auto 30px;padding:78px 76px 68px;box-shadow:0 12px 35px #1c302a22}.proposal-page.is-cover{padding-top:130px;background:linear-gradient(145deg,var(--ps-paper) 55%,color-mix(in srgb,var(--ps-accent) 9%,var(--ps-paper)) 55%)}
.studio-publish-state,.studio-share-result{text-align:center;padding:30px 8px}.studio-publish-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 18px;border-radius:18px;background:var(--soft);color:var(--accent);font-size:1.8rem}.studio-publish-state p{color:var(--ink-3);line-height:1.6}.studio-copy-row{display:flex;gap:8px;margin-top:6px}.studio-copy-row input{font-size:.76rem}.studio-share-result>a{width:100%;justify-content:center;margin-top:12px}
.studio-template-modal{width:min(920px,94vw)}.studio-template-switcher{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:22px;max-height:min(58vh,520px);overflow-y:auto}
/* Proposal design strip on the Proposals page, and the studio AI panel. */
.proposal-design-strip{margin:0 0 26px}
.proposal-design-strip-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px;gap:16px}
.proposal-design-strip-head h2{font-size:1.05rem;margin:2px 0 0}
.proposal-design-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(168px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}
.proposal-design-rail::-webkit-scrollbar{height:6px}
.proposal-design-rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.proposal-design-tile{scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;min-width:0}
.proposal-design-tile-art{border:1px solid var(--line);border-radius:13px;height:116px;background-size:cover;background-position:center;background-color:var(--template-paper);cursor:pointer;padding:0;display:grid;place-items:center;transition:transform .14s ease,box-shadow .14s ease}
.proposal-design-tile-art:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.proposal-design-tile-fallback{font-size:.72rem;font-weight:700;color:var(--template-accent);padding:0 12px;text-align:center}
.proposal-design-tile-meta{display:flex;flex-direction:column;min-width:0}
.proposal-design-tile-meta strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proposal-design-tile-meta small{font-size:.66rem;color:var(--ink-3)}
.studio-ai-panel{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:14px;background:var(--soft)}
.studio-ai-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.studio-ai-head h3{font-size:.92rem;margin:2px 0 0}
.studio-ai-panel textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px;font:inherit;font-size:.78rem;resize:vertical;background:var(--surface);color:var(--ink)}
.studio-ai-panel .btn{width:100%;justify-content:center;margin-top:8px}
.studio-ai-status{font-size:.72rem;color:var(--ink-3);margin:8px 0 0;min-height:1em}
/* Admin proposal designs */
.design-resync{padding:18px;margin-bottom:18px}
.design-resync-list{display:grid;gap:8px;margin:12px 0}
.design-resync-list label{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px}
.design-resync-list span{display:flex;flex-direction:column}
.design-resync-list small{font-size:.7rem;color:var(--ink-3)}
.admin-design-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:16px;padding:18px}
.admin-design-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;background:var(--surface)}
.admin-design-cover{position:relative;height:150px;background:var(--template-paper);display:grid;place-items:center;overflow:hidden}
.admin-design-cover img{width:100%;height:100%;object-fit:cover}
.admin-design-cover-fallback{font-size:.72rem;color:var(--ink-3)}
.admin-design-cover .status-badge{position:absolute;top:9px;right:9px}
.admin-design-body{padding:12px 13px 0;flex:1}
.admin-design-body h3{font-size:.95rem;margin:7px 0 4px}
.admin-design-body p{font-size:.72rem;line-height:1.45;color:var(--ink-3);margin:0 0 7px}
.admin-design-body small{font-size:.66rem;color:var(--ink-3)}
.admin-design-actions{display:flex;flex-wrap:wrap;gap:6px;padding:12px 13px}
.admin-design-editor{border-top:1px solid var(--line);padding:13px;display:grid;gap:9px}
.admin-design-editor label{display:flex;flex-direction:column;gap:4px;font-size:.72rem;font-weight:600}
.admin-design-editor input,.admin-design-editor select{border:1px solid var(--line);border-radius:8px;padding:7px;font:inherit;font-size:.76rem;background:var(--surface);color:var(--ink)}
.admin-design-delete{border-top:1px dashed var(--line);padding-top:10px;margin-top:2px}
@media(max-width:900px){.admin-design-grid{grid-template-columns:1fr}}.studio-template-switcher>button{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:10px;text-align:left;color:var(--ink)}.studio-template-switcher>button:hover{border-color:var(--accent);box-shadow:var(--shadow-1)}.studio-template-switcher strong,.studio-template-switcher small{display:block}.studio-template-switcher strong{font-size:.82rem;margin-top:9px}.studio-template-switcher small{font-size:.66rem;line-height:1.4;color:var(--ink-3);margin-top:4px}.studio-template-mini{height:130px;background:var(--template-paper);display:block;border-radius:7px;padding:18px;box-shadow:inset 0 0 0 1px #0000000b}.studio-template-mini i,.studio-template-mini b,.studio-template-mini em{display:block}.studio-template-mini i{width:32%;height:5px;background:var(--template-accent);margin-bottom:18px}.studio-template-mini b{height:10px;width:80%;background:var(--template-accent);margin-bottom:7px}.studio-template-mini b+em{width:55%;height:4px;background:#9ca4a1}
.proposal-studio-gallery{margin-bottom:34px}.proposal-studio-gallery-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.proposal-studio-gallery-head h2{font-size:1.35rem;margin:3px 0 5px}.proposal-studio-gallery-head p{margin:0;color:var(--ink-3);font-size:.82rem}.studio-template-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.studio-template-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column}.studio-template-preview{border:0;background:linear-gradient(145deg,var(--template-paper) 60%,color-mix(in srgb,var(--template-accent) 13%,var(--template-paper)) 60%);height:220px;padding:18px}.studio-template-sheet{height:100%;display:flex;flex-direction:column;background:var(--template-paper);box-shadow:0 8px 24px #24342f24;padding:20px;text-align:left;color:var(--template-accent);position:relative;overflow:hidden}.studio-template-sheet i,.studio-template-sheet strong,.studio-template-sheet u,.studio-template-sheet b,.studio-template-sheet em{display:block}.studio-template-sheet i{font-style:normal;font-size:.4rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--template-accent2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-template-sheet strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--template-heading-font);font-size:1.02rem;line-height:1.12;margin:11px 0 7px;color:var(--template-ink)}.studio-template-sheet u{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-decoration:none;font-size:.44rem;line-height:1.5;color:var(--template-ink);opacity:.6}.studio-template-sheet b{width:70%;height:4px;border-radius:2px;background:var(--template-accent);opacity:.26;margin:7px 0 0}.studio-template-sheet b+b{width:47%}.studio-template-sheet em{width:44%;height:26px;border:1px solid var(--template-accent);border-radius:3px;margin-top:auto;opacity:.45}.studio-template-sheet.is-centered{text-align:center;align-items:center;box-shadow:0 8px 24px #24342f24,inset 0 0 0 1px color-mix(in srgb,var(--template-accent) 20%,transparent)}.studio-template-sheet.is-centered strong{margin-top:16px}.studio-template-sheet.is-centered em{width:38%}.studio-template-sheet.is-banded{padding-top:0}.studio-template-sheet.is-banded i{background:var(--template-accent);color:var(--template-paper);margin:0 -20px;padding:10px 20px}.studio-template-sheet.is-banded strong{margin-top:15px}.studio-template-sheet.is-split{padding-left:30px}.studio-template-sheet.is-split::before{content:'';position:absolute;left:0;top:0;bottom:0;width:11px;background:var(--template-accent)}.studio-template-sheet.is-editorial i{border-top:2px solid var(--template-accent);padding-top:9px;color:var(--template-accent)}.studio-template-sheet.is-editorial strong{font-size:1.16rem;letter-spacing:-.01em}.studio-template-sheet.is-editorial em{width:100%;height:0;border:0;border-top:1px solid var(--template-accent);border-radius:0}
/* When a design has real cover art, show the art itself rather than the
   abstract sheet mock — the mock exists only as a fallback. */
.studio-template-preview.has-cover{background-size:cover;background-position:center;padding:0}
.studio-template-preview.has-cover .studio-template-sheet{display:none}
.studio-template-mini[style*="background-image"]{background-size:cover;background-position:center}.studio-template-card>div{padding:14px}.studio-template-card>div>span{font-size:.61rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:800}.studio-template-card h3{font-size:.95rem;margin:5px 0}.studio-template-card p{font-size:.7rem;line-height:1.45;color:var(--ink-3);min-height:42px}.studio-template-card .template-card-use{padding:0;text-align:left}

/* Published proposal */
.public-proposal-body{margin:0;background:#edf0ee;color:var(--ps-ink);font-family:var(--ps-font),sans-serif}.public-proposal-bar{height:70px;position:sticky;top:0;z-index:20;background:#fffffff2;backdrop-filter:blur(15px);border-bottom:1px solid #dce1de;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1050px)/2))}.public-proposal-bar>div{display:flex;gap:8px}.public-proposal-brand{display:flex;align-items:center;gap:10px;color:var(--ps-ink);text-decoration:none}.public-proposal-brand img{width:36px;height:36px;object-fit:contain}.public-proposal-main{padding:42px 20px 0}.public-proposal-pages .proposal-page{box-shadow:0 16px 45px #18332b20}.public-proposal-accept{width:min(816px,100%);margin:45px auto;background:#fff;border-radius:20px;padding:42px;box-shadow:0 16px 45px #18332b18}.public-proposal-accept-intro{max-width:600px}.public-proposal-accept h2{font-family:var(--ps-heading),serif;font-size:2rem}.signature-choice{border:0;padding:0;margin:24px 0}.signature-choice legend{font-weight:800;margin-bottom:8px}.signature-tabs{display:flex;border-bottom:1px solid #d7ddda;margin-bottom:12px}.signature-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:9px 16px;font-weight:800;color:#66726e}.signature-tabs button.active{color:var(--ps-accent);border-bottom-color:var(--ps-accent)}#signatureCanvas{display:block;width:100%;height:180px;border:1px solid #cdd5d1;border-radius:12px;background:#fff;touch-action:none}.signature-draw-panel{position:relative}.signature-draw-panel .link-button{position:absolute;right:10px;bottom:8px;border:0;background:#fff;padding:6px;color:var(--ps-accent);font-weight:800}.signature-type-panel input{margin-bottom:10px}#typedSignaturePreview{height:150px;border:1px solid #cdd5d1;border-radius:12px;display:flex;align-items:center;justify-content:center;font:2.4rem "Brush Script MT",cursive;color:var(--ps-accent)}.proposal-agree{margin:20px 0}.proposal-accept-button{width:100%;justify-content:center;height:52px}.proposal-signature-note{font-size:.66rem;color:#6e7874;text-align:center;margin-top:12px}.proposal-accepted-card{display:flex;gap:20px;align-items:flex-start}.proposal-accepted-card>span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#dff2e8;color:#16724a;font-size:1.5rem}.proposal-accepted-card h2{margin:4px 0}.public-proposal-footer{width:min(816px,calc(100% - 40px));margin:0 auto 35px;display:flex;justify-content:space-between;font-size:.72rem;color:#64706b}.public-proposal-footer a{color:var(--ps-accent);font-weight:900}
@media(max-width:1100px){.proposal-studio{grid-template-columns:190px minmax(500px,1fr) 290px}.studio-canvas-hint{display:none}.studio-template-gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.proposal-studio-body{overflow:auto}.proposal-studio-shell{height:auto;min-height:100vh}.proposal-studio-topbar{position:sticky;top:0}.proposal-studio-title input{min-width:140px;width:40vw}.proposal-studio{display:block}.proposal-studio-pages{display:none}.proposal-studio-workspace{height:calc(100vh - 68px)}.proposal-studio-inspector{border:0}.studio-preview-pages{padding:15px}.proposal-page,.public-proposal-pages .proposal-page{width:100%;min-height:0;padding:9vw;box-shadow:none;margin-bottom:18px}.proposal-page>footer{position:static;margin-top:50px}.public-proposal-main{padding:16px 10px}.public-proposal-bar{padding:0 12px}.public-proposal-bar .secondary{display:none}.public-proposal-accept{padding:25px 18px}.form-grid.two{grid-template-columns:1fr}.studio-template-switcher{grid-template-columns:1fr 1fr}}
