@font-face{font-family:Norte;src:url('/assets/norte.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Albert Sans';src:url('/assets/albert-sans.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--bg:#100e16;--side:#14111d;--panel:#1a1723;--raised:#211d2d;--input:#15121e;--text:#f2eef8;--muted:#b5adbf;--faint:#948b9f;--line:#332c42;--accent:#b7aaff;--brand:#7b68ee;--button:#a795ff;--button-text:#181027;--accent-bg:#302546;--success:#a8ddc6;--success-bg:#1b352e;--warn:#e9cb9c;--warn-bg:#3a3022;--danger:#f5b0b6;--danger-bg:#3b232c;--glass:rgba(21,18,29,.85);--shadow:0 16px 60px rgba(0,0,0,.25);--radius:16px;--space:24px}
[data-theme=light]{color-scheme:light;--bg:#f4f3f7;--side:#fcfbff;--panel:#fff;--raised:#f0edf7;--input:#fff;--text:#241c33;--muted:#655c72;--faint:#71677d;--line:#ded7e8;--accent:#5e429d;--button:#684bb6;--button-text:#fff;--accent-bg:#eee7fb;--success:#286049;--success-bg:#e5f2ea;--warn:#775521;--warn-bg:#fbf0d9;--danger:#9d3446;--danger-bg:#fbe9ed;--glass:rgba(252,251,255,.87);--shadow:0 16px 60px rgba(44,24,67,.12)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.5 'Albert Sans',sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button,select,input,textarea{color:inherit}button{border:0}a{color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button svg{pointer-events:none}.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Norte,'Albert Sans',sans-serif;font-weight:400;font-synthesis:none;line-height:1.15}h1{font-size:clamp(32px,3vw,42px);letter-spacing:-.035em}h2{font-size:25px;letter-spacing:-.025em}h3{font-size:21px}p{color:var(--muted)}[hidden]{display:none!important}.skip-link{position:fixed;left:16px;top:-80px;padding:12px;z-index:100;background:var(--panel)}.skip-link:focus{top:12px}.sidebar{width:240px;height:100dvh;position:fixed;inset:0 auto 0 0;padding:34px 20px 20px;background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}.brand{display:block;text-decoration:none;padding:0 10px}.brand img{width:158px;height:34px;object-fit:contain;object-position:left}.brand span{display:block;font-size:9px;letter-spacing:.2em;color:var(--muted);margin-top:12px}.logo-dark{display:none}[data-theme=light] .logo-dark{display:block}[data-theme=light] .logo-light{display:none}.workspace{display:flex;align-items:center;gap:10px;padding:15px 10px;margin:32px 0;border:1px solid var(--line);border-radius:12px}.space-avatar,.profile-avatar{background:var(--accent-bg);color:var(--accent);display:grid;place-items:center;border-radius:10px;width:34px;height:36px;font-weight:650;font-size:12px;flex:none}.workspace label{min-width:0;color:var(--muted);font-size:10px}.workspace select{border:0;background:transparent;width:100%;font-size:13px;padding:3px 0;color:var(--text);font-weight:600}.nav-label{font-size:10px;font-weight:650;letter-spacing:.12em;color:var(--faint);padding:0 12px;margin-bottom:12px}.nav-item{background:transparent;display:flex;align-items:center;gap:12px;width:100%;padding:13px 12px;margin-bottom:6px;border-radius:10px;text-align:left;color:var(--muted);font-weight:550}.nav-item>span:first-child{display:flex}.nav-item:hover{background:var(--raised);color:var(--text)}.nav-item.active{background:var(--accent-bg);color:var(--accent)}.nav-count{margin-left:auto;font-size:11px;padding:1px 7px;border:1px solid var(--line);border-radius:5px}.sidebar-bottom{margin-top:auto;padding-top:28px}.lab-note{padding:15px 12px;border:1px solid var(--line);border-radius:12px;margin-bottom:20px;font-size:12px}.lab-note strong{font-size:12px;font-weight:550}.lab-note p{margin-top:7px;font-size:12px;line-height:1.55}.lab-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:7px}.role-label{font-size:11px;color:var(--muted);display:block}.role-label select{width:100%;margin-top:6px;background:var(--input);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.role-hint{font-size:11px;margin:8px 0 16px;min-height:33px}.theme-button{display:flex;align-items:center;gap:10px;width:100%;padding:9px;background:transparent;color:var(--muted);font-size:13px}.theme-button>span:first-child{display:flex}.app-shell{margin-left:240px;min-width:0;--page-gutter:36px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--glass);backdrop-filter:blur(20px) saturate(1.8);position:sticky;top:0;z-index:10;gap:12px}.breadcrumb,.slash{color:var(--faint)}.slash{margin:0 15px}.topbar-right{display:flex;gap:20px;align-items:center}.profile-avatar{border-radius:50%;width:31px;height:31px;background:var(--raised);color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:6px;font-size:11px;font-weight:550;white-space:nowrap}.pill.neutral{background:var(--raised);color:var(--muted)}.pill.success{background:var(--success-bg);color:var(--success)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.danger{background:var(--danger-bg);color:var(--danger)}.pill.accent{background:var(--accent-bg);color:var(--accent)}main{max-width:1440px;margin:auto;padding:36px 0 32px;min-height:calc(100dvh - 132px)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.14em;color:var(--accent);margin-bottom:10px}.page-heading p{margin-top:10px;font-size:14px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:9px;padding:10px 15px;background:var(--raised);color:var(--text);font-size:13px;font-weight:600;text-decoration:none;border:1px solid var(--line);transition:background .15s,transform .15s}.button:hover:not(:disabled){background:var(--line)}.button:active:not(:disabled){transform:translateY(1px)}.button.primary{background:var(--button);color:var(--button-text);border-color:transparent}.button.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--button)}.button.ghost{background:transparent}.button.small{min-height:34px;font-size:12px;padding:7px 10px}.button.danger{color:var(--danger)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);margin-bottom:24px}.stat{padding:20px 24px;position:relative}.stat+.stat{border-left:1px solid var(--line)}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:30px;line-height:1.3;letter-spacing:-.05em;font-weight:500;margin:8px 0 5px;font-variant-numeric:tabular-nums}.stat-foot{font-size:11px;color:var(--faint)}.stat .icon{position:absolute;right:20px;top:22px;width:16px;color:var(--faint)}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:24px;align-items:start}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px}.panel-head h2{font-size:22px}.panel-head p{font-size:12px;margin-top:7px}.table-tools{padding:0 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.search{position:relative;width:100%;max-width:320px}.search .icon{position:absolute;left:12px;top:10px;color:var(--faint);width:17px}.search input{padding:9px 12px 9px 38px;min-height:38px}.input,select,textarea{background:var(--input);border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%;font-size:13px}.input::placeholder,textarea::placeholder{color:var(--faint)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;white-space:nowrap}th{font-weight:500;color:var(--faint);font-size:11px;padding:11px 20px;border-block:1px solid var(--line);background:var(--side)}td{padding:15px 20px;border-bottom:1px solid var(--line);height:69px}th:first-child,td:first-child{padding-left:24px}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--raised)}.person{display:flex;align-items:center;gap:11px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--raised);border:1px solid var(--line);color:var(--muted);font-size:11px;flex:none}.person-name{font-weight:600;font-size:13px;background:transparent;padding:0;text-align:left}.person-name:hover{color:var(--accent)}.person-email{font-size:11px;color:var(--faint);margin-top:2px}.table-footer{padding:14px 24px;border-top:1px solid var(--line);color:var(--faint);font-size:11px;display:flex;justify-content:space-between;gap:12px}.side-card{padding:24px}.side-card+.side-card{margin-top:16px}.side-card h2{font-size:25px;margin:18px 0 12px;max-width:210px}.side-card p{font-size:13px;line-height:1.65}.side-card .button{margin-top:22px;width:100%}.orbit-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;color:var(--accent);background:var(--accent-bg)}.side-card .large-count{font-size:35px;margin:14px 0 0;color:var(--accent);font-weight:500;letter-spacing:-.06em}.side-card .label{color:var(--faint);font-size:11px}.check-list{padding:0;list-style:none;margin:18px 0 0}.check-list li{display:flex;gap:10px;color:var(--muted);font-size:12px;margin:12px 0}.check-list .icon{width:15px;height:18px;color:var(--accent)}.quiet-note{font-size:11px;color:var(--faint);margin-top:18px;line-height:1.6}.empty{padding:52px 24px;text-align:center}.empty .orbit-icon{margin:0 auto 20px}.empty h2{margin-bottom:12px}.empty p{max-width:420px;margin:0 auto 22px;font-size:14px}.campaign-list{display:grid;gap:16px}.campaign-card{padding:24px}.campaign-heading{display:flex;justify-content:space-between;align-items:start;gap:18px}.campaign-heading h2{margin-top:13px;font-size:25px;overflow-wrap:anywhere}.campaign-meta{display:flex;gap:18px;color:var(--faint);font-size:12px;flex-wrap:wrap;margin:14px 0}.message-preview{border-left:2px solid var(--line);padding:4px 0 4px 16px;margin:20px 0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.campaign-bottom{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-top:20px}.campaign-bottom p{font-size:12px}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:22px 0;border:1px solid var(--line);border-radius:10px}.result-grid>div{padding:15px}.result-grid>div+div{border-left:1px solid var(--line)}.result-grid strong{font-size:24px;font-weight:500;display:block}.result-grid span{font-size:11px;color:var(--muted)}.event-list{padding:0;margin:12px 0;list-style:none}.event-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.event-list li span:last-child{color:var(--muted);text-align:right}.activity-list{list-style:none;margin:0;padding:0 24px}.activity-list li{display:flex;gap:15px;padding:18px 0;border-top:1px solid var(--line)}.activity-mark{width:30px;height:30px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;flex:none;color:var(--accent)}.activity-mark .icon{width:15px}.activity-list strong{font-size:13px;font-weight:550}.activity-list p{font-size:11px;margin-top:3px}.activity-list time{margin-left:auto;color:var(--faint);font-size:11px;white-space:nowrap}.app-footer{border-top:1px solid var(--line);padding:18px 0;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:var(--faint)}.feedback{position:fixed;bottom:24px;left:calc(50% + 120px);transform:translateX(-50%);max-width:min(540px,calc(100vw - 32px));width:max-content;padding:14px 20px;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);background:var(--raised);font-size:13px;z-index:100}.feedback.error{border-color:var(--danger);color:var(--danger)}dialog{width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;background:var(--panel);border:1px solid var(--line);border-radius:20px;color:var(--text);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(8,5,14,.6);backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:25px 28px 18px;gap:16px}.dialog-head h2{font-size:27px}.close-button{background:var(--raised);color:var(--muted);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex:none}.dialog-body{padding:0 28px 28px}.dialog-body>p{font-size:13px;margin:0 0 22px}.field{display:block;margin-bottom:18px;font-size:12px;font-weight:550}.field>input,.field>select,.field>textarea{display:block;margin-top:7px}.field small{display:block;color:var(--faint);font-size:11px;font-weight:400;margin-top:6px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field textarea{resize:vertical;min-height:112px}.upload{border:1px dashed var(--faint);border-radius:12px;padding:20px;background:var(--input);margin-bottom:20px}.upload p{font-size:12px;margin:8px 0 15px}.upload input{max-width:100%;font-size:12px}.upload input::file-selector-button{background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:7px 10px;margin-right:10px;cursor:pointer}.notice{background:var(--accent-bg);border-radius:10px;padding:13px 15px;color:var(--accent);font-size:12px;margin:16px 0}.notice.warning{background:var(--warn-bg);color:var(--warn)}.notice.error{background:var(--danger-bg);color:var(--danger)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;flex-wrap:wrap}.preview-counts{display:flex;gap:24px;margin:18px 0}.preview-counts strong{font-size:22px;display:block;font-weight:550}.preview-counts span{font-size:11px;color:var(--muted)}details{font-size:12px;margin-top:15px}summary{cursor:pointer;color:var(--muted);padding:6px 0}.error-list{padding-left:18px;color:var(--danger);font-size:12px}.contact-data{display:grid;grid-template-columns:100px minmax(0,1fr);font-size:13px;gap:12px;margin:24px 0}.contact-data dt{color:var(--muted)}.contact-data dd{margin:0;overflow-wrap:anywhere}.loading{padding:80px 20px;text-align:center;color:var(--muted)}
.dialog-head{position:sticky;top:0;background:var(--panel);z-index:1;border-bottom:1px solid var(--line);margin-bottom:18px}
@media(min-width:1600px){.app-shell{--page-gutter:52px}.content-grid{grid-template-columns:minmax(0,1fr) 310px}}
@media(max-width:1200px){.sidebar{width:215px;padding-inline:16px}.app-shell{margin-left:215px;--page-gutter:24px}.content-grid{grid-template-columns:minmax(0,1fr)}.side-stack{display:grid;grid-template-columns:1fr 1fr;gap:20px}.side-card+.side-card{margin-top:0}.side-card h2{max-width:none}.side-card .button{width:auto}.stats .stat{padding:18px}.stats .icon{display:none}.feedback{left:calc(50% + 107px)}}
@media(max-width:800px){.sidebar{position:relative;width:auto;height:auto;padding:20px 24px 12px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:18px}.brand{padding:0}.brand img{width:143px;height:28px}.brand span{margin-top:7px;font-size:8px}.workspace{margin:0;padding:8px 10px;justify-self:end;width:200px}.nav-label,.lab-note,.role-hint{display:none}#nav{grid-column:1/-1;display:flex;gap:8px}#nav .nav-item{width:auto;margin:0;flex:1;justify-content:center;font-size:13px;padding:10px}.nav-count{margin-left:0}.sidebar-bottom{grid-column:1/-1;padding:0;display:flex;align-items:center;gap:16px;justify-content:space-between}.role-label{display:flex;gap:10px;align-items:center}.role-label select{width:120px;margin:0;padding:6px 8px}.theme-button{width:auto;font-size:12px}.app-shell{margin-left:0;--page-gutter:24px}.topbar{height:56px}.topbar-right{gap:10px}.profile-avatar{display:none}main{padding-top:28px;min-height:60vh}.page-heading{align-items:flex-start}.feedback{left:50%}.app-footer{flex-wrap:wrap}.activity-list time{white-space:normal;max-width:80px;text-align:right}}
@media(max-width:520px){.sidebar{padding:18px 16px 12px;gap:16px 8px}.brand img{width:124px}.workspace{width:175px;padding:7px;gap:7px}.workspace select{font-size:12px}.workspace label{font-size:9px}.workspace .space-avatar{width:28px;height:30px;font-size:10px}#nav .nav-item{font-size:12px;gap:8px;padding:10px 7px}#nav .icon{width:16px}.app-shell{--page-gutter:16px}.topbar{font-size:12px}.topbar .pill{font-size:10px}.page-heading{flex-direction:column;gap:18px;margin-bottom:24px}.page-heading p{font-size:13px;max-width:320px}.page-heading .actions{width:100%}.page-heading .button{flex:1}.stats{grid-template-columns:1fr 1fr;margin-bottom:18px}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}.stat-value{font-size:28px}.stat-label{font-size:11px}.stat-foot{font-size:10px}.content-grid{gap:18px}.side-stack{grid-template-columns:1fr;gap:18px}.panel-head{padding:20px}.panel-head h2{font-size:22px}.table-tools{padding:0 20px 16px;align-items:stretch}.table-tools .button{font-size:0;width:38px;padding:8px}.table-footer{padding:14px 20px;flex-wrap:wrap}.table-scroll table{min-width:570px}.campaign-card{padding:20px}.campaign-heading{flex-wrap:wrap}.campaign-meta{gap:10px}.campaign-bottom .actions{width:100%}.campaign-bottom .button{flex:1}.result-grid>div{padding:12px}.result-grid span{font-size:10px}.activity-list{padding:0 18px}.activity-list strong{font-size:12px}.activity-list p{font-size:10px}.dialog-head{padding:22px 20px 16px}.dialog-body{padding:0 20px 24px}.field-row{grid-template-columns:1fr;gap:0}.dialog-actions .button{flex:1}dialog{max-height:calc(100dvh - 24px);width:calc(100% - 24px)}.feedback{bottom:14px;font-size:12px}.role-label{font-size:10px}.app-footer{font-size:10px}.event-list li{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

/* Desenrol.ai DS v0.1: typography and emphasis for the CRM.
   User-approved body override: Albert Sans replaces the PDF's Epilogue. */
:root {
  --font-heading: Norte, 'Albert Sans', sans-serif;
  --font-body: 'Albert Sans', sans-serif;
  --brand-primary: #7b68ee;
  --brand-deep: #2e0c69;
  --brand-soft: #d7bde2;
  --stage-total: var(--brand-soft);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
}
[data-theme=light] { --stage-total: var(--brand-deep); }
body, button, input, select, textarea { font-family: var(--font-body); }
h1, h2, h3, h4, h5, h6,
.stat-value, .large-count, .preview-counts strong, .result-grid strong,
.deal-title, .deal-value:not(.unknown), .stage-heading h2, .stage-total:not(.empty-total) {
  font-family: var(--font-heading);
  font-weight: 400;
  font-synthesis: none;
}
h1 { font-size: clamp(2rem, 1.25rem + 1.8vw, 3rem); line-height: 1.17; letter-spacing: -.025em; }
h4, h5, h6 { margin: 0; line-height: 1.3; }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.125rem; }
h6 { font-size: 1rem; }
.stat-value { font-size: 2rem; letter-spacing: -.025em; }

/* Norte uses designed ligatures (es, at, ti...). Nonzero tracking suppresses them in Chrome. */
h1, h2, h3, h4, h5, h6,
.stat-value, .large-count, .preview-counts strong, .result-grid strong,
.deal-title, .deal-value:not(.unknown), .stage-heading h2, .stage-total:not(.empty-total) {
  letter-spacing: normal;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures;
  font-feature-settings: "liga" 1;
}

/* Brand scrollbars: native scrolling and keyboard behavior remain intact. */
:root { --scroll-thumb:#706389; --scroll-hover:#a395d7; --scroll-track:#15111e; }
[data-theme=light] { --scroll-thumb:#a596bd; --scroll-hover:#6b4bb5; --scroll-track:#f1edf7; }
html, body, .sidebar, #nav, .settings-nav, .table-scroll, .board-scroll, dialog, textarea {
  scrollbar-color:var(--scroll-thumb) var(--scroll-track);
  scrollbar-width:thin;
}
/* Chrome/WebKit: use custom rounded thumbs; non-auto standard properties override these pseudo-elements. */
@supports selector(::-webkit-scrollbar) {
  html, body, .sidebar, #nav, .settings-nav, .table-scroll, .board-scroll, dialog, textarea { scrollbar-color:auto; scrollbar-width:auto; }
}
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-track { background:var(--scroll-track); border-radius:10px; }
::-webkit-scrollbar-thumb { background:var(--scroll-thumb); border:2px solid var(--scroll-track); border-radius:10px; }
::-webkit-scrollbar-thumb:hover { background:var(--scroll-hover); }
::-webkit-scrollbar-corner { background:var(--scroll-track); }
@media(forced-colors:active) {
  html, body, .sidebar, #nav, .settings-nav, .table-scroll, .board-scroll, dialog, textarea { scrollbar-color:auto; scrollbar-width:auto; }
  ::-webkit-scrollbar { width:auto; height:auto; }
  ::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb, ::-webkit-scrollbar-corner { background:revert; border-color:revert; }
}

/* Informational feedback must not intercept controls below it. */
.feedback{pointer-events:none}

/* Focus belongs to the content heading, not a frame extending behind the sticky header. */
main:focus-visible{outline:none}
main:focus-visible .page-heading h1{text-decoration-line:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:10px;text-decoration-skip-ink:auto}
main{scroll-margin-top:92px}

/* Separate the header surface from the scrolling content: no cards or borders
   slip behind its side gutters. The document remains the scroller on mobile. */
.app-shell{height:100dvh;display:flex;flex-direction:column}
.topbar{position:relative;top:auto;flex:none;height:68px;padding-inline:var(--page-gutter);isolation:isolate}
.content-scroll{flex:1;min-height:0;overflow:auto;padding-inline:var(--page-gutter);scroll-padding-block:var(--space-6);scrollbar-gutter:stable}
.content-scroll main{min-height:calc(100dvh - 124px);scroll-margin-top:var(--space-6)}
.content-scroll .app-footer{max-width:1440px;margin-inline:auto}
.settings-layout .settings-nav{top:var(--space-6)}
.table-scroll{border-radius:10px;scroll-padding:var(--space-3)}
.table-scroll:focus-visible,.board-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* Compact navigation, with every current destination visible. No clipped links
   or hidden scrollbars: narrow/short screens reflow into the document. */
aside.sidebar{padding:var(--space-6) var(--space-4) var(--space-4);overflow:visible}
.sidebar .brand img{width:140px;height:26px}
.sidebar .brand span{margin-top:var(--space-2)}
.sidebar .workspace{padding:10px;margin:var(--space-4) 0}
.sidebar .nav-label{margin-bottom:var(--space-2)}
.sidebar #nav .nav-item{min-height:40px;padding:9px 12px;margin-bottom:var(--space-1);font-size:14px}
.sidebar-bottom{display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:end;gap:var(--space-3);padding-top:var(--space-4)}
.sidebar .lab-note{grid-column:1/-1;padding:10px 12px;margin:0;font-size:11px}
.sidebar .lab-note p{font-size:11px;margin-top:var(--space-1)}
.sidebar .role-label select{padding:7px 10px;min-height:36px}
.sidebar .role-hint{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sidebar .theme-button{width:36px;height:36px;justify-content:center;padding:var(--space-2);border:1px solid var(--line);border-radius:8px}
.sidebar #theme-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(min-width:801px) and (max-height:720px){
  aside.sidebar{padding-block:var(--space-4)}
  .sidebar .brand span{font-size:8px;margin-top:var(--space-1)}
  .sidebar .workspace{margin:var(--space-3) 0;padding:var(--space-2)}
  .sidebar #nav .nav-item{min-height:36px;padding:7px 12px;margin-bottom:2px}
  .sidebar-bottom{padding-top:var(--space-2);gap:var(--space-2)}
  .sidebar .lab-note{padding:var(--space-2) 12px}
}
@media(max-width:800px),(max-height:580px){
  aside.sidebar{position:relative;inset:auto;width:auto;height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);padding:var(--space-4);border-right:0;border-bottom:1px solid var(--line)}
  .sidebar .brand{padding:0;align-self:center}
  .sidebar .brand img{width:132px;height:26px}
  .sidebar .workspace{margin:0;max-width:200px;padding:var(--space-2)}
  .sidebar .nav-label,.sidebar .lab-note{display:none}
  .sidebar #nav{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:var(--space-1);padding:0;margin:0;overflow:visible;max-width:100%}
  .sidebar #nav .nav-item{min-width:0;min-height:40px;width:100%;justify-content:flex-start;margin:0;padding:var(--space-2);font-size:13px;white-space:normal}
  .sidebar .sidebar-bottom{grid-column:1/-1;width:100%;padding:0;display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:var(--space-3)}
  .sidebar .role-label{display:flex;align-items:center;gap:var(--space-3)}
  .sidebar .role-label select{width:180px;max-width:100%;margin:0}
  .app-shell{height:auto;margin-left:0}
  .content-scroll{overflow:visible;padding-inline:var(--page-gutter)}
  .content-scroll main{min-height:60vh;scroll-margin-top:var(--space-6)}
  .topbar{position:relative;height:56px}
}
@media(max-width:400px){.sidebar .brand img{width:120px}.sidebar .workspace{max-width:170px}.sidebar #nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.sidebar .brand img{width:104px}.sidebar .workspace{width:164px;max-width:164px}}

/* Contact export selection: visible scope, keyboard targets and branded states. */
.contact-tools{flex-wrap:wrap;justify-content:flex-start}
.contact-tools .search{margin-right:auto}
.contacts-table .contact-select-cell{width:64px;padding:8px 12px;text-align:center}
.contact-check{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;cursor:pointer}
.contact-check input{width:18px;height:18px;margin:0;accent-color:var(--accent);cursor:pointer}
.contacts-table tr.is-selected{background:var(--accent-bg)}
.contacts-table tr.is-selected:hover{background:var(--accent-bg)}
.contact-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 24px;border-top:1px solid var(--line);background:var(--accent-bg);font-size:12px;color:var(--accent)}
.contact-selection[hidden]{display:none}
@media(max-width:800px){.contact-tools .button{font-size:12px;width:auto;min-height:38px;padding:8px 10px}.contact-tools .search{max-width:none;flex-basis:100%}.contact-selection{padding:12px 20px}}

/* Contact row pointer shortcut; keyboard activation remains on the name button. */
.contacts-table tr[data-contact-row]{cursor:pointer}
.contacts-table tr[data-contact-row]:hover,.contacts-table tr[data-contact-row]:focus-within{background:var(--accent-bg)}

/* Native customizable selects: preserve form semantics/events and OS fallback. */
@supports (appearance:base-select) {
  select:not([multiple]):not([size]),select:not([multiple])[size="1"] { appearance:base-select;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;cursor:pointer; }
  select:not([multiple]):not([size])::picker(select),select:not([multiple])[size="1"]::picker(select) {
    appearance:base-select;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;
    padding:6px;box-shadow:0 10px 30px #0003;max-height:min(360px,60dvh);max-width:calc(100vw - 24px);
    overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track);
  }
  select:not([multiple]):not([size])::picker-icon,select:not([multiple])[size="1"]::picker-icon {color:var(--muted);margin-inline-start:10px;flex:none;}
  select:not([multiple]):not([size]):open,select:not([multiple])[size="1"]:open {border-color:var(--accent);}
  select:not([multiple]):not([size]) option,select:not([multiple])[size="1"] option {
    display:flex;align-items:center;gap:10px;min-height:36px;padding:8px 10px;border-radius:7px;
    font:inherit;font-weight:400;white-space:normal;overflow-wrap:anywhere;cursor:pointer;
  }
  select:not([multiple]):not([size]) option:checked,select:not([multiple])[size="1"] option:checked {background:var(--accent-bg);color:var(--accent);font-weight:600;}
  select:not([multiple]):not([size]) option:not(:disabled):is(:hover,:focus),select:not([multiple])[size="1"] option:not(:disabled):is(:hover,:focus) {background:var(--accent-bg);color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px;}
  select:not([multiple]):not([size]) option::checkmark,select:not([multiple])[size="1"] option::checkmark {order:1;margin-inline-start:auto;color:currentColor;}
  select:not([multiple]):not([size]) option:disabled,select:not([multiple])[size="1"] option:disabled,select:not([multiple]):not([size]) optgroup:disabled,select:not([multiple])[size="1"] optgroup:disabled {color:var(--faint);cursor:not-allowed;}
  select:not([multiple]):not([size]) optgroup,select:not([multiple])[size="1"] optgroup {padding:6px 0;font-size:12px;font-weight:600;}
  select:disabled {cursor:not-allowed;}
}

/* Reusable email content editor. */
.et-fields{border:0;padding:0;margin:0;min-width:0;display:grid;gap:16px}
.et-block{padding:16px;margin:16px 0;min-width:0}
.et-block .panel-head{padding:0 0 12px;gap:12px;flex-wrap:wrap}
.et-block .field{margin-bottom:12px}
.et-colors{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:16px}
.et-colors input{width:100%;min-height:42px}
.et-list{padding:0;list-style:none}.et-list li{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--border);padding:16px 0}.et-list strong{overflow-wrap:anywhere}
.et-preview-wrap{overflow:auto;margin-top:16px;max-width:100%}
#et-preview{display:block;width:600px;max-width:100%;height:600px;border:0;margin:auto;background:#fff}
.et-plain{white-space:pre-wrap;overflow-wrap:anywhere}

/* Campaign delivery queue */
.ed-filters{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:20px 0}.ed-filters .field{min-width:0}.ed-items{list-style:none;padding:0;margin:20px 0}.ed-items li{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--border)}.ed-items li>div{min-width:0;overflow-wrap:anywhere}.ed-items p{margin:6px 0}#ed-detail{overflow-wrap:anywhere}#ed-new-form .field{margin:16px 0}#ed-list .dialog-actions{flex-wrap:wrap}@media(max-width:600px){.ed-filters{grid-template-columns:1fr}.ed-items li{align-items:flex-start;flex-wrap:wrap}}

/* Structured landing page editor */
.lp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lp-section{padding:20px;margin:16px 0}.lp-item{padding:16px 0;border-top:1px solid var(--border)}#lp-editor details{margin:20px 0}#lp-editor summary{cursor:pointer;margin-bottom:16px}#lp-editor textarea{width:100%;resize:vertical}.lp-preview-wrap{overflow:auto;background:#e7e7eb;padding:8px}.lp-preview-wrap iframe{display:block;border:0;width:100%;height:640px;margin:auto;background:white}.lp-preview-wrap iframe.lp-mobile{width:375px;max-width:100%}@media(max-width:640px){.lp-grid{grid-template-columns:1fr}.lp-section{padding:12px}.lp-section .panel-head{flex-wrap:wrap}.lp-preview-wrap iframe{height:560px}}
#dialog:has(#lp-editor),#dialog:has(#lp-preview){width:min(1120px,calc(100% - 32px))}.lp-item{border-color:var(--line)}

/* Agency portfolio shares the CRM typography and spacing. */
.agency-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:end;width:100%}
.agency-filters label{flex:1;min-width:180px}
.agency-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border-bottom:1px solid var(--border)}
.agency-row h3{margin:0 0 8px;overflow-wrap:anywhere}.agency-row p{margin:6px 0}
.agency-fields{border:0;padding:0;display:grid;gap:18px;min-width:0}.agency-fields label{display:grid;gap:8px}.agency-fields input,.agency-fields select,.agency-fields textarea{width:100%;box-sizing:border-box}
@media(max-width:600px){.agency-filters{display:grid;grid-template-columns:1fr}.agency-filters label{min-width:0}.agency-row{align-items:start;padding:16px}.agency-row>div{min-width:0}}

.agency-filters label{display:grid;gap:8px}.agency-filters input{width:100%;box-sizing:border-box}
.agency-filters input,.agency-fields input{background:var(--input);border:1px solid var(--line);border-radius:8px;padding:11px 13px;min-height:42px;color:var(--text)}
.agency-row{border-color:var(--line)}
#main:has(#agency-results)>.button-row{margin-bottom:24px}
/* Agency conversation uses the same typography and panel tokens as the CRM. */
.agchat-history{display:grid;gap:8px;max-width:100%;min-width:0}.agchat-history select{max-width:100%}
.agchat-messages,.agchat-status,.agchat-proposal,.agchat-composer{padding:20px 24px}.agchat-message{padding:16px;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow-wrap:anywhere}.agchat-message p{white-space:pre-wrap;margin-top:8px}.agchat-message.from-user{background:var(--accent-bg)}
.agchat-status{color:var(--accent)}.agchat-proposal:empty,.agchat-status:empty{display:none}.agchat-proposal{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.agchat-proposal dl{display:grid;gap:14px}.agchat-proposal dt{color:var(--muted);font-size:12px}.agchat-proposal dd{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.agchat-composer{display:grid;gap:12px}.agchat-composer textarea{width:100%;box-sizing:border-box;background:var(--input);border:1px solid var(--line);border-radius:8px;padding:12px}.agchat-composer .button-row,.agchat-proposal .button-row{display:flex;flex-wrap:wrap;gap:10px}
#main:has(#agency-chat)>.button-row{margin-bottom:24px;display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:600px){.agchat-messages,.agchat-status,.agchat-proposal,.agchat-composer{padding:16px}#agency-chat .panel-head{flex-wrap:wrap;gap:12px}}
#agency-policy-form{display:grid;gap:22px}#agency-policy-form fieldset{min-width:0;border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:12px}#agency-policy-form legend{padding:0 6px}.agpolicy-checks{display:grid;gap:10px}.agpolicy-checks label{display:flex;gap:10px;align-items:center}.agpolicy-checks input{flex:none}.agpolicy-fields,.agpolicy-field{display:grid;gap:12px}.agpolicy-fields label,.agpolicy-search label{display:grid;gap:8px}.agpolicy-search{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.agpolicy-search input,.agpolicy-fields input{background:var(--input);border:1px solid var(--line);border-radius:8px;padding:11px 13px;width:100%}.agpolicy-search label{flex:1;min-width:0}#agpolicy-review dl{display:grid;gap:8px}#agpolicy-review dd{margin:0 0 12px;overflow-wrap:anywhere}#agpolicy-review dt{color:var(--muted)}
#agpolicy-accounts .agpolicy-checks{max-height:300px;overflow:auto;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 0}#agency-policy-form input[type=checkbox],#agency-policy-form input[type=radio]{accent-color:var(--button)}
@media(max-width:600px){#agpolicy-accounts .agpolicy-checks{grid-template-columns:1fr}}

#agchat-usage:not(:empty){padding:16px 24px;border-top:1px solid var(--line);color:var(--muted);overflow-wrap:anywhere}#agchat-usage summary{cursor:pointer;color:var(--text)}#agchat-usage p,#agchat-usage ol{margin-top:12px}#agchat-usage li{margin-bottom:10px}@media(max-width:600px){#agchat-usage:not(:empty){padding:16px}}

/* Revenue reports retain readable spacing in narrow dialogs. */
#revenue-panel > p, #revenue-panel > form, #revenue-panel > section { margin-bottom: 20px; }
#revenue-panel h3 { margin: 28px 0 12px; }
#revenue-panel .panel { padding: 18px; overflow-wrap: anywhere; }
#revenue-panel .panel p { margin: 8px 0 0; }
#revenue-panel .actions, #revenue-panel .dialog-actions { flex-wrap: wrap; gap: 12px; }
#revenue-panel { overflow-wrap: anywhere; }

#source-connections-panel .panel { padding: 20px; margin: 16px 0; overflow-wrap: anywhere; }
#source-connections-panel .panel p { margin: 10px 0; }
#source-connections-panel > p, #source-connections-panel .field { margin-bottom: 20px; }
#source-connections-panel .actions { flex-wrap: wrap; gap: 12px; }
#source-connections-panel { overflow-wrap: anywhere; }
