/* KCED Foundation OS — control-room design system.
   Built on the KCED Foundation identity: warm paper, warm charcoal, navy seasoning,
   Tinos (Times) display, Jost body, hairlines, radius 0. Mono for operational numbers. */
:root{
  --paper:#F7F5F0; --paper-2:#EFEBE3; --paper-3:#E7E2D8;
  --ink:#23211E; --ink-2:#403C36; --ink-3:#6B655C;
  --navy:#2C3E5E; --navy-2:#3b5177; --navy-ink:#24344f;
  --gold:#8A6D3B; --line:#D7D1C6; --line-2:#C7C0B2;
  --ok:#3E6B4F; --warn:#9A6B1E; --bad:#8F3A34; --info:#2C3E5E;
  --sans:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --serif:'Tinos','Times New Roman',Times,serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --shadow:0 1px 0 rgba(35,33,30,.04);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}
.boot{padding:60px;font-family:var(--serif);font-size:20px;color:var(--ink-3)}
a{color:var(--navy);text-decoration:none}
button{font-family:var(--sans);cursor:pointer}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;line-height:1.15}
.eyebrow{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-weight:500}
.mono{font-family:var(--mono)}

/* ---------- App shell ---------- */
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.sidebar{background:var(--ink);color:#CFC9BE;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{padding:22px 22px 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.brand .mark{font-family:var(--serif);font-size:20px;color:#F7F5F0;letter-spacing:.01em}
.brand .sub{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8f887c;margin-top:4px}
.nav{padding:10px 0;flex:1}
.nav-sec{padding:14px 22px 6px;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#7a7468}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 22px;color:#CFC9BE;font-size:13.5px;border-left:2px solid transparent}
.nav a:hover{background:rgba(255,255,255,.04);color:#fff}
.nav a.active{background:rgba(255,255,255,.06);color:#fff;border-left-color:var(--gold)}
.nav a .ic{width:16px;text-align:center;opacity:.8;font-size:13px}
.nav .child{padding-left:40px;font-size:12.5px}
.sb-foot{padding:14px 22px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:#8f887c}
.sb-foot b{color:#CFC9BE;font-weight:500}
.sb-foot button{margin-top:8px;background:none;border:1px solid rgba(255,255,255,.16);color:#CFC9BE;padding:5px 10px;font-size:11px;width:100%}
.sb-foot button:hover{border-color:var(--gold);color:#fff}

.main{min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 30px;border-bottom:1px solid var(--line);background:var(--paper)}
.topbar .crumbs{font-size:12px;color:var(--ink-3)}
.topbar h1{font-size:26px;margin-top:2px}
.topbar .right{display:flex;gap:10px;align-items:center}
.content{padding:26px 30px 60px;max-width:1500px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:13px;border-radius:0}
.btn:hover{background:#000}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn.ghost:hover{border-color:var(--ink);background:var(--paper-2)}
.btn.sm{padding:5px 10px;font-size:12px}
.btn.gold{background:var(--gold);border-color:var(--gold)}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ---------- Cards / grid ---------- */
.grid{display:grid;gap:18px}
.card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.card .hd{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.card .hd h3{font-size:16px}
.card .bd{padding:16px 18px}
.card .bd.flush{padding:0}

.stat{background:#fff;border:1px solid var(--line);padding:16px 18px}
.stat .k{font-family:var(--mono);font-size:30px;font-weight:500;color:var(--ink);line-height:1}
.stat .l{margin-top:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.stat .d{margin-top:4px;font-size:12px;color:var(--ink-3)}
.stat.accent{border-top:2px solid var(--navy)}

/* ---------- Tables ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;font-weight:500;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:10px 14px;border-bottom:1px solid var(--line-2);background:var(--paper-2);position:sticky;top:0}
.tbl td{padding:10px 14px;border-bottom:1px solid var(--line)}
.tbl tr:hover td{background:var(--paper)}
.tbl .num{font-family:var(--mono);text-align:right}
.tbl .clickrow{cursor:pointer}
.tbl-wrap{overflow:auto;max-height:70vh}

/* ---------- Badges / pills ---------- */
.badge{display:inline-block;font-size:10.5px;letter-spacing:.04em;padding:2px 8px;border:1px solid var(--line-2);background:var(--paper-2);color:var(--ink-2);text-transform:uppercase;font-weight:500;white-space:nowrap}
.badge.ok{color:var(--ok);border-color:#bcd3c3;background:#eef4ef}
.badge.warn{color:var(--warn);border-color:#e2cfa5;background:#f6efe0}
.badge.bad{color:var(--bad);border-color:#e0b7b3;background:#f6e9e7}
.badge.info{color:var(--navy);border-color:#b9c4d6;background:#eaeef5}
.badge.gold{color:var(--gold);border-color:#ddc9a0;background:#f4ecdb}
.badge.dot::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:middle}

/* ---------- Toolbar / filters ---------- */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.toolbar .spacer{flex:1}
input,select,textarea{font-family:var(--sans);font-size:13px;padding:8px 10px;border:1px solid var(--line-2);background:#fff;color:var(--ink);border-radius:0}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy)}
.search{min-width:280px}
label.fld{display:block;margin-bottom:12px}
label.fld .lb{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}
label.fld input,label.fld select,label.fld textarea{width:100%}

/* ---------- Drawer ---------- */
.scrim{position:fixed;inset:0;background:rgba(35,33,30,.32);z-index:40}
.drawer{position:fixed;top:0;right:0;height:100vh;width:520px;max-width:92vw;background:var(--paper);border-left:1px solid var(--line-2);z-index:41;display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(35,33,30,.12)}
.drawer .dhd{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start}
.drawer .dbd{padding:20px 22px;overflow-y:auto;flex:1}
.drawer .x{background:none;border:none;font-size:22px;color:var(--ink-3);line-height:1}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;font-size:13px;margin-bottom:16px}
.kv dt{color:var(--ink-3);font-size:12px}
.kv dd{margin:0;color:var(--ink)}

/* ---------- Empty / loading ---------- */
.empty{padding:50px 20px;text-align:center;color:var(--ink-3)}
.empty .big{font-family:var(--serif);font-size:20px;color:var(--ink-2);margin-bottom:6px}
.spinner{padding:40px;text-align:center;color:var(--ink-3);font-size:13px}
.section-title{display:flex;align-items:baseline;gap:12px;margin:26px 0 12px}
.section-title h2{font-size:20px}
.hint{font-size:12px;color:var(--ink-3)}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--ink)}
.login{background:var(--paper);width:400px;max-width:92vw;padding:38px 34px;border:1px solid var(--line-2)}
.login h1{font-size:26px;margin-bottom:4px}
.login .sub{color:var(--ink-3);font-size:13px;margin-bottom:24px}
.login .err{background:#f6e9e7;border:1px solid #e0b7b3;color:var(--bad);padding:9px 12px;font-size:12.5px;margin-bottom:14px}
.login .hintbox{margin-top:18px;font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--line);padding-top:12px}

/* ================= VISUAL PAGEMAP / FLATPLAN ================= */
.pm-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;background:#fff;border:1px solid var(--line)}
.pm-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--ink-2);align-items:center}
.pm-legend .sw{display:inline-flex;align-items:center;gap:6px}
.pm-legend .chip{width:12px;height:12px;display:inline-block;border:1px solid rgba(0,0,0,.15)}
.k-editorial{background:#eef4ef} .k-advertising{background:#f4ecdb} .k-sponsored{background:#eaeef5}
.k-visual{background:#efe7f2} .k-empty{background:#f0ede7}
.b-editorial{border-left:3px solid var(--ok)} .b-advertising{border-left:3px solid var(--gold)}
.b-sponsored{border-left:3px solid var(--navy)} .b-visual{border-left:3px solid #6b4a7a} .b-empty{border-left:3px solid var(--line-2)}

.flatplan{display:flex;flex-direction:column;gap:18px}
.spread{display:flex;gap:0;align-items:stretch}
.spread .spread-lbl{writing-mode:vertical-rl;transform:rotate(180deg);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:0 6px;display:flex;align-items:center}
.pages{display:flex;gap:2px;background:var(--line-2);border:1px solid var(--line-2)}
.page{width:150px;height:200px;background:#fff;position:relative;display:flex;flex-direction:column;padding:8px;cursor:grab;user-select:none;transition:box-shadow .12s}
.page.dragover{outline:2px dashed var(--navy);outline-offset:-2px}
.page.dragging{opacity:.4}
.page .pnum{position:absolute;bottom:5px;right:7px;font-family:var(--mono);font-size:10px;color:var(--ink-3)}
.page .pslot{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.page .ptitle{font-family:var(--serif);font-size:13px;margin-top:6px;line-height:1.2;color:var(--ink)}
.page .pmeta{margin-top:auto;display:flex;gap:4px;flex-wrap:wrap}
.page .lock{position:absolute;top:6px;right:7px;font-size:11px;color:var(--ink-3)}
.page.locked{background:repeating-linear-gradient(45deg,#fff,#fff 8px,#faf7f1 8px,#faf7f1 10px)}
.page .warn-flag{position:absolute;top:5px;left:7px;color:var(--bad);font-size:12px}
.page .grp{position:absolute;top:0;left:0;right:0;height:4px}
.page .prod{font-size:9px;color:var(--ink-3);margin-top:3px}
.page.cover{outline:2px solid var(--ink);outline-offset:-1px}
.unplaced{background:#fff;border:1px solid var(--line);padding:14px}
.unplaced .item{padding:8px 10px;border:1px solid var(--line);margin-bottom:6px;font-size:12.5px;cursor:grab;background:var(--paper)}
.unplaced .item:hover{border-color:var(--navy)}
.pm-cols{display:grid;grid-template-columns:1fr 260px;gap:18px;align-items:start}
.cols-2{grid-template-columns:1fr 1fr}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-4{grid-template-columns:repeat(4,1fr)}
.right-rail{display:flex;flex-direction:column;gap:14px;position:sticky;top:20px}
.tag{font-size:11px;color:var(--ink-3)}
.inline-warn{background:#f6e9e7;border:1px solid #e0b7b3;color:var(--bad);padding:8px 12px;font-size:12px;margin-bottom:12px}
.pill-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
select.mini{padding:4px 6px;font-size:11px}

/* ================= LIVE DATA PULSE ================= */
.pulse-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.pulse-head .live{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ok);font-weight:500}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(62,107,79,.5);animation:pulsedot 1.8s infinite}
@keyframes pulsedot{0%{box-shadow:0 0 0 0 rgba(62,107,79,.45)}70%{box-shadow:0 0 0 9px rgba(62,107,79,0)}100%{box-shadow:0 0 0 0 rgba(62,107,79,0)}}
.pulse-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.hero{background:var(--ink);color:var(--paper);padding:22px 22px 18px;position:relative;overflow:hidden}
.hero .k{font-family:var(--mono);font-size:46px;font-weight:500;line-height:1;color:#fff}
.hero .l{margin-top:10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#b7b0a4}
.hero.today{background:var(--gold);color:#2a2013}
.hero.today .k{color:#2a2013}.hero.today .l{color:#5c4a2a}
.hero .delta{position:absolute;top:16px;right:18px;font-family:var(--mono);font-size:13px;background:rgba(255,255,255,.16);padding:2px 8px;border-radius:2px}
.hero .subl{margin-top:6px;font-family:var(--mono);font-size:11px;color:#9a9284;letter-spacing:.02em}
.hero.today .subl{color:#6a5836}
.pcount.subset{background:#faf8f3}
.pcount .of{font-family:var(--sans);color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}
.whatcounted{margin-top:14px;border:1px solid var(--line);background:#fff;padding:0}
.whatcounted summary{cursor:pointer;padding:12px 16px;font-size:12.5px;color:var(--ink-2);list-style:none}
.whatcounted summary::-webkit-details-marker{display:none}
.whatcounted summary::before{content:"▸ ";color:var(--ink-3)}
.whatcounted[open] summary::before{content:"▾ "}
.whatcounted[open] summary{border-bottom:1px solid var(--line)}
.bd-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:14px 16px}
.bd-row{display:flex;justify-content:space-between;font-size:12.5px;padding:4px 0;border-bottom:1px solid var(--line)}
.hero.flash{animation:flash 1.2s ease-out}
@keyframes flash{0%{box-shadow:inset 0 0 0 3px var(--ok)}100%{box-shadow:inset 0 0 0 0 transparent}}
.pulse-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.pcount{background:#fff;border:1px solid var(--line);padding:14px 15px}
.pcount .k{font-family:var(--mono);font-size:26px;line-height:1;color:var(--ink)}
.pcount .l{margin-top:7px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.pcount.alert{border-left:3px solid var(--warn)}
.pcount.alert.zero{border-left-color:var(--line-2)}
.pcount.alert .k{color:var(--warn)}
.pcount.alert.zero .k{color:var(--ink)}
.activity{font-size:13px}
.activity .row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.activity .row .when{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-3);white-space:nowrap}
.sync-ok{display:flex;gap:10px;align-items:baseline}
.refresh-btn{background:none;border:1px solid var(--line-2);padding:5px 10px;font-size:12px;color:var(--ink-2)}
.refresh-btn:hover{border-color:var(--ink)}

/* ================= AI TEAM COMMAND CENTER ================= */
.cc-attention{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:8px}
.cc-tile{background:#fff;border:1px solid var(--line);padding:14px 14px 12px;cursor:pointer;transition:border-color .12s,transform .06s}
.cc-tile:hover{border-color:var(--ink);transform:translateY(-1px)}
.cc-tile .k{font-family:var(--mono);font-size:28px;line-height:1;color:var(--ink)}
.cc-tile .l{margin-top:8px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.cc-tile.alert{border-left:3px solid var(--bad)}
.cc-tile.alert .k{color:var(--bad)}
.role-card .bd{padding:14px 15px}
.role-name{font-family:var(--serif);font-size:15px;padding-left:9px;border-left:3px solid var(--navy);margin-bottom:10px;line-height:1.15}
.role-counts{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--ink-3);margin-bottom:12px}
.role-counts span{display:flex;justify-content:space-between}
.role-counts b{font-family:var(--mono);color:var(--ink);font-weight:500}
.role-counts .od b{color:var(--bad)}

.brief{background:#fff;border:1px solid var(--line);padding:26px 28px;max-width:760px}
.brief-date{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--ink-3);margin-bottom:16px}
.brief-sec{font-family:var(--serif);font-size:18px;margin-bottom:8px}
.brief-list{margin:0 0 20px;padding-left:22px;font-size:14px;line-height:1.9}
.brief-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border-top:1px solid var(--line);padding-top:18px}
.brief-metrics .bm{text-align:left}
.brief-metrics .k{font-family:var(--mono);font-size:26px;color:var(--ink)}
.brief-metrics .l{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:4px}

.approval{display:flex;gap:16px;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-left:3px solid var(--warn);padding:14px 18px;margin-bottom:10px}
.approval .ap-kind{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--warn);font-weight:600}
.approval .ap-title{font-family:var(--serif);font-size:16px;margin:2px 0 4px}
.approval .ap-next{font-size:12.5px;color:var(--ink-2);margin-top:4px}
.approval .ap-actions{display:flex;gap:8px;flex-shrink:0}

/* ===================== AI Workforce — Work Console & Work Desk ===================== */
.wc { position: fixed; right: 18px; bottom: 18px; z-index: 900; width: 340px; font-family: var(--sans, 'Jost', system-ui, sans-serif); }
.wc-bar { width: 100%; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--line, #e3ded4);
  background: var(--ink, #23211e); color: #fff; border-radius: 12px; cursor: pointer; box-shadow: 0 8px 30px rgba(0,0,0,.22); }
.wc-brand { font-weight: 600; font-size: 13px; white-space: nowrap; }
.wc-badges { display: flex; gap: 6px; margin-left: auto; }
.wc-b { font-size: 11px; padding: 2px 7px; border-radius: 999px; background: rgba(255,255,255,.14); white-space: nowrap; }
.wc-b.alert { background: #b4472e; }
.wc-caret { opacity: .7; font-size: 11px; }
.wc-panel { background: var(--paper, #fbf9f4); border: 1px solid var(--line, #e3ded4); border-radius: 12px; margin-bottom: 8px;
  box-shadow: 0 12px 40px rgba(0,0,0,.2); overflow: hidden; }
.wc-head { display: flex; align-items: center; gap: 6px; padding: 10px 12px; border-bottom: 1px solid var(--line, #e3ded4); font-size: 14px; }
.wc-x { border: none; background: none; cursor: pointer; font-size: 16px; color: var(--muted, #8a8578); padding: 0 4px; }
.wc-tabs { display: flex; border-bottom: 1px solid var(--line, #e3ded4); }
.wc-tabs button { flex: 1; padding: 8px 4px; border: none; background: none; cursor: pointer; font-size: 12px; color: var(--muted, #8a8578); border-bottom: 2px solid transparent; }
.wc-tabs button.on { color: var(--ink, #23211e); border-bottom-color: var(--gold, #8a6d3b); font-weight: 600; }
.wc-body { padding: 12px; max-height: 46vh; overflow-y: auto; }
.wc-input, .wd-input { width: 100%; border: 1px solid var(--line, #e3ded4); border-radius: 8px; padding: 8px 10px; font: inherit; resize: vertical; background: #fff; }
.wc-actions { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.wc-note { margin-top: 10px; font-size: 12px; background: #fff; border: 1px solid var(--line, #e3ded4); border-left: 3px solid var(--gold, #8a6d3b); padding: 8px 10px; border-radius: 6px; }
.wc-ctx { font-size: 12px; color: var(--muted, #8a8578); margin-bottom: 6px; }
.wc-item { padding: 8px 0; border-bottom: 1px solid var(--line, #e3ded4); font-size: 13px; }
.wc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px; }
.wc-grid > div { background: #fff; border: 1px solid var(--line, #e3ded4); border-radius: 8px; padding: 8px; text-align: center; }
.wc-grid .k { font-size: 20px; font-weight: 600; } .wc-grid .l { font-size: 11px; color: var(--muted, #8a8578); }

.wd-intake { background: var(--paper, #fbf9f4); border: 1px solid var(--line, #e3ded4); border-radius: 12px; padding: 14px; margin-bottom: 20px; }
.wd-controls { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; align-items: center; }
.wd-controls select { border: 1px solid var(--line, #e3ded4); border-radius: 8px; padding: 6px 8px; font: inherit; background: #fff; }
.wd-understood { margin-top: 12px; background: #fff; border: 1px solid var(--line, #e3ded4); border-left: 3px solid var(--gold, #8a6d3b); border-radius: 8px; padding: 10px 12px; }
.wd-understood-actions { display: flex; gap: 10px; align-items: center; margin-top: 8px; }
.refpick { position: relative; display: inline-flex; gap: 4px; }
.refpop { position: absolute; bottom: 110%; left: 0; width: 320px; background: #fff; border: 1px solid var(--line, #e3ded4); border-radius: 10px; box-shadow: 0 12px 40px rgba(0,0,0,.18); padding: 8px; z-index: 20; }
.refpop input { width: 100%; border: 1px solid var(--line, #e3ded4); border-radius: 6px; padding: 6px 8px; font: inherit; margin-bottom: 6px; }
.refrow { display: block; width: 100%; text-align: left; border: none; background: none; padding: 6px; border-radius: 6px; cursor: pointer; font-size: 13px; }
.refrow:hover { background: var(--paper, #f4f1ea); }

.thread-msgs { display: flex; flex-direction: column; gap: 10px; }
.tmsg { border: 1px solid var(--line, #e3ded4); border-radius: 8px; padding: 8px 10px; font-size: 13px; background: #fff; }
.tmsg.sylvia { border-left: 3px solid var(--ink, #23211e); }
.tmsg.chief { border-left: 3px solid var(--gold, #8a6d3b); background: var(--paper, #fbf9f4); }
.tmsg-who { font-size: 11px; color: var(--muted, #8a8578); margin-bottom: 3px; }
.brief-card { border: 1px solid var(--line, #e3ded4); border-radius: 8px; padding: 10px 12px; background: #fff; }
.brief-understood { font-family: var(--serif, 'Tinos', serif); font-style: italic; margin-bottom: 8px; }
.artifact-row { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--line, #e3ded4); border-radius: 8px; padding: 10px 12px; background: #fff; margin-bottom: 8px; }
.ar-main { flex: 1; } .ar-side { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.ar-preview { font-size: 12px; color: var(--muted, #8a8578); margin-top: 4px; }
.funnel { display: flex; gap: 8px; flex-wrap: wrap; }
.fn { flex: 1; min-width: 80px; background: #fff; border: 1px solid var(--line, #e3ded4); border-radius: 8px; padding: 10px; text-align: center; }
.fn .k { font-size: 22px; font-weight: 600; } .fn .l { font-size: 11px; color: var(--muted, #8a8578); }
.vcheck, .chainrow { display: flex; gap: 10px; align-items: center; border: 1px solid var(--line, #e3ded4); border-radius: 8px; padding: 8px 10px; background: #fff; margin-bottom: 6px; }
.vc-main { flex: 1; } .vc-side { display: flex; gap: 6px; align-items: center; }
.pb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.pb-card { text-align: left; border: 1px solid var(--line, #e3ded4); border-radius: 10px; padding: 12px; background: #fff; cursor: pointer; }
.pb-card:hover { border-color: var(--gold, #8a6d3b); }
.pb-name { font-weight: 600; margin-bottom: 4px; }
@media (max-width: 640px) { .wc { width: calc(100vw - 24px); right: 12px; } }

/* ===================== Executive Home (Chief of Staff surface) ===================== */
.exec { max-width: 900px; margin: 0 auto; padding: 8px 0 60px; }
.exec-head { margin: 8px 0 22px; }
.exec-title { font-family: var(--serif, 'Tinos', serif); font-size: 40px; font-weight: 400; margin: 2px 0 0; letter-spacing: -0.01em; }
.exec-cmd { background: var(--paper, #fbf9f4); border: 1px solid var(--line, #e3ded4); border-radius: 14px; padding: 16px; margin-bottom: 26px; }
.exec-cmd textarea { width: 100%; border: none; background: transparent; font: 400 20px/1.4 var(--serif, 'Tinos', serif); resize: vertical; outline: none; }
.exec-cmd textarea::placeholder { color: var(--muted, #b0a99c); }
.exec-cmd-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.exec-said { margin-top: 12px; padding: 10px 12px; background: #fff; border-left: 3px solid var(--gold, #8a6d3b); border-radius: 6px; font-size: 14px; }
.exec-said .eyebrow { display: block; margin-bottom: 2px; }
.exec-states { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 30px; }
.est { background: #fff; border: 1px solid var(--line, #e3ded4); border-radius: 12px; padding: 18px 16px; text-decoration: none; color: inherit; cursor: default; }
.est .k { font-size: 34px; font-weight: 600; line-height: 1; font-family: var(--serif, 'Tinos', serif); }
.est .l { font-size: 12px; color: var(--muted, #8a8578); margin-top: 8px; text-transform: uppercase; letter-spacing: .04em; }
.est.hot { border-color: #b4472e; cursor: pointer; } .est.hot .k { color: #b4472e; }
.est.warnt .k { color: #8a6d3b; }
.est.ghost { background: transparent; border-style: dashed; cursor: pointer; }
.exec-sec { margin-bottom: 30px; }
.exec-sec-h { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; border-bottom: 1px solid var(--line, #e3ded4); padding-bottom: 6px; }
.exec-sec-h h2 { font-family: var(--serif, 'Tinos', serif); font-weight: 400; font-size: 20px; margin: 0; }
.exec-card { display: flex; gap: 14px; align-items: center; padding: 14px 4px; border-bottom: 1px solid var(--line, #eee7db); }
.exec-card:last-child { border-bottom: none; }
.exec-card.blocked { opacity: .8; }
.ec-main { flex: 1; min-width: 0; }
.ec-title { font-size: 16px; font-weight: 500; }
.ec-side { display: flex; gap: 8px; align-items: center; flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end; }
.exec-team { margin-top: 10px; }
.team-row { display: flex; gap: 10px; flex-wrap: wrap; }
.team-chip { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--line, #e3ded4); border-left-width: 3px; border-radius: 8px; padding: 8px 14px; text-decoration: none; color: inherit; }
.tc-n { font-size: 13px; font-weight: 500; } .tc-c { font-size: 12px; color: var(--muted, #8a8578); }
.nav-more { display: block; width: 100%; text-align: left; background: none; border: none; cursor: pointer; color: var(--muted, #8a8578); font: inherit; font-size: 12px; padding: 10px 0 6px; text-transform: uppercase; letter-spacing: .06em; }
.nav-more:hover { color: var(--ink, #23211e); }
@media (max-width: 720px) { .exec-states { grid-template-columns: repeat(2, 1fr); } .exec-title { font-size: 32px; } }

/* ===================== Executive Home v2 — simplification overrides ===================== */
.exec-states { grid-template-columns: repeat(3, 1fr) !important; margin-bottom: 10px !important; }
.exec-reportlink { display: inline-block; margin: 2px 0 28px; font-size: 13px; color: var(--muted, #8a8578); text-decoration: none; }
.exec-reportlink:hover { color: var(--ink, #23211e); }
.exec-more { display: inline-block; margin-top: 10px; font-size: 13px; color: var(--muted, #8a8578); text-decoration: none; }
.exec-more:hover { color: var(--ink, #23211e); }
.exec-team-line { display: inline-block; margin-top: 6px; font-size: 13px; color: var(--muted, #8a8578); text-decoration: none; }
.exec-team-line:hover { color: var(--ink, #23211e); }
.nav-count { display: inline-block; margin-left: 8px; min-width: 18px; padding: 1px 6px; border-radius: 999px; background: #b4472e; color: #fff; font-size: 11px; line-height: 16px; text-align: center; }
@media (max-width: 720px) { .exec-states { grid-template-columns: repeat(3, 1fr) !important; } }

/* ===================== Publishing content-aware drawer ===================== */
.pp-divider { margin: 18px 0 10px; font-family: var(--sans,'Jost',sans-serif); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted,#8a8578); border-top: 1px solid var(--line,#e3ded4); padding-top: 12px; }
.pp-sec { border: 1px solid var(--line,#e3ded4); border-radius: 10px; margin-bottom: 8px; background: #fff; overflow: hidden; }
.pp-sec-h { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 12px; background: none; border: none; cursor: pointer; font: inherit; font-weight: 500; text-align: left; }
.pp-sec-h:hover { background: var(--paper,#faf8f3); }
.pp-sub { font-size: 11px; color: var(--muted,#8a8578); font-weight: 400; }
.pp-sec-b { padding: 4px 12px 14px; border-top: 1px solid var(--line,#eee7db); }
.pp-empty { padding: 14px; text-align: center; border: 1px dashed var(--line,#e3ded4); border-radius: 10px; }
.pp-picked { display: flex; align-items: center; gap: 8px; padding: 6px 10px; background: var(--paper,#faf8f3); border: 1px solid var(--line,#e3ded4); border-radius: 8px; font-size: 13px; }
.pp-pick { position: relative; }
.pp-pick input { width: 100%; }
.pp-res { display: block; width: 100%; text-align: left; border: none; background: none; padding: 6px 8px; border-radius: 6px; cursor: pointer; font-size: 13px; }
.pp-res:hover { background: var(--paper,#f4f1ea); }
.pp-person, .pp-asset, .pp-final { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--line,#eee7db); font-size: 13px; }
.pp-final:last-child, .pp-person:last-child, .pp-asset:last-child { border-bottom: none; }
.pp-asset-side { display: flex; gap: 8px; align-items: center; }
.pp-addbox { border: 1px solid var(--line,#e3ded4); border-radius: 8px; padding: 10px; margin-top: 8px; background: var(--paper,#faf8f3); }
.pp-chan { border: 1px solid var(--line,#eee7db); border-radius: 8px; padding: 8px 10px; margin-bottom: 6px; }
.pp-chan-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; font-size: 13px; }
.pp-chan-b { display: grid; grid-template-columns: 150px 1fr; gap: 8px; }
.pp-adnote, .pp-empty .hint { font-size: 12px; }
.pp-adnote { background: var(--paper,#faf8f3); border-left: 3px solid var(--gold,#8a6d3b); padding: 8px 10px; border-radius: 6px; margin-bottom: 12px; font-size: 12px; }
.linkx { border: none; background: none; color: var(--muted,#8a8578); cursor: pointer; font-size: 13px; }
.linkx:hover { color: var(--bad,#b4472e); }

/* ===================== Public Interest evaluation ===================== */
.pp-pi-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.pp-pi-grid .fld .lb { font-size: 11px; line-height: 1.2; }
.pp-pi-grid select { width: 100%; }
.pp-pi-score { margin: 10px 0 4px; font-size: 14px; }
@media (max-width: 560px) { .pp-pi-grid { grid-template-columns: repeat(3, 1fr); } }

/* Public-interest → eligibility gate */
.pp-gate { display: flex; flex-wrap: wrap; gap: 16px; margin: 12px 0 4px; padding: 12px; background: var(--paper-2,#f4f1ea); border: 1px solid var(--line,#e3ded4); border-radius: 8px; }
.pp-check { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.pp-check input { cursor: pointer; }

/* Locked rate card */
.pp-locked { padding: 14px 16px; background: var(--paper-2,#f4f1ea); border: 1px dashed var(--line-2,#cfc8ba); border-radius: 8px; font-size: 13px; color: var(--ink-2,#4a463d); }

/* Rate-card add buttons */
.pp-ratebtns { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }

/* Partner rows */
.pp-partner { border: 1px solid var(--line,#e3ded4); border-radius: 8px; padding: 12px; margin-bottom: 10px; background: var(--paper,#faf8f3); }
.pp-partner-h { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.pp-amts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 8px 0; }
.pp-amts .fld .lb { font-size: 11px; }
@media (max-width: 640px) { .pp-amts { grid-template-columns: repeat(2, 1fr); } }

/* Internal economics grid */
.pp-econ { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pp-econ .fld .lb { font-size: 11px; line-height: 1.2; }
@media (max-width: 640px) { .pp-econ { grid-template-columns: repeat(2, 1fr); } }

/* AI advisory banner */
.pp-advisory { font-size: 12px; padding: 8px 10px; margin-bottom: 10px; background: #fbf3e0; border: 1px solid #e6d9b0; border-radius: 8px; color: #6b5a2a; }

/* Board review rows */
.pp-review { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 8px 10px; border: 1px solid var(--line,#e3ded4); border-radius: 8px; margin-bottom: 6px; font-size: 13px; }

/* Public interest review report */
.pp-report { border: 1px solid var(--line,#e3ded4); border-radius: 10px; padding: 14px; background: var(--paper,#faf8f3); }
.pp-report-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.pp-report-row { display: flex; justify-content: space-between; font-size: 13px; padding: 4px 0; border-top: 1px solid var(--line,#eee); }
.pp-report-row span { color: var(--ink-3,#8a8578); }

/* Sponsor / partner pipeline */
.pp-pipeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; overflow-x: auto; }
.pp-pipe-col { min-width: 150px; background: var(--paper-2,#f4f1ea); border: 1px solid var(--line,#e3ded4); border-radius: 10px; padding: 8px; }
.pp-pipe-h { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.pp-pipe-card { background: var(--paper,#fff); border: 1px solid var(--line,#e3ded4); border-radius: 8px; padding: 8px; margin-bottom: 8px; display: flex; flex-direction: column; gap: 4px; }
@media (max-width: 900px) { .pp-pipeline { grid-template-columns: repeat(2, 1fr); } }
