/* EMI Pulse — the hub landing (mission control). Shares china.css tokens; page-specific rules only. */
.pulse-wrap{display:flex;flex-direction:column;gap:12px;padding-bottom:28px;}
.ph-meta{font-size:11.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px;align-items:baseline;}
.ph-meta b{color:var(--ink-2);font-weight:600;}
.ph-lag{color:#b45309;font-weight:600;}

.p-row{display:grid;gap:10px;}
.p-row.r2{grid-template-columns:200px minmax(0,1fr);}
.p-row.r2b{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);}
@media(max-width:760px){.p-row.r2,.p-row.r2b{grid-template-columns:1fr;}}

.ptile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 15px;}
.ptile-h{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:6px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.ptile-h .dim{font-weight:400;text-transform:none;letter-spacing:0;color:var(--faint);}

/* Channel Pulse gauge */
.cp-val{font-size:34px;font-weight:750;line-height:1.1;font-variant-numeric:tabular-nums;}
.cp-val.pos{color:#047857;} .cp-val.neg{color:#b91c1c;} .cp-val.flat{color:#b45309;}
.cp-sub{font-size:11px;color:var(--muted);margin:2px 0 8px;}
.cp-drivers{font-size:10px;color:var(--faint);margin-top:6px;cursor:help;border-bottom:1px dotted var(--faint);display:inline-block;}

/* 60-second read tile (point form, matches News page's brief style) */
.pl-lead{font-size:13.5px;font-weight:650;line-height:1.45;color:var(--ink);margin-bottom:7px;}
.pl-pts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;}
.pl-pts li{position:relative;padding-left:14px;font-size:12px;line-height:1.5;color:var(--ink-2);}
.pl-pts li::before{content:"";position:absolute;left:2px;top:7px;width:4px;height:4px;border-radius:50%;background:var(--blue);}
.pl-pts b{color:var(--ink);font-weight:700;}
.pl-more{margin-top:8px;}
.pl-more a{font-size:11px;color:var(--blue);text-decoration:none;font-weight:600;}
.pl-more a:hover{text-decoration:underline;}

/* Category Heat table */
.ch-table{width:100%;border-collapse:collapse;font-size:12px;}
.ch-table th{text-align:left;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);padding:0 8px 6px 0;border-bottom:1px solid var(--line);}
.ch-table td{padding:6px 8px 6px 0;border-bottom:1px solid var(--line-2);vertical-align:middle;}
.ch-row{cursor:pointer;}
.ch-row:hover td{background:var(--line-2);}
.ch-row:hover .ch-lbl{color:var(--blue);}
.ch-lbl{font-weight:650;color:var(--ink);}
.ch-parent{font-size:9.5px;color:var(--faint);display:block;font-weight:400;}
.ch-n{font-variant-numeric:tabular-nums;color:var(--ink-2);}
.ch-dir{font-family:ui-monospace,monospace;font-size:11px;font-weight:700;white-space:nowrap;}
.ch-dir.tailwind{color:#047857;} .ch-dir.headwind{color:#b91c1c;} .ch-dir.watch{color:#b45309;}
.ch-fwd{font-variant-numeric:tabular-nums;color:var(--muted);}
.ch-fwd.pos{color:#047857;} .ch-fwd.neg{color:#b91c1c;}
.ch-gap{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#b45309;background:#fffbeb;border:1px solid #fcd34d;border-radius:4px;padding:1px 6px;white-space:nowrap;}

/* Action window */
.aw-list{display:flex;flex-direction:column;gap:7px;}
.aw-item{display:flex;gap:8px;align-items:baseline;font-size:11.5px;color:var(--ink-2);}
.aw-badge{font-size:9.5px;font-weight:700;border-radius:5px;padding:2px 8px;white-space:nowrap;flex:none;}
.aw-badge.show{background:#eff6ff;color:#1d4ed8;}
.aw-badge.stale{background:#fffbeb;color:#b45309;}
.aw-badge.theme{background:#f5f6ff;color:#4338ca;}
.aw-empty{font-size:11.5px;color:var(--faint);font-style:italic;}

/* line-card exposures (KG walk) */
.exp-tile{border-left:3px solid var(--amber);}
.exp-list{display:flex;flex-direction:column;gap:11px;}
.exp{padding:9px 11px;background:var(--bg);border:1px solid var(--line);border-radius:9px;cursor:pointer;transition:border-color .12s;}
.exp:hover{border-color:var(--blue);}
.exp-chain{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;margin-bottom:6px;}
.exp-node{font-weight:600;border-radius:6px;padding:2px 9px;white-space:nowrap;}
.exp-node.driver{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;}
.exp-node.comp{background:#f1f5f9;color:var(--ink);}
.exp-node.comp.tailwind{background:#ecfdf5;color:#047857;} .exp-node.comp.headwind{background:#fef2f2;color:#b91c1c;}
.exp-node.sup{background:#eff6ff;color:#1d4ed8;font-weight:700;}
.exp-arr{color:var(--faint);font-style:normal;font-size:12px;}
.exp-cls{font-size:9.5px;color:var(--faint);font-style:italic;}
.exp-read{font-size:12px;line-height:1.5;color:var(--ink-2);margin-bottom:5px;}
.exp-prov{font-size:10px;color:var(--muted);}
.exp-prov a{color:var(--blue);text-decoration:none;} .exp-prov a:hover{text-decoration:underline;}
.exp-trace{font-weight:600;}

/* line card strip */
.lc-strip{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.lc-k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);}
.lc-chip{font-size:11.5px;color:var(--ink-2);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:3px 9px;cursor:pointer;}
.lc-chip:hover{border-color:var(--blue);color:var(--blue);}
.lc-chip b{font-variant-numeric:tabular-nums;margin-left:3px;}
.lc-chip b.pos{color:#047857;} .lc-chip b.neg{color:#b91c1c;}
.lc-agg{margin-left:auto;font-size:10.5px;color:var(--muted);}
.lc-agg b{color:var(--ink-2);}

/* lens cards row (condensed) */
.lens-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px;}
.lens-mini{display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 13px;text-decoration:none;transition:border-color .12s,box-shadow .12s;}
.lens-mini:hover{border-color:var(--blue);box-shadow:0 4px 14px rgba(37,99,235,.08);}
.lens-mini-k{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);}
.lens-mini-t{font-size:13.5px;font-weight:700;color:var(--ink);}
.lens-mini-d{font-size:11px;color:var(--muted);line-height:1.4;}

/* digest strip (same spirit as News page's) */
.digest{display:flex;align-items:center;flex-wrap:wrap;gap:7px;}
.dg-lead{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-right:2px;}
.dg-tile{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:5px 11px;}
.dg-n{font-size:15px;font-weight:750;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1;}
.dg-l{font-size:10px;color:var(--muted);}

.nempty{padding:60px 20px;text-align:center;color:var(--muted);font-size:13px;}
.nempty code{background:var(--line-2);border-radius:5px;padding:2px 7px;font-size:12px;}

/* shared custom tooltip (no native title attrs) */
#ptip{position:fixed;z-index:400;display:none;max-width:280px;background:#0f172a;color:#f1f5f9;font-size:11.5px;line-height:1.5;border-radius:8px;padding:8px 11px;box-shadow:0 12px 30px rgba(15,23,42,.3);pointer-events:none;}
