/* Design tokens and components copied from Adminhom/crm (backend/src/ui/oli.css + app.css):
   Twenty's design system with the House of Marketers brand accent. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');
:root {
  --font:#333333; --font-2:#666666; --font-3:#999999; --font-light:#b3b3b3;
  --bg:#ffffff; --bg-2:#fcfcfc; --bg-3:#f1f1f1; --bg-4:#ebebeb;
  --hover:rgba(0,0,0,.04); --border:#ebebeb; --border-light:#f1f1f1; --border-strong:#d6d6d6;
  --brand-fuchsia:#fe489c; --brand-navy:#270f95; --brand-purple:#8e2a90; --brand-coral:#f28a63;
  --accent:#dc3486; --accent-bg:#fdebf4; --accent-border:#f5a9cc; --danger:#d4544f;
  --shadow:0 2px 4px rgba(0,0,0,.04),0 0 4px rgba(0,0,0,.08);
  --shadow-strong:2px 4px 16px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.04);
  --gray-bg:#f1f1f1; --gray:#666666; --green-bg:#e9f6ec; --green:#308052; --turquoise-bg:#e4f8f3; --turquoise:#147f6e;
  --sky-bg:#e5f6fc; --sky:#31729a; --blue-bg:#eef2fd; --blue:#415ac1; --purple-bg:#f6eefc; --purple:#7948af;
  --pink-bg:#fae9f5; --pink:#b23887; --orange-bg:#fcefd9; --orange:#c25700; --yellow-bg:#fef9c3; --yellow:#997000;
  --red-bg:#fbecec; --red:#be3b38;
  --brand1-bg:#ffe5f1; --brand1:#d1286f; --brand2-bg:#f9e3f8; --brand2:#a2278f; --brand3-bg:#ede6ff; --brand3:#6a3fd1; --brand4-bg:#e5e2f6; --brand4:#270f95;
  font-family:Inter,-apple-system,'Segoe UI',Roboto,sans-serif; font-size:13px; color:var(--font); -webkit-font-smoothing:antialiased;
}
*{box-sizing:border-box} html,body{margin:0;height:100%;background:var(--bg)}
svg{display:inline-block;vertical-align:middle}
.grow{flex:1} .muted{color:var(--font-3)} .icon{flex-shrink:0} .num{font-variant-numeric:tabular-nums}
a{color:var(--accent);text-decoration:none}
/* buttons */
.t-btn{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--font-2);font-weight:500;white-space:nowrap;font:inherit;font-weight:500}
.t-btn.icon-only{width:24px;padding:0;justify-content:center}
.t-btn.tertiary{border-color:transparent;background:transparent}
.t-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.t-btn.danger{color:var(--danger)}
.t-btn.big{height:32px;padding:0 12px}
.t-segmented{display:inline-flex;background:var(--bg-3);border-radius:4px;padding:2px;gap:2px}
.t-segmented span{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;border-radius:3px;color:var(--font-3);font-weight:500}
.t-segmented span.active{background:var(--bg);color:var(--font);box-shadow:0 1px 2px rgba(0,0,0,.08)}
/* tags, chips, avatars */
.t-tag{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;border-radius:4px;white-space:nowrap;font-weight:400}
.c-gray{background:var(--gray-bg);color:var(--gray)} .c-green{background:var(--green-bg);color:var(--green)}
.c-turquoise{background:var(--turquoise-bg);color:var(--turquoise)} .c-sky{background:var(--sky-bg);color:var(--sky)}
.c-blue{background:var(--blue-bg);color:var(--blue)} .c-purple{background:var(--purple-bg);color:var(--purple)}
.c-pink{background:var(--pink-bg);color:var(--pink)} .c-orange{background:var(--orange-bg);color:var(--orange)}
.c-yellow{background:var(--yellow-bg);color:var(--yellow)} .c-red{background:var(--red-bg);color:var(--red)}
.c-brand1{background:var(--brand1-bg);color:var(--brand1)} .c-brand2{background:var(--brand2-bg);color:var(--brand2)}
.c-brand3{background:var(--brand3-bg);color:var(--brand3)} .c-brand4{background:var(--brand4-bg);color:var(--brand4)}
.t-avatar{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;font-size:9px;font-weight:500;flex-shrink:0;line-height:1}
.t-avatar.sq{border-radius:4px}
.t-chip{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 4px;border-radius:4px;background:var(--bg-3);color:var(--font);font-weight:500;white-space:nowrap}
.bs2-chip{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:999px;font-size:.85rem;font-weight:500;background:var(--bg-3);color:var(--font-2);white-space:nowrap}
.nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--bg-4);color:var(--font-2);font-size:11px;font-weight:600;line-height:18px;text-align:center}
.nav-badge.overdue{background:var(--red-bg);color:var(--red)}
.nav-badge.accent{background:var(--accent-bg);color:var(--accent)}
/* shell + sidebar */
.shell{display:flex;height:100vh;overflow:hidden;background:var(--bg-2)}
.main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg);border-left:1px solid var(--border)}
.sidebar{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:12px 8px}
.brand-row{display:flex;align-items:center;padding-right:4px}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 4px;color:var(--font);font-weight:600;font-size:1.35rem;letter-spacing:-.01em}
.brand img{width:30px;height:30px;border-radius:8px;object-fit:cover}
.gs-button{display:flex;align-items:center;gap:8px;margin:4px 8px 8px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--font-3)}
.gs-button kbd{font:inherit;font-size:.75rem;color:var(--font-3);background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:0 5px}
.nav-group{display:flex;flex-direction:column;gap:2px}
.nav-item{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border-radius:4px;color:var(--font-2);font-weight:500}
.nav-item .icon{color:var(--font-3)}
.nav-item.active{background:var(--accent-bg);color:var(--accent)} .nav-item.active .icon{color:var(--accent)}
.nav-item.fold{color:var(--font-3)}
.nav-item.sub{height:28px;padding-left:30px}
.nav-head{display:flex;align-items:center;gap:6px;padding:12px 8px 4px;color:var(--font-3);font-weight:500;font-size:.85rem}
.nav-user{display:flex;align-items:center;gap:8px;height:36px;padding:0 8px;margin-top:4px;font-weight:500}
/* top bar, tabs */
.t-topbar{display:flex;align-items:center;gap:8px;min-height:48px;padding:8px 24px;border-bottom:1px solid var(--border)}
.t-topbar .title{font-weight:600;font-size:1.08rem;display:inline-flex;align-items:center;gap:8px}
.t-topbar .crumb{color:var(--font-3);font-weight:500;display:inline-flex;align-items:center;gap:6px}
.t-topbar .sep{width:1px;height:16px;background:var(--border)}
.tabs{display:flex;gap:2px;align-items:center;padding:0 24px;border-bottom:1px solid var(--border);min-height:40px}
.tab{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 8px;color:var(--font-3);font-weight:500;border-bottom:1px solid transparent;margin-bottom:-1px}
.tab.active{color:var(--font);border-bottom-color:var(--font)}
.tab .t-count{color:var(--font-3)}
.table-tools{display:flex;align-items:center;gap:8px;padding:8px 24px;border-bottom:1px solid var(--border)}
.filter-pick{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border:1px solid var(--border);border-radius:13px;background:var(--bg);color:var(--font);white-space:nowrap}
.filter-pick.on{border-color:var(--accent-border);background:var(--accent-bg)}
.board-summary{display:flex;align-items:center;gap:24px;padding:10px 24px;border-bottom:1px solid var(--border)}
.board-summary strong{font-size:1.08rem}
/* board with chevron stage headers */
.board{flex:1;min-height:0;display:flex;gap:8px;padding:12px 16px 16px;overflow:hidden;background:var(--bg-2)}
.board-col{flex:1 0 200px;min-width:200px;display:flex;flex-direction:column;--col-bg:var(--bg-3);--tip:12px}
.board-head{position:relative;z-index:1;background:var(--col-bg);padding:8px calc(10px + var(--tip)) 6px;margin-right:calc(-1 * var(--tip));clip-path:polygon(0 0,calc(100% - var(--tip)) 0,100% 50%,calc(100% - var(--tip)) 100%,0 100%,var(--tip) 50%)}
.board-col:first-child .board-head{padding-left:10px;border-top-left-radius:8px;clip-path:polygon(0 0,calc(100% - var(--tip)) 0,100% 50%,calc(100% - var(--tip)) 100%,0 100%)}
.board-col:last-child .board-head{margin-right:0;padding-right:10px;border-top-right-radius:8px;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,var(--tip) 50%)}
.board-title{display:flex;align-items:center;gap:6px;font-weight:500}
.board-sums{display:flex;gap:8px;margin-top:4px;font-weight:600;font-variant-numeric:tabular-nums}
.board-sums .muted{font-weight:500}
.board-cards{flex:1;display:flex;flex-direction:column;gap:6px;padding:8px 8px 10px;background:var(--col-bg);border-radius:0 0 8px 8px}
.deal-card{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.deal-name{font-weight:600;line-height:1.35;display:flex;align-items:center;gap:6px}
.deal-meta{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;flex-wrap:wrap}
.board-empty{color:var(--font-light);text-align:center;padding:16px 0}
/* tables */
.t-table{border-collapse:collapse;width:100%}
.t-table th{height:32px;padding:0 8px;text-align:left;font-weight:500;color:var(--font-3);white-space:nowrap;border-bottom:1px solid var(--border);border-right:1px solid var(--border-light);background:var(--bg);position:sticky;top:0;z-index:2}
.t-table th .icon{margin-right:4px;vertical-align:-3px}
.t-table td{height:32px;padding:0 8px;border-bottom:1px solid var(--border-light);border-right:1px solid var(--border-light);white-space:nowrap}
.t-table th:last-child,.t-table td:last-child{border-right:0}
.t-table th.first,.t-table td.first{padding-left:24px}
.t-table tr.stage-group td{height:40px;background:var(--bg-2);border-top:12px solid var(--bg);border-bottom:1px solid var(--border-strong);font-weight:500}
.t-table tr.stage-group:first-child td{border-top-width:0}
.t-table tr.stage-group.closed td{border-bottom-color:var(--border)}
.t-table tr.sel td{background:var(--accent-bg)}
.t-table tr.totals td{background:var(--bg-2);height:36px;border-top:1px solid var(--border);font-weight:600}
.group-label{display:inline-flex;align-items:center;gap:8px}
.t-add-row{display:flex;align-items:center;gap:6px;height:32px;padding:0 24px;border-bottom:1px solid var(--border-light);color:var(--font-3)}
/* record page */
.record-layout{flex:1;min-height:0;display:flex}
.record-panel{width:440px;flex-shrink:0;overflow:hidden;border-right:1px solid var(--border);padding:16px 12px 32px;display:flex;flex-direction:column;gap:2px}
.record-name{display:flex;align-items:center;gap:10px;padding:4px 8px}
.record-title{font-size:1.38rem;font-weight:600;line-height:1.3}
.big-avatar{width:36px;height:36px;flex-shrink:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:15px}
.t-field{display:flex;align-items:center;gap:12px;min-height:34px;padding:0 4px}
.t-field-label{display:flex;align-items:center;gap:8px;width:150px;flex-shrink:0;color:var(--font-3)}
.t-field-value{flex:1;min-width:0;display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:0 6px}
.panel-group{padding:14px 8px 4px;color:var(--font-3);font-weight:500;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:4px}
.record-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.t-section{padding:16px 24px 8px}
.t-section-head{display:flex;align-items:center;gap:6px;height:32px;color:var(--font-2);margin-bottom:4px}
.t-section-title{font-weight:600;color:var(--font)}
.t-card{border:1px solid var(--border);border-radius:8px;background:var(--bg);overflow:hidden}
.note{border:1px solid var(--border);border-radius:8px;padding:10px 12px}
.note-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.note-body{line-height:1.5;color:var(--font-2)}
.note-composer{border:1px solid var(--border);border-radius:8px;padding:10px;color:var(--font-3);display:flex;align-items:center}
/* dashboard */
.overview{padding:16px 24px;overflow:hidden;flex:1;background:var(--bg)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.kpi{border:1px solid var(--border);border-radius:8px;padding:12px}
.kpi .label{color:var(--font-3);font-weight:500}
.kpi .value{font-size:1.54rem;font-weight:600;margin-top:6px}
.kpi .sub{color:var(--font-3);margin-top:2px}
.card-box{border:1px solid var(--border);border-radius:8px;margin:0 0 16px;overflow:hidden}
.card-box>h3{margin:0;padding:0 12px;height:40px;display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:600;border-bottom:1px solid var(--border)}
.card-box table{border-collapse:collapse;width:100%}
.card-box th{height:32px;padding:0 12px;text-align:left;font-weight:500;color:var(--font-3);border-bottom:1px solid var(--border-light)}
.card-box td{height:34px;padding:0 12px;border-bottom:1px solid var(--border-light);white-space:nowrap}
.card-box tr:last-child td{border-bottom:0}
.cols{display:grid;grid-template-columns:2fr 1fr;gap:16px}
.bar{display:block;height:8px;border-radius:4px;background:var(--accent);opacity:.75}
.bar-track{display:block;height:8px;border-radius:4px;background:var(--bg-3)}
tr.overdue td{color:var(--danger)}
/* collapsible sections */
.fold-sec{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden;background:var(--bg)}
.fold-sec>.fold-head{display:flex;align-items:center;gap:8px;padding:12px 16px;font-weight:600}
.fold-sec.open>.fold-head{border-bottom:1px solid var(--border)}
.fold-body{padding:12px 16px}
/* calendar */
.cal{display:flex;flex-direction:column;flex:1;min-height:0;padding:0 24px 16px}
.cal-head{display:flex;align-items:center;gap:8px;padding:10px 0}
.cal-head strong{font-size:1.1rem;min-width:150px;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:28px;grid-auto-rows:minmax(118px,auto);border-left:1px solid var(--border);border-top:1px solid var(--border)}
.cal-dow{padding:6px 8px;font-size:.85rem;color:var(--font-3);border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-2)}
.cal-day{display:flex;flex-direction:column;gap:3px;padding:4px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0}
.cal-day.other{background:var(--bg-2);color:var(--font-3)}
.cal-date{font-size:.85rem;padding:2px 4px;color:var(--font-2)}
.cal-day.today .cal-date{align-self:flex-start;background:var(--accent);color:#fff;border-radius:10px;padding:1px 7px;font-weight:600}
.bs2-ev{display:flex;align-items:center;gap:5px;font-size:.85rem;line-height:1.3;border-radius:5px;padding:3px 5px;border-left:3px solid;min-width:0;overflow:hidden;white-space:nowrap}
.bs2-ev.todo{background:var(--bg);border:1px solid var(--border-strong);border-left:3px solid var(--brand-fuchsia)}
.bs2-ev.prog{background:var(--purple-bg);border-color:var(--brand-navy);color:var(--brand-navy)}
.bs2-ev.late{background:var(--red-bg);border-color:var(--red);color:var(--red);font-weight:500}
.bs2-ev.done{background:var(--bg-3);border-color:var(--font-light);color:var(--font-3)}
.bs2-callegend{display:flex;align-items:center;gap:14px;padding:8px 0;font-size:.85rem;color:var(--font-2)}
.bs2-callegend i{display:inline-block;width:12px;height:12px;margin-right:5px;vertical-align:-2px;border-radius:3px;border-left:3px solid}
/* intake list */
.inbox-row{display:flex;flex-direction:column;gap:4px;padding:10px 16px;border-bottom:1px solid var(--border-light)}
.inbox-row.sel{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}
.notice-box{padding:10px 12px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border-light);color:var(--font-2)}
.link-card{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:8px;padding:12px 16px;display:flex;flex-direction:column;gap:8px}
.progress{height:8px;border-radius:4px;background:var(--bg-3);overflow:hidden;display:flex}
/* PM-specific layout, built only from the Ollie tokens above */
.scroll{flex:1;overflow:hidden}
.t-btn.small{height:22px;padding:0 6px;font-size:12px}
.cname{display:inline-flex;align-items:center;gap:8px}
.meterwrap{display:inline-flex;align-items:center;gap:6px}
.meter{display:inline-block;width:64px;height:6px;border-radius:3px;background:var(--bg-3);overflow:hidden}
.meter>span{display:block;height:100%;background:var(--accent);border-radius:3px}
.avs{display:inline-flex;align-items:center}
.who{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.scope-note{display:flex;align-items:center;gap:8px;padding:8px 24px;background:var(--accent-bg);color:var(--font-2);border-bottom:1px solid var(--accent-border)}
.scope-note .icon{color:var(--accent)}
.board-t td{height:38px}
.cp{flex:1;display:flex;min-height:0}
.cp-main{flex:1;min-width:0;padding:16px 24px;overflow:hidden}
.cp-side{width:340px;border-left:1px solid var(--border);padding:16px 16px;overflow:hidden}
.side-h{color:var(--font-3);font-weight:500;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;padding:4px 4px 6px}
.share-row{display:flex;align-items:center;gap:8px;height:32px;padding:0 4px}
.upd{display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:12.5px}
.stepper{display:flex;gap:3px}
.stepper .st{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.stepper .bar{height:8px;border-radius:2px;background:var(--bg-3)}
.stepper .st.done .bar{background:var(--accent-border)}
.stepper .st.now .bar{background:var(--accent)}
.stepper .lbl{font-size:11px;color:var(--font-3);white-space:nowrap;overflow:visible}
.stepper .st.now .lbl{color:var(--accent);font-weight:600}
.card-box tr.done td{color:var(--font-3)}
.t-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.36);display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;z-index:2000}
.t-dialog{width:400px;background:var(--bg);border-radius:8px;box-shadow:var(--shadow-strong);padding:16px;display:flex;flex-direction:column;gap:12px}
.t-dialog-title{font-size:1.23rem;font-weight:600}
.t-dialog-field{display:flex;flex-direction:column;gap:6px}
.t-dialog-field>span:first-child{color:var(--font-3);font-size:.92rem;font-weight:500}
.t-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
.t-dialog-actions .t-btn{height:32px;padding:0 12px}
input{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:0 8px;height:32px;font:inherit;color:inherit}
.pick{border:1px solid var(--border);border-radius:8px;overflow:hidden}
.pick-row{display:flex;align-items:center;gap:8px;height:40px;padding:0 10px;border-bottom:1px solid var(--border-light)}
.pick-row:last-child{border-bottom:0}
.pick-row.sel{background:var(--accent-bg)}
.chk{display:flex;align-items:center;gap:8px;color:var(--font)}
/* timeline */
.tl{flex:1;overflow:hidden;padding:0 0 8px}
.tl-head,.tl-row{display:flex;border-bottom:1px solid var(--border-light)}
.tl-name{width:200px;flex-shrink:0;display:flex;align-items:center;gap:6px;padding:0 12px 0 24px;border-right:1px solid var(--border)}
.tl-days{display:flex}
.tl-d{width:31px;display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--font-3);padding:4px 0}
.tl-d b{font-weight:500;color:var(--font-2);font-size:12px}
.tl-d.we{background:var(--bg-2)}
.tl-d.today b{background:var(--accent);color:#fff;border-radius:9px;padding:0 5px}
.tl-lane{position:relative;flex:1;min-height:36px;background-image:linear-gradient(to right,var(--border-light) 1px,transparent 1px);background-size:31px 100%}
.tl-row.team{background:var(--bg-2)}
.ev{position:absolute;top:7px;height:22px;border-radius:4px;display:flex;align-items:center;padding:0 8px;font-size:12px;white-space:nowrap;width:auto!important}
.leave{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,var(--bg-3),var(--bg-3) 4px,var(--bg-4) 4px,var(--bg-4) 8px);color:var(--font-2);font-size:11px;display:flex;align-items:flex-start;justify-content:flex-end;gap:3px;padding:2px 4px;z-index:2;pointer-events:none}
.bar2{position:absolute;height:22px;border-radius:4px;background:color-mix(in srgb,var(--c) 14%,white);border:1px solid color-mix(in srgb,var(--c) 45%,white);border-left:3px solid var(--c);color:var(--font);font-size:12px;display:flex;align-items:center;gap:4px;padding:0 6px;white-space:nowrap;overflow:hidden;z-index:1}
.bar2 b{color:var(--c);font-weight:600}
.bar2 .gl{position:absolute;right:3px;width:8px;height:8px;background:var(--c);transform:rotate(45deg)}
.bs2-callegend{display:flex;align-items:center;gap:14px;font-size:.85rem;color:var(--font-2)}
.bs2-callegend i{display:inline-block;width:12px;height:12px;margin-right:5px;vertical-align:-2px;border-radius:3px;border:1px solid;border-left-width:3px}
/* portals */
.thumb{display:inline-flex;align-items:center;justify-content:center;width:48px;height:60px;border-radius:6px;background:var(--bg-3);color:var(--font-3)}
.stepcard{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg);margin-bottom:8px}
.stepcard.now{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg)}
/* org chart (Ollie org-chart cards) */
.org-canvas{flex:1;overflow:hidden;background-color:var(--bg-2);background-image:radial-gradient(var(--border-strong) 1px,transparent 1px);background-size:16px 16px;padding:24px;display:flex;flex-direction:column;align-items:center}
.orow{display:flex;gap:16px;justify-content:center}
.orow.wide{gap:28px;align-items:flex-start}
.vline{width:1.6px;height:20px;background:var(--brand-navy)}
.oc{position:relative;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 10px 8px 12px;box-shadow:var(--shadow);overflow:hidden;width:168px}
.oc::before{content:'';position:absolute;left:0;top:0;right:0;height:4px;background:var(--role)}
.oc .head{display:flex;align-items:center;gap:8px}
.oc .name{font-weight:600}
.oc .title{color:var(--font-3);font-size:12px}
.oc.off{background:var(--bg-3)}
.oc.off .title::after{content:' · off today'}
.oc.left{opacity:.6}
.oc.left .title::after{content:' · leaving 4 Nov'}
.pod{border:1.5px dashed var(--accent-border);border-radius:12px;padding:28px 12px 12px;position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;background:color-mix(in srgb,var(--accent-bg) 40%,transparent)}
.pod-label{position:absolute;left:12px;top:8px;font-size:.92rem;font-weight:600;color:var(--accent)}
.kids{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.legend{display:flex;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:8px 12px;color:var(--font-2)}
.swatch{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}
.hint{color:var(--font-3)}
.gs-button{cursor:pointer}
.gs-overlay{position:fixed;inset:0;z-index:1000;background:rgba(20,15,40,.28);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}
.gs-panel{width:640px;background:var(--bg);border-radius:12px;box-shadow:0 16px 48px rgba(20,10,60,.25);overflow:hidden;display:flex;flex-direction:column}
.gs-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);color:var(--font-3)}
.gs-head kbd{font:inherit;font-size:.75rem;color:var(--font-3);background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:0 5px}
.gs-input{flex:1;font-size:1.05rem;color:var(--font)}
.gs-results{padding:6px}
.gs-group{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 4px;font-size:.8rem;color:var(--font-3);font-weight:500}
.gs-all{color:var(--accent);font-size:.8rem}
.gs-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px}
.gs-row.on{background:var(--accent-bg)}
.gs-icon{color:var(--font-3);display:inline-flex}.gs-row.on .gs-icon{color:var(--accent)}
.gs-text{display:flex;flex-direction:column;min-width:0}.gs-name{font-weight:500}.gs-sub{font-size:.82rem;color:var(--font-3)}
.gs-foot{display:flex;gap:14px;padding:8px 16px;border-top:1px solid var(--border);color:var(--font-3);font-size:.8rem}
.plats{display:inline-flex;gap:3px}.plat{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:5px;background:var(--bg)}
.upd-b{display:inline-flex;align-items:center;gap:2px;color:var(--font-light);position:relative}.upd-b.has{color:var(--font-2)}.upd-b i{font-style:normal;font-size:10px;font-weight:600;background:var(--bg-4);border-radius:8px;padding:0 4px;color:var(--font-2)}.upd-b.unread i{background:var(--accent);color:#fff}
.crow{display:flex;align-items:center;gap:6px}
tr.th-band th{height:26px}.t-table th.band{text-align:center;color:var(--font-2);border-bottom:1px solid var(--border-light);background:var(--bg-2)}.t-table th.sub{font-size:12px}
.chain{flex:1;overflow:hidden;padding:12px 16px;display:flex;flex-direction:column;gap:10px;background:var(--bg-2)}
.msg{max-width:84%;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--bg);line-height:1.5}
.msg.out{align-self:flex-end;background:var(--accent-bg);border-color:var(--accent-border)}.msg .mh{font-size:12px;margin-bottom:4px}
.sys{align-self:center;font-size:12px;color:var(--font-3);display:flex;gap:4px;align-items:center}
.reply{border-top:1px solid var(--border);padding:10px 16px;background:var(--bg)}
.ux{flex:1;display:flex;min-height:0}.ux-list{width:360px;border-right:1px solid var(--border);overflow:hidden}.ux-day{padding:8px 16px 4px;font-size:11px;color:var(--font-3);font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.ux-row{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border-light)}.ux-row.sel{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.ux-thread{flex:1;min-width:0;display:flex;flex-direction:column}.ux-card{width:300px;border-left:1px solid var(--border);padding:16px}
.seq{flex:1;display:flex;min-height:0}.seq-steps{width:440px;border-right:1px solid var(--border);padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;background:var(--bg-2)}
.seq-step{display:flex;gap:12px;align-items:center;width:100%}.seq-n{width:34px;height:34px;border-radius:50%;border:2px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;font-weight:600;color:var(--font-3);flex-shrink:0;background:var(--bg)}.seq-n.on{border-color:var(--accent);color:var(--accent)}
.seq-card{flex:1;border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--bg);display:flex;flex-direction:column;gap:2px}.seq-card.on{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg)}
.seq-wait{align-self:center;display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:13px;padding:3px 10px;background:var(--bg);color:var(--font-2);font-size:12px}
.seq-edit{flex:1;padding:20px 28px}.var{background:var(--purple-bg);color:var(--purple);border-radius:4px;padding:0 4px}
.hid{display:inline-flex;color:var(--font-3);vertical-align:-2px;margin-left:2px}
.flowbar{display:flex;align-items:center;gap:6px;padding:8px 24px;border-bottom:1px solid var(--border);background:var(--bg-2);overflow:hidden}
.flowbar .fs{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--font-3);white-space:nowrap}.flowbar .fs b{width:16px;height:16px;border-radius:50%;border:1px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:600}
.flowbar .fs.done{color:var(--font-2)}.flowbar .fs.done .icon{color:var(--green)}.flowbar .fs.now{color:var(--accent);font-weight:600}.flowbar .fs.now b{border-color:var(--accent);background:var(--accent);color:#fff}.flowbar .fl{flex:1;min-width:8px;height:1px;background:var(--border-strong)}
.capbar{display:flex;align-items:center;gap:8px}.capbar .cv{width:40px;font-size:12px;font-weight:600}.capbar .ct{position:relative;flex:1;height:6px;background:var(--bg-3);border-radius:3px}.capbar .ct span{position:absolute;left:0;top:0;bottom:0;border-radius:3px}.capbar .ct i{position:absolute;left:71.4%;top:-3px;bottom:-3px;width:1.5px;background:var(--font)}
.swipe-wrap{position:relative;width:420px;height:470px}.swipe-card{position:absolute;inset:0;background:var(--bg);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-strong);overflow:hidden;transform:rotate(-1.5deg)}.swipe-card.back{transform:rotate(3deg) translate(10px,6px);box-shadow:var(--shadow);opacity:.7}
.swipe-media{display:grid;grid-template-columns:1fr 1fr;gap:4px;height:230px}.sm-vid{background:linear-gradient(160deg,var(--brand2-bg),var(--brand3-bg));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--font-2);font-size:12px}
.why{margin-top:10px;padding:10px 12px;background:var(--accent-bg);border-radius:8px;line-height:1.5;display:flex;gap:6px;align-items:flex-start}
.swipe-btn{width:60px;height:60px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);box-shadow:var(--shadow-strong)}.swipe-btn.no{color:var(--red)}.swipe-btn.yes{color:#fff;background:var(--accent)}
.agr-steps{display:flex;gap:14px}.agr-steps span{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:var(--font-3)}.agr-steps span.done{color:var(--green)}.agr-steps i{font-style:normal;font-size:11px;color:var(--font-3)}
.qr{width:76px;height:76px;border:1px solid var(--border);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.ms{display:inline-flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}.ms.ok{color:var(--green)}.ms.late{color:var(--red);font-weight:500}.ms.now,.ms.due{color:var(--orange)}.ms.wait{color:var(--yellow)}.ms.plan{color:var(--font-light)}
.fstep{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:12px;font-size:12px;white-space:nowrap;cursor:pointer}.fstep b{font-weight:700}.fstep.on{box-shadow:0 0 0 2px currentColor}
.cdist{display:flex;width:140px;height:8px;border-radius:4px;overflow:hidden;background:var(--bg-3)}.cdist span{height:100%}
.wiz{display:flex;align-items:center;gap:8px;padding:10px 24px;border-bottom:1px solid var(--border);background:var(--bg)}
.wiz .ws{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--font-3);white-space:nowrap}.wiz .ws b{width:20px;height:20px;border-radius:50%;border:1px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;font-size:11px}
.wiz .ws.done{color:var(--font-2)}.wiz .ws.done .icon{color:var(--green)}.wiz .ws.now{color:var(--accent);font-weight:600}.wiz .ws.now b{background:var(--accent);border-color:var(--accent);color:#fff}.wiz .fl{width:40px;height:1px;background:var(--border-strong);padding:0;min-width:0;display:block}
.wiz-foot{display:flex;align-items:center;gap:8px;padding:12px 24px;border-top:1px solid var(--border);background:var(--bg)}
.sw{display:inline-block;width:30px;height:18px;border-radius:9px;background:var(--bg-4);position:relative}.sw::after{content:'';position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}.sw.on{background:var(--accent)}.sw.on::after{left:14px}

/* ── Scout app additions (inputs, inline editing, drawer, menus, toasts, sign-in) ── */
button.t-btn{cursor:pointer} .t-btn:hover{background:var(--bg-2)} .t-btn.primary:hover{background:#c92c78}
.t-btn[disabled]{opacity:.5;cursor:default}
a.nav-item,.tab,.fstep,.filter-pick,.t-segmented span,.clickable{cursor:pointer}
.nav-item:hover{background:var(--hover)} .nav-item.active:hover{background:var(--accent-bg)}
.t-input,.t-select,.t-textarea{font:inherit;color:var(--font);border:1px solid var(--border);border-radius:4px;background:var(--bg);height:28px;padding:0 8px;width:100%;outline:none}
.t-textarea{height:auto;min-height:72px;padding:6px 8px;resize:vertical;line-height:1.45}
.t-input:focus,.t-select:focus,.t-textarea:focus{border-color:var(--accent-border);box-shadow:0 0 0 2px var(--accent-bg)}
.cell-edit{cursor:pointer;min-height:32px;display:flex;align-items:center;gap:4px}
.cell-edit:hover{background:var(--hover);outline:1px solid var(--border)}
td.editing{padding:0 2px} td.editing .t-input,td.editing .t-select{height:28px}
.empty-cell{color:var(--font-light)}
.scroll-x{overflow:auto;flex:1;min-height:0}
.page{flex:1;min-height:0;overflow:auto}
.page-pad{padding:16px 24px 40px}
.menu{position:fixed;z-index:3000;min-width:180px;max-height:60vh;overflow:auto;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-strong);padding:4px}
.menu-item{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border-radius:4px;cursor:pointer;white-space:nowrap;color:var(--font)}
.menu-item:hover,.menu-item.hl{background:var(--hover)} .menu-item.danger{color:var(--danger)} .menu-sep{height:1px;background:var(--border-light);margin:4px 0}
.menu-search{margin:2px 2px 6px;width:calc(100% - 4px)}
.menu.cur-menu{min-width:0;width:104px;max-height:none;overflow:visible}.cur-menu .menu-list{max-height:216px;overflow-y:auto}.cur-menu .menu-item{height:26px;font-size:12.5px}.cur-menu .menu-search{height:28px;font-size:12.5px}
.toasts{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:6px;z-index:4000}
.toast{background:#333;color:#fff;border-radius:6px;padding:8px 14px;box-shadow:var(--shadow-strong);font-weight:500}
.toast.err{background:var(--red)}
.drawer-back{position:fixed;inset:0;background:rgba(0,0,0,.18);z-index:1500}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(720px,96vw);background:var(--bg);box-shadow:var(--shadow-strong);z-index:1600;display:flex;flex-direction:column}
.drawer-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}
.drawer-body{flex:1;overflow:auto}
/* Sign-in and "no access": the office, blurred, behind the card (the same in every House of Marketers app). */
.signin,.no-access{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;overflow:hidden;background:#2a1830}
.signin::before,.no-access::before{content:'';position:absolute;inset:-40px;background:url('/assets/office-front.jpg') center/cover no-repeat;filter:blur(18px) brightness(.7)}
.signin-card{position:relative;width:360px;max-width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:28px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
/* Liquid glass, like the sign-in box. */
.no-access-card{position:relative;max-width:440px;width:100%;padding:32px 28px;border-radius:28px;color:#fff;text-align:center;background:linear-gradient(160deg,rgba(255,255,255,.26),rgba(255,255,255,.08) 45%,rgba(255,255,255,.14));-webkit-backdrop-filter:blur(26px) saturate(180%);backdrop-filter:blur(26px) saturate(180%);border:1px solid rgba(255,255,255,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.65),inset 0 0 30px rgba(255,255,255,.08),0 30px 80px rgba(20,0,30,.45)}
.no-access-card h1{margin:0 0 10px;font-size:1.4rem;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.no-access-card p{margin:0 0 6px;color:rgba(255,255,255,.85)}
.no-access-card a{font-weight:600;color:#fff;text-decoration:underline;text-underline-offset:3px}
.no-access-apps{position:absolute;z-index:1;top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right))}
.no-access-apps .apps-btn{width:44px;height:44px;margin:0;border-radius:14px;color:#fff;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 8px 24px rgba(0,0,0,.3)}
.no-access-apps .apps-btn:hover,.no-access-apps .apps-btn.open{background:rgba(255,255,255,.3)}
.signin-card .brand{padding:0;justify-content:center;margin-bottom:6px}
.err-text{color:var(--red)}
.loading{padding:40px;color:var(--font-3)}
/* "Scout is thinking…": text with a light band sweeping across it */
.thinking{--think-base:#404040;--think-shine:#f5f5f5;display:inline-block;background:linear-gradient(110deg,var(--think-base) 35%,var(--think-shine) 50%,var(--think-base) 75%,var(--think-base));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:thinking 2s linear infinite}
@keyframes thinking{from{background-position:200% 0}to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.thinking{animation:none;background:none;color:var(--font-3)}}
.coming{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--font-3);border:1px dashed var(--border-strong);border-radius:10px;padding:0 6px;height:18px}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.kpi-card{border:1px solid var(--border);border-radius:8px;padding:12px 14px;background:var(--bg)}
.kpi-card .v{font-size:1.6rem;font-weight:600;margin-top:4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px} @media (max-width:900px){.grid2{grid-template-columns:1fr}}
.box{border:1px solid var(--border);border-radius:8px;background:var(--bg)}
.box-h{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-light);font-weight:600}
.box-b{padding:10px 14px}
.list-row{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border-light)} .list-row:last-child{border-bottom:0}
.list-row.clickable:hover{background:var(--hover)}
.plat{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;color:#fff;font-size:10px;font-weight:700}
.plat-instagram{background:linear-gradient(45deg,#f58529,#dd2a7b,#8134af)} .plat-tiktok{background:#111} .plat-youtube{background:#ff0000} .plat-twitch{background:#9146ff}
.plat-snapchat{background:#fffc00;color:#111} .plat-x{background:#000} .plat-facebook{background:#1877f2} .plat-linkedin{background:#0a66c2} .plat-pinterest{background:#e60023} .plat-other{background:#999}
.eyeoff{color:var(--font-3)} .vis-tag{display:inline-flex;align-items:center;color:var(--font-3)}
.thread-item{border:1px solid var(--border-light);border-radius:8px;padding:10px 12px;margin-bottom:8px}
.thread-item.in{background:var(--bg-2)} .thread-item .meta{display:flex;gap:8px;color:var(--font-3);font-size:12px;margin-bottom:4px}
.check{width:16px;height:16px;accent-color:var(--accent)}
.sticky-first td:first-child,.sticky-first th:first-child{position:sticky;left:0;background:var(--bg);z-index:1}
.sticky-first th:first-child{z-index:3}

/* Org chart (same structure as the org whiteboard) */
.org2{display:block;overflow:visible;min-height:100%;min-width:max-content;padding:28px 32px 60px}
.org-zoom{display:inline-flex;flex-direction:column;align-items:center}
.org-ceo-line{display:flex;justify-content:center}
.org-ceo{display:flex;justify-content:center}
.org-depts{display:flex;align-items:flex-start;gap:20px;padding-top:12px;border-top:1.6px solid var(--brand-navy)}
.org-dept{display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px;border-radius:12px;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow)}
.org-dept.sales{background:transparent;border:0;box-shadow:none;padding:0}
.org-dept-label{font-weight:600;font-size:13px;color:var(--font-2);text-transform:uppercase;letter-spacing:.04em}
.org-pods{display:flex;gap:16px;align-items:flex-start}
.org-pod{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:34px 14px 14px;border:1.5px solid #ddd6fe;border-radius:14px;background:#faf8ff}
.org-pod.none{border-style:dashed;border-color:var(--border-strong);background:var(--bg-2)}
.org-pod-label{position:absolute;left:14px;top:10px;font-weight:600;color:#5B21B6;font-size:13px}
.org-pod.none .org-pod-label{color:var(--font-2)}
.org-grid{display:grid;grid-template-columns:repeat(2,182px);gap:10px}
.org-card{position:relative;display:flex;align-items:center;gap:10px;width:182px;min-height:64px;padding:12px 10px 10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 1px 2px rgba(0,0,0,.05);color:var(--font);overflow:visible}
.org-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:10px 0 0 10px;background:var(--role)}
.org-card.wide{width:214px}
.org-card:hover{box-shadow:var(--shadow)}
.org-av .t-avatar{border-radius:50%}
.org-txt{display:flex;flex-direction:column;min-width:0}
.org-name{font-weight:600;line-height:1.25}
.org-title{color:var(--font-3);font-size:12px;line-height:1.3}
.org-badge{position:absolute;top:-9px;right:8px;display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 7px;border-radius:9px;color:#fff;font-size:10.5px;font-weight:600;white-space:nowrap}
.org-leg{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--font-2)}
.org-leg i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* sidebar levels tree + breadcrumbs */
.nav-scroll{min-height:0;flex-shrink:1}
.sidebar{overflow:hidden}
.tree-root{padding-left:2px;gap:4px}
.tree-root .tree-link{display:flex;align-items:center;gap:8px;color:inherit;flex:1;min-width:0}
.tree-tog{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:3px;color:var(--font-3);cursor:pointer}
.tree-tog:hover{background:var(--bg-4)}
.nav-tree{display:flex;flex-direction:column;gap:1px;margin-left:16px;padding-left:8px;border-left:1px solid var(--border);max-height:min(38vh,320px);overflow:auto;overscroll-behavior:contain}
.nav-item.sub{height:26px;padding-left:6px;font-weight:400;font-size:12.5px}
.nav-item .nav-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.nav-item.sub2{height:24px;padding-left:22px;font-size:12px;color:var(--accent);font-weight:500}
.tree-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.crumbs{display:inline-flex;align-items:center;gap:6px;min-width:0}
.crumbs .crumb{color:var(--font-3);font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.crumbs .crumb:hover{color:var(--font)}
.crumb-sep{color:var(--font-light)}
.crumbs .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* mentions */
.mention{color:var(--accent);background:var(--accent-bg);border-radius:3px;padding:0 2px;font-weight:500}
/* resizable columns */
table.resizable th{position:relative}
.col-grip{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:4}
.col-grip:hover,body.col-resizing .col-grip:hover{background:var(--accent-border)}
body.col-resizing{cursor:col-resize;user-select:none}
table.resizable td{overflow:hidden;text-overflow:ellipsis}

.note-composer{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.thread-item .meta{align-items:center}
.nav-group > .nav-item,.nav-tree > .nav-item,.nav-group > .tree-root{flex-shrink:0}

/* ── Columns (columns.js): Monday-style cells ─────────────────────────────────────────── */
.st-pill{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;height:28px;padding:0 8px;border-radius:2px;font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
td:has(> .cell-edit > .st-pill),td:has(> div > .st-pill){padding-top:2px;padding-bottom:2px}
.dd-cell{display:inline-flex;gap:4px;overflow:hidden;min-width:0}
.dd-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;background:var(--bg-3);color:var(--font-2);font-size:12px;white-space:nowrap}
.dd-chip.miss{background:var(--orange-bg);color:var(--orange)}
.cell-link{display:inline-flex;align-items:center;gap:4px;max-width:100%;color:var(--link,#1f76c2);min-width:0}
.cell-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-cell{display:inline-flex;gap:4px;overflow:hidden;min-width:0}
.file-chip{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 7px;border-radius:11px;background:var(--purple-bg);color:var(--purple);font-size:12px;max-width:160px}
.file-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stars{color:#fdab3d;letter-spacing:1px} .stars .off{color:var(--border-strong)}
.tl-pill{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:11px;background:#579bfc;color:#fff;font-size:12px;white-space:nowrap}
.chk-empty{display:inline-block;width:16px;height:16px;border:1.5px solid var(--border-strong);border-radius:4px}
.muted-strong{color:var(--font-2)}
.cp-refs{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px} .cp-refs .dd-chip:hover{background:var(--accent-bg);color:var(--accent)}
.cp-prev{width:110px;flex-shrink:0;height:26px}
.cp-colors{display:inline-flex;flex-wrap:wrap;gap:4px;max-width:340px}

/* ── Campaign page: summary strip, creators board, bulk bar ───────────────────────────── */
.camp-sum{display:flex;align-items:stretch;gap:0;padding:10px 24px;border-bottom:1px solid var(--border);overflow-x:auto}
.sum-item{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 18px;border-left:1px solid var(--border-light);min-width:0;flex-shrink:0}
.sum-item:first-child{padding-left:0;border-left:0}
.sum-l{font-size:11.5px;color:var(--font-3);white-space:nowrap}
.sum-v{font-size:15px;font-weight:600;color:var(--font);display:flex;align-items:baseline;gap:4px;white-space:nowrap}
.sum-v .t-tag{font-size:12px;font-weight:500}
.sum-of{font-size:12px;font-weight:400;color:var(--font-3)}
.sum-s{font-size:11px;color:var(--font-3);white-space:nowrap}
.sum-brief{margin-left:auto;align-self:center;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border:1px solid var(--border);border-radius:14px;color:var(--font);font-weight:500;flex-shrink:0}
.sum-brief:hover{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}
.cr-tools{flex-wrap:wrap}
.cv-n{font-size:10px;background:var(--accent);color:#fff;border-radius:8px;padding:0 5px;line-height:14px;margin-left:2px}
.menu-sub{display:block;font-size:11.5px;color:var(--font-3);font-weight:400}
.menu-item:has(.menu-sub){height:auto;padding:6px 8px;align-items:flex-start}
.menu-item:has(.menu-sub) .icon{margin-top:2px;color:var(--font-3)}
.menu-foot{display:flex;justify-content:space-between;gap:12px;padding:6px 8px 2px;border-top:1px solid var(--border-light);margin-top:4px;font-size:12px;color:var(--accent)}
.panel-head{gap:10px}
.name-cell{min-width:0;width:100%;gap:6px}
.name-cell .k-name{color:var(--font);font-weight:600;max-width:150px}
.row-eye{display:inline-flex;color:var(--font-light);padding:2px;border-radius:4px}
.row-eye:hover{background:var(--hover);color:var(--font-2)}
tr:hover .row-eye{color:var(--font-3)}
.board-t tr.sel td{background:var(--accent-bg)}
.board-t tr.sel td:first-child{background:var(--accent-bg)}
.th-add{color:var(--font-3);text-align:center}
.cols-hint{padding:10px 24px;font-size:12px} .cols-hint .clickable{color:var(--accent)}
.bulk-bar{position:sticky;bottom:12px;margin:0 auto 12px;display:flex;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 48px);padding:8px 10px 8px 16px;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-strong);z-index:5}
.bulk-bar[hidden]{display:none}
.bulk-bar b{margin-right:6px}
.brief-att{display:flex;align-items:center;gap:10px;min-height:32px}
.upd-share + .upd-vis-ic{display:inline-flex}
label:has(> .upd-share:checked){color:var(--accent)}

/* ── Master board: views, capacity breakdown ──────────────────────────────────────────── */
.view-tabs .tab .t-count{font-size:12px;margin-left:2px}
.bh-fill{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}
.bd-list{display:flex;flex-direction:column;gap:2px;padding:8px 24px 12px 52px;background:var(--bg-2)}
.bd-list.in-pick{padding:4px 12px 10px 42px;border-bottom:1px solid var(--border-light)}
.bd-head{font-size:12px;margin-bottom:4px}
.bd-row{display:grid;grid-template-columns:minmax(0,1fr) 170px 160px 44px auto;align-items:center;gap:10px;min-height:28px}
.bd-name{color:var(--font);font-weight:500}
.bd-stage .t-tag{height:18px;font-size:11px;max-width:160px;overflow:hidden;text-overflow:ellipsis}
.bd-bar{height:6px;border-radius:3px;background:var(--bg-3);overflow:hidden}
.bd-bar span{display:block;height:100%;background:var(--brand3);border-radius:3px}
.bd-pct{text-align:right;font-size:12px;color:var(--font-2)}
.bd-act{display:inline-flex;gap:2px}
.cap-detail td{padding:0!important;white-space:normal!important;height:auto!important}
.kpi.clickable:hover{border-color:var(--accent-border)}
/* dialogs never grow past the window: the body scrolls, the buttons stay */
.t-dialog>.dlg-body{overflow:auto;min-height:0;flex:1 1 auto;margin:0 -16px;padding:0 16px}
.t-dialog>.t-dialog-actions,.t-dialog>.t-dialog-title{flex-shrink:0}
/* column picker: compact Monday-like grid */
.colpick .cp-types{grid-template-columns:repeat(4,1fr);gap:6px}
.colpick .cp-type{padding:8px 10px;gap:8px}
.colpick .cp-type b{font-size:13px}
.colpick .cp-type .muted{font-size:11.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.colpick .cp-colors{max-width:none;flex-wrap:nowrap;gap:3px}
.colpick .cp-sw{width:15px;height:15px}
.colpick .cp-label .t-input{width:170px}
.record-main>.card-box{flex-shrink:0}

/* ---- workspaces and the campaign tree (v3) ---- */
.ws{display:flex;align-items:center;gap:8px;margin:2px 8px 6px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}
.ws:hover{background:var(--bg-2)}
.ws-ico{width:22px;height:22px;border-radius:5px;background:var(--accent-bg);color:var(--accent);display:inline-flex;align-items:center;justify-content:center}
.nav-bell{position:relative}.nav-bell i{position:absolute;top:-3px;right:-4px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--accent);color:#fff;font-size:10px;font-style:normal;font-weight:600;line-height:15px;text-align:center}
.navtree{gap:0;min-height:0}
.tn{display:flex;flex-shrink:0;align-items:center;gap:3px;height:26px;padding-right:6px;border-radius:4px;color:var(--font-2);font-size:12.5px;white-space:nowrap;overflow:hidden}
.tn:hover{background:var(--hover)}
.tn .tc{width:16px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--font-3);flex-shrink:0;border-radius:3px}
.tn .tc.clickable:hover{background:var(--bg-4)}
.tn .tlink{display:flex;align-items:center;gap:6px;flex:1;min-width:0;color:inherit;text-decoration:none;height:100%}
.tn .tlink .icon{color:var(--font-3);flex-shrink:0}
.tn .tl{overflow:hidden;text-overflow:ellipsis;flex:1;padding:0}
.tn .tnn{color:var(--font-3);font-size:11px;margin-left:4px}
.tn.on{background:var(--accent-bg);color:var(--accent)}.tn.on .tlink .icon{color:var(--accent)}
.tn.mut{color:var(--font-3)}
.sidebar .nav-scroll{overflow-y:auto;flex:0 1 auto}

/* ---- Kanban (v3) and the one Filter button ---- */
.kb{display:flex;gap:12px;padding:14px 20px;align-items:flex-start;height:100%;overflow:auto;background:var(--bg-2)}
.kcol{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;max-height:100%}
.kh{display:flex;align-items:center;gap:8px;height:28px;padding:0 4px;flex-shrink:0}
.kdot{width:8px;height:8px;border-radius:50%}
.kcards{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding:2px 2px 8px}
.kc{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;box-shadow:0 1px 2px rgba(0,0,0,.03);color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.kc:hover{border-color:var(--border-strong);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.kc.sel{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg)}
.kc-t{display:flex;align-items:center;gap:6px;min-width:0}.kc-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.kc-f{display:flex;align-items:center;gap:8px;min-height:20px}
.kc-m{display:inline-flex;align-items:center;gap:3px;color:var(--font-2);font-size:12px;white-space:nowrap}.kc-m .icon{color:var(--font-3)}
.kc-need{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:12px;font-weight:500}
.kmore,.kempty{color:var(--font-3);font-size:12px;padding:4px}
.mini-search{display:inline-flex;align-items:center;gap:6px;height:26px;width:240px;padding:0 8px;border:1px solid var(--border);border-radius:4px;color:var(--font-3);background:var(--bg)}
.mini-search input{border:0;outline:0;background:transparent;font:inherit;color:var(--font);flex:1;min-width:0}
.t-btn.f-on{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}
.fcount{background:var(--accent);color:#fff;border-radius:8px;font-size:10px;padding:0 5px;line-height:15px}
.filter-pick .fx{display:inline-flex;margin-left:2px;color:var(--font-3)}.filter-pick .fx:hover{color:var(--font)}
.kc-sub{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--font-3)}.kc-sub.warn{color:var(--orange)}
.kc.dragging{opacity:.4}
.kcol.drop .kcards{background:var(--accent-bg);border-radius:8px;outline:1px dashed var(--accent-border)}
.vis{display:inline-flex;color:var(--font-light)}.vis.ext{color:var(--sky)}
.kb-narrow .kcol{width:236px}

/* ---- dashboard (Oli's widget cards) ---- */
.sd-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;padding:16px 24px 32px;background:var(--bg-2);min-height:100%;align-content:start}
.sd-card{background:var(--bg);border:1px solid var(--border);padding:16px 18px;box-shadow:0 1px 2px rgba(0,0,0,.03);min-width:0}
.sd-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.sd-kpi{display:flex;flex-direction:column;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:14px 16px;color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s}
.sd-kpi:hover{box-shadow:0 4px 14px rgba(42,19,64,.08);transform:translateY(-1px)}
.sd-kv{font-size:1.9rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.sd-list{display:flex;flex-direction:column}
.sd-row{display:flex;align-items:center;gap:8px;min-height:34px;border-bottom:1px solid var(--border-light);color:inherit;text-decoration:none;min-width:0}
.sd-row:last-child{border-bottom:0}.sd-row:hover{background:var(--bg-2)}
.sd-date{width:48px;flex-shrink:0}
@media (max-width:1100px){.sd-card{grid-column:span 12!important}.sd-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---- updates: threads and visibility icons ---- */
[data-tip]{position:relative}
[data-tip]:hover::after{content:attr(data-tip);position:absolute;right:0;top:calc(100% + 6px);z-index:50;background:#222;color:#fff;font-size:11.5px;font-weight:500;padding:5px 8px;border-radius:5px;white-space:nowrap;pointer-events:none}
.note-composer2,.reply-box2{border:1px solid var(--border);border-radius:8px;padding:8px;margin-bottom:12px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.note-composer2 textarea,.reply-box2 textarea{border:0;box-shadow:none;resize:vertical}
.reply-box2{margin:8px 0 0 0}
.nc-foot{display:flex;align-items:center;gap:6px}
.vis-btn{display:inline-flex;align-items:center;gap:2px;height:26px;padding:0 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--font-3);cursor:pointer}
.vis-btn.ext{color:var(--sky);border-color:var(--sky-bg);background:var(--sky-bg)}
.note2{border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:10px;background:var(--bg)}
.note2.in{background:#fbfdff;border-color:var(--sky-bg)}
.note2.reply{border:0;border-radius:0;padding:6px 0 2px;margin:0;background:transparent}
.note2-h{display:flex;align-items:center;gap:8px;font-size:12.5px}
.note2-b{white-space:pre-wrap;line-height:1.5;margin-top:6px;color:var(--font)}
.note2-a{display:flex;gap:12px;margin-top:4px;font-size:12px;color:var(--font-3)}.note2-a .clickable:hover{color:var(--font)}
.note2-t{margin-top:6px;padding-left:12px;border-left:2px solid var(--border)}

/* ---- campaign files: folders and cards ---- */
.files2{display:grid;grid-template-columns:220px 1fr;flex:1;min-height:0}
.fdirs{padding:12px;border-right:1px solid var(--border);overflow:auto}
.fdir{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border-radius:4px;color:var(--font-2)}.fdir:hover{background:var(--hover)}
.fdir.on{background:var(--accent-bg);color:var(--accent)}
.fmain{overflow:auto;padding:16px 24px;min-height:0}.fmain.on{background:var(--accent-bg);outline:2px dashed var(--accent-border);outline-offset:-8px}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;align-content:start}
.fc{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg);transition:box-shadow .15s}.fc:hover{box-shadow:0 2px 10px rgba(0,0,0,.07)}
.fc-th{height:116px;display:flex;align-items:center;justify-content:center;font-weight:700;letter-spacing:.04em;text-decoration:none;overflow:hidden}
.fc-th img{width:100%;height:100%;object-fit:cover}
.fc-th.pdf{background:#fbecec;color:#be3b38}.fc-th.vid{background:#2a2a2a;color:#fff}.fc-th.doc{background:var(--blue-bg);color:var(--blue)}.fc-th.img{background:var(--bg-3)}
.fc-b{padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.fc-n{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-m{display:flex;align-items:center;gap:6px;font-size:12px;min-width:0}
.fc-m .muted{white-space:nowrap}

/* ---- inbox in Gmail's shape ---- */
.g-head{display:flex;align-items:center;gap:8px;padding:14px 24px 10px;border-bottom:1px solid var(--border-light)}
.g-subj{font-size:1.25rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.g-body{flex:1;overflow:auto;padding:4px 24px 8px}
.gm{border-bottom:1px solid var(--border-light);padding:12px 0}
.gm.col{display:flex;align-items:center;gap:10px;padding:9px 0}
.gm.col b{white-space:nowrap}
.gm-h{display:flex;align-items:flex-start;gap:10px}
.gav{width:32px;height:32px;border-radius:50%;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}
.gm.col .gav,.gav.sm{width:26px;height:26px;font-size:11px}
.gm-b{padding:8px 0 0 42px;line-height:1.6;font-size:13.5px;overflow-wrap:anywhere}
.atts{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0 0 42px}
.att{width:190px;border:1px solid var(--border);border-radius:8px;overflow:hidden;color:inherit;text-decoration:none;background:var(--bg)}
.att:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}
.att-th{height:84px;display:flex;align-items:center;justify-content:center;font-weight:700;letter-spacing:.04em;overflow:hidden}
.att-th img{width:100%;height:100%;object-fit:cover}
.att-th.pdf{background:#fbecec;color:#be3b38}.att-th.vid{background:#2a2a2a;color:#fff}.att-th.doc,.att-th.img{background:var(--bg-3);color:var(--font-2)}
.att-n{display:flex;flex-direction:column;padding:6px 8px;font-size:12px}.att-n b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.greply{margin:10px 24px 16px;border:1px solid var(--border);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow)}
.greply-h{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border-light)}
.ux-row{display:flex;gap:10px;align-items:flex-start}
.ux-meta{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}
.nowrap{white-space:nowrap}

/* ---- outreach flow builder ---- */
.fb{display:grid;grid-template-columns:200px 1fr 360px;flex:1;min-height:0}
.fb-pal{padding:14px;border-right:1px solid var(--border);background:var(--bg-2);overflow:auto}
.seq-h{font-weight:600;margin-bottom:8px}
.pal{display:flex;align-items:center;gap:8px;min-height:32px;padding:4px 8px;margin-bottom:6px;border:1px solid var(--border);border-radius:6px;background:var(--bg);font-size:12.5px}
.pal.clickable:hover{border-color:var(--accent-border);background:var(--accent-bg)}
.pal.off{color:var(--font-3);background:transparent;border-style:dashed}
.fb-canvas{overflow:auto;background-color:var(--bg-2);background-image:radial-gradient(#dcdcdc 1px,transparent 1px);background-size:16px 16px}
.fl{display:flex;flex-direction:column;align-items:flex-start;padding:24px 32px 48px;min-width:760px}
.fl > .fn,.fl > .fa{margin-left:40px}
.fn{width:320px;display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.06);font-size:12.5px}
.fn.clickable:hover{border-color:var(--border-strong)}
.fn.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.fn.wait{flex-direction:row;align-items:center;width:220px;margin-left:90px!important;border-style:dashed;color:var(--font-2)}
.fn.end{flex-direction:row;align-items:center;width:320px}
.fn-h{display:flex;align-items:center;gap:8px}
.fn-ic{width:26px;height:26px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-3);color:var(--font-2)}
.fn-ic.e,.fn-ic.s{background:var(--accent-bg);color:var(--accent)}.fn-ic.d{background:var(--yellow-bg);color:var(--yellow)}
.fa{position:relative;width:2px;height:34px;background:#c9c9c9;margin-left:199px!important}
.fa::after{content:"";position:absolute;bottom:-1px;left:-4px;border:5px solid transparent;border-top:6px solid #c9c9c9;border-bottom:0}
.fa.short{height:20px}
.fa-l{position:absolute;left:18px;top:9px;font-size:11px;font-weight:600;color:var(--font-3);white-space:nowrap}
.fa .plus-on{position:absolute;left:-8px;top:8px;width:18px;height:18px;border-radius:50%;background:var(--bg);border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;color:var(--font-2)}
.fa .plus-on:hover{border-color:var(--accent);color:var(--accent)}
.fbranch{display:flex;align-items:center;margin-left:40px}
.fn.dec{width:320px;flex-direction:row;align-items:center}
.fbr-line{position:relative;width:70px;height:2px;background:#c9c9c9}
.fbr-line::after{content:"";position:absolute;right:-1px;top:-4px;border:5px solid transparent;border-left:6px solid #c9c9c9;border-right:0}
.fbr-line .fa-l{left:22px;top:-18px}
.fn.yes{width:300px;border-color:var(--green-bg)}
.abv{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;background:var(--bg-2);font-size:12px}.abv b{width:14px;color:var(--font-3)}.abv .num{color:var(--font-3)}
.abv.win{background:var(--green-bg)}.abv.win .num{color:var(--green);font-weight:600}
.fb-side{padding:14px 16px;border-left:1px solid var(--border);overflow:auto;background:var(--bg)}
.fld{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:12.5px}
.split{display:flex;align-items:center;gap:8px;margin:8px 0;padding:8px 10px;border:1px dashed var(--border-strong);border-radius:8px;font-size:12px}
.ibx2{display:flex;align-items:center;gap:8px;min-height:30px;font-size:12px;cursor:pointer}
.hbar{display:inline-block;width:48px;height:5px;border-radius:3px;background:var(--bg-3);vertical-align:middle;overflow:hidden}.hbar span{display:block;height:100%}

/* a page loading keeps the last one visible under a thin bar */
.main.busy{position:relative}
.main.busy::before{content:"";position:absolute;top:0;left:0;height:2px;width:30%;background:var(--accent);z-index:30;animation:busy 0.9s ease-in-out infinite}
.main.busy > *{opacity:.6;transition:opacity .2s}
@keyframes busy{0%{left:-30%}100%{left:100%}}
@media (prefers-reduced-motion:reduce){.main.busy::before{animation:none;width:100%}}

/* dashboard board */
.sd-board{padding:16px 24px 40px;gap:14px}
.page:has(> .sd-board){background:var(--bg-2)}
.sd-kpis-card{padding:0;border:0;background:transparent;box-shadow:none}
.dash-w-size{position:absolute;right:12px;bottom:12px;background:#1d1a24;color:#fff;font-size:11.5px;padding:3px 8px;border-radius:6px;z-index:5}
.sd-build{width:100%;flex-direction:row!important;align-items:center!important;text-align:left}
.sd-types{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.sd-type{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border:1px solid var(--border);border-radius:8px;background:var(--bg);font:inherit;font-size:12px;color:var(--font-2);cursor:pointer}
.sd-type:hover{border-color:var(--accent-border)}.sd-type.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.sd-build{gap:12px!important}.sd-build b{white-space:nowrap}

/* sub-items under a campaign row */
.tree{display:inline-flex;align-items:center;gap:7px}
.row-tog{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:3px;flex-shrink:0}.row-tog:hover{background:var(--bg-4)}
tr.row-open > td{background:var(--accent-bg)}
.subwrap{padding:6px 16px 12px 48px;background:var(--bg-2);border-bottom:1px solid var(--border)}
.sub-t{border:1px solid var(--border);border-left:3px solid var(--accent-border);border-radius:6px;background:var(--bg);width:auto;min-width:860px}
.sub-t th{background:var(--bg-2);height:28px;font-size:12px}
.sub-t td{height:32px}
.sub-t tr.l3 td{height:30px;background:#fcfbfe;font-size:12.5px}
.sub-t tr.l3 .tree{border-left:1px solid var(--border-strong);margin-left:18px;padding-left:12px!important;height:30px}

/* talent cost and location */
.cost-gbp{margin-left:6px;font-size:11.5px}
.ctry{white-space:nowrap}
.cost-ed{padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-strong)}
.cost-row{display:flex;gap:6px;align-items:center}.cost-row .t-input{height:30px}
.cost-hint{font-size:12px;min-height:16px}
.cost-title{font-size:12px;font-weight:600;color:var(--font-2)}
.cost-field{display:flex;align-items:stretch;height:32px;border:1px solid var(--border);border-radius:6px;background:var(--bg);overflow:hidden}
.cost-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.cost-field input{flex:1;min-width:0;border:0;outline:0;padding:0 10px;background:transparent;font:inherit;color:var(--font)}
.cost-field select{width:150px;border:0;border-left:1px solid var(--border);outline:0;padding:0 6px;background:var(--bg-2, transparent);font:inherit;font-size:12.5px;color:var(--font-2);cursor:pointer}
.money-edit{display:flex;align-items:center;gap:2px;width:100%;min-width:0}.money-edit .money-amt{flex:1;min-width:0}
.money-edit .currency{border:0;background:transparent;color:var(--font-3);font:inherit;font-size:.85em;cursor:pointer;padding:0 6px;height:22px;border-radius:4px;flex-shrink:0}
button.currency:hover{background:var(--hover);color:var(--font-2)}
.margin-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border-radius:4px;padding:1px 4px;margin:-1px -4px}
.margin-btn:hover{background:var(--hover, rgba(0,0,0,.05))}.margin-btn .fx-i{display:inline-flex;opacity:0;color:var(--font-3)}.margin-btn:hover .fx-i{opacity:1}
.fx-box{display:flex;flex-direction:column;gap:6px;font-size:13px}
.fx-sec{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--font-3);margin-top:8px}
.fx-cols{display:flex;flex-wrap:wrap;gap:6px}
.fx-col{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-size:12.5px}.fx-col .muted{margin-left:4px}
.fx-formula{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;background:var(--bg-2, rgba(0,0,0,.04));border:1px solid var(--border);border-radius:6px;padding:8px 10px;line-height:1.7}
.fx-line{line-height:1.6}.fx-num{padding-left:14px}
.fx-foot{font-size:11.5px;margin-top:10px}

/* ── Widget builder (Oli's): conditions, field picker, dashboard period + people ── */
.link-row { display: flex; gap: 6px; align-items: center; }
.filter-editor { display: flex; flex-direction: column; gap: 8px; padding: 10px; }
.filter-options { display: flex; flex-direction: column; gap: 2px; max-height: 260px; overflow: auto; }
.filter-option { display: flex; align-items: center; gap: 8px; padding: 3px 4px; border-radius: 4px; cursor: pointer; }
.filter-option:hover { background: var(--hover); }
.fp { display: flex; flex-direction: column; max-height: 70vh; }
.fp-search { padding: 8px 8px 4px; }
.fp-search .t-menu-search { width: 100%; }
.fp-list { overflow: auto; padding: 4px; flex: 1; }
.fp-row { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 36px; padding: 4px 8px; border: 0; border-radius: 6px; background: transparent; font: inherit; color: var(--font); text-align: left; cursor: pointer; }
.fp-row:hover { background: var(--hover); }
.fp-empty { padding: 16px; color: var(--font-3); text-align: center; }
.fp-head { padding: 10px 8px 4px; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--font-3); background: var(--bg-2); margin: 4px -4px; }
.fp-groups { display: flex; flex-wrap: wrap; gap: 4px; padding: 6px 4px; }
.fp-group { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border: 0; border-radius: 6px; background: transparent; color: var(--font-2); font: inherit; cursor: pointer; }
.fp-group.on { background: var(--accent-bg); color: var(--accent); font-weight: 600; }
.ce-rows { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.ce-row { display: grid; grid-template-columns: minmax(140px, 1.2fr) minmax(120px, 1fr) minmax(140px, 1.4fr) 28px; gap: 6px; align-items: center; }
.ce-field { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-pick { text-align: left; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-add { display: inline-flex; align-items: center; gap: 6px; border: 0; background: transparent; color: var(--accent); font: inherit; cursor: pointer; padding: 4px 0; }
.wb-pop { padding: 0; overflow: hidden; }
.wb-pop .fp-list { max-height: 52vh; }
.wb-ic { display: inline-flex; align-items: center; }
.ce-inline .t-select, .ce-inline .t-input { width: 100%; min-width: 0; }
.ce-pick { display: block; text-align: left; height: 32px; line-height: 30px; }
.wb-form .t-select, .wb-form .t-input { width: 100%; }
.wb-pair > .t-select { min-width: 0; }
.dash-filters { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dash-period button { padding: 5px 14px; }
.dash-people-btn { max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sd-board > .dash-filters { grid-column: 1 / -1; margin: 0; }
.dash-period button { white-space: nowrap; flex: none; }
/* Board: each platform is a block, its stats underneath (TikTok › Profile, Followers, Avg views, Engagement). */
.board-t thead{position:sticky;top:0;z-index:4}
.board-t thead th{position:relative;top:auto}
.board-t thead tr:first-child th:first-child{position:sticky;left:0;z-index:5}
.board-t thead tr.plat-subs th{height:28px;font-size:12px}
.board-t th.plat-h{text-align:center;color:var(--font);border-bottom:1px solid var(--border-light);background:#fbf7fe}
.board-t th.plat-h .th-in{justify-content:center;gap:6px}
.board-t th.plat-h.plat-alt,.board-t th.plat-sub.plat-alt{background:#f7f9fe}
.board-t th.plat-sub{background:#fbf7fe}
.board-t .plat-first{border-left:1px solid var(--border)}
.board-t td.plat-alt{background:rgba(65,90,193,.025)}
/* platform groups: the whole group is tinted in the platform's colour (--pc), its header strongest */
.board-t th.plat-h.pg{background:linear-gradient(rgba(var(--pc),.14),rgba(var(--pc),.14)),var(--bg);color:var(--pt)}
.board-t th.plat-h.pg b{color:var(--pt)}
.board-t th.plat-sub.pg{background:linear-gradient(rgba(var(--pc),.08),rgba(var(--pc),.08)),var(--bg)}
.board-t th.plat-sub.pg.clickable:hover,.board-t th.plat-h.pg.clickable:hover{background:linear-gradient(rgba(var(--pc),.2),rgba(var(--pc),.2)),var(--bg)}
.board-t td.pg{background:rgba(var(--pc),.045)}
.board-t tr.sel td.pg{background:var(--accent-bg)}
.pg-packs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.pg-pack{border:1px solid var(--border);border-radius:6px;padding:7px 9px;cursor:pointer;text-align:center}
.pg-pack b{font-weight:600}
.pg-pack:hover{border-color:var(--border-strong)}
.pg-pack.on{border-color:rgb(var(--pc));background:rgba(var(--pc),.08)}
.pg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.pg-row{display:flex;align-items:center;gap:8px;height:30px;cursor:pointer;min-width:0}
.pg-box{width:16px;height:16px;flex-shrink:0;border:1.5px solid var(--border-strong);border-radius:4px;display:inline-flex;align-items:center;justify-content:center}
.pg-box.on{background:var(--accent);border-color:var(--accent);color:#fff}
.plat-link{color:var(--font);max-width:140px;display:inline-block}
.plat-link:hover{color:var(--accent);text-decoration:underline}
.reach-l{display:flex;align-items:center;gap:5px;white-space:nowrap;line-height:1.7}
.reach-l .muted{margin-right:6px;font-size:12px}
.plat-val{display:block;line-height:1.6}
.plat-val .muted{margin-left:4px}
.plat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 8px}
.plat-cell{display:flex;flex-direction:column;min-width:0}
.plat-l{font-size:11px;color:var(--font-3)}
.rename-in{height:26px;padding:2px 6px;min-width:140px;font-weight:600}
.plat-open{display:inline-flex;margin-left:4px;color:var(--font-3);flex-shrink:0}
.plat-open:hover{color:var(--accent)}
.g-name:hover{text-decoration:underline dotted}
.plat-block{margin:6px 0 4px;padding-top:6px;border-top:1px solid var(--border-light)}
.plat-name{display:flex;align-items:center;gap:6px;font-weight:600;margin:2px 0 2px}

/* "Our Systems": the 9-dot menu at the right end of the top bar (apps.js), matching Ollie's. */
.apps-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:4px;border:0;border-radius:6px;background:transparent;color:var(--font-2);cursor:pointer;flex:none}
.apps-btn:hover,.apps-btn.open{background:var(--hover);color:var(--font)}
.t-topbar > .apps-btn{margin-left:auto}
.t-topbar > .grow ~ .apps-btn, .t-topbar > .tb-right ~ .apps-btn{margin-left:4px}
.apps-pop{position:fixed;z-index:1000;width:300px;max-width:calc(100vw - 24px);padding:8px 6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.apps-head{font-weight:600;font-size:14px;padding:2px 8px 10px;border-bottom:1px solid var(--border);margin-bottom:10px}
.apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.apps-tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border-radius:8px;color:var(--font);text-decoration:none;text-align:center;font-size:12px}
.apps-tile:hover{background:var(--hover)}
.apps-logo{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}
.apps-logo img{width:34px;height:34px;object-fit:contain}
.apps-empty{grid-column:1/-1;padding:8px;color:var(--font-3);font-size:13px}
.apps-tile.soon{cursor:default}
.apps-tile.soon:hover{background:transparent}
a.apps-tile.soon{cursor:pointer}
a.apps-tile.soon:hover{background:var(--hover)}
.apps-tile.soon .apps-logo img{opacity:.55;filter:grayscale(.4)}
.apps-tile.soon .apps-name{color:var(--font-3)}
.apps-soon{margin-top:-3px;padding:1px 6px;border-radius:999px;background:var(--bg-3);color:var(--font-2);font-size:10px;font-weight:500}

/* ── Documents (docs.js) ───────────────────────────────────────────────────────────────── */
.doc-table td{height:40px}
.doc-name{display:inline-flex;align-items:center;gap:8px;font-weight:500}
.doc-name a{color:var(--font);text-decoration:none}.doc-name a:hover{color:var(--accent)}
.doc-name .icon{color:var(--font-3)}
.doc-tpls{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.doc-tpl{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}
.doc-tpl:hover{border-color:var(--accent-border);background:var(--accent-bg)}
.doc-tpl .icon{color:var(--accent);flex:none;margin-top:2px}
.doc-top{flex-wrap:wrap}
.doc-title{font:inherit;font-weight:600;font-size:1.08rem;color:var(--font);flex:1 1 160px;min-width:120px;max-width:380px;padding:3px 6px;border:1px solid transparent;border-radius:4px;background:none;text-overflow:ellipsis}
.doc-title:not([readonly]):hover{border-color:var(--border)}
.doc-title:focus{outline:none;border-color:var(--accent-border);background:var(--bg)}
.doc-status{font-size:12px}.doc-status.ok{color:var(--green)}.doc-status.warn{color:var(--orange)}
.doc-banner{display:flex;align-items:center;gap:6px;padding:8px 24px;background:var(--yellow-bg);color:var(--yellow);border-bottom:1px solid var(--border)}
.doc-toolbar{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding:6px 16px;border-bottom:1px solid var(--border);background:var(--bg)}
.doc-toolbar:empty{display:none}
.tb-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:30px;height:30px;padding:0 6px;border:0;border-radius:6px;background:none;color:var(--font-2);font:inherit;font-size:14px;cursor:pointer}
.tb-btn:hover{background:var(--hover);color:var(--font)}.tb-btn.on{background:var(--accent-bg);color:var(--accent)}
.tb-btn.tb-text{padding:0 10px;font-weight:500}
.tb-select{height:30px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--font);font:inherit;padding:0 6px;margin:0 2px}
.tb-sep{width:1px;height:18px;background:var(--border);margin:0 6px}
.tb-note{display:inline-flex;align-items:center;gap:6px;color:var(--purple);font-size:13px}
.doc-body{flex:1;min-height:0;display:flex}
.doc-wrap{flex:1;min-width:0;overflow:auto;background:var(--bg-3)}
.doc-page{max-width:816px;min-height:calc(100% - 48px);margin:24px auto;padding:64px 80px;background:#fff;color:#222;box-shadow:var(--shadow);box-sizing:border-box}
.doc-host{min-height:600px}
.pm-doc{outline:none;font:11pt/1.55 Arial,Helvetica,sans-serif;white-space:pre-wrap;min-height:600px}
.pm-doc h1{font-size:24pt;font-weight:600;margin:0 0 12px}.pm-doc h2{font-size:16pt;font-weight:600;margin:18px 0 6px;color:#1f3b57}.pm-doc h3{font-size:13pt;font-weight:600;margin:14px 0 4px}
.pm-doc p{margin:0 0 6px}.pm-doc ul,.pm-doc ol{margin:0 0 6px;padding-left:28px}.pm-doc li>p{margin:0 0 2px}
.pm-doc blockquote{margin:6px 0;padding:2px 14px;border-left:3px solid var(--border-strong);color:#555}
.pm-doc hr{border:0;border-top:1px solid #ccc;margin:12px 0}
.pm-doc a{color:#1155cc;text-decoration:underline}.pm-doc mark{background:#fff3a3}
.pm-doc img{max-width:100%;height:auto}.pm-doc img.ProseMirror-selectednode{outline:2px solid var(--accent)}
.pm-doc table{border-collapse:collapse;width:100%;margin:6px 0;table-layout:fixed}.pm-doc td,.pm-doc th{border:1px solid #bfbfbf;padding:4px 8px;vertical-align:top;position:relative}
.pm-doc th{background:#f6f6f6;font-weight:600;text-align:left}.pm-doc .selectedCell::after{background:rgba(220,52,134,.12)}
.pm-comment{background:#fff1b8;border-bottom:2px solid #f2c94c}
ins.pm-ins{color:#1e7a46;background:#e6f6ec;text-decoration:underline}del.pm-del{color:#b42318;background:#fdeceb;text-decoration:line-through}
.ProseMirror-yjs-cursor{position:relative;margin-left:-1px;margin-right:-1px;border-left:1px solid;border-right:1px solid;word-break:normal;pointer-events:none}
.ProseMirror-yjs-cursor>div{position:absolute;top:-1.15em;left:-1px;font:600 11px/1.3 Inter,sans-serif;color:#fff;padding:0 4px;border-radius:3px 3px 3px 0;white-space:nowrap;user-select:none}
.doc-side{width:320px;flex:none;overflow:auto;border-left:1px solid var(--border);background:var(--bg-2);padding:12px;display:flex;flex-direction:column;gap:10px}
.cm-card,.sg-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px;cursor:pointer}
.cm-card.active{border-color:var(--accent-border);box-shadow:0 0 0 2px var(--accent-bg)}.cm-card.resolved{opacity:.65}
.sg-card{border-left:3px solid var(--purple)}
.cm-quote{font-size:12px;color:var(--font-2);border-left:3px solid #f2c94c;padding-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-head{display:flex;align-items:center;gap:6px;font-size:13px}.cm-body{font-size:13px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.cm-msg+.cm-msg{border-top:1px solid var(--border-light);padding-top:8px}
.cm-actions{display:flex;align-items:center;gap:6px}.cm-actions .t-btn{height:28px}
.cm-reply textarea{min-height:32px;font-size:13px}
.sg-ins{color:#1e7a46;text-decoration:underline}.sg-del{color:#b42318;text-decoration:line-through}
.cm-empty{font-size:13px;line-height:1.5;padding:4px}.cm-toggle{align-self:flex-start}
@media (max-width:1000px){.doc-side{display:none}.doc-page{padding:32px 24px}}
.sh-list{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow:auto}
.sh-row{display:flex;align-items:center;gap:8px;padding:4px 2px}
.doc-hist{display:flex;gap:12px;height:62vh}
.doc-hist-list{width:230px;flex:none;overflow:auto;border-right:1px solid var(--border);padding-right:10px}
.doc-ver{padding:8px;border-radius:6px}.doc-ver:hover{background:var(--hover)}.doc-ver.on{background:var(--accent-bg)}
.doc-hist-view{flex:1;min-width:0;display:flex;flex-direction:column}
.doc-hist-bar{display:flex;align-items:center;gap:8px;padding-bottom:8px}
.doc-hist-host{flex:1;min-height:0;overflow:auto;background:var(--bg-3);border-radius:6px}.doc-hist-host .doc-page{margin:12px auto;padding:40px 48px;transform-origin:top center}
@media (max-width:700px){.doc-tpls{grid-template-columns:1fr}.doc-hist{flex-direction:column;height:auto}.doc-hist-list{width:auto;border-right:0;max-height:160px}.doc-title{max-width:60vw}}
@media print{.sidebar,.t-topbar,.doc-toolbar,.doc-banner,.doc-side,.toasts,.ProseMirror-yjs-cursor{display:none!important}.shell,.main,.doc-body{display:block;height:auto;overflow:visible}.doc-wrap{overflow:visible;background:none}.doc-page{box-shadow:none;margin:0;padding:0}}

.doc-top{flex-wrap:nowrap}.doc-top .t-btn{flex:none}.doc-status{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.doc-mode{flex:none}.doc-mode span{display:inline-flex;align-items:center;gap:4px}
@media (max-width:1100px){.doc-mode span .icon{display:none}#doc-presence .muted{display:none}}

/* ── Narrow screens: the sidebar becomes a drawer; top bars and the campaign summary wrap instead of overlapping ── */
.nav-toggle,.nav-scrim{display:none}
@media (max-width:1280px){.camp-sum{flex-wrap:wrap;row-gap:10px;overflow-x:visible}.camp-sum .sum-brief{margin-left:0}}
@media (max-width:900px){
  .shell{position:relative}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(280px,86vw);z-index:70;background:var(--bg-2);box-shadow:0 10px 40px rgba(0,0,0,.18);transform:translateX(-105%);transition:transform .2s ease;visibility:hidden}
  body.nav-open .sidebar{transform:none;visibility:visible}
  .nav-scrim{position:fixed;inset:0;z-index:65;background:rgba(15,15,20,.32)}
  body.nav-open .nav-scrim{display:block}
  .main{border-left:0;position:relative}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;position:absolute;top:8px;left:8px;z-index:20;width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--font);cursor:pointer}
  .nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .main > .t-topbar,.main > div > .t-topbar:first-child{padding-left:56px}
  .t-topbar{flex-wrap:wrap;row-gap:6px;padding:8px 12px;min-height:52px}
  .t-topbar .crumbs{flex:1 1 100%;min-width:0;overflow:hidden}
  .t-topbar .title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .camp-sum{padding:10px 12px}
  .sum-item{padding:0 12px}
}
@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}
/* A full-page empty or no-access state: says what happened and where to go. */
.empty-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:96px 24px;max-width:460px;margin:0 auto;color:var(--font-2)}
.empty-page h2{margin:4px 0 0;font-size:1.15rem;font-weight:600;color:var(--font)}
.empty-page p{margin:0 0 8px;line-height:1.5}
.empty-page > .icon,.empty-page > svg{color:var(--font-3)}
.toast{display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px)}
.toast-act{border:0;background:transparent;color:#ffb3d9;font:inherit;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:4px}
.toast-act:hover{text-decoration:underline}.toast-act:focus-visible{outline:2px solid #fff;outline-offset:1px}
.toast{min-width:min(340px,calc(100vw - 32px));justify-content:space-between}
.kc-t .t-chip{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
@media (max-width:1280px){.camp-sum .sum-item{border-left:0;padding:0 28px 0 0}}
@media (max-width:900px){.main .t-topbar > .apps-btn{position:absolute;top:8px;right:8px;margin:0}.main > .t-topbar,.main > div > .t-topbar:first-child{padding-right:52px}}
.t-segmented > span{white-space:nowrap}
.vis-switch{border:0;background:transparent;padding:3px;margin:-3px;border-radius:4px;cursor:pointer;align-items:center}
.vis-switch:hover{background:var(--bg-2);color:var(--font-2)}.vis-switch.ext:hover{color:var(--sky)}
.vis-switch:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* Data tables (datatable.js): Monday-style column menus, toolbar, checklists. Person cards (Team). */
.dt-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 10px}
.dt-search{display:inline-flex;align-items:center;gap:6px;color:var(--font-3)}
.dt-search .t-input{width:180px;height:28px}
.dt-card{overflow:auto}
table.dt th.dt-th{cursor:pointer;user-select:none}
table.dt th.dt-th:hover{background:var(--accent-bg)}
.dt-h{display:flex;align-items:center;gap:4px;min-width:0}
.dt-h .dt-more{opacity:0;color:var(--font-3);display:inline-flex}
table.dt th.dt-th:hover .dt-more{opacity:1}
.dt-h .dt-on{color:var(--accent)}
table.dt td.first .clickable:hover b,table.dt td.first .clickable:hover{text-decoration:underline}
.dt-pop{min-width:220px;max-height:60vh;display:flex;flex-direction:column}
.dt-pop .menu-list{overflow:auto}
.dt-pop .menu-item{gap:6px}
.dt-pop-foot{display:flex;justify-content:space-between;padding:6px 10px;font-size:12px;color:var(--accent)}
.pc{padding:8px 20px 28px}
.pc-top{display:flex;align-items:center;gap:14px;padding:12px 4px 16px}
.pc-sec{border-top:1px solid var(--border);padding:10px 0}
.pc-h{font-weight:600;color:var(--font-2);margin:2px 4px 6px}
/* "View as": a slim bar along the top of the app; the accent colour while using Scout as someone else. */
.app-frame{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}
.app-frame>.shell{flex:1;min-height:0;height:auto}
.view-as-bar{flex:none;display:flex;align-items:center;gap:8px;min-height:34px;padding:3px 12px;box-sizing:border-box;background:var(--bg-2);border-bottom:1px solid var(--border);font-size:.92rem;color:var(--font-2);min-width:0}
.view-as-bar.active{background:var(--accent);border-bottom-color:var(--accent);color:#fff}
.view-as-label{display:inline-flex;align-items:center;gap:6px;font-weight:500;color:var(--font-3);white-space:nowrap}
.view-as-bar.active .view-as-label{color:rgba(255,255,255,.85)}
.view-as-pick,.view-as-stop{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--font);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap;min-width:0}
.view-as-pick:hover,.view-as-stop:hover{background:var(--hover)}
.view-as-pick .view-as-name{overflow:hidden;text-overflow:ellipsis;max-width:220px}
.view-as-bar.active .view-as-pick,.view-as-bar.active .view-as-stop{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.45);color:#fff}
.view-as-bar.active .view-as-pick:hover,.view-as-bar.active .view-as-stop:hover{background:rgba(255,255,255,.28)}
.view-as-pick:focus-visible,.view-as-stop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.view-as-bar.active .view-as-pick:focus-visible,.view-as-bar.active .view-as-stop:focus-visible{outline-color:#fff}
.view-as-person{display:flex;align-items:center;gap:8px;min-width:0}
.view-as-person .view-as-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:900px){
  .view-as-bar{padding:calc(3px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 3px calc(12px + env(safe-area-inset-left))}
  .view-as-pick .view-as-name{max-width:38vw}
}
@media (max-width:420px){.view-as-label>span,.view-as-stop>span{display:none}}
@media print{.view-as-bar{display:none!important}.app-frame{display:block;height:auto;overflow:visible}}
/* History review queue (history-review.js): reviewers only. */
.hrv-host{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}
.hrv-tabs{overflow-x:auto;scrollbar-width:none}
.hrv-tabs .tab{white-space:nowrap}
.hrv-tools{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:10px 24px;border-bottom:1px solid var(--border)}
.hrv-seg{flex-wrap:wrap;max-width:100%}
.hrv-f{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--font-3)}
.hrv-f .t-select{height:28px;max-width:280px}
.hrv-intro{margin:10px 24px;font-size:12.5px;line-height:1.5;max-width:900px}
.hrv-counts{padding:6px 24px;border-bottom:1px solid var(--border)}
.hrv-counts summary{cursor:pointer;padding:4px 0;font-weight:500}
.hrv-counts .t-table{margin:6px 0}
.hrv-why{max-width:520px}.hrv-w{max-width:250px}
.hrv-pager{display:flex;align-items:center;gap:8px;padding:10px 24px}
.hrv-id{font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
.hrv-json{font-size:11.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-all}
.hrv-prov{height:18px;padding:0 6px;font-size:11px}
.hrv-err{margin:16px 24px;color:var(--red)}
.hrv-d{padding:14px 16px 28px;display:flex;flex-direction:column;gap:16px;min-width:0}
.hrv-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hrv-reason{font-size:14px;line-height:1.5;color:var(--font)}
.hrv-sec{min-width:0}
.hrv-sec .t-table td{white-space:nowrap}
.hrv-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;align-items:baseline}
.hrv-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hrv-chip{display:inline-flex;padding:2px 8px;border-radius:4px;background:var(--bg-3);font-size:12.5px}
.hrv-wrap{white-space:normal;min-width:220px;font-size:12px}
.hrv-hint{font-size:12px;margin:4px 0}
.hrv-note{font-size:12.5px}
.hrv-decide{border:1px solid var(--border);border-radius:6px;padding:12px;background:var(--bg-2)}
.hrv-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--font-3);margin-bottom:10px}
.hrv-block{margin:8px 0}
.hrv-block summary{cursor:pointer;font-weight:500;padding:4px 0}
.hrv-bh{font-weight:500;margin-bottom:6px}
.hrv-checks{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
.hrv-checks label{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hrv-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hrv-row .t-input,.hrv-row .t-select{max-width:100%}
.hrv-btns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hrv-foot{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-light)}
.hrv-btns-cell{display:flex;gap:4px;align-items:center;height:32px}
.hrv-hist{display:flex;flex-direction:column;gap:8px}
.hrv-hrow{padding:8px 10px;border:1px solid var(--border-light);border-radius:6px}
.hrv-hrow.latest{border-color:var(--border)}
.hrv-hnote{margin:4px 0;white-space:pre-wrap}
.hrv-run{margin:8px 24px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}
.hrv-run summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hrv-bad td{background:var(--red-bg)}
.hrv-form{display:flex;flex-direction:column;gap:10px}
.hrv-form .hrv-row .t-dialog-field{flex:1;min-width:140px}
.hrv-camp{justify-content:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hrv-menu{max-width:min(520px,94vw)}
.hrv-menu .menu-list{max-height:50vh;overflow:auto}
@media (max-width:700px){
  .hrv-tools,.hrv-counts,.hrv-pager{padding-left:12px;padding-right:12px}
  .hrv-intro{margin:10px 12px}.hrv-run{margin:8px 12px}.hrv-err{margin:12px}
  .hrv-sm-hide{display:none}
  .hrv-why{max-width:46vw}.hrv-w{max-width:34vw}
  .hrv-f .t-select{max-width:calc(100vw - 24px)}
  .hrv-d{padding:12px 12px 24px}
}
/* ── Historical intelligence (history*.js): provenance badges, creator history, prices, negotiation, outreach ── */
.h-prov{display:inline-flex;align-items:center;height:16px;padding:0 5px;border-radius:3px;font-size:10.5px;font-weight:500;letter-spacing:.01em;position:relative;cursor:help;white-space:nowrap;vertical-align:middle;margin-left:4px}
.h-prov[data-htip]:hover::after,.h-prov[data-htip]:focus::after,.h-amb[data-htip]:hover::after,.h-amb[data-htip]:focus::after{content:attr(data-htip);position:absolute;left:0;top:calc(100% + 5px);z-index:60;width:max-content;max-width:min(260px,80vw);white-space:normal;background:#222;color:#fff;font-size:11.5px;font-weight:400;line-height:1.35;padding:6px 8px;border-radius:5px;pointer-events:none}
.h-amb{position:relative;display:inline-flex;height:16px;padding:0 5px;border-radius:3px;font-size:10.5px;background:var(--yellow-bg);color:var(--yellow);cursor:help;white-space:nowrap;vertical-align:middle}
.h-conf{display:inline-flex;height:16px;padding:0 5px;margin-left:4px;border-radius:3px;font-size:10.5px;border:1px solid var(--border);color:var(--font-3);vertical-align:middle;white-space:nowrap}
.h-conf-high{color:var(--green);border-color:var(--green-bg)} .h-conf-low{color:var(--orange);border-color:var(--orange-bg)}
.h-kind{font-weight:500}.h-norm{font-size:11.5px}.h-money{font-weight:600}.h-badge{height:18px;padding:0 6px;font-size:11px;gap:3px;flex-shrink:0}
.h-wrap{white-space:normal!important;min-width:140px}.h-note{font-size:12px;margin:6px 0}.h-notes{font-size:12px;margin:8px 0;padding-left:18px}
.h-sub{font-weight:400;text-transform:none;letter-spacing:0;font-size:11.5px}.h-sub-h{font-weight:600;margin:10px 0 4px}
.h-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:3px 0}.h-sec{margin-bottom:6px}
.h-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.h-ident{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px;font-size:14px}
.h-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:6px}
.h-kpi{border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-width:0}.h-kpi-v{font-size:18px;font-weight:600;margin-top:2px}.h-kpi-s{font-size:11.5px}
.h-t td{height:auto;padding-top:5px;padding-bottom:5px;vertical-align:top}.h-t th{position:static}
.h-out td{white-space:normal;min-width:120px}
.h-more{color:var(--accent);font-size:12.5px;padding:4px 0;display:inline-block}.h-more-wrap{display:flex;gap:8px;justify-content:center;padding:10px}
.h-camp{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:9px;background:var(--brand4-bg);color:var(--brand4);font-size:11.5px;margin-left:4px}
.h-mb{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;font-size:12px;padding:0 6px;border-radius:9px;background:var(--bg-3)}
.h-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.h-metric{display:flex;flex-direction:column;border:1px solid var(--border-light);border-radius:6px;padding:6px 8px}
.h-det summary{cursor:pointer;color:var(--font-2);font-size:12.5px;padding:4px 0}.h-det ul{margin:4px 0;padding-left:18px;font-size:12px;color:var(--font-2)}
.h-ep{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px}.h-ep-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.h-ep-m{font-size:12px;margin:2px 0 4px}
.h-conv{border-top:1px solid var(--border-light);margin-top:6px}.h-conv-h{display:flex;align-items:center;gap:6px;padding:6px 0;min-width:0}.h-conv-h .ell{max-width:50%}
.h-conv-h .icon{transition:transform .15s}.h-conv.open .h-conv-h>.icon:first-child{transform:rotate(90deg)}
.h-conv-b{display:none;padding:0 0 6px 18px}.h-conv.open .h-conv-b{display:block}
.h-msg{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:12.5px;min-width:0}.h-msg-d{width:84px;flex-shrink:0}.h-msg-s{min-width:0;flex:1 1 auto}
.h-dir{display:inline-flex;width:18px;height:18px;border-radius:50%;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-3)}.h-dir.in{background:var(--sky-bg);color:var(--sky)}.h-dir.out{background:var(--purple-bg);color:var(--purple)}
.h-pkg{font-size:12.5px;padding:2px 0}.h-snip{font-size:12px;color:var(--font-2);font-style:italic;flex-basis:100%}.h-flags{font-size:11.5px;text-decoration:underline dotted}
.h-src{height:20px;padding:0 6px;font-size:11.5px}.h-code{font-size:11.5px;word-break:break-all;background:var(--bg-3);padding:1px 4px;border-radius:3px}.h-loc{margin:8px 0}
.h-pre{font-size:11px;max-height:240px;overflow:auto;background:var(--bg-2);padding:8px;border-radius:6px;white-space:pre-wrap;word-break:break-word}
.h-insuf{padding:10px 12px;border-radius:6px;background:var(--bg-3);color:var(--font-2);margin:6px 0}
.h-bm{border:1px solid var(--border-light);border-radius:8px;padding:8px 10px;margin-bottom:8px}.h-bm-h{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.h-bm-q{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;text-align:center}.h-bm-q>div{display:flex;flex-direction:column}.h-bm-q b{font-size:15px}.h-bm-q .mid b{font-size:18px;color:var(--accent)}
.h-page{padding:12px 24px}.h-lookup{max-width:980px}.h-lookup-f{display:flex;gap:8px;margin-bottom:4px}.h-lookup-f .t-input{flex:1;height:32px;font-size:14px;min-width:0}
.h-contact{margin:10px 0}.h-indent{padding-left:32px}.h-err{margin:8px 0}
.h-filters{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;padding:4px 0 10px}.h-filters>label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--font-3)}
.h-filters .t-select,.h-filters .t-input{width:auto;min-width:0}.h-kinds{display:flex;flex-wrap:wrap;gap:4px 10px}
.h-check{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--font-2);cursor:pointer}
.h-pi-tools{padding:6px 0;border:0}.h-pi-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.h-pi-side{position:sticky;top:0}
.h-obs td{font-size:12.5px}.h-comp{border-top:1px solid var(--border-light);padding:6px 0;font-size:12px}.h-reasons{margin:2px 0}
.h-compare{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:12px}.h-compare-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.h-compare-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.h-pin{border:1px solid var(--border-light);border-radius:6px;padding:6px 8px;min-width:0}
.h-market td{white-space:nowrap;font-size:12px}.h-supp{font-style:italic}
.h-bullets{margin:4px 0;padding-left:18px}.h-bullets li{margin:2px 0}
.h-form .t-dialog-field{margin:0}.h-f-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;margin:6px 0}.h-dl .t-select{width:auto}
.h-neg-hint{margin-bottom:10px}.h-neg-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 16px;background:var(--brand3-bg);color:var(--brand3);border-bottom:1px solid var(--border-light)}
.h-neg-banner>span:not(.grow){flex:1 1 260px}.h-tab-hot{color:var(--brand3);font-weight:600}.drawer .tabs{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.drawer .tabs .tab{white-space:nowrap}
.h-rec{border:1px solid var(--border);border-radius:10px;padding:12px;margin:12px 0}.h-rec-top{border-radius:8px;padding:12px 14px;margin-bottom:10px}
.h-rec-act{font-size:20px;font-weight:600}.h-rec-exp{margin-top:2px}.h-rec-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;font-size:12.5px;color:var(--font-2)}
.h-rec-nums{display:flex;gap:24px;flex-wrap:wrap;margin:6px 0 10px}.h-rec-nums>div{display:flex;flex-direction:column}.h-rec-nums b{font-size:18px}
.h-warns>div{padding:2px 0}.h-msg-ta{width:100%;font-family:inherit}.h-econ{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}.h-econ>div{display:flex;flex-direction:column;gap:2px}
.h-ev{font-size:12.5px;border-bottom:1px solid var(--border-light)}.h-rec-row{padding:6px 0;flex-wrap:wrap}
.h-att{padding:10px 24px}.h-att-item{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px}.h-att-item.overdue{border-left:3px solid var(--red)}
.h-att-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.h-att-h .ell{max-width:260px}.h-att-m{font-size:12px;margin:3px 0;display:flex;flex-wrap:wrap;gap:2px;align-items:center}.h-att-m .ell{max-width:300px}
.h-att-s{font-size:12.5px;margin:4px 0}
.h-wl{display:flex;flex-direction:column;gap:4px}.h-wl-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 8px;border-radius:6px;background:var(--bg-2)}
.h-wl-block{background:var(--red-bg)}.h-wl-warn{background:var(--orange-bg)}.h-wl-positive{background:var(--green-bg)}
.h-chk-block td{background:var(--red-bg)}.h-chk-warn td{background:var(--orange-bg)}.h-chk-sum{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
@media (max-width:900px){.h-pi-grid{grid-template-columns:1fr}.h-pi-side{position:static}.h-page{padding:10px 12px}.h-att{padding:10px 12px}}
@media (max-width:600px){.h-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.h-msg-d{width:64px}.h-conv-h .ell{max-width:40%}.h-lookup-f{flex-direction:column}}
.h-filters>label.h-check{flex-direction:row;font-size:12.5px;color:var(--font-2);align-self:center}.h-obs .h-wrap{min-width:200px}
.t-dialog .h-t td.h-wrap{min-width:120px;max-width:240px}.t-dialog .h-mb{max-width:170px}
