/* CEO Control Panel — design system v2 (PRD §5.3) */
:root{
  --primary:#0E6B5C; --deep:#0B3B34; --accent:#3FA7D6; --amber:#F2A93B;
  --coral:#E4572E; --ink:#122019; --mist:#F6F8F7; --violet:#7A5EA8;
  --card:#FFFFFF; --line:#E3EAE8; --sub:#5C7370; --green:#1E8E5A;
  --r:16px; --shadow:0 6px 24px rgba(11,59,52,.10);
  --ease:cubic-bezier(.22,.8,.28,1);
}
*,*::before,*::after{box-sizing:border-box}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font-body,Inter,-apple-system,'Segoe UI',Roboto,sans-serif);background:var(--mist);color:var(--ink);
  -webkit-font-smoothing:antialiased;overflow:hidden}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#C7D5D1;border-radius:4px}

/* ---------- Layout ---------- */
#app{display:flex;height:100vh;height:100dvh;width:100vw}
/* Persistent docked left tray — always-visible primary navigation on desktop. Hidden on mobile
   (<=760px), where the bottom tabbar + ☰ menu take over. */
.tray{flex:0 0 236px;width:236px;display:flex;flex-direction:column;background:linear-gradient(178deg,var(--primary),var(--deep) 62%);color:#fff;
  border-right:1px solid var(--line);height:100%;overflow:hidden;z-index:40}
.tray-brand{display:flex;align-items:center;gap:11px;padding:16px 16px 14px;cursor:pointer;
  border-bottom:1px solid rgba(255,255,255,.14)}
.tray-brand:hover{background:rgba(255,255,255,.06)}
.tray-brand .tray-logo{width:36px;height:36px;flex:0 0 auto;border-radius:9px;background:#fff;display:grid;place-items:center;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.tray-brand .tray-logo img{width:28px;height:28px;object-fit:contain}
.tray-brand .tray-logo.nj-disc{background:#fff}
.tray-brand-t{min-width:0;line-height:1.25}
.tray-brand-t b{display:block;font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tray-brand-t span{font-size:11px;color:rgba(255,255,255,.6)}
.tray-nav{flex:1;overflow-y:auto;padding:8px 10px 6px;display:flex;flex-direction:column;gap:2px}
.tray-group{display:flex;flex-direction:column;gap:2px;margin-top:9px}
.tray-group:first-child{margin-top:2px}
.tray-group-lbl{font-size:10px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:rgba(255,255,255,.42);padding:5px 11px 3px}
.mgroup-lbl{font-size:10.5px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--sub);padding:12px 6px 4px}
.mgroup-lbl:first-of-type{padding-top:4px}
.tray-foot{padding:8px 10px 12px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:2px}
.tray-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border-radius:10px;
  color:rgba(255,255,255,.82);font-size:13.5px;font-weight:600;text-align:left;transition:background .16s,color .16s;position:relative}
.tray-item:hover{background:rgba(255,255,255,.08);color:#fff}
.tray-item.on{background:rgba(255,255,255,.14);color:#fff}
.tray-item.on::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--accent)}
.tray-item .tray-ic{width:24px;height:24px;display:grid;place-items:center;flex:0 0 auto}
.tray-item .tray-ic .svic{width:19px;height:19px}
.tray-item .tray-ic .nav-face{width:22px;height:22px;border-color:rgba(255,255,255,.35)}
.tray-item .tray-ic .nj-disc{width:22px;height:22px}
.tray-item .tray-lb{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tray-item .badge{margin-left:auto;flex:0 0 auto}
/* Notification counts share one brand-gold circle everywhere (Rick #63) so they read consistently
   and pull the eye to what needs attention. */
.tray-item .badge.coral{min-width:20px;height:20px;padding:0 6px;border-radius:11px;background:var(--amber);color:#3a2a00;font-size:11px;font-weight:800;display:inline-grid;place-items:center;box-shadow:0 0 0 3px rgba(242,169,59,.22)}
.tray-item.ask{margin-top:6px;background:rgba(255,255,255,.06)}
.tray-item.ask:hover{background:rgba(255,255,255,.14)}
.tray-item.signout-item{color:rgba(255,255,255,.62)}
.tray-item.signout-item:hover{color:#fff;background:rgba(166,9,61,.35)}
/* The old floating left icon rail was removed — the tray above is the single persistent nav. */
/* CEO/CIO nav tabs use the person's real thumbnail in place of an emoji glyph */
.nav-face{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0;vertical-align:middle;
  border:1.5px solid rgba(255,255,255,.55);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.tab .ti .nav-face{width:22px;height:22px;border-color:rgba(0,0,0,.12)}
.mitem .mi .nav-face{width:24px;height:24px;border-color:rgba(0,0,0,.12)}

.main{flex:1;display:flex;flex-direction:column;min-width:0}
.appbar{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--card);border-bottom:1px solid var(--line)}
.burger{width:38px;height:38px;border-radius:10px;display:none;place-items:center;font-size:18px;transition:background .2s}
.burger:hover{background:var(--mist)}
.appbar .ttl{font-size:17px;font-weight:800}
.appbar .org{color:var(--sub);font-size:12.5px}
.appbar .sp{flex:1}
.chip{font-size:10.5px;font-weight:700;border-radius:20px;padding:4px 10px;display:inline-flex;align-items:center;gap:5px}
.chip.syn{background:#FBF0DB;color:#8A6210}.chip.syn::before{content:'●';font-size:7px}
.chip.ai{background:#E9F4FB;color:#1E6E9E}.chip.ai::before{content:'✦'}
.chip.green{background:#E4F4EC;color:var(--green)}.chip.amber{background:#FBF0DB;color:#8A6210}.chip.red{background:#FBE7E0;color:var(--coral)}
.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;
  display:grid;place-items:center;font-weight:800;font-size:13px;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}

.content{flex:1;overflow-y:auto;padding:20px;scroll-behavior:smooth}
.view{max-width:1180px;margin:0 auto;animation:viewIn .28s var(--ease)}
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Cards ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px}
.card h3{font-size:13px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--sub);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.grid>*{min-width:0}
@media(max-width:960px){.g3,.g4{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ---------- KPI tiles ---------- */
.kpi{cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s;position:relative;overflow:hidden}
.kpi:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(11,59,52,.16)}
.kpi .kn{font-size:11.5px;font-weight:700;color:var(--sub);letter-spacing:.2px}
.kpi .kv{font-size:27px;font-weight:800;margin:6px 0 2px;letter-spacing:-.5px}
.kpi .kt{font-size:11px;color:var(--sub)}
.kpi .delta{font-size:11px;font-weight:700;margin-top:6px;display:inline-flex;align-items:center;gap:4px}
.delta.up.good{color:var(--green)}.delta.down.good{color:var(--green)}.delta.up.bad,.delta.down.bad{color:var(--coral)}
.kpi .st{position:absolute;top:14px;right:14px;width:10px;height:10px;border-radius:50%}
.st.green{background:var(--green)}.st.amber{background:var(--amber)}.st.red{background:var(--coral)}
.spark{margin-top:10px;display:flex;align-items:flex-end;gap:2px;height:30px}
.spark i{flex:1;background:linear-gradient(180deg,var(--accent),var(--primary));border-radius:2px 2px 0 0;opacity:.75;min-height:3px;transition:height .5s var(--ease)}
.hero{background:linear-gradient(140deg,var(--deep),var(--primary) 70%,var(--accent));color:#fff;border:none}
.hero .kn{color:#BFE0D6}.hero .kt{color:#9CC7BC}.hero .spark i{background:linear-gradient(180deg,#FFD98A,var(--amber));opacity:.9}
.hero .kv{color:#fff}

/* ---------- Brief ---------- */
.brief-head{position:relative;overflow:hidden;color:#fff;background:linear-gradient(135deg,var(--deep),var(--primary) 65%,var(--accent));border:none}
.brief-head::after{content:'';position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(242,169,59,.28),transparent 65%)}
.brief-head h1{font-family:var(--font-display,var(--font-body,Inter,-apple-system,sans-serif));font-size:24px;font-weight:800;letter-spacing:-.3px}
.brief-head .dt{color:#BFE0D6;font-size:13px;margin-top:3px}
.brief-head .quiet{margin-top:12px;font-size:11.5px;color:#D8EFE6;background:rgba(255,255,255,.12);display:inline-flex;gap:6px;padding:5px 11px;border-radius:20px}
.ai-brief{margin-top:16px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:14px 16px;font-size:14px;line-height:1.55;position:relative;z-index:1}
.ai-brief b{color:var(--amber)}
.ai-brief .tag{font-size:10px;font-weight:800;letter-spacing:1px;color:var(--amber);display:block;margin-bottom:6px}
/* "Now what" — Ninja's recommended moves (storytelling spine, personalized by the dials) */
.nowwhat{margin-top:14px;border-color:color-mix(in srgb,var(--primary) 24%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 5%,#fff),#fff)}
.nw-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.nw-tag{font-size:12px;font-weight:800;letter-spacing:.2px;color:var(--deep)}
.nw-sub{font-size:11.5px;color:var(--sub)}
.nba-list{display:flex;flex-direction:column;gap:8px}
.nba{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}
.nba:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));box-shadow:0 4px 14px rgba(11,59,52,.06)}
.nba-pr{flex:0 0 auto;margin:0}
.nba-body{flex:1;min-width:0}
.nba-t{font-size:13.5px;font-weight:700;color:var(--ink)}
.nba-why{font-size:11.5px;color:var(--sub);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nba-cta{flex:0 0 auto;font-size:12px;font-weight:800;color:#fff;background:var(--primary);border-radius:10px;padding:7px 12px;white-space:nowrap;transition:filter .15s}
.nba-cta:hover{filter:brightness(1.06)}
.nba-empty{font-size:12.5px;color:var(--sub);padding:6px 2px}
.nba-skel{height:44px;border-radius:12px;background:linear-gradient(90deg,var(--mist),#fff,var(--mist));background-size:200% 100%;animation:nbaShim 1.2s infinite}
@keyframes nbaShim{0%{background-position:200% 0}100%{background-position:-200% 0}}
.nw-foot{margin-top:10px}
.nw-ask{font-size:12.5px}
/* Performance narrative lede — Situation / So what above the metric grid */
.perf-view,.strat-view,.init-view,.fin-view,.bud-view,.news-view,.comms-view,.comp-view,.act-view{max-width:1360px}
.perf-lede{margin-top:0}
.nw-situation{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid color-mix(in srgb,var(--primary) 14%,var(--line))}
.nw-eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--accent)}
.nw-sit-line{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.2px;margin:5px 0 4px}
.nw-sowhat{font-size:13px;color:var(--sub);line-height:1.5}
.nw-sowhat b{color:var(--ink)}
/* KPI-as-a-sentence line inside Performance tiles */
.kpi-story{font-size:11px;color:var(--sub);line-height:1.45;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.sec-h{font-size:13px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--sub);margin:22px 0 10px;display:flex;align-items:center;gap:8px}
.sec-h .sp{flex:1}.sec-h a{font-size:11.5px;color:var(--accent);text-decoration:none;font-weight:700;text-transform:none;letter-spacing:0}

/* ---------- Worklist ---------- */
.wl{display:flex;flex-direction:column;gap:10px}
.witem{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);transition:transform .18s var(--ease),opacity .3s;animation:viewIn .3s var(--ease)}
.witem:hover{transform:translateX(3px)}
.witem.done{opacity:.45}
.witem.done .wt{text-decoration:line-through}
.pr{font-size:10px;font-weight:800;border-radius:8px;padding:4px 8px;flex-shrink:0;margin-top:2px}
.pr.P0{background:#FBE7E0;color:var(--coral)}.pr.P1{background:#FBF0DB;color:#8A6210}.pr.P2{background:#E9F4FB;color:#1E6E9E}
.wt{font-size:14.5px;font-weight:700;line-height:1.35}
.ww{font-size:12.5px;color:var(--sub);margin-top:5px;line-height:1.45}
.ww::before{content:'✦ Why now: ';color:var(--amber);font-weight:700}
.wmeta{display:flex;gap:10px;margin-top:9px;font-size:11px;color:var(--sub);flex-wrap:wrap}
.wmeta b{color:var(--ink)}
.wact{margin-left:auto;flex-shrink:0;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.btn{background:linear-gradient(135deg,var(--primary),var(--deep));color:#fff;font-size:12px;font-weight:700;border-radius:10px;
  padding:9px 14px;transition:transform .15s var(--ease),box-shadow .15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(11,59,52,.25)}
.btn.ghost{background:var(--mist);color:var(--ink)}
.btn.done-btn{background:var(--green)}

/* ---------- Treks ---------- */
.trek{position:relative;overflow:hidden}
.trek .tbar{height:6px;border-radius:3px;background:var(--mist);overflow:hidden;margin:10px 0 8px}
.trek .tbar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--primary));transition:width 1s var(--ease)}
.trek h4{font-size:15px;font-weight:800}
.trek p{font-size:12.5px;color:var(--sub);line-height:1.5;margin-top:6px}
.trek .tst{font-size:11.5px;margin-top:10px;padding:8px 10px;border-radius:10px;background:var(--mist);line-height:1.45}
.trek .ico{font-size:22px}

/* ---------- Tables ---------- */
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--sub);padding:8px 10px;border-bottom:2px solid var(--line)}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:none}
td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.pbar{height:8px;background:var(--mist);border-radius:4px;overflow:hidden;min-width:70px}
.pbar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--primary))}
.pbar.neg i{background:linear-gradient(90deg,#F0906E,var(--coral))}

/* ---------- Finance ---------- */
.fin-hero{background:linear-gradient(135deg,var(--deep),var(--primary));color:#fff;border:none;display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.fin-hero .big{font-size:42px;font-weight:800;letter-spacing:-1px}
.fin-hero .lbl{font-size:12px;color:#BFE0D6}
.fin-hero .fh-item{min-width:110px}
.fin-hero .fh-item b{font-size:19px;display:block;margin-top:2px}
.bridge{display:flex;align-items:flex-end;gap:8px;overflow-x:auto;padding:14px 4px 6px;min-height:190px;min-width:0}
.bcol{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:86px;flex:1}
.bcol .bv{font-size:11px;font-weight:800}
.bcol .bb{width:100%;max-width:64px;border-radius:6px 6px 2px 2px;transition:height .6s var(--ease)}
.bb.base{background:linear-gradient(180deg,var(--primary),var(--deep))}
.bb.pos{background:linear-gradient(180deg,#5CC9A4,var(--green))}
.bb.neg{background:linear-gradient(180deg,#F0906E,var(--coral))}
.bcol .bl{font-size:10px;color:var(--sub);text-align:center;line-height:1.25}
.lever{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--mist)}
.lever .lh{display:flex;justify-content:space-between;font-size:12.5px;font-weight:700}
.lever .lh b{color:var(--primary)}
.lever input[type=range]{width:100%;accent-color:var(--primary);height:22px}
.lever .ln{font-size:11px;color:var(--sub)}
.scenario-out{display:flex;gap:20px;align-items:baseline;flex-wrap:wrap}
.scenario-out .m{font-size:30px;font-weight:800}
.scenario-out .d{font-size:13px;font-weight:700}
.mix{display:flex;height:22px;border-radius:8px;overflow:hidden;margin:10px 0}
.mix div{transition:width .6s var(--ease)}
.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:11.5px;color:var(--sub)}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-1px}

/* ---------- News ---------- */
.nitem{display:flex;gap:14px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow);margin-bottom:10px;transition:transform .18s var(--ease)}
.nitem:hover{transform:translateX(3px)}
.sent{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:19px}
.sent.pos{background:#E4F4EC}.sent.neg{background:#FBE7E0}.sent.neu{background:var(--mist)}
.nitem a.nt{font-size:14px;font-weight:700;line-height:1.35;color:var(--ink);text-decoration:none;display:inline;transition:color .15s}
.nitem a.nt:hover{color:var(--primary);text-decoration:underline}
.nitem a.nt .ext{font-size:11px;color:var(--accent);margin-left:5px;white-space:nowrap;vertical-align:1px}
.nitem .nw{font-size:12px;color:var(--sub);margin-top:5px;line-height:1.45}
.nitem .nw::before{content:'Why it matters: ';font-weight:700;color:var(--primary)}
.nitem .nm{font-size:11px;color:var(--sub);margin-top:7px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.found-head{font-size:11.5px;font-weight:700;color:var(--primary);margin:2px 2px 10px;letter-spacing:.2px}

/* ---------- Comms ---------- */
.aud-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pill{padding:8px 14px;border-radius:20px;background:var(--mist);font-size:12.5px;font-weight:700;transition:all .2s}
.pill.on{background:linear-gradient(135deg,var(--primary),var(--deep));color:#fff}
.draft-box{background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:16px;font-size:13.5px;line-height:1.6;white-space:pre-wrap;min-height:220px}
.draft-toolbar{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}

/* ---------- Drill ---------- */
.chart{display:flex;align-items:flex-end;gap:6px;height:170px;padding-top:10px}
.chart .cbar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.chart .cbar i{width:100%;max-width:44px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,var(--accent),var(--primary));transition:height .7s var(--ease)}
.chart .cbar span{font-size:9.5px;color:var(--sub)}
.backlink{font-size:12.5px;color:var(--accent);font-weight:700;text-decoration:none;display:inline-flex;gap:6px;margin-bottom:14px}

/* ---------- Ask Ninja drawer ---------- */
.drawer{position:fixed;top:0;right:0;bottom:0;width:var(--dw,min(460px,100vw));background:var(--card);border-left:1px solid var(--line);
  box-shadow:-12px 0 40px rgba(11,59,52,.18);display:flex;flex-direction:column;z-index:60;
  transform:translateX(105%);transition:transform .3s var(--ease)}
.drawer.open{transform:none}
.drawer.drag{transition:none}
/* desktop: drag the left edge to resize the chat drawer width */
.dresize{position:absolute;left:-4px;top:0;bottom:0;width:10px;cursor:ew-resize;z-index:70}
.dresize::before{content:'';position:absolute;left:4px;top:50%;transform:translateY(-50%);width:3px;height:44px;border-radius:3px;background:var(--line);transition:background .15s}
.dresize:hover::before{background:var(--primary);height:64px}
.drawer.max .dresize{display:none}
body.drawer-resizing{cursor:ew-resize;user-select:none}
/* Ninja brand head icon (replaces the 🥷 emoji) */
.nj-disc{display:inline-grid;place-items:center;background:#fff;border-radius:50%;overflow:hidden;flex:0 0 auto;width:30px;height:30px}
.nj-disc img,.dhead .orb img,.fab img{width:74%;height:74%;object-fit:contain}
.nj-ic{display:inline-block;object-fit:contain}
.nj-inline{width:1.15em;height:1.15em;vertical-align:-0.22em;margin-right:3px}
.nj-logo{width:30px;height:30px}
.rbtn .nj-disc{width:32px;height:32px}
.mitem .mi .nj-disc{width:24px;height:24px}
.dhead{display:flex;align-items:center;gap:10px;padding:14px 16px;background:linear-gradient(135deg,var(--deep),var(--primary));color:#fff}
.dhead .orb{width:32px;height:32px;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;animation:orbPulse 3s infinite}
@keyframes orbPulse{0%,100%{box-shadow:0 0 0 0 rgba(242,169,59,.5)}50%{box-shadow:0 0 0 7px rgba(242,169,59,0)}}
.dhead b{font-size:14.5px}.dhead .dm{font-size:10.5px;color:#BFE0D6}
.dhead .d-tuned{font-size:10px;color:#EAF3FB;margin-top:3px;display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:2px 8px;cursor:default;max-width:100%}
.dhead .d-tuned b{font-size:10px;font-weight:800}
.dhead .d-tuned-dot{color:var(--amber,#E8B54D)}
#d-tuned-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dhead .sp{flex:1}
.dclose{color:#fff;font-size:17px;width:32px;height:32px;border-radius:8px;display:grid;place-items:center}
.dclose:hover{background:rgba(255,255,255,.15)}
.mclose{flex:0 0 auto;color:var(--ink,#0f172a);font-size:16px;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;cursor:pointer}
.mclose:hover{background:var(--wash,#f1f5f9)}
.dlog{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.msg{max-width:88%;padding:11px 14px;border-radius:14px;font-size:13.5px;line-height:1.55;animation:msgIn .25s var(--ease)}
.msg.user .mbody{white-space:pre-wrap}
.msg.bot .mbody>*:first-child{margin-top:0}.msg.bot .mbody>*:last-child{margin-bottom:0}
.msg.bot .mbody p{margin:0 0 8px}
.msg.bot .mbody ul,.msg.bot .mbody ol{margin:6px 0 8px;padding-left:20px}
.msg.bot .mbody li{margin:2px 0}
.msg.bot .mbody h1,.msg.bot .mbody h2,.msg.bot .mbody h3,.msg.bot .mbody h4{margin:10px 0 6px;font-size:14px;font-weight:800;line-height:1.3}
.msg.bot .mbody strong{font-weight:800;color:var(--deep)}
.msg.bot .mbody a{color:var(--accent);text-decoration:none}.msg.bot .mbody a:hover{text-decoration:underline}
.msg.bot .mbody a.inline-cite{font-weight:600;border-bottom:1px dotted var(--accent);padding-bottom:0}
.msg.bot .mbody a.inline-cite::after{content:'↗';font-size:9px;vertical-align:super;margin-left:1px;opacity:.7}
.msg.bot .mbody code{background:rgba(0,0,0,.06);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.msg.bot .mbody pre{background:#0d1117;color:#e6edf3;border-radius:10px;padding:11px 13px;overflow-x:auto;margin:8px 0}
.msg.bot .mbody pre code{background:none;color:inherit;padding:0;font-size:12px}
.msg.bot .mbody blockquote{margin:8px 0;padding:4px 12px;border-left:3px solid var(--accent);color:var(--sub)}
.msg.bot .mbody table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12.5px;display:block;overflow-x:auto}
.msg.bot .mbody th,.msg.bot .mbody td{border:1px solid var(--line);padding:6px 9px;text-align:left;vertical-align:top}
.msg.bot .mbody thead th{background:var(--primary);color:#fff;font-weight:700;border-color:var(--primary)}
.msg.bot .mbody tbody tr:nth-child(even){background:rgba(0,0,0,.03)}
.msg.bot .mbody hr{border:0;border-top:1px solid var(--line);margin:10px 0}
@keyframes msgIn{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.msg.user{align-self:flex-end;background:linear-gradient(135deg,var(--primary),var(--deep));color:#fff;border-bottom-right-radius:4px}
.msg.bot{align-self:flex-start;background:var(--mist);border:1px solid var(--line);border-bottom-left-radius:4px}
.msg.bot .src{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:10.5px;color:var(--sub);display:flex;flex-direction:column;gap:3px}
.msg.bot .src a{color:var(--accent);text-decoration:none}
.msg.bot .src a:hover{text-decoration:underline}
.typing{display:inline-flex;gap:4px;padding:6px 2px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--sub);animation:tp 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes tp{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.dinput{border-top:1px solid var(--line);padding:12px;display:flex;gap:8px;align-items:center}
.dinput input{flex:1;border:1px solid var(--line);border-radius:22px;padding:11px 16px;font-size:13.5px;outline:none;transition:border-color .2s}
.dinput input:focus{border-color:var(--primary)}
.dinput .send{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--deep));color:#fff;font-size:16px;flex-shrink:0;transition:transform .15s}
.dinput .send:hover{transform:scale(1.08)}
.mic{width:40px;height:40px;border-radius:50%;background:var(--mist);font-size:16px;flex-shrink:0;transition:all .2s;position:relative}
.mic.rec{background:var(--coral);color:#fff;animation:recPulse 1.2s infinite}
@keyframes recPulse{0%,100%{box-shadow:0 0 0 0 rgba(228,87,46,.5)}50%{box-shadow:0 0 0 8px rgba(228,87,46,0)}}
/* #14: image attach preview + in-chat thumbnails */
.attach-preview{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:7px 9px;border:1px solid var(--line);border-radius:12px;background:var(--mist)}
.attach-preview[hidden]{display:none}
.attach-preview img{width:38px;height:38px;border-radius:8px;object-fit:cover;flex-shrink:0}
.attach-preview .ap-name{font-size:12px;font-weight:600;color:var(--ink);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attach-preview .ap-tag{font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:var(--primary);color:#fff;border-radius:8px;padding:2px 6px}
.attach-preview .ap-tag.alt{background:var(--mist);color:var(--sub);border:1px solid var(--line)}
.attach-preview .ap-file{flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--card);border:1px solid var(--line);border-radius:8px}
.attach-preview .ap-size{font-size:10.5px;color:var(--sub);white-space:nowrap}
.attach-preview .ap-act{font-size:11px;font-weight:700;color:var(--primary);border:1px solid var(--primary);border-radius:14px;padding:5px 9px;white-space:nowrap}
.attach-preview .ap-act:hover{background:var(--primary);color:#fff}
.attach-preview .ap-act.primary{background:var(--primary);color:#fff}
.attach-preview .ap-act.primary:hover{filter:brightness(1.08)}
.attach-preview .ap-act.ghost{color:var(--sub);border-color:var(--line)}
.attach-preview .ap-act.ghost:hover{background:var(--mist);color:var(--ink)}
.attach-preview .ap-hint{font-size:10.5px;color:var(--sub);white-space:nowrap}
@media(max-width:560px){.attach-preview .ap-hint{display:none}.attach-preview .ap-name{max-width:70px}}
.attach-preview .ap-x{width:24px;height:24px;border-radius:50%;background:var(--card);color:var(--sub);font-size:12px;flex-shrink:0}
.attach-preview .ap-x:hover{background:var(--coral);color:#fff}
.msg-img{max-width:220px;max-height:220px;border-radius:12px;display:block;margin-bottom:6px;border:1px solid var(--line)}
.msg.user .msg-img{margin-left:auto}
/* #14: OCR notepad panel (slides over the chat log) */
.notepad{position:absolute;inset:0;z-index:5;background:var(--card);display:flex;flex-direction:column}
.notepad[hidden]{display:none}
.np-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.np-head b{font-size:14px}
.np-sub{font-size:11px;color:var(--sub)}
.np-btn{font-size:12px;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--deep));color:#fff;border-radius:14px;padding:6px 11px}
.np-btn.ghost{background:var(--mist);color:var(--ink);border:1px solid var(--line)}
.np-status{font-size:11px;color:var(--sub);min-width:44px}
/* #fix: notepad header sits on a white bg, so the dark-header white ✕ was invisible.
   Use a labeled, high-contrast Back button instead. */
.np-back{flex:0 0 auto;font-size:12px;font-weight:800;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:7px 12px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.np-back:hover{background:var(--mist);border-color:var(--primary);color:var(--primary)}
.np-tools{display:flex;flex-wrap:wrap;gap:5px;row-gap:5px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--mist)}
.np-tools button{min-width:30px;height:28px;padding:0 6px;border-radius:7px;background:var(--card);border:1px solid var(--line);font-size:12px;font-weight:700;line-height:1}
.np-tools button:hover{border-color:var(--primary);color:var(--primary)}
.np-sep{width:1px;height:18px;background:var(--line);margin:0 2px}
.np-body{flex:1;overflow-y:auto;padding:16px;font-size:13.5px;line-height:1.55;outline:none}
.np-body:empty::before{content:attr(data-ph);color:var(--sub)}
.np-body h1{font-size:19px;font-weight:800;margin:10px 0 6px}
.np-body h2{font-size:16px;font-weight:800;margin:9px 0 5px}
.np-body h3{font-size:14px;font-weight:700;margin:8px 0 4px}
.np-body ul,.np-body ol{padding-left:22px;margin:6px 0}
.np-body a{color:var(--primary);text-decoration:underline}
.np-body blockquote{border-left:3px solid var(--line);margin:6px 0;padding:2px 0 2px 12px;color:var(--sub);font-style:italic}
.np-body pre{background:var(--mist);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:6px 0;font-family:Consolas,'SF Mono',Menlo,monospace;font-size:12.5px;white-space:pre-wrap}
.np-body hr{border:none;border-top:1px solid var(--line);margin:12px 0}
.np-body img{max-width:100%;border-radius:8px}
.np-ocr-run{color:var(--sub);font-style:italic}
.chips-row{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 10px}
.qchip{font-size:11px;font-weight:600;background:var(--mist);border:1px solid var(--line);border-radius:16px;padding:6px 11px;transition:all .2s}
.qchip:hover{background:#E4F4EC;border-color:var(--green)}
.voice-bar{display:none;align-items:center;gap:8px;padding:6px 16px 10px;font-size:11.5px;color:var(--coral);font-weight:700}
.voice-bar.on{display:flex}
.voice-bar .eq{display:inline-flex;gap:2px;align-items:flex-end;height:14px}
.voice-bar .eq i{width:3px;background:var(--coral);border-radius:2px;animation:eq .8s infinite ease-in-out}
.voice-bar .eq i:nth-child(2){animation-delay:.1s}.voice-bar .eq i:nth-child(3){animation-delay:.2s}.voice-bar .eq i:nth-child(4){animation-delay:.3s}
@keyframes eq{0%,100%{height:4px}50%{height:14px}}
.fab{position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;z-index:50;
  background:#fff;display:grid;place-items:center;border:1px solid var(--line);
  box-shadow:0 10px 26px rgba(11,59,52,.28);transition:transform .2s var(--ease)}
.fab:hover{transform:scale(1.1) rotate(-6deg)}
.fab img{width:62%;height:62%;object-fit:contain}

/* ---------- Menu overlay (hamburger) ---------- */
.overlay{position:fixed;inset:0;z-index:70;display:flex;pointer-events:none}
.overlay .scrim{position:absolute;inset:0;background:rgba(11,25,21,.45);opacity:0;transition:opacity .3s}
.overlay .panel{position:relative;width:min(360px,88vw);height:100%;background:linear-gradient(165deg,var(--deep),var(--primary) 80%);color:#fff;
  transform:translateX(-105%);transition:transform .32s var(--ease);display:flex;flex-direction:column;padding:22px 18px;box-shadow:14px 0 44px rgba(0,0,0,.3)}
.overlay.open{pointer-events:auto}
.overlay.open .scrim{opacity:1}
.overlay.open .panel{transform:none}
.overlay .mhead{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.overlay .mhead b{font-size:16px}.overlay .mhead span{font-size:11px;color:#BFE0D6}
/* Professional line-icon set (replaces emoji glyphs in nav/menu/drawer/palette) */
.svic{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.mitem .mi .svic{margin:0 auto}
.tab .ti .svic{width:22px;height:22px;margin:0 auto}
.dicon .svic,.mic .svic{margin:0 auto}
.mic{color:var(--primary)}
.ci-ic .svic{width:18px;height:18px;margin:0 auto}
.mitem{display:flex;align-items:center;gap:14px;padding:13px 12px;border-radius:14px;font-size:15px;font-weight:600;color:#EAF6F1;
  transition:background .2s,transform .2s var(--ease);animation:mIn .4s var(--ease) backwards}
@keyframes mIn{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
.mitem:hover{background:rgba(255,255,255,.12);transform:translateX(4px)}
.mitem.on{background:rgba(255,255,255,.18)}
.mitem .mi{font-size:19px;width:26px;text-align:center}
.mitem .badge{margin-left:auto;background:var(--amber);color:var(--deep);font-size:10px;font-weight:800;border-radius:10px;padding:2px 8px}
.mitem .badge.coral{min-width:20px;height:20px;padding:0 6px;border-radius:11px;background:var(--amber);color:#3a2a00;display:inline-grid;place-items:center;box-shadow:0 0 0 3px rgba(242,169,59,.22)}
.msep{height:1px;background:rgba(255,255,255,.18);margin:12px 4px}
.mfoot{margin-top:auto;font-size:11px;color:#BFE0D6;padding-top:14px;border-top:1px solid rgba(255,255,255,.18)}
.mfoot .mf-note{margin-top:12px}
.mfoot .faves{display:flex;gap:6px;margin-top:8px}
/* Sign-out sits at the bottom of the ☰ menu, visually distinct from nav items */
.mitem.signout-item{width:100%;color:#FFD9CC;background:rgba(228,87,46,.16);border:1px solid rgba(255,180,150,.35);animation:none}
.mitem.signout-item:hover{background:rgba(228,87,46,.32);color:#fff;transform:none}
.faves i{background:rgba(255,255,255,.14);border-radius:6px;padding:2px 7px;font-style:normal;font-size:9.5px;font-weight:700}

/* ---------- Org picker ---------- */
.org-page{max-width:880px;margin:8vh auto;display:flex;flex-direction:column;gap:18px}
.org-card{display:flex;align-items:center;gap:18px;padding:26px;color:#fff;text-decoration:none;border-radius:20px;
  box-shadow:var(--shadow);transition:transform .2s var(--ease),box-shadow .2s;position:relative;overflow:hidden}
.org-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(11,59,52,.22)}
.org-card::after{content:'→';margin-left:auto;font-size:26px;opacity:.7}
.org-card .oa{width:60px;height:60px;border-radius:16px;background:#fff;display:grid;place-items:center;font-size:24px;font-weight:800;color:var(--deep);flex-shrink:0;overflow:hidden}
.org-card .oa img{width:100%;height:100%;object-fit:contain;padding:8px}
.org-card h2{font-size:21px;font-weight:800}
.org-card p{font-size:13px;opacity:.85;margin-top:4px}
.org-card .tag{position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%)}

/* ---------- Home / CEO picker (modern) ---------- */
.home-scroll{flex:1;overflow-y:auto;background:radial-gradient(1200px 500px at 50% -10%,var(--mist),transparent 70%)}
.home-wrap{max-width:1120px;margin:0 auto;padding:46px 24px 60px}
.home-hero{text-align:center;margin-bottom:34px}
.home-badge{width:60px;height:60px;margin:0 auto 14px;border-radius:18px;display:grid;place-items:center;font-size:30px;
  background:linear-gradient(135deg,var(--amber),var(--coral));box-shadow:0 10px 26px rgba(224,120,28,.28)}
.home-hero h1{font-size:34px;font-weight:800;letter-spacing:-1px}
.home-hero p{color:var(--sub);margin-top:8px;font-size:15px;max-width:520px;margin-left:auto;margin-right:auto}
.home-chips{margin-top:14px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.home-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.ht-count{font-size:12.5px;font-weight:700;letter-spacing:.3px;color:var(--sub);text-transform:uppercase}
.ht-sort{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--sub)}
.ht-sort select{font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:8px 30px 8px 12px;cursor:pointer;box-shadow:var(--shadow);appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;transition:border-color .2s,box-shadow .2s}
.ht-sort select:hover{border-color:var(--primary)}
.ht-sort select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}
.cc-size{position:absolute;bottom:10px;right:12px;padding:3px 9px;border-radius:8px;font-size:12px;font-weight:800;letter-spacing:.2px;
  color:#fff;background:rgba(0,0,0,.26);backdrop-filter:blur(4px);box-shadow:0 2px 6px rgba(0,0,0,.15)}
.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.ceo-card{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:20px;
  overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .2s var(--ease),box-shadow .2s}
.ceo-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(11,59,52,.18)}
.cc-band{height:82px;position:relative}
.cc-band-head{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 13px}
.cc-org-name{color:#fff;font-weight:800;font-size:15px;letter-spacing:-.2px;line-height:1.25;text-shadow:0 1px 4px rgba(0,0,0,.32);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.cc-logo{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:10px;background:#fff;display:grid;place-items:center;
  font-size:16px;font-weight:800;color:var(--deep);overflow:hidden;box-shadow:0 3px 8px rgba(0,0,0,.15)}
.cc-band-head .cc-logo{position:static;flex-shrink:0;width:34px;height:34px}
.cc-logo img{width:100%;height:100%;object-fit:contain;padding:5px}
.cc-av{position:relative;z-index:2;width:78px;height:78px;border-radius:50%;margin:-40px 0 0 22px;background:var(--mist);border:4px solid var(--card);
  display:grid;place-items:center;font-size:26px;font-weight:800;color:var(--deep);overflow:hidden;flex-shrink:0}
.cc-av img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.cc-body{padding:12px 22px 6px}
.cc-body h2{font-size:19px;font-weight:800;letter-spacing:-.3px}
.cc-role{font-size:12.5px;color:var(--sub);font-weight:600;margin-top:2px}
.cc-org{font-size:13px;font-weight:700;color:var(--primary);margin-top:6px}
.cc-tag{font-size:12.5px;color:var(--sub);font-style:italic;margin-top:8px;line-height:1.45}
.cc-cta{margin-top:auto;padding:14px 22px;border-top:1px solid var(--line);font-size:12.5px;font-weight:800;color:var(--primary);
  display:flex;align-items:center;justify-content:space-between;letter-spacing:.3px}
.cc-cta span{transition:transform .2s var(--ease)}
.ceo-card:hover .cc-cta span{transform:translateX(4px)}
/* CEO Control Panel — post-login CXO launcher (one badge per onboarded exec, grouped by org) */
.home-grid.cxo-launch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;align-items:start}
.cxo-org{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}
.cxo-org-head{display:flex;align-items:center;gap:14px;padding:16px 20px;background:linear-gradient(135deg,var(--brand-deep,#003a5d),var(--brand,#005288));color:#fff}
.cxo-org-logo{width:44px;height:44px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:18px;font-weight:800;color:var(--brand-deep,#003a5d);overflow:hidden;flex-shrink:0;box-shadow:0 3px 8px rgba(0,0,0,.18)}
.cxo-org-logo img{width:100%;height:100%;object-fit:contain;padding:6px}
.cxo-org-meta{flex:1;min-width:0}
.cxo-org-meta h2{font-size:18px;font-weight:800;letter-spacing:-.3px;line-height:1.2}
.cxo-org-sub{font-size:12.5px;opacity:.85;font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cxo-org-count{font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;background:rgba(255,255,255,.18);padding:5px 10px;border-radius:999px;white-space:nowrap}
.cxo-org-open{color:#fff;font-size:12.5px;font-weight:800;text-decoration:none;opacity:.9;white-space:nowrap}
.cxo-org-open:hover{opacity:1;text-decoration:underline}
.cxo-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;padding:18px 20px}
.cxo-badge{--ring:#005288;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;background:var(--mist);border:1px solid var(--line);border-radius:16px;padding:16px;text-decoration:none;color:var(--ink);transition:transform .18s var(--ease),box-shadow .18s,border-color .18s}
.cxo-badge:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(11,59,52,.16);border-color:var(--ring)}
.cxo-badge-av{width:54px;height:54px;border-radius:50%;background:#fff;border:3px solid var(--ring);display:grid;place-items:center;font-size:18px;font-weight:800;color:var(--ring);overflow:hidden}
.cxo-badge-av img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.cxo-badge-id{display:flex;flex-direction:column;gap:1px}
.cxo-badge-id b{font-size:15px;font-weight:800;letter-spacing:-.2px;line-height:1.2}
.cxo-badge-role{font-size:12px;color:var(--sub);font-weight:600}
.cxo-badge-lens{align-self:flex-start;font-size:10.5px}
.cxo-badge-cta{margin-top:2px;font-size:12px;font-weight:800;color:var(--ring);display:flex;align-items:center;gap:5px}
.cxo-badge-cta span{transition:transform .18s var(--ease)}
.cxo-badge:hover .cxo-badge-cta span{transform:translateX(4px)}
@media(max-width:640px){.cxo-org-head{flex-wrap:wrap}.cxo-badges{grid-template-columns:1fr}}
.home-brand{display:flex;align-items:center;gap:14px;justify-content:center;margin-top:40px;padding:18px 22px;
  background:var(--card);border:1px solid var(--line);border-radius:16px;max-width:520px;margin-left:auto;margin-right:auto;
  text-decoration:none;box-shadow:var(--shadow);transition:transform .2s var(--ease),box-shadow .2s}
.home-brand:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(11,59,52,.14)}
.home-brand-mark{width:42px;height:42px;border-radius:11px;flex-shrink:0}
.home-brand-txt{display:flex;flex-direction:column;gap:3px;text-align:left}
.hb-line{font-size:13px;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.5}
.home-brand-word{height:15px;width:auto;vertical-align:middle;position:relative;top:1px}
.hb-poss{margin-left:-3px}
.hb-sub{font-size:11.5px;font-weight:800;letter-spacing:.4px;color:var(--primary)}
.home-foot{text-align:center;color:var(--sub);font-size:11.5px;margin-top:22px;max-width:560px;margin-left:auto;margin-right:auto;line-height:1.6}

/* ---------- Co-brand (NinjaTech AI) ---------- */
.cobrand{display:flex;align-items:center;justify-content:center;gap:26px;margin:0 auto 14px}
.cb-lockup{display:flex;align-items:center;gap:11px;text-decoration:none;transition:transform .2s var(--ease),opacity .2s}
.cb-lockup:hover{transform:translateY(-2px)}
.cb-ninja-mark{height:44px;width:44px;border-radius:11px;box-shadow:0 6px 16px rgba(224,120,28,.28)}
.cb-ninja-word{height:19px;width:auto}
.cb-div{width:1px;height:48px;background:var(--line)}
.cb-tag{font-size:13px;color:var(--sub);margin:0 auto 20px;line-height:1.5}
.cb-tag b{color:var(--ink);font-weight:700}
.home-cobrand-foot{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:44px;padding:18px 26px;
  background:var(--card);border:1px solid var(--line);border-radius:16px;max-width:600px;margin-left:auto;margin-right:auto;box-shadow:var(--shadow)}
.cbf-label,.cbf-sep{font-size:12px;font-weight:700;letter-spacing:.4px;color:var(--sub);text-transform:uppercase}
.cbf-ninja{display:flex;align-items:center;gap:9px;text-decoration:none}
.cbf-ninja-mark{width:34px;height:34px;border-radius:9px}
.cbf-ninja-word{height:15px;width:auto}

/* ---------- Live pulse (brief) ---------- */
.pulse-card{margin-top:14px;border-color:color-mix(in srgb,var(--primary) 22%,var(--line))}
.pulse-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pulse-head h3{margin:0;flex:1;flex-wrap:wrap}
.pulse-refresh{font-size:11px;padding:6px 11px;flex-shrink:0}
.pulse-glance{font-size:14px;line-height:1.6;color:var(--ink);background:linear-gradient(135deg,var(--deep),var(--primary));color:#fff;
  border-radius:14px;padding:16px 18px;position:relative}
.pulse-glance-tag{display:block;font-size:9.5px;font-weight:800;letter-spacing:1px;opacity:.72;margin-bottom:6px}
.pulse-loading{display:flex;align-items:center;gap:8px;color:var(--sub);font-size:12.5px}
.pulse-err{color:var(--coral);font-size:13px;font-weight:600}
.pulse-err a,.pulse-glance .pulse-retry,.assess-retry{color:var(--primary);font-weight:800;text-decoration:underline;cursor:pointer}
.pulse-split{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin-top:16px}
.pulse-sub{font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--sub);margin-bottom:10px}
.pulse-news .nitem{box-shadow:none;margin-bottom:8px}
.pulse-empty{font-size:12.5px;color:var(--sub);padding:8px 0}
.assess-btns{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.assess-btns .btn{justify-content:flex-start;font-weight:700}
.btn.assess-good{background:color-mix(in srgb,var(--green) 12%,#fff);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 35%,var(--line))}
.btn.assess-att{background:color-mix(in srgb,var(--coral) 12%,#fff);color:var(--coral);border:1px solid color-mix(in srgb,var(--coral) 35%,var(--line))}
.btn.assess-good.on{background:var(--green);color:#fff}
.btn.assess-att.on{background:var(--coral);color:#fff}
.assess-placeholder{font-size:12.5px;color:var(--sub);line-height:1.5;padding:6px 0}
.assess-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.assess-list li{border-left:3px solid var(--line);padding:2px 0 2px 12px}
.assess-list.good li{border-color:var(--green)}
.assess-list.attention li{border-color:var(--coral)}
.assess-list .ap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.assess-list .ap b{font-size:13px}
.atag{font-size:8.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;border-radius:6px;color:#fff}
.atag.internal{background:var(--primary)}
.atag.external{background:var(--accent)}
.assess-list .ad{font-size:12px;color:var(--sub);line-height:1.5;margin-top:3px}

/* ===== Brief v3 — full-width responsive · editorial headers · open-in-context ===== */
.brief-view{max-width:1360px}
/* 1 · Contextual welcome — editorial serif hero (refined, not heavy/childlike) */
.brief-head h1{font-weight:600;font-size:29px;letter-spacing:-.4px;line-height:1.1}
.bh-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.bh-lead{min-width:0;flex:1}
.bh-missed{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:12px 15px;max-width:380px;min-width:238px}
.bh-missed-tag{display:block;font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#F2C879;margin-bottom:5px}
.bh-missed-line{font-size:12.5px;line-height:1.5;color:#EAF3FB}
.bh-missed-line b{color:#fff}
.bh-hot{color:#FFD79A !important}
.bh-daystrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:16px}
.bh-day{display:flex;gap:10px;align-items:flex-start;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:10px 12px}
.bh-day-ic{font-size:15px;line-height:1.3}
.bh-day-k{font-size:12px;font-weight:800;color:#fff}
.bh-day-v{font-size:11.5px;color:#D8EFE6;margin-top:2px;line-height:1.4}
/* 2 · Ninja Recommends — story beats */
.nr-story{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nr-story .nr-next{grid-column:1/-1}
.nr-beat{border:1px solid var(--line);border-radius:14px;padding:13px 15px;background:#fff}
.nr-focus{border-color:color-mix(in srgb,var(--primary) 32%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 5%,#fff),#fff)}
.nr-beat-h{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--sub);margin-bottom:9px}
.nr-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;font-weight:800;flex:0 0 auto}
.nr-focus-row{display:flex;align-items:center;gap:10px}
.nr-focus-t{font-size:15.5px;font-weight:800;color:var(--ink);letter-spacing:-.2px}
.nr-beat-sub{font-size:12.5px;color:var(--sub);line-height:1.55;margin-top:7px}
.nr-prog-row{display:flex;gap:9px;align-items:flex-start;padding:5px 0}
.nr-prog-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:5px;flex:0 0 auto}
.nr-prog-t{font-size:13px;font-weight:700;color:var(--ink)}
.nr-prog-m{font-size:11px;color:var(--sub);margin-top:1px}
.nr-skel{height:104px;background:linear-gradient(90deg,var(--mist),#fff,var(--mist));background-size:200% 100%;animation:nbaShim 1.2s infinite;border:none}
/* 3 · Inquiry trio */
.inquiry-trio{border-color:color-mix(in srgb,var(--primary) 20%,var(--line))}
.inq-head{margin-bottom:12px}
.inq-eyebrow{display:block;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:-.2px}
.inq-sub{font-size:12px;color:var(--sub)}
.inq-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.inq-btn{justify-content:center;font-weight:700;font-size:13px;padding:11px 12px;border:1px solid var(--line);background:#fff;border-radius:11px;transition:border-color .15s,box-shadow .15s,background .15s}
.inq-btn:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));box-shadow:0 4px 14px rgba(11,59,52,.06)}
.inq-today{color:var(--primary)}.inq-good{color:var(--green)}.inq-att{color:var(--coral)}
.inq-good.on{background:var(--green);color:#fff;border-color:var(--green)}
.inq-att.on{background:var(--coral);color:#fff;border-color:var(--coral)}
.inquiry-trio .assess-out{margin-top:12px}
/* 4 · pulse news full-width */
.pulse-news-wrap{margin-top:16px}
/* 5 · Worklist tiles (MUSC Cockpit experience) */
.wl-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px}
.wl-tile{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.wl-tile:hover{border-color:color-mix(in srgb,var(--primary) 34%,var(--line))}
.wl-tile.open{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));box-shadow:0 6px 18px rgba(11,59,52,.07)}
.wl-tile-head{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:12px 13px}
.wl-tile-t{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-tile-trek{font-size:10px;font-weight:700;color:var(--sub);background:var(--mist);border-radius:20px;padding:2px 8px;white-space:nowrap}
.wl-tile-caret{color:var(--sub);font-size:11px;transition:transform .2s}
.wl-tile.open .wl-tile-caret{transform:rotate(180deg)}
.wl-tile-body{padding:0 13px 13px;border-top:1px solid var(--line)}
.wl-tile-why{font-size:12.5px;color:var(--sub);line-height:1.55;margin-top:10px}
.wl-tile-action{font-size:12px;color:var(--ink);margin-top:8px;line-height:1.5}
.wl-tile-action-lb{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--accent);margin-right:4px}
.wl-tile-acts{display:flex;align-items:center;gap:12px;margin-top:11px;flex-wrap:wrap}
.wl-tile-cta{font-size:12px;font-weight:800;color:#fff;background:var(--primary);border-radius:9px;padding:7px 12px}
.wl-tile-open{font-size:12px;font-weight:700;color:var(--accent);text-decoration:none}
.wl-empty{font-size:13px;color:var(--sub);padding:12px 2px;grid-column:1/-1}
.wl-tile.skel{height:46px;background:linear-gradient(90deg,var(--mist),#fff,var(--mist));background-size:200% 100%;animation:nbaShim 1.2s infinite;border:none}
/* 6 · Cross-cockpit board — expand in place, jump is separate */
.brief-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.bb-card{padding:0;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.bb-card:hover{border-color:color-mix(in srgb,var(--primary) 30%,var(--line))}
.bb-card.open{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));box-shadow:0 6px 18px rgba(11,59,52,.07)}
.bb-head{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:13px 14px 10px}
.bb-ic{font-size:16px}
.bb-label{flex:1;font-size:13.5px;font-weight:800;color:var(--ink)}
.bb-caret{color:var(--sub);font-size:11px;transition:transform .2s}
.bb-card.open .bb-caret{transform:rotate(180deg)}
.bb-peek{padding:0 14px 12px}
.bb-card.open .bb-peek{display:none}
.bb-item{display:flex;gap:8px;align-items:flex-start;padding:5px 0}
.bb-item.full{padding:6px 0;border-bottom:1px solid var(--line)}
.bb-dot{width:8px;height:8px;border-radius:50%;background:var(--sub);margin-top:5px;flex:0 0 auto}
.bb-dot.green{background:var(--green)}.bb-dot.amber{background:#C77700}.bb-dot.red{background:var(--coral)}
.bb-k{font-size:11px;color:var(--sub)}
.bb-v{font-size:13px;font-weight:700;color:var(--ink)}
.bb-meta{font-size:10.5px;color:var(--sub);margin-top:1px}
.bb-detail{padding:2px 14px 14px}
.bb-open{display:inline-block;margin-top:11px;font-size:12px;font-weight:800;color:var(--primary);text-decoration:none}
/* 7 · signals */
.sig-row{padding:9px 0;border-bottom:1px solid var(--line)}
.sig-t{font-size:13px;font-weight:700}
.sig-m{font-size:11px;color:var(--sub);margin-top:3px}
@media(max-width:820px){
  .nr-story{grid-template-columns:1fr}
  .inq-btns{grid-template-columns:1fr}
  .bh-missed{max-width:none}
}

/* ---------- Decision Room — CEO-level calls grouped by governance forum ---------- */
.dr-view{max-width:1360px}
/* View header — the description lives here (not a floating card) */
.dr-header{margin-bottom:22px}
.dr-header h1{font-family:var(--font-display,inherit);font-size:28px;font-weight:600;letter-spacing:-.4px;line-height:1.1;margin:0}
.dr-lede{font-size:14px;color:var(--sub);line-height:1.6;margin:8px 0 0;max-width:820px}
.dr-header-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px}
.dr-header-link{font-size:12.5px;font-weight:700;color:var(--primary);text-decoration:none}
.dr-header-link:hover{text-decoration:underline}
/* Governance-forum section — each bucket of decisions */
.dr-forum{margin-bottom:26px}
.dr-forum-head{display:flex;align-items:center;gap:13px;padding:12px 15px;margin-bottom:14px;border-radius:14px;
  border:1px solid var(--line);border-left:4px solid var(--fac,var(--primary));
  background:linear-gradient(90deg,color-mix(in srgb,var(--fac,var(--primary)) 7%,#fff),#fff)}
.dr-forum-ic{font-size:20px;line-height:1;flex:0 0 auto}
.dr-forum-id{flex:1;min-width:0}
.dr-forum-id b{display:block;font-size:15.5px;font-weight:800;letter-spacing:-.2px;color:var(--ink)}
.dr-forum-id span{font-size:12.5px;color:var(--sub)}
.dr-forum-n{white-space:nowrap;font-weight:700}
.dr-forum-body{display:flex;flex-direction:column;gap:16px}
/* Decision card */
.decision{margin:0}
.dec-h{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px;align-items:center}
.dec-title{font-size:19px;font-weight:800;margin:0 0 7px;line-height:1.3}
.dec-ctx{color:var(--sub);font-size:13.5px;margin:0 0 14px;line-height:1.6;max-width:none}
.dec-poslabel{font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--sub);margin-bottom:9px}
.dec-poslabel span{font-weight:600;text-transform:none;letter-spacing:0;color:var(--accent)}
.dec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:16px}
.pos{background:var(--mist);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:8px}
.pos-h{display:flex;gap:10px;align-items:center}
.cxo-av{width:52px;height:52px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff;
  background:linear-gradient(135deg,var(--deep),var(--primary));overflow:hidden;box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--ring,var(--primary))}
.cxo-av img{width:100%;height:100%;object-fit:cover}
.pos-h .cxo-av{width:40px;height:40px;font-size:12px}
.pos-id b{font-size:13px;display:block;line-height:1.2}
.pos-id span{color:var(--sub);font-size:11.5px}
.pos-stance{font-weight:800;font-size:13.5px;color:var(--deep)}
.pos-why{font-size:12.5px;color:var(--ink);margin:0;line-height:1.5}
/* How the position was captured — traceable provenance badge */
.pos-cap{margin-top:auto;font-size:10.5px;font-weight:600;color:var(--sub);background:var(--card);border:1px solid var(--line);
  border-radius:999px;padding:4px 9px;align-self:flex-start;line-height:1.3}
.pos-cap-infer{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,var(--line));background:color-mix(in srgb,var(--accent) 6%,#fff)}
.ninja-synth{background:linear-gradient(180deg,rgba(0,151,169,.07),rgba(0,67,77,.04));border:1px solid var(--accent)}
.ns-h{display:flex;align-items:center;gap:9px;margin-bottom:10px;flex-wrap:wrap}
.ns-h b{font-size:14.5px}
.ns-rec{font-size:14.5px;font-weight:700;color:var(--deep);line-height:1.5;margin-bottom:6px}
.ns-why{font-size:13px;color:var(--ink);margin:0 0 10px;line-height:1.55}
.ns-trade{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:12px}
.ns-trade b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--sub)}
.ns-trade .pf-list{margin:6px 0 0}.ns-trade .pf-list li{font-size:12.5px}
@media(max-width:640px){.dr-header h1{font-size:23px}.dr-forum-head{align-items:flex-start}}

/* ---------- People & Org superview ---------- */
.peep-grid{margin-top:14px}
.peep-card{display:flex;flex-direction:column;gap:11px}
.peep-stats{display:flex;flex-wrap:wrap;gap:6px}
.peep-stat{display:inline-flex;align-items:center;gap:6px;background:var(--mist);border:1px solid var(--line);
  border-radius:999px;padding:4px 10px;font-size:12px;color:var(--ink);font-weight:600;white-space:nowrap}
.peep-dot{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;
  font-size:10.5px;font-weight:800;color:#fff;line-height:1}
.peep-dot.red{background:var(--coral)}.peep-dot.amber{background:var(--amber);color:#6b4e05}.peep-dot.green{background:var(--green)}
.peep-metrics{display:flex;flex-direction:column;gap:5px}
.peep-metric{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:var(--card);
  border:1px solid var(--line);border-radius:10px;padding:7px 11px;font-size:12.5px;color:var(--ink);
  cursor:pointer;transition:border-color .15s,background .15s}
.peep-metric:hover{border-color:var(--primary);background:var(--mist)}
.peep-metric b{margin-left:auto;font-weight:800;font-size:12.5px;white-space:nowrap}
.peep-metric .pdot{flex:0 0 auto}
.peep-more{font-size:11.5px;color:var(--sub);padding:2px 2px 0}
.peep-work{background:var(--mist);border:1px solid var(--line);border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:6px}
.peep-work-h{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--sub);font-weight:800}
.peep-wl{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:0;
  padding:2px 0;font-size:12px;color:var(--ink);cursor:pointer;line-height:1.3}
.peep-wl:hover{color:var(--primary)}
.peep-due{margin-left:auto;color:var(--sub);font-size:11px;white-space:nowrap}
.peep-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:2px}
.peep-actions .btn{font-size:12.5px}

/* ---------- Shared professional view header (v2.1 consistency across views) ---------- */
.view-head{margin-bottom:18px}
.view-head .vh-eyebrow{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--primary);display:inline-flex;align-items:center;gap:7px}
.view-head h1{font-family:var(--font-display,inherit);font-size:28px;font-weight:600;letter-spacing:-.4px;line-height:1.1;margin:7px 0 0}
.view-head .vh-lede{font-size:14px;color:var(--sub);line-height:1.6;margin:8px 0 0;max-width:880px}
.view-head .vh-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.view-head .vh-chip{font-size:11.5px;font-weight:700;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 12px;display:inline-flex;align-items:center;gap:6px}
.view-head .vh-chip.link{cursor:pointer;color:var(--primary);transition:border-color .15s,box-shadow .15s}
.view-head .vh-chip.link:hover{border-color:var(--primary);box-shadow:0 3px 10px rgba(0,82,136,.1)}

/* ---------- People: full-width + in-context accordion expands ---------- */
.people-view{max-width:1360px}
.peep-card .cxo-id{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.peep-card .cxo-id b{font-size:15px;line-height:1.2}
.peep-card .cxo-id > span:not(.chip){font-size:12.5px;color:var(--sub)}
.peep-card .cxo-lens{margin-top:4px}
.peep-caret{margin-left:8px;color:var(--sub);font-size:11px;transition:transform .18s var(--ease)}
.peep-acc.open .peep-caret{transform:rotate(180deg)}
.peep-acc{display:flex;flex-direction:column}
.peep-metric b + .peep-caret{margin-left:8px}
.peep-acc-d{overflow:hidden;border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;background:var(--mist);
  padding:10px 11px;margin-top:-4px;display:flex;flex-direction:column;gap:9px;animation:accIn .18s var(--ease)}
@keyframes accIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.peep-acc-row{font-size:12px;color:var(--ink);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.peep-acc-status{font-weight:800;text-transform:uppercase;font-size:10px;letter-spacing:.4px;padding:2px 7px;border-radius:999px}
.peep-acc-status.red{background:#FBE7E0;color:var(--coral)}.peep-acc-status.amber{background:#FBF0DB;color:#8A6210}.peep-acc-status.green{background:#E4F4EC;color:var(--green)}
.peep-acc-act{display:flex;gap:7px;flex-wrap:wrap}
.peep-acc-act .btn{font-size:11.5px;padding:6px 10px}
.peep-wl-row{display:flex;flex-direction:column}
.peep-wl .peep-caret{margin-left:8px}

/* ---------- Ops / Uptime & Resilience ---------- */
.ops-view{max-width:1360px}
.ops-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.ops-stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;display:flex;flex-direction:column;gap:3px}
.ops-k{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--sub);font-weight:700}
.ops-v{font-size:26px;font-weight:800;line-height:1.1;color:var(--ink)}
.ops-v.ok{color:var(--green)}.ops-v.warn{color:var(--amber)}
.ops-sub{color:var(--sub);font-size:11.5px}
.ops-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ops-sys{background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:13px 14px;display:flex;flex-direction:column;gap:9px;cursor:pointer;transition:border-color .15s,background .15s}
.ops-sys:hover{border-color:var(--primary);background:var(--card)}
.ops-sys-h{display:flex;align-items:center;gap:8px}
.ops-sys-h b{font-size:13.5px}
.ops-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.ops-tier{font-size:10.5px;margin-left:auto;background:var(--card);border:1px solid var(--line);color:var(--sub)}
.ops-bar-wrap{display:flex;flex-direction:column;gap:4px}
.ops-bar{position:relative;height:8px;border-radius:5px;background:#E7ECF1;overflow:visible}
.ops-bar-fill{height:100%;border-radius:5px}
.ops-bar-sla{position:absolute;top:-2px;width:2px;height:12px;background:var(--ink);opacity:.55;border-radius:2px}
.ops-bar-lbl{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink)}
.ops-lat{display:flex;gap:8px;align-items:center;font-size:11.5px}
.ops-up{color:var(--coral);font-weight:700}.ops-down{color:var(--green);font-weight:700}.ops-flat{color:var(--sub);font-weight:700}
.ops-note{font-size:12px;color:var(--sub);line-height:1.45}
.ops-inc-list{display:flex;flex-direction:column;gap:10px}
.ops-inc{display:flex;gap:11px;align-items:flex-start;background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:12px 13px;cursor:pointer;transition:border-color .15s}
.ops-inc:hover{border-color:var(--primary)}
.ops-inc-b{min-width:0;flex:1}
.ops-inc-t{font-size:13.5px;line-height:1.35}
.ops-inc-m{font-size:11.5px;color:var(--sub);margin:3px 0}
.ops-inc-x{font-size:12.5px;color:var(--ink);line-height:1.45}
.ops-inc-r{flex:0 0 auto}
.ops-status{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap}
.ops-status.ok{background:#E4F5EC;color:var(--green)}.ops-status.warn{background:#FBF0DB;color:#8A6210}
.ops-res-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ops-res{background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.ops-res-h{display:flex;align-items:center;gap:8px}.ops-res-h b{font-size:13px}
.ops-res-d{font-size:12px;color:var(--sub);line-height:1.5}
.ops-pill{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px}
.ops-pill.ok{background:#E4F5EC;color:var(--green)}.ops-pill.warn{background:#FBF0DB;color:#8A6210}
@media(max-width:900px){.ops-strip{grid-template-columns:repeat(2,1fr)}.ops-grid,.ops-res-grid{grid-template-columns:1fr}}

/* ---------- Data provenance (canonical: Public / Synthetic / Org / Person) ---------- */
.prov-tag{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;letter-spacing:.2px;padding:2px 7px;border-radius:999px;line-height:1.5;white-space:nowrap;vertical-align:middle;border:1px solid transparent;cursor:default}
.prov-tag.tiny{font-size:9px;padding:1px 6px}
.prov-tag.public{background:#E7F0F7;color:#1F5B85;border-color:#CFE1EE}
.prov-tag.syn{background:#FBF0DB;color:#8A6210;border-color:#F0DFB8}
.prov-tag.org{background:#E4F4EC;color:#0B7A46;border-color:#C7E7D5}
.prov-tag.person{background:#EEEAF7;color:#5A3FA0;border-color:#DDD4EF}
.prov-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}
.prov-legend-note{font-size:11.5px;color:var(--sub);margin-left:2px}

/* ---------- Self-learning personalization panel (#15) ---------- */
.lp-card{border:1px solid var(--line);background:linear-gradient(180deg,#FBFAFE,#fff)}
.lp-head{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}
.lp-title{font-size:15px;font-weight:800;color:var(--ink)}
.lp-sub{font-size:12px;color:var(--sub);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lp-dials{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.lp-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12px}
.lp-chip-k{color:var(--sub)}
.lp-chip b{color:var(--ink);font-weight:800}
.lp-chip-tag{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:1px 6px;border-radius:999px;background:#EEEAF7;color:#5A3FA0}
.lp-chip-tag.def{background:#EEF1F5;color:var(--sub)}
.lp-chip.learned{border-color:#DDD4EF;background:#FBFAFE}
.lp-dials-note{font-size:11.5px;color:var(--sub);margin-left:2px}
.lp-props{display:flex;flex-direction:column;gap:10px}
.lp-prop{display:flex;gap:10px;padding:12px;border:1px solid #E7E1F5;border-radius:12px;background:#fff}
.lp-prop-icon{color:#7A5AF0;font-size:16px;line-height:1.4}
.lp-prop-body{flex:1;min-width:0}
.lp-prop-h{font-size:13px;color:var(--ink)}
.lp-prop-h b{font-weight:800}
.lp-prop-move{font-size:12.5px;color:var(--sub);margin-top:4px}
.lp-from{text-decoration:line-through;opacity:.7}
.lp-arrow{color:#7A5AF0;font-weight:800;margin:0 2px}
.lp-to{color:#5A3FA0}
.lp-prop-ev{font-size:11.5px;color:var(--sub);font-style:italic;margin-top:6px;border-left:2px solid #E7E1F5;padding-left:8px}
.lp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.lp-apply{background:#5A3FA0;border-color:#5A3FA0}
.lp-apply:hover{background:#4A3288}
.lp-actions-note{font-size:11.5px;color:var(--sub)}
.lp-empty{font-size:13px;color:var(--sub);line-height:1.6}
.lp-empty b{color:var(--ink);font-weight:700}
/* Drift governance (#16) */
.lp-gov{margin-top:16px;padding:14px;border:1px solid #F0DFB8;border-radius:12px;background:#FDFAF3}
.lp-gov-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.lp-gov-badge{font-size:12px;font-weight:800;color:#8A6210;background:#FBF0DB;border:1px solid #F0DFB8;padding:3px 9px;border-radius:999px}
.lp-gov-sub{font-size:12px;color:var(--sub)}
.lp-gov-list{margin:10px 0 0;padding-left:2px;list-style:none;display:flex;flex-direction:column;gap:5px}
.lp-gov-list li{font-size:12.5px;color:var(--ink)}
.lp-gov-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}
.lp-drift-raise{background:#8A6210;border-color:#8A6210}
.lp-drift-raise:hover{background:#73510C}
.lp-gov-chk{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);cursor:pointer}
.lp-gov-note{font-size:11.5px;color:var(--sub);line-height:1.55;margin-top:10px}
.lp-gov-done{font-size:12.5px;color:#0B7A46;margin-top:6px}
.lp-gov-done a{color:#0B7A46;font-weight:700;text-decoration:underline}
/* Transient confirmation toast */
.ninja-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,14px);background:#1c2230;color:#fff;font-size:13px;font-weight:600;padding:11px 18px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.28);z-index:4000;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;max-width:min(90vw,460px);text-align:center}
.ninja-toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- Mobile ---------- */
.tabbar{display:none}
@media(max-width:768px){
  .tray{display:none}
  .burger{display:grid}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);z-index:55;
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}
  .tab{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:9.5px;font-weight:700;color:var(--sub);padding:6px 8px;border-radius:10px;position:relative;transition:color .2s}
  .tab .ti{font-size:19px;transition:transform .2s var(--ease)}
  .tab.on{color:var(--primary)}.tab.on .ti{transform:translateY(-2px) scale(1.12)}
  .tab .nb{position:absolute;top:1px;right:2px;background:var(--amber);color:#3a2a00;font-size:8px;font-weight:800;border-radius:9px;min-width:15px;height:15px;display:grid;place-items:center;padding:0 3px;box-shadow:0 0 0 2px rgba(242,169,59,.28)}
  .content{padding:14px 14px calc(90px + env(safe-area-inset-bottom));overflow-x:hidden}
  .card{overflow-x:auto}
  .bcol{min-width:64px}.bridge{min-height:160px}
  .fin-hero{gap:12px}.fin-hero .fh-item{min-width:88px}
  .appbar{padding:11px 14px;gap:10px}
  .appbar .ttl{font-size:15.5px}
  .appbar .org{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62vw}
  .appbar-chip{display:none}
  .drawer{width:100vw}
  .fab{bottom:calc(84px + env(safe-area-inset-bottom));right:16px;width:54px;height:54px}
  .view{animation:none}
  .card{padding:15px;border-radius:14px}
  .grid{gap:12px}
  .brief-head h1{font-size:21px}
  .fin-hero{gap:16px}.fin-hero .big{font-size:34px}
  .pf-hero{gap:14px}.pf-av{width:64px;height:64px;font-size:24px}.pf-id h1{font-size:22px}
  .btn{padding:10px 14px}
  .nitem{gap:11px;padding:13px 14px}
  .sent{width:38px;height:38px;font-size:17px}
  .pulse-split{grid-template-columns:1fr;gap:14px}
  .home-wrap{padding:32px 16px 48px}
  .home-hero h1{font-size:27px}
  .home-grid,.home-grid.cxo-launch{grid-template-columns:1fr;gap:16px}
  .cobrand{gap:16px}.cb-div{height:38px}
  .home-cobrand-foot{gap:10px;padding:16px 18px}
}
.loading{display:grid;place-items:center;height:40vh;color:var(--sub);font-size:13px;gap:10px}
.loading::after{content:'';width:26px;height:26px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--primary);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.err{padding:30px;text-align:center;color:var(--coral);font-weight:700}

/* ---- CEO Profile ---- */
.pf-hero{display:flex;gap:20px;align-items:center;background:linear-gradient(135deg,var(--deep),var(--primary));color:#fff;border:none;margin-bottom:14px}
.pf-av{width:82px;height:82px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:30px;font-weight:800;letter-spacing:1px;background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.35);overflow:hidden}
.pf-av img{width:100%;height:100%;object-fit:cover}
.pf-id h1{font-size:26px;font-weight:800;letter-spacing:-.5px;line-height:1.1}
.pf-id .pf-title{font-size:13px;opacity:.9;margin-top:4px;font-weight:600}
.pf-id .pf-headline{font-size:13.5px;opacity:.95;margin-top:8px;line-height:1.45;max-width:60ch}
.pf-id .pf-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pf-id .pf-meta span{font-size:11px;font-weight:700;background:rgba(255,255,255,.18);border-radius:20px;padding:4px 10px}
.pf-quote{border-left:4px solid var(--amber);font-size:16px;line-height:1.55;font-style:italic;color:var(--ink);margin-bottom:14px}
.pf-quote-a{font-style:normal;font-size:12px;color:var(--sub);font-weight:700;margin-top:8px}
.pf-bio{margin-bottom:14px}.pf-bio p{font-size:13.5px;line-height:1.6;color:var(--ink)}
.pf-list{list-style:none;display:flex;flex-direction:column;gap:8px}
.pf-list li{position:relative;padding-left:20px;font-size:13px;line-height:1.5;color:var(--ink)}
.pf-list li::before{content:'▸';position:absolute;left:2px;color:var(--primary);font-weight:800}
/* Actionable leadership roster (CEO/CIO profile) — links to People & Org, no duplicate roster detail */
.pf-lead-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:2px}
.pf-lead-h h3{margin:0}
.pf-lead-list{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.pf-lead-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:9px;padding:8px 10px;cursor:pointer;transition:background .14s,border-color .14s}
.pf-lead-row:hover{background:var(--mist);border-color:var(--line)}
.pf-lead-nm{font-weight:700;font-size:13px;color:var(--ink)}
.pf-lead-rl{font-size:12.5px;color:var(--sub);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-lead-go{color:var(--primary);font-weight:800;opacity:0;transition:opacity .14s}
.pf-lead-row:hover .pf-lead-go{opacity:1}
.pf-list.do li::before{content:'✓';color:var(--green)}
.pf-list.dont li::before{content:'✕';color:var(--coral)}
.pf-do{border-top:3px solid var(--green)}.pf-dont{border-top:3px solid var(--coral)}
.grid.g2+.grid.g2,.pf-quote+.grid,.card+.grid.g2{margin-top:14px}

/* ---------- Competitive Analysis ---------- */
.comp-view .sec-h{font-size:14px;font-weight:800;color:var(--ink);margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.comp-hero{background:linear-gradient(135deg,var(--deep),var(--primary) 70%);color:#fff;border:none}
.comp-hero h1,.comp-hero .comp-hero-h{font-size:19px;font-weight:700;letter-spacing:-.3px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}
.comp-hero .chip.ai{background:rgba(255,255,255,.18);color:#fff}
.comp-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.comp-region-lbl{font-size:12.5px;opacity:.85;margin-top:4px}
.comp-summary{font-size:13.5px;line-height:1.55;opacity:.95;margin:14px 0 4px}
.comp-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.comp-scope{display:flex;background:rgba(255,255,255,.14);border-radius:10px;padding:3px}
.comp-scope button{color:#fff;font-size:12px;font-weight:700;padding:6px 14px;border-radius:8px;opacity:.7}
.comp-scope button.on{background:#fff;color:var(--deep);opacity:1}
.comp-hero .btn{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3)}
.comp-scorecard{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.comp-score-item{background:rgba(255,255,255,.10);border-radius:12px;padding:12px 14px}
.comp-score-item .cs-l{font-size:11px;text-transform:uppercase;letter-spacing:.4px;opacity:.8}
.comp-score-item .cs-v{font-size:17px;font-weight:800;margin:3px 0}
.comp-score-item .cs-n{font-size:11.5px;opacity:.85;line-height:1.4}
.comp-h2h{margin-top:14px;background:rgba(0,0,0,.18);border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.55}
.comp-h2h .tag{display:block;font-size:10.5px;font-weight:800;letter-spacing:.6px;opacity:.9;margin-bottom:6px}
.comp-ask{margin-top:14px}
.comp-ask .btn{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3)}
.comp-you{background:var(--amber);color:#3a2500;font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:6px;vertical-align:middle;letter-spacing:.5px}

/* bars */
.comp-bars{display:flex;flex-direction:column;gap:12px}
.comp-bar-row{display:grid;grid-template-columns:200px 1fr;gap:6px 12px;align-items:center}
.comp-bar-label{font-size:12.5px;font-weight:700;color:var(--ink)}
.comp-bar-track{position:relative;background:var(--mist);border-radius:8px;height:26px;overflow:hidden}
.comp-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--primary));border-radius:8px}
.comp-bar-fill.integrated{background:repeating-linear-gradient(45deg,#dfe8e6,#dfe8e6 7px,#eef3f2 7px,#eef3f2 14px)}
.comp-bar-row.focal .comp-bar-fill{background:linear-gradient(90deg,var(--amber),var(--coral))}
.comp-bar-val{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11.5px;font-weight:700;color:var(--ink)}
.comp-bar-val.muted{color:var(--sub);font-weight:600}
.comp-bar-note{grid-column:2;font-size:11px;color:var(--sub);margin-top:-2px}

/* tiles */
.comp-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.comp-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.comp-tile{background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:14px}
.comp-tile.alt{background:#fff}
.comp-tile.wide{grid-column:span 1}
.comp-tile .ct-v{font-size:20px;font-weight:800;letter-spacing:-.3px;color:var(--primary)}
.comp-tile .ct-v.sm{font-size:14px;color:var(--ink)}
.comp-tile .ct-l{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--sub);font-weight:700}
.comp-tile .ct-n{font-size:11px;color:var(--sub);margin-top:4px;line-height:1.4}
.comp-pending{display:inline-block;background:#fff4e0;color:#9a6a00;border:1px dashed #e2b25a;font-size:11px;font-weight:700;padding:2px 8px;border-radius:7px}

/* matrix */
.comp-matrix-wrap{overflow-x:auto}
.comp-matrix{width:100%;border-collapse:collapse;font-size:12.5px}
.comp-matrix th{font-size:11px;color:var(--sub);font-weight:700;text-align:center;padding:6px 8px;text-transform:uppercase;letter-spacing:.3px}
.comp-matrix th:first-child{text-align:left}
.comp-matrix td{text-align:center;padding:9px 8px;border-top:1px solid var(--line)}
.comp-matrix td.cm-name{text-align:left;font-weight:700;color:var(--ink);white-space:nowrap}
.comp-matrix tr.focal td{background:#fff8ec}
.dot{display:inline-block;width:13px;height:13px;border-radius:50%;vertical-align:middle}
.dot.leading{background:var(--primary)}
.dot.strong{background:var(--accent)}
.dot.developing{background:#fff;border:2px solid var(--accent)}
.dot.na{background:transparent;border:2px dashed #c7d5d1;width:11px;height:11px}
.comp-legend{margin-top:12px;font-size:11.5px;color:var(--sub);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.comp-legend .dot{margin-left:10px}

/* maturity scale */
.comp-scale-head{display:flex;justify-content:space-between;font-size:10.5px;font-weight:700;color:var(--sub);text-transform:uppercase;letter-spacing:.3px;padding:0 0 8px;margin-left:180px}
.comp-scale-row{display:grid;grid-template-columns:180px 1fr;gap:6px 14px;align-items:center;padding:7px 0}
.comp-scale-name{font-size:12.5px;font-weight:700;color:var(--ink)}
.comp-scale-track{position:relative;height:8px;background:linear-gradient(90deg,#e7eeec,var(--accent) 92%);border-radius:5px}
.comp-scale-marker{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--primary);transform:translate(-50%,-50%);box-shadow:0 2px 6px rgba(0,0,0,.18)}
.comp-scale-row.focal .comp-scale-marker{border-color:var(--coral);background:var(--amber);width:19px;height:19px}
.comp-scale-note{grid-column:2;font-size:11px;color:var(--sub);line-height:1.4}

/* ranks */
.comp-ranks{display:flex;flex-direction:column;gap:8px}
.comp-rank-row{display:flex;justify-content:space-between;gap:14px;padding:11px 14px;background:var(--mist);border-radius:10px;font-size:12.5px}
.comp-rank-row.focal{background:#fff8ec;border:1px solid #f2d9a8}
.comp-rank-row .cr-name{font-weight:700;color:var(--ink)}
.comp-rank-row .cr-rank{color:var(--sub);text-align:right}

/* providers */
.comp-grid3 .comp-tile.wide{grid-column:span 1}

/* map */
.comp-map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.comp-region{border-radius:12px;padding:14px;color:#fff;display:flex;flex-direction:column;gap:3px;min-height:64px;justify-content:center}
.comp-region .cr-t{font-size:12.5px;font-weight:800}
.comp-region .cr-b{font-size:10.5px;opacity:.9;text-transform:uppercase;letter-spacing:.4px}
.comp-region.lvl0{background:#cdd9d6;color:#3b4a47}
.comp-region.lvl1{background:#8fbfb4}
.comp-region.lvl2{background:var(--primary)}
.comp-region.lvl3{background:var(--deep)}
.comp-map-legend{margin-top:12px;font-size:11.5px;color:var(--sub);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.comp-region.chip-mini{display:inline-flex;min-height:0;padding:3px 9px;border-radius:7px;font-size:10px;font-weight:700}

/* initiatives */
.comp-inits{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.comp-init-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;display:flex;flex-direction:column}
.comp-init-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.comp-init-cat{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--primary);background:var(--mist);padding:3px 9px;border-radius:7px}
.comp-init-time{font-size:11px;font-weight:700;color:var(--sub)}
.comp-init-card h4{font-size:14.5px;color:var(--ink);margin-bottom:10px;line-height:1.35}
.comp-hyp{background:linear-gradient(135deg,var(--deep),var(--primary));color:#fff;border-radius:10px;padding:11px 13px;font-size:12px;line-height:1.5;margin-bottom:10px}
.comp-hyp .tag{display:block;font-size:9.5px;font-weight:800;letter-spacing:.6px;opacity:.9;margin-bottom:5px}
.comp-rat,.comp-help{font-size:12px;color:var(--ink);line-height:1.5;margin-bottom:8px}
.comp-help{color:var(--sub)}
.comp-init-actions{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap;padding-top:6px}
.btn.sm{font-size:11px;padding:8px 12px}
.comp-routed{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--green);white-space:normal}
.comp-routed a{color:var(--primary);font-weight:700;text-decoration:none}
.comp-routed a:hover{text-decoration:underline}
.comp-plug a{color:var(--primary);font-weight:700;text-decoration:none}
.comp-plug a:hover{text-decoration:underline}

/* research / refresh */
#comp-research-card .sec-h .chip.ai{margin-left:4px}
.comp-research-empty,.comp-research-loading{font-size:12.5px;color:var(--sub);line-height:1.55;background:var(--mist);border-radius:10px;padding:14px}
.comp-research-sum{font-size:13px;line-height:1.55;color:var(--ink);background:#eef6f4;border-left:3px solid var(--primary);border-radius:8px;padding:12px 14px;margin-bottom:12px}
.comp-signal{border:1px solid var(--line);border-left:4px solid var(--sub);border-radius:10px;padding:11px 14px;margin-bottom:9px}
.comp-signal.imp-pos{border-left-color:var(--green)}
.comp-signal.imp-neg{border-left-color:var(--coral)}
.comp-signal.imp-neu{border-left-color:var(--accent)}
.comp-signal .cs-head{font-size:12.5px;color:var(--ink)}
.comp-signal .cs-org{font-size:11px;color:var(--sub);font-weight:600;margin-left:6px}
.comp-signal .cs-detail{font-size:12px;color:var(--sub);line-height:1.5;margin:4px 0}
.comp-signal .cs-src{font-size:11px;font-weight:700;color:var(--primary);text-decoration:none}
.comp-refreshed{font-size:11px;color:var(--sub);margin-top:6px}

/* sources */
.comp-src-list{list-style:none;display:flex;flex-direction:column;gap:6px}
.comp-src-list a{font-size:12.5px;color:var(--primary);text-decoration:none}
.comp-src-list a:hover{text-decoration:underline}
.comp-disclaimer{margin-top:14px;font-size:11px;color:var(--sub);line-height:1.5;border-top:1px solid var(--line);padding-top:12px}

/* responsive */
@media (max-width:900px){
  .comp-scorecard{grid-template-columns:1fr}
  .comp-grid4{grid-template-columns:repeat(2,1fr)}
  .comp-grid3{grid-template-columns:1fr}
  .comp-inits{grid-template-columns:1fr}
  .comp-map-grid{grid-template-columns:repeat(2,1fr)}
  .comp-bar-row{grid-template-columns:130px 1fr}
  .comp-bar-label{font-size:11.5px}
  .comp-scale-head{margin-left:120px}
  .comp-scale-row{grid-template-columns:120px 1fr}
  .comp-scale-note{grid-column:1/-1}
  .comp-hero h1{font-size:19px}
}
@media (max-width:560px){
  .comp-grid4{grid-template-columns:1fr 1fr}
  .comp-map-grid{grid-template-columns:1fr}
  .comp-scale-head{display:none}
  .comp-scale-row{grid-template-columns:1fr;gap:4px}
  .comp-scale-name{margin-bottom:2px}
  .comp-scale-note{grid-column:1}
  .comp-bar-row{grid-template-columns:1fr;gap:3px}
  .comp-bar-note{grid-column:1}
  .comp-hero-top{flex-direction:column}
}


/* ===== Chat with Ninja upgrade (issue #5) ===== */
.dhead .dh-t{display:flex;flex-direction:column;justify-content:center}
.dicon{color:#fff;font-size:15px;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;opacity:.9;transition:background .15s,opacity .15s}
.dicon:hover{background:rgba(255,255,255,.16);opacity:1}

/* Fullscreen lightbox */
body.drawer-max::after{content:"";position:fixed;inset:0;background:rgba(11,59,52,.42);backdrop-filter:blur(3px);z-index:75;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.drawer.max{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);
  width:min(1040px,80vw);height:80vh;border-radius:18px;border:1px solid var(--line);
  box-shadow:0 30px 90px rgba(11,59,52,.35);z-index:80}
.drawer.max .dlog{padding:22px 26px}
.drawer.max .msg .mbody{font-size:14.5px}

/* Streaming caret */
.cursor{display:inline-block;width:7px;height:15px;margin-left:2px;background:var(--primary);border-radius:1px;vertical-align:-2px;animation:caret 1s steps(1) infinite}
@keyframes caret{0%,50%{opacity:1}50.01%,100%{opacity:0}}

/* Related questions */
.chips-label{width:100%;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--primary);margin:2px 2px 4px;opacity:.85}

/* Voice input: waveform + cancel/confirm */
.voice-bar{gap:9px}
.voice-bar .eq{height:20px}
.voice-bar .eq i{width:3px;background:var(--coral);border-radius:2px;height:5px;animation:eq .9s infinite ease-in-out}
.voice-bar .eq i:nth-child(1){animation-delay:0s}
.voice-bar .eq i:nth-child(2){animation-delay:.12s}
.voice-bar .eq i:nth-child(3){animation-delay:.24s}
.voice-bar .eq i:nth-child(4){animation-delay:.36s}
.voice-bar .eq i:nth-child(5){animation-delay:.48s}
.voice-bar .eq i:nth-child(6){animation-delay:.6s}
.voice-bar .eq i:nth-child(7){animation-delay:.72s}
@keyframes eq{0%,100%{height:4px}50%{height:20px}}
.vb-txt{font-weight:700}
.vb-btn{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:800;flex-shrink:0;transition:transform .12s}
.vb-btn:hover{transform:scale(1.1)}
.vb-btn.cancel{background:var(--mist);color:var(--coral);border:1px solid var(--line)}
.vb-btn.ok{background:linear-gradient(135deg,var(--green,var(--primary)),var(--deep));color:#fff}
.dinput.listening input{border-color:var(--coral);box-shadow:0 0 0 3px rgba(228,87,46,.14)}

/* CEO(+CIO) portraits as org-switcher icons */
.orgface{position:relative;width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--mist);
  display:grid;place-items:center;overflow:visible;font-weight:800;font-size:13px;color:var(--deep)}
.orgface .face-ceo{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.16)}
.orgface .face-init{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff}
.orgface .face-cio{position:absolute;right:-5px;bottom:-4px;width:16px;height:16px;border-radius:50%;object-fit:cover;border:1.5px solid var(--card);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.orgface .face-hide{display:none}

@media (max-width:720px){
  .drawer.max{width:100vw;height:100dvh;top:0;left:0;transform:none;border-radius:0}
}

/* ---- Pulse skeleton + cached-fallback note (issue #9) ---- */
.nitem.skel{height:58px;border-radius:10px;background:linear-gradient(100deg,var(--card2,#eef2f1) 30%,rgba(0,0,0,.05) 50%,var(--card2,#eef2f1) 70%);background-size:200% 100%;animation:skelshimmer 1.3s ease-in-out infinite;margin-bottom:8px;border:1px solid var(--line)}
@keyframes skelshimmer{0%{background-position:180% 0}100%{background-position:-20% 0}}
.pulse-stale{display:block;margin-top:6px;font-size:11px;color:var(--sub);font-style:italic}

/* ---- #26: live camera capture modal ---- */
.cam-modal{position:fixed;inset:0;z-index:90;background:rgba(11,20,18,.82);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .18s ease}
.cam-modal[hidden]{display:none}
.cam-controls[hidden]{display:none}
.cam-inner{width:min(560px,96vw);background:#0f1513;border:1px solid rgba(255,255,255,.14);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.cam-head{display:flex;align-items:center;gap:8px;padding:12px 14px;color:#fff;font-size:15px;border-bottom:1px solid rgba(255,255,255,.10)}
.cam-head .dclose{color:#fff;background:rgba(255,255,255,.12)}
.cam-stage{position:relative;width:100%;aspect-ratio:4/3;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cam-stage video,.cam-stage img{width:100%;height:100%;object-fit:cover;display:block}
.cam-stage video[hidden],.cam-stage img[hidden]{display:none}
.cam-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:#e8efec;font-size:14px;line-height:1.5}
.cam-msg[hidden]{display:none}
.cam-link{background:none;border:none;color:#4dd0b0;text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.cam-controls{display:flex;gap:10px;align-items:center;justify-content:center;padding:14px}
.cam-btn{flex:0 0 auto;padding:11px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.10);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}
.cam-btn:hover{background:rgba(255,255,255,.18)}
.cam-btn.primary{background:var(--brand,#0E6B5C);border-color:transparent}
.cam-btn.primary:hover{filter:brightness(1.08)}

/* ---- #16: Cmd+K command palette ---- */
.cmdk{position:fixed;inset:0;z-index:120;background:rgba(11,20,18,.55);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;animation:fadeIn .14s ease}
.cmdk[hidden]{display:none}
.cmdk-box{width:min(620px,96vw);background:#111a17;border:1px solid rgba(255,255,255,.14);border-radius:16px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.55);display:flex;flex-direction:column}
.cmdk-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.09)}
.cmdk-head .ck-ic{color:#8fe3cf;font-size:16px;flex:0 0 auto}
.cmdk-head input{flex:1;background:none;border:none;outline:none;color:#eef5f2;font-size:15px;font-family:inherit}
.cmdk-head input::placeholder{color:#7d918a}
.cmdk-kbd{flex:0 0 auto;font-size:10.5px;color:#8fa39b;border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:2px 6px}
.cmdk-list{max-height:min(54vh,440px);overflow-y:auto;padding:6px}
.cmdk-group{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#7d918a;padding:8px 10px 4px}
.cmdk-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;cursor:pointer;color:#e6efeb}
.cmdk-item.sel{background:linear-gradient(135deg,var(--deep,#0E6B5C),var(--primary,#0E6B5C));color:#fff}
.cmdk-item .ci-ic{width:30px;height:30px;flex:0 0 auto;border-radius:8px;background:rgba(255,255,255,.08);display:grid;place-items:center;font-size:15px;overflow:hidden}
.cmdk-item.sel .ci-ic{background:rgba(255,255,255,.2)}
.cmdk-item .ci-ic img{width:100%;height:100%;object-fit:cover;display:block;border-radius:8px}
.cmdk-item .ci-tx{flex:1;min-width:0}
.cmdk-item .ci-t{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdk-item .ci-s{font-size:11px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdk-item .ci-hint{flex:0 0 auto;font-size:10px;color:#8fa39b}
.cmdk-empty{padding:22px;text-align:center;color:#8fa39b;font-size:13px}
.cmdk-foot{display:flex;gap:14px;align-items:center;padding:8px 14px;border-top:1px solid rgba(255,255,255,.09);font-size:10.5px;color:#7d918a}
.cmdk-foot .cmdk-kbd{margin-right:4px}
@media (max-width:760px){.cmdk{padding-top:8vh}.cmdk-list{max-height:60vh}}

/* ⌘K trigger button in the appbar */
.cmdk-btn{flex:0 0 auto;border:1px solid rgba(0,0,0,.14);background:rgba(0,0,0,.04);color:var(--sub,#5c6b64);font-size:12px;font-weight:700;border-radius:9px;padding:6px 10px;cursor:pointer;font-family:inherit;transition:all .15s}
.cmdk-btn:hover{background:rgba(0,0,0,.08);color:var(--ink)}
@media (max-width:760px){.cmdk-btn{padding:5px 8px;font-size:11px}}

/* ---- Sign-in screen (branded, top-of-home) ---- */
/* .login-scroll is a full-viewport overlay so #app's flex layout can't constrain it */
.login-scroll{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:radial-gradient(1100px 480px at 50% -8%,rgba(14,107,92,.10),transparent 70%),var(--mist);overflow:auto}
.login-card{width:100%;max-width:400px;margin-inline:auto;background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 60px rgba(11,59,52,.14);padding:36px 32px 28px;text-align:center}
.lg-brand{margin-bottom:22px;justify-content:center}
.login-card .cb-ninja-mark{height:36px;width:36px}
.login-card .cb-ninja-word{height:16px}
.login-card .cb-div{height:38px}
.lg-ninja{width:64px;height:64px;margin:0 auto 16px;border-radius:18px;background:linear-gradient(135deg,var(--deep),var(--primary));display:grid;place-items:center;box-shadow:0 10px 24px rgba(11,59,52,.28)}
.lg-ninja img{width:40px;height:40px}
.login-card h1{font-size:22px;font-weight:800;letter-spacing:-.3px;margin:0 0 4px}
.lg-sub{font-size:13px;color:var(--sub);margin:0 0 20px}
.lg-err{background:#FBE7E0;border:1px solid #F0C4B4;color:#A83A1E;font-size:12.5px;font-weight:600;border-radius:11px;padding:9px 12px;margin-bottom:14px;text-align:left}
#login-form{display:flex;flex-direction:column;gap:12px;text-align:left}
.lg-field{display:flex;flex-direction:column;gap:6px}
.lg-field span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--sub)}
.lg-field input{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;background:#fff}
.lg-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(14,107,92,.12)}
.lg-btn{margin-top:6px;background:linear-gradient(135deg,var(--primary),var(--deep));color:#fff;font-size:14px;font-weight:800;border:none;border-radius:13px;padding:13px 16px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s,filter .15s}
.lg-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06)}
.lg-btn:disabled{opacity:.7;cursor:default}
.lg-foot{margin-top:22px;font-size:11px;color:var(--sub);line-height:1.5}
.lg-foot b{color:var(--ink);font-weight:700}

/* ---- Sign-out (top-right, on home + all org shells) ---- */
.signout{position:fixed;top:12px;right:14px;z-index:60;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--sub);font-size:11.5px;font-weight:700;border-radius:20px;padding:6px 12px;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 4px 12px rgba(11,59,52,.08);transition:all .15s;font-family:inherit}
.signout:hover{color:#A83A1E;border-color:#F0C4B4;background:#FBE7E0}
.signout span{display:inline}
@media (max-width:760px){.signout span{display:none}.signout{padding:7px 9px}}

/* Performance — metric-family headers with configurable CXO owner */
.fam-h{display:flex;align-items:center;gap:8px;margin:14px 0 8px;flex-wrap:wrap}
.fam-h .sp{flex:1}
.fam-name{font-weight:800;font-size:14px;color:var(--ink);letter-spacing:.2px}
/* Strategy — Next Best Strategic Initiatives cards */
.chip{background:var(--mist);color:var(--sub)}
.nbsi-top,.nbsi-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nbsi-top .sp,.nbsi-foot .sp{flex:1}
.nbsi-foot{margin-top:10px}
.nbsi-moves{margin:2px 0 4px;display:flex;flex-direction:column;gap:5px}
.nbsi-move{font-size:12.5px;color:var(--ink);line-height:1.35}
.syn-note{font-size:12.5px;color:var(--sub);background:var(--mist);border:1px dashed var(--line);line-height:1.45}

/* Ninja Activity — audited feed of the assistant's work */
.act-card{margin-top:14px}
.act-pills{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 14px}
.act-pill{cursor:pointer;border:1px solid var(--line)}
.act-feed{display:flex;flex-direction:column}
.act-row{display:flex;gap:13px;padding:14px 4px;border-top:1px solid var(--line)}
.act-row:first-child{border-top:0}
.act-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:16px;background:color-mix(in srgb,var(--primary) 8%,var(--mist));border:1px solid color-mix(in srgb,var(--primary) 16%,var(--line))}
.act-main{flex:1;min-width:0}
.act-t{font-size:14px;font-weight:700;color:var(--ink);line-height:1.35}
.act-live{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,#fff);border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:middle}
.act-d{font-size:12.5px;color:var(--sub);line-height:1.45;margin-top:2px}
.act-meta{display:flex;align-items:center;gap:12px;margin-top:7px}
.act-status{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:20px;background:var(--mist);color:var(--sub)}
.act-status.s-route{background:color-mix(in srgb,#1f9d55 14%,#fff);color:#1f7a43}
.act-status.s-draft{background:color-mix(in srgb,var(--gold,#c79a3a) 18%,#fff);color:#8a6a1e}
.act-status.s-research{background:color-mix(in srgb,var(--primary) 12%,#fff);color:var(--primary)}
.act-status.s-brief{background:color-mix(in srgb,var(--primary) 10%,#fff);color:var(--deep,var(--primary))}
.act-when{font-size:11.5px;color:var(--sub)}
.act-goto{font-size:12px;font-weight:700;color:var(--primary);margin-left:auto}

/* Strategy — NBSI diligence disclosure (M&A-grade context) */
.nbsi-dili{margin:2px 0 4px;border-top:1px dashed var(--line);padding-top:8px}
.nbsi-dili summary{cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.3px;color:var(--accent);text-transform:uppercase;list-style:none}
.nbsi-dili summary::-webkit-details-marker{display:none}
.nbsi-dili summary::before{content:'▸';margin-right:6px;font-size:10px}
.nbsi-dili[open] summary::before{content:'▾'}
.dili-body{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.dili-row{display:grid;grid-template-columns:112px 1fr;gap:10px;align-items:start}
.dili-k{font-size:10.5px;font-weight:800;color:var(--sub);text-transform:uppercase;letter-spacing:.3px;padding-top:1px}
.dili-v{font-size:12px;color:var(--ink);line-height:1.4}

/* ---- Initiatives & Projects (flagship) view ---- */
.init-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.init-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;margin-top:10px}
.itile{cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease);display:flex;flex-direction:column;padding:16px}
.itile:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(11,59,52,.14)}
.itile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.itile-head{display:flex;align-items:center;gap:8px}
.itile-ic{font-size:20px;line-height:1}
.ichip{font-size:10.5px;font-weight:800;letter-spacing:.2px;text-transform:uppercase;color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,#fff);border:1px solid color-mix(in srgb,var(--primary) 20%,var(--line));padding:2px 8px;border-radius:999px}
.pchip{font-size:10px;font-weight:800;letter-spacing:.2px}
.itile-v{font-size:26px;font-weight:800;letter-spacing:-.4px;color:var(--ink);margin-top:12px;line-height:1}
.itile-name{font-size:13.5px;font-weight:700;color:var(--ink);margin-top:4px;line-height:1.3}
.itile-status{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--sub);margin-top:8px;font-weight:600}
.idot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.idot.green{background:var(--green)}.idot.amber{background:var(--amber)}.idot.red{background:var(--coral)}
.itile-narr{font-size:12px;color:var(--sub);line-height:1.5;margin:10px 0 0}
.itile-nba{font-size:11.5px;color:var(--ink);background:color-mix(in srgb,var(--accent) 7%,#fff);border:1px dashed color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:10px;padding:8px 10px;margin-top:12px;line-height:1.4}
.itile-foot{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:12px}
.isrc{font-size:10.5px;color:var(--sub);font-weight:600}
/* M&A play card: hypothetical target + Sourced/Withheld honesty */
.play-target{font-size:12.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chip.tiny{font-size:9.5px;padding:1px 7px;text-transform:none;letter-spacing:0}
.play-honesty{display:flex;flex-direction:column;gap:5px;margin:8px 0 4px}
.hon-row{display:grid;grid-template-columns:74px 1fr;gap:9px;align-items:start;font-size:11.5px;line-height:1.4}
.hon-k{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;padding:1px 0 0;border-radius:4px;text-align:center}
.hon-src .hon-k{color:var(--green)}
.hon-wh .hon-k{color:var(--sub)}
.hon-v{color:var(--ink)}
.hon-wh .hon-v{color:var(--sub)}

/* ---- Executive Brief v2 — your-day strip + cross-app board ---- */
.day-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.day-card{padding:14px 16px}
.day-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--sub);margin-bottom:9px}
.day-big{font-size:19px;font-weight:800;color:var(--ink);margin-bottom:6px}
.day-flag{display:inline-block;font-size:11px;font-weight:800;color:#fff;background:var(--coral);padding:2px 8px;border-radius:999px;vertical-align:middle;margin-left:4px}
.day-note{font-size:12px;color:var(--sub);line-height:1.45}
.day-row{padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.4}
.day-row:last-child{border-bottom:0}
.day-row b{display:block;color:var(--ink);font-weight:700}
.day-row span{color:var(--sub)}
.day-appt{display:flex;gap:9px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink)}
.day-appt:last-child{border-bottom:0}
.day-time{min-width:48px;font-weight:800;color:var(--primary);font-variant-numeric:tabular-nums}
.brief-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.bb-card{padding:14px 16px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.bb-card:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:0 6px 18px rgba(0,82,136,.10)}
.bb-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.bb-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.bb-ic{font-size:16px}
.bb-label{font-size:13px;font-weight:800;color:var(--ink);flex:1}
.bb-go{color:var(--primary);font-weight:800;opacity:.55}
.bb-card:hover .bb-go{opacity:1}
.bb-item{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--line)}
.bb-item:last-child{border-bottom:0}
.bb-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex:0 0 auto;background:var(--sub)}
.bb-dot.green{background:var(--green)}
.bb-dot.amber{background:var(--amber)}
.bb-dot.red{background:var(--coral)}
.bb-txt{flex:1;min-width:0}
.bb-k{font-size:11px;color:var(--sub);line-height:1.3}
.bb-v{font-size:13px;font-weight:700;color:var(--ink);line-height:1.35}
.bb-meta{font-size:10.5px;color:var(--sub);margin-top:1px}
@media(max-width:760px){.day-strip{grid-template-columns:1fr}}

/* ---- Worklist v2 ---- */
.wl-view{max-width:1360px}
.btn.tiny{font-size:10.5px;padding:5px 10px;border-radius:8px}
.wl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 12px;flex-wrap:wrap}
.wl-counts{display:flex;gap:7px;flex-wrap:wrap}
.wl-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.wl-main{display:flex;flex-direction:column;gap:10px;min-width:0}
.witem{cursor:pointer}
.witem.sel{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),0 8px 22px rgba(0,82,136,.12);transform:none}
.wi-body{flex:1;min-width:0}
.wi-arts{letter-spacing:2px}
.wl-side{position:sticky;top:14px;padding:18px;align-self:start;max-height:calc(100vh - 28px);overflow:auto}
.wl-side-empty{font-size:12.5px;color:var(--sub);line-height:1.5;padding:8px 2px}
.wl-side-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.wl-side-head h3{font-size:16px;font-weight:800;line-height:1.3;margin:1px 0}
.wl-sec{margin-bottom:16px}
.wl-sec h4{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--primary);margin:0 0 9px;display:flex;align-items:center;gap:7px}
.wl-hint{font-size:10px;font-weight:600;color:var(--sub);text-transform:none;letter-spacing:0}
.art-chip{display:flex;gap:10px;align-items:center;padding:9px 11px;background:var(--mist);border:1px solid var(--line);border-radius:11px;margin-bottom:8px}
.art-ic{font-size:20px;flex:0 0 auto}
.art-txt{flex:1;min-width:0}
.art-name{font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.3}
.art-sub{font-size:10.5px;color:var(--sub);margin-top:1px}
.art-status{color:#8A6210;font-weight:700}
.art-btns{display:flex;gap:5px;flex:0 0 auto}
.au-row{display:grid;grid-template-columns:88px 1fr;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:12px}
.au-row:last-child{border-bottom:0}
.au-k{font-weight:800;color:var(--sub);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;padding-top:1px}
.au-v{color:var(--ink);line-height:1.45;min-width:0}
.au-log{margin:0;padding-left:15px;display:flex;flex-direction:column;gap:3px}
.au-log li{font-size:11.5px;color:var(--sub);line-height:1.4}
.au-log li b{color:var(--ink)}
.wl-route{display:flex;gap:7px;margin-top:10px}
.wl-route select{flex:1;min-width:0;font-size:12px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}
.wl-side-foot{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap}
.wl-side-foot .btn{flex:1}
.nt-l{display:block;font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--primary);margin:12px 0 5px}
.nt-l:first-child{margin-top:0}
.nt-in{width:100%;font-size:13px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}
.art-modal{position:fixed;inset:0;background:rgba(11,30,45,.55);backdrop-filter:blur(3px);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.art-box{background:#fff;border-radius:16px;width:min(720px,100%);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.35);overflow:hidden}
.art-box-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);font-weight:700;font-size:13.5px}
.art-frame{flex:1;width:100%;border:0;background:#fff;min-height:360px}
.art-box-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-top:1px solid var(--line)}
@media(max-width:900px){.wl-layout{grid-template-columns:1fr}.wl-side{position:static;max-height:none}}

/* ---- Comms v2: per-person plan + Communication Builder ---- */
.cm-person{margin-bottom:6px}
.cm-person-head{display:flex;align-items:center;gap:10px;margin:12px 2px 8px}
.cm-avatar{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff;background:var(--primary)}
.cm-avatar.gold{background:var(--gold,#B58A2E)}.cm-avatar.slate{background:#5A6B7B}.cm-avatar.teal{background:#2E7D8A}
.cm-person-name{font-size:13.5px;font-weight:800;color:var(--ink);line-height:1.2}
.cm-person-role{font-size:11px;color:var(--sub)}
.cm-item{align-items:center}
.cm-ic{font-size:20px;flex:0 0 auto;line-height:1}
.cm-ic.big{font-size:24px}
.cm-item .wmeta{margin-top:3px;flex-wrap:wrap}
.cm-b-sub{font-size:12px;color:var(--sub);margin:-6px 0 14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cm-purpose{font-size:12.5px;color:var(--ink);line-height:1.5;background:var(--mist);border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:10px;padding:10px 12px}
.cm-steps{margin:0;padding:0;list-style:none;counter-reset:cm;display:flex;flex-direction:column;gap:8px}
.cm-steps li{position:relative;padding-left:30px;counter-increment:cm;font-size:12px;line-height:1.35}
.cm-steps li::before{content:counter(cm);position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.cm-steps li b{display:block;color:var(--ink);font-size:12.5px}
.cm-steps li span{color:var(--sub)}
.cm-outline{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.cm-outline li{font-size:12px;color:var(--sub);line-height:1.4}
.cm-ctx{width:100%;font-size:12.5px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);resize:vertical;font-family:inherit;line-height:1.45}
.cm-preview{margin:0;max-height:180px;overflow:auto;background:var(--mist);border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:11px;line-height:1.5;color:var(--ink);white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.cm-fmt-row{display:flex;align-items:center;gap:10px}
.cm-fmt-row .nt-l{margin:0;flex:0 0 auto}.cm-fmt-row .nt-in{flex:1}

/* ---- News v2: layout, metrics/trend, Ninja digest, sources follow/manage ---- */
.nl-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}
.nl-main{min-width:0}
.nl-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:14px;align-self:start}
.nmet-card{margin-bottom:14px}
.nmet-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.nmet-net{display:flex;align-items:center;gap:10px}
.nmet-net-v{font-size:19px;font-weight:800;padding:6px 12px;border-radius:12px}
.nmet-net-l{font-size:10.5px;color:var(--sub);line-height:1.25;text-transform:uppercase;letter-spacing:.04em}
.nmet-net-l span{font-weight:700;color:var(--ink);text-transform:none;letter-spacing:0}
.nmet-spark{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.nspark{display:block}
.nmet-spark-l{font-size:9.5px;color:var(--sub);text-transform:uppercase;letter-spacing:.04em}
.nmet-counts{display:flex;gap:7px;flex-wrap:wrap;margin-left:auto}
.chip.nc-cat{background:var(--mist);color:var(--primary);font-weight:700}
.chip.prov{background:#E4F4EC;color:var(--green);font-size:9.5px;font-weight:700}
.nm .prov,.nsrc-sub .prov{color:var(--green);font-weight:700}
/* Ninja digest card */
.ndig-card{margin-bottom:14px;border-left:3px solid var(--primary)}
.ndig-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.ndig-range{font-size:11px;font-weight:700;color:var(--sub)}
.ndig-head-line{font-size:14px;font-weight:700;color:var(--ink);line-height:1.4;margin-bottom:8px}
.ndig-list{margin:0 0 10px;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.ndig-list li{font-size:12.5px;color:var(--sub);line-height:1.45}
.ndig-foot{border-top:1px solid var(--line);padding-top:11px}
/* segmented range control */
.seg{display:inline-flex;background:var(--mist);border-radius:10px;padding:3px;gap:2px}
.seg-b{padding:6px 12px;border-radius:8px;font-size:12px;font-weight:700;color:var(--sub);transition:all .18s var(--ease)}
.seg-b.on{background:#fff;color:var(--primary);box-shadow:var(--shadow)}
/* feed */
.nfeed-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.ncat-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.nc-act{white-space:nowrap}
/* sources panel */
.nsrc-card{padding:16px}
.nsrc-sec{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--sub);margin:12px 0 8px}
.nsrc-sec:first-of-type{margin-top:10px}
.nsrc-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.nsrc-row:last-of-type{border-bottom:0}
.nsrc-tx{flex:1;min-width:0}
.nsrc-nm{font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.3}
.nsrc-sub{font-size:10.5px;color:var(--sub);margin-top:2px}
.nsrc-btn{flex-shrink:0;font-size:11px;padding:6px 11px}
.nl-plug{padding:14px}
@media(max-width:900px){.nl-grid{grid-template-columns:1fr}.nl-side{position:static}}

/* ---------- Personal Journal (#1) ---------- */
.jr-lede{background:linear-gradient(135deg,var(--card) 0%,var(--card2) 100%)}
.jr-capture{margin-top:14px}
.jr-capture h3{margin:0 0 10px}
.jr-ta{width:100%;box-sizing:border-box;background:var(--card2);border:1px solid var(--line);border-radius:10px;color:var(--ink);font:inherit;font-size:14px;padding:12px;resize:vertical;min-height:64px}
.jr-ta:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}
.jr-kindrow{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.jr-kpill{font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--sub);cursor:pointer;transition:all .12s}
.jr-kpill:hover{border-color:var(--primary);color:var(--ink)}
.jr-kpill.on{background:var(--primary);border-color:var(--primary);color:#fff}
.jr-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.jr-hint{font-size:12px;color:var(--sub);margin-top:10px}
.jr-logcard h3{display:flex;align-items:center;gap:8px;margin:0 0 12px}
.jr-feed{display:flex;flex-direction:column;gap:2px;max-height:420px;overflow:auto}
.jr-entry{display:flex;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line)}
.jr-entry:last-child{border-bottom:none}
.jr-ic{font-size:18px;flex-shrink:0;width:26px;text-align:center}
.jr-main{flex:1;min-width:0}
.jr-top{display:flex;align-items:center;gap:9px;margin-bottom:5px;flex-wrap:wrap}
.jr-kind{font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:6px;background:var(--card2);color:var(--sub)}
.jr-kind.k-concern{background:color-mix(in srgb,#b45 22%,transparent);color:#c66}
.jr-kind.k-goal{background:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary)}
.jr-kind.k-reflection{background:color-mix(in srgb,#7a5 20%,transparent);color:#7a5}
.jr-kind.k-win{background:color-mix(in srgb,var(--amber) 26%,transparent);color:var(--amber)}
.jr-when{font-size:11.5px;color:var(--sub)}
.jr-routed{font-size:11px;font-weight:600;color:#7a5}
.jr-text{font-size:14px;line-height:1.5;color:var(--ink)}
.jr-acts{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.jr-link{background:none;border:none;padding:0;font:inherit;font-size:12.5px;font-weight:600;color:var(--primary);cursor:pointer}
.jr-link:hover{text-decoration:underline}
.jr-about{padding-top:6px}
.jr-about-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:22px 4px 6px;padding-top:16px;border-top:1px dashed var(--line)}
.jr-about-h>span:first-child{font-size:16px;font-weight:800;color:var(--ink)}
.jr-about-sub{font-size:12px;color:var(--sub)}

/* ---------- #2: persistent context-aware right rail ---------- */
.railr{position:relative;flex:0 0 var(--railw,344px);width:var(--railw,344px);background:var(--card);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;transition:flex-basis .24s var(--ease),width .24s var(--ease)}
.railr.rail-drag{transition:none}
.railr-scroll{flex:1;overflow-y:auto;padding:16px}
.railr-body{display:flex;flex-direction:column;gap:14px}
/* drag-to-resize handle on the content-facing edge */
.rail-resize{position:absolute;left:-4px;top:0;bottom:0;width:9px;cursor:col-resize;z-index:6}
.rail-resize::after{content:'';position:absolute;left:3px;top:0;bottom:0;width:2px;background:transparent;transition:background .15s}
.rail-resize:hover::after,.railr.rail-drag .rail-resize::after{background:var(--primary)}
body.rail-resizing{cursor:col-resize;user-select:none}
/* collapse chevron (visible when the rail is open) */
.rail-collapse{position:absolute;top:12px;right:14px;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:17px;line-height:1;color:var(--sub);background:var(--mist);border:1px solid var(--line);z-index:7;transition:background .15s,color .15s}
.rail-collapse:hover{background:#fff;color:var(--ink)}
/* thin closed rail: a vertical "Ninja" line with the icon anchored at the bottom */
.rail-reopen{display:none}
body.rail-collapsed .railr{flex-basis:52px;width:52px}
body.rail-collapsed .railr-scroll,body.rail-collapsed .rail-collapse,body.rail-collapsed .rail-resize{display:none}
body.rail-collapsed .rail-reopen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:14px;padding:16px 0 20px;cursor:pointer;background:linear-gradient(180deg,#fff,var(--mist))}
body.rail-collapsed .rail-reopen:hover .rr-orb{transform:scale(1.08)}
.rail-reopen .rr-lbl{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11.5px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--sub)}
.rail-reopen .rr-orb{width:38px;height:38px;border-radius:11px;overflow:hidden;display:grid;place-items:center;background:var(--deep);box-shadow:var(--shadow);transition:transform .18s var(--ease)}
.rail-reopen .rr-orb img{width:28px;height:28px}
.rail-reopen .rr-badge{position:absolute;top:12px;left:50%;transform:translateX(-50%);min-width:20px;height:20px;padding:0 5px;border-radius:11px;background:var(--amber);color:#3a2a00;font-size:11px;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 8px rgba(242,169,59,.5)}
/* proactive insight notifications in the dock */
.rl-insights{display:flex;flex-direction:column;gap:8px;border:1px solid color-mix(in srgb,var(--amber) 32%,var(--line));border-radius:12px;padding:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--amber) 8%,#fff),#fff)}
.rl-ins-head{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;color:var(--ink)}
.rl-ins-head .rl-ins-count{margin-left:auto;font-size:10px;font-weight:800;color:#8a6210;background:#FBF0DB;border-radius:20px;padding:2px 8px}
.rl-ins-pulse{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 0 rgba(242,169,59,.6);animation:insPulse 1.8s infinite}
@keyframes insPulse{0%{box-shadow:0 0 0 0 rgba(242,169,59,.55)}70%{box-shadow:0 0 0 7px rgba(242,169,59,0)}100%{box-shadow:0 0 0 0 rgba(242,169,59,0)}}
.rl-ins{display:flex;align-items:flex-start;gap:9px;text-align:left;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .05s}
.rl-ins:hover{border-color:var(--primary);box-shadow:0 4px 14px rgba(0,82,136,.1)}
.rl-ins:active{transform:translateY(1px)}
.rl-ins.read{opacity:.62}
.rl-ins-ic{font-size:15px;line-height:1.3;flex:0 0 auto}
.rl-ins-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}
.rl-ins-kind{font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--sub)}
.rl-ins-t{font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.3}
.rl-ins-d{font-size:11px;color:var(--sub);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rl-ins-go{flex:0 0 auto;align-self:center;font-size:11px;font-weight:800;color:var(--primary)}
/* Docked Ask Ninja (default rail content on every view) */
.rl-dock{display:flex;flex-direction:column;gap:12px}
.rl-head{display:flex;align-items:center;gap:10px}
.rl-orb{width:34px;height:34px;border-radius:10px;overflow:hidden;flex:0 0 auto;display:grid;place-items:center;background:var(--deep)}
.rl-orb img{width:26px;height:26px}
.rl-h-t{line-height:1.25;min-width:0}
.rl-h-t b{display:block;font-size:14px;font-weight:800;color:var(--ink)}
.rl-h-t span{font-size:11px;color:var(--sub)}
.rl-tuned{font-size:10.5px;color:var(--sub);background:var(--mist,#F4F7FA);border:1px solid var(--line,#E3E9EF);border-radius:8px;padding:5px 9px;line-height:1.4;cursor:default}
.rl-tuned b{color:var(--ink);font-weight:800}
.rl-hint{font-size:11.5px;color:var(--sub);line-height:1.45}
.rl-chips{display:flex;flex-direction:column;gap:8px}
.rl-chip{text-align:left;font-size:12.5px;line-height:1.4;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .05s}
.rl-chip:hover{border-color:var(--primary);box-shadow:0 4px 14px rgba(0,82,136,.1)}
.rl-chip:active{transform:translateY(1px)}
.rl-ask{display:flex;gap:8px;align-items:center;margin-top:2px}
.rl-ask input{flex:1;min-width:0;font-size:12.5px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-family:inherit}
.rl-ask input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,82,136,.12)}
.rl-open{align-self:flex-start;font-size:12px;font-weight:700;color:var(--primary);background:none;border:none;cursor:pointer;padding:2px 0}
.rl-open:hover{text-decoration:underline}
/* Detail hosted in the rail reuses the worklist side-panel typography */
.railr-body .wl-side-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.railr-body .wl-side-head h3{font-size:15px;font-weight:800;color:var(--ink);line-height:1.25}
/* On desktop the rail is the single home for contextual detail; retire the in-content pane. */
@media(min-width:1080px){.wl-layout{grid-template-columns:1fr}.wl-layout .wl-side{display:none}}
@media(max-width:1079px){.railr{display:none}}
