/* Outreach, campaign detail, composer, Marketing and POC tracker. Tokens only. */
[hidden]{display:none!important}
.bad-text{color:var(--bad)}
.mono{font-family:var(--f-mono);font-size:var(--t-xs)}
.sim-badge{border:1px dashed currentColor;background:none}

/* ---------- outreach list ---------- */
.out-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);margin-bottom:var(--s-3)}
.ch-switch>button{min-height:38px;padding:0 14px}
.ch-switch>button .ico{width:16px;height:16px}
.ch-switch>.ch-tab-sms[aria-pressed="true"]{color:var(--ch-sms);box-shadow:var(--shadow-1),inset 0 -2px 0 var(--ch-sms)}
.ch-switch>.ch-tab-email[aria-pressed="true"]{color:var(--ch-email);box-shadow:var(--shadow-1),inset 0 -2px 0 var(--ch-email)}
.ch-switch>.ch-tab-voice[aria-pressed="true"]{color:var(--ch-call);box-shadow:var(--shadow-1),inset 0 -2px 0 var(--ch-call)}
.out-kpis{margin-bottom:var(--s-6)}
.out-kpis .stat-strip{border-top:3px solid var(--accent)}
.kpis-sms .stat-strip{border-top-color:var(--ch-sms-mark)}
.kpis-email .stat-strip{border-top-color:var(--ch-email-mark)}
.kpis-voice .stat-strip{border-top-color:var(--ch-call-mark)}
.ocards{display:flex;flex-direction:column;gap:var(--s-3)}
.ocard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-4) var(--s-5);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s-2) var(--s-4);align-items:start;
  transition:border-color var(--dur-fast) var(--ease-out)}
.ocard:hover{border-color:var(--line-strong)}
.ocard>.ch-mark{width:40px;height:40px;border-radius:var(--r-md)}
.ocard>.ch-mark .ico{width:20px;height:20px}
.oc-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.oc-title{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}
.oc-title a{font:650 var(--t-lg)/1.25 var(--f-display);color:var(--ink);overflow-wrap:anywhere;text-decoration:none}
.oc-title a:hover{text-decoration:underline}
.ocard .tpl{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
.oc-meta{font-size:var(--t-sm);color:var(--muted)}
.oc-progress{display:grid;grid-template-columns:minmax(80px,280px) auto;gap:var(--s-3);align-items:center;margin-top:2px}
.oc-side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-2)}
.oc-cost{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}
.oc-cost b{font:700 var(--t-lg) var(--f-display)}
.oc-cost span{font-size:var(--t-xs);color:var(--muted)}
.oc-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:300px}

/* ---------- composer ---------- */
.ch-seg>button{min-height:40px}
.cmp{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:var(--s-5)}
.cmp-form{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}
.cmp-side{display:flex;flex-direction:column;gap:var(--s-2);background:var(--sunken);border-radius:var(--r-lg);padding:var(--s-4);min-width:0}
.cmp-side .label{margin-top:var(--s-1)}
.tok-row{margin-top:calc(-1 * var(--s-2))}
.tok{font-family:var(--f-mono);font-size:var(--t-xs)}
.sms-count{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;font-size:var(--t-sm)}
.cmp .banner{margin-bottom:0}
.phone{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:var(--s-3);box-shadow:var(--shadow-1)}
.phone-top{display:flex;gap:var(--s-2);align-items:center;font-size:var(--t-sm);padding-bottom:var(--s-2);border-bottom:1px solid var(--line)}
.phone-body{padding:var(--s-3) 0 var(--s-1);min-height:96px;display:flex;flex-direction:column}
.bubble-sms{align-self:flex-start;max-width:92%;background:var(--ch-sms-soft);color:var(--ink);border-radius:16px 16px 16px 4px;padding:8px 12px;font-size:var(--t-sm);white-space:pre-wrap;overflow-wrap:anywhere}
.mail{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;font-size:var(--t-sm)}
.mail-head{padding:var(--s-3);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px;border-top:3px solid var(--ch-email-mark)}
.mail-subj{font-weight:650;font-size:var(--t-md);overflow-wrap:anywhere}
.mail-body{padding:var(--s-3);white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow-y:auto}
.script{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--ch-call-mark);border-radius:var(--r-md);padding:var(--s-3);display:flex;flex-direction:column;gap:var(--s-2);font-size:var(--t-sm);overflow-wrap:anywhere}
.script-goal{display:flex;gap:6px;align-items:center;font-weight:600;color:var(--ch-call)}
.script-goal .ico{width:16px;height:16px}
.est{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-3);display:flex;flex-direction:column;gap:var(--s-2)}
.est .kv{grid-template-columns:96px 1fr;gap:6px var(--s-2)}

/* ---------- campaign detail ---------- */
.od-id{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-3);align-items:center;margin:calc(-1 * var(--s-3)) 0 var(--s-5)}
.od-back{margin-left:auto}
.od-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--s-4);align-items:start}
.od-msg .tpl{max-width:none}
.ch-page-sms .od-msg{border-top:3px solid var(--ch-sms-mark)}
.ch-page-email .od-msg{border-top:3px solid var(--ch-email-mark)}
.ch-page-voice .od-msg{border-top:3px solid var(--ch-call-mark)}
.od-stats .stat-strip{border:0;border-radius:0;background:none}
.od-stats .stat-strip>.kpi{padding:var(--s-2) var(--s-4)}
@media (min-width:761px){.od-stats .stat-strip>.kpi:first-child{padding-left:0;border-left:0}}
.od-stats .kpi-value{font-size:1.75rem}
.od-stats>.stat-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-3) var(--s-5)}
.rings{display:flex;flex-wrap:wrap;gap:var(--s-6)}
.rstat{display:flex;gap:var(--s-3);align-items:center}
.rstat>div{display:flex;flex-direction:column}
.rstat .ring-label{font-size:var(--t-sm)}
.breakdown{display:flex;gap:2px;height:14px;border-radius:var(--r-xs);overflow:hidden;margin-top:var(--s-2)}
.breakdown i{min-width:4px}
.seg-good{background:var(--good)} .seg-warn{background:var(--warn)} .seg-mute{background:var(--line-input)} .seg-mute2{background:var(--line-strong)} .seg-bad{background:var(--bad)}
.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);font-size:var(--t-sm)}
.legend li{display:inline-flex;align-items:center;gap:6px}
.sw{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}
.rfilter{margin-bottom:var(--s-3)}
.row-toggle{width:30px;height:30px;margin:-6px 4px -6px -8px;vertical-align:middle}
.row-toggle .ico{transition:transform var(--dur-base) var(--ease-out)}
.row-toggle[aria-expanded="true"]{color:var(--accent-text);background:var(--accent-soft)}
.row-toggle[aria-expanded="true"] .ico{transform:rotate(90deg)}
.call-detail td{white-space:normal;background:var(--sunken)}
.call-box{display:flex;flex-direction:column;gap:var(--s-2);max-width:760px}
.call-box summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}
.transcript{font:var(--t-sm)/1.55 var(--f-body);white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s-3);margin:var(--s-2) 0 0}
.call-box a{display:inline-flex;gap:6px;align-items:center}
.call-box a .ico{width:14px;height:14px}

/* ---------- client drawer channel timeline ---------- */
.ch-timeline .tl-item{grid-template-columns:32px 1fr}
.ch-timeline .tl-item::before{left:15px;top:36px}
.ch-timeline .tl-head a{color:var(--ink)}
.tl-quote{border-left:2px solid var(--ch-call-mark);padding-left:var(--s-2);color:var(--ink-2)!important}
.tl-err{color:var(--bad)!important}

/* ---------- marketing ---------- */
.month-pick{display:inline-flex;align-items:center;gap:var(--s-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:2px}
.month-pick b{min-width:9.5em;text-align:center;font-weight:650}
.month-pick .icon-btn:disabled{opacity:.35;cursor:not-allowed}
.mkt-grid{margin-bottom:var(--s-4)}
.goals .panel-head .btn{margin-left:auto}
.goal-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:var(--s-4) var(--s-6)}
.goal{display:flex;flex-direction:column;gap:6px}
.goal-top{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;font-size:var(--t-sm)}
.goal-n{margin-left:auto}
.goal-bar{position:relative}
.goal-bar .meter{height:10px}
.pace-mark{position:absolute;top:-3px;bottom:-3px;left:var(--at);width:2px;border-radius:1px;background:var(--ink-2)}
.ch-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--s-4);margin-bottom:var(--s-4)}
.ch-card{display:flex;flex-direction:column;gap:var(--s-3);background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--line-strong);border-radius:var(--r-lg);padding:var(--s-4) var(--s-5);color:var(--ink);text-decoration:none;
  transition:border-color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}
a.ch-card:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--line-strong)}
.ch-card-sms{border-top-color:var(--ch-sms-mark)} .ch-card-email{border-top-color:var(--ch-email-mark)} .ch-card-voice{border-top-color:var(--ch-call-mark)}
a.ch-card-sms:hover{border-top-color:var(--ch-sms-mark)} a.ch-card-email:hover{border-top-color:var(--ch-email-mark)} a.ch-card-voice:hover{border-top-color:var(--ch-call-mark)}
.ch-card.spend{border-top-color:var(--accent);background:var(--accent-soft)}
.ch-cost{margin-left:auto;font-size:var(--t-sm);color:var(--muted)}
.ch-big{display:flex;align-items:baseline;gap:6px}
.ch-big b{font:700 var(--t-kpi)/1 var(--f-display);letter-spacing:-.03em}
.ch-big span{color:var(--muted);font-size:var(--t-sm)}
.ch-rows{display:grid;grid-template-columns:1fr auto;gap:4px var(--s-3);margin:0;font-size:var(--t-sm)}
.ch-rows dt{color:var(--muted)} .ch-rows dd{margin:0;font-weight:600;text-align:right}
.lead-tile{display:flex;align-items:baseline;gap:var(--s-2)}
.lead-tile b{font:700 var(--t-2xl) var(--f-display)}
.lead-tile span{color:var(--muted);font-size:var(--t-sm)}
.table-wrap table.compact{min-width:0}
.table-wrap table.compact td:first-child{white-space:normal}

/* weekly chart (dataviz: thin columns, hairline grid, legend + tooltip + table) */
.chart-legend{margin-bottom:var(--s-1)}
.mk-sms{fill:var(--ch-sms-mark);background:var(--ch-sms-mark)}
.mk-email{fill:var(--ch-email-mark);background:var(--ch-email-mark)}
.mk-voice{fill:var(--ch-call-mark);background:var(--ch-call-mark)}
.chart-wrap{position:relative}
.chart-scroll{overflow-x:auto}
.chart{display:block}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .axis{stroke:var(--line-strong);stroke-width:1}
.chart .tick{fill:var(--muted);font:11px var(--f-body);font-variant-numeric:tabular-nums}
.wk-bar{transform-box:fill-box;transform-origin:bottom}
.wk-hit{fill:transparent;cursor:default;outline:none}
.wk-hit.on,.wk-hit:focus-visible{fill:var(--hover);fill-opacity:.5}
.wk-hit:focus-visible{stroke:var(--focus);stroke-width:2}
.chart-tip{position:absolute;left:0;top:0;z-index:2;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-2);padding:8px 10px;font-size:var(--t-xs);min-width:140px;display:flex;flex-direction:column;gap:3px}
.chart-tip div{display:flex;align-items:center;gap:6px}
.chart-tip div b{margin-left:auto;font-variant-numeric:tabular-nums}
.tip-total{border-top:1px solid var(--line);padding-top:3px;color:var(--muted)}
.chart-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:var(--t-sm);pointer-events:none}
.chart-table summary{cursor:pointer;font-size:var(--t-sm);color:var(--accent-text);min-height:32px;display:flex;align-items:center}

/* ---------- POC tracker ---------- */
.pmap-panel{margin-bottom:var(--s-4)}
.pmap-wrap{overflow-x:auto;padding-bottom:var(--s-1)}
.pmap{display:grid;grid-template-columns:repeat(var(--n),minmax(124px,1fr));gap:var(--s-2) var(--s-5);min-width:max-content}
.pm-lane{font-size:var(--t-xs);font-weight:650;padding:4px 10px;border-radius:var(--r-sm);color:var(--ink-2);background:var(--sunken);border-left:3px solid var(--line-strong)}
.pm-lane.lane-sales{border-left-color:var(--accent)} .pm-lane.lane-delivery{border-left-color:var(--info)} .pm-lane.lane-decision{border-left-color:var(--warn)}
.pm-node{position:relative;display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;padding:var(--s-3);min-height:44px;border:1px solid var(--line);border-top:3px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.pm-node:not(:last-child)::after{content:"";position:absolute;top:50%;right:calc(-1 * var(--s-5) - 1px);width:var(--s-5);height:2px;background:var(--line-strong)}
.pm-node:not(:last-child)::before{content:"";position:absolute;top:calc(50% - 4px);right:calc(-1 * var(--s-2) - 6px);border:5px solid transparent;border-left:6px solid var(--line-strong);border-right:0}
.pm-node.lane-sales{border-top-color:var(--accent)} .pm-node.lane-delivery{border-top-color:var(--info)} .pm-node.lane-decision{border-top-color:var(--warn)}
.pm-node:hover{background:var(--sunken)}
.pm-node:active{transform:scale(.98)}
.pm-node[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.pm-dept{display:none;font-size:var(--t-xs);color:var(--muted)}
.pm-label{font-weight:600;font-size:var(--t-sm)}
.pm-count{font:700 var(--t-xl)/1.1 var(--f-display)}
.pm-sub{font-size:var(--t-xs);color:var(--muted)}
.hsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-bottom:var(--s-2)}
.hs-cell{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:var(--s-4);border:0;border-left:1px solid var(--line);margin-left:-1px;background:none;color:var(--ink);text-align:left;cursor:pointer;min-height:44px;
  transition:background-color var(--dur-fast) var(--ease-out)}
.hs-cell.static{cursor:default}
button.hs-cell:hover{background:var(--sunken)}
.hs-cell[aria-pressed="true"]{background:var(--accent-soft);box-shadow:inset 0 -3px 0 var(--accent)}
.hs-cell>b{font:700 var(--t-xl)/1 var(--f-display)}
.pocs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));gap:var(--s-4)}
.poc{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--good);border-radius:var(--r-lg);padding:var(--s-4) var(--s-5);display:flex;flex-direction:column;gap:var(--s-3);min-width:0}
.poc.h-at_risk-card{border-left-color:var(--warn)} .poc.h-overdue-card{border-left-color:var(--bad)}
.poc.h-won-card{border-left-color:var(--accent)} .poc.h-lost-card{border-left-color:var(--line-strong)}
.poc-head{display:flex;gap:var(--s-3);align-items:flex-start}
.poc-head a{color:var(--ink)}
.poc-steps{display:flex;gap:var(--s-3);align-items:center}
.mini-steps{list-style:none;margin:0;padding:0;display:flex;align-items:center}
.mini-steps li{display:flex;align-items:center}
.mini-steps li+li::before{content:"";width:18px;height:2px;background:var(--line-strong)}
.mini-steps span{width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface)}
.mini-steps li.done span{background:var(--accent);border-color:var(--accent)}
.mini-steps li.done+li::before,.mini-steps li.now::before{background:var(--accent)}
.mini-steps li.now span{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tbar{display:flex;flex-direction:column;gap:6px}
.poc-facts{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);align-items:center}
.fact{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap}
.poc-next,.poc-goal{font-size:var(--t-sm);overflow-wrap:anywhere}
.poc-next .label,.poc-goal .label{margin-right:6px}
.poc-foot{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:var(--s-2);border-top:1px solid var(--line)}

/* home */
.home-big{font:700 var(--t-xl) var(--f-display)}

@media (max-width:860px){
  .cmp,.od-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .ocard{grid-template-columns:auto minmax(0,1fr)}
  .oc-side{grid-column:1/-1;align-items:stretch;flex-direction:row;justify-content:space-between;flex-wrap:wrap}
  .oc-cost{flex-direction:row;align-items:baseline;gap:6px;width:100%}
  .oc-actions{justify-content:flex-start;max-width:none}
  .oc-progress{grid-template-columns:1fr}
  .ch-switch{width:100%}
  .ch-switch>button{padding:0 10px}
  .od-back{margin-left:0}
  .pmap{display:flex;flex-direction:column;min-width:0;gap:var(--s-4)}
  .pm-lane{display:none}
  .pm-dept{display:block}
  .pm-node{display:grid;grid-template-columns:1fr auto;column-gap:var(--s-3);padding:var(--s-2) var(--s-3)}
  .pm-count{grid-column:2;grid-row:1/3;align-self:center}
  .pm-sub{display:none}
  .pm-node:not(:last-child)::after{top:auto;bottom:calc(-1 * var(--s-4) - 1px);left:24px;right:auto;width:2px;height:var(--s-4)}
  .pm-node:not(:last-child)::before{display:none}
  .hsum{grid-template-columns:repeat(3,1fr)}
}
