
  * { box-sizing:border-box; }
  body { background:var(--bg); color:var(--text); font:14px/1.5 -apple-system,"Segoe UI",Roboto,Helvetica,sans-serif; margin:0; padding:18px; }
  @media (min-width:1100px){ body{ padding:24px max(34px,calc((100vw - 1340px)/2)); } }
  a { text-decoration:none; color:inherit; }
  h1 { font-size:21px; margin:0; }
  h2 { font-size:15px; margin:30px 0 4px; display:flex; align-items:center; gap:8px; }
  h2 .idx { font-size:11px; color:var(--muted); border:1px solid var(--line); border-radius:6px; padding:1px 6px; font-weight:600; }
  h3.cat { font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin:20px 0 9px; border-bottom:1px solid var(--line); padding-bottom:5px; }
  .muted { color:var(--muted); } .sm { font-size:12px; }
  .pos { color:var(--up); } .neg { color:var(--down); }
  .topline { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; }
  .panel { background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:6px; margin-top:8px; }
  .panel.pad { padding:14px; }
  .story { font-size:14.5px; margin:8px 0 4px; line-height:1.5; }
  .story b { font-weight:650; }
  .tagline { color:var(--muted); font-size:12.5px; max-width:90ch; margin:4px 0 0; }
  .sub { color:var(--muted); font-size:12.5px; margin:2px 0 8px; max-width:92ch; }
  .chartbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin:8px 0 2px; }
  .tabs { display:inline-flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
  .tabs button,.tabs .tab { border:0; background:var(--panel); color:var(--muted); font-size:12px; padding:5px 11px; cursor:pointer; border-right:1px solid var(--line); }
  .tabs button:last-child { border-right:0; }
  .tabs button.on { background:var(--panel2); color:var(--text); font-weight:650; }
  .tabs .rangeN { width:74px; background:var(--panel); color:var(--text); border:0; border-left:1px solid var(--line); padding:5px 8px; font-size:12px; }
  .ts { overflow-x:auto; }
  table { border-collapse:collapse; width:100%; font-size:13px; }
  th,td { padding:6px 9px; border-bottom:1px solid var(--line); white-space:nowrap; }
  th { color:var(--muted); font-weight:500; text-align:right; cursor:pointer; user-select:none; }
  th:first-child,td:first-child { text-align:left; }
  td.num,th.num { text-align:right; font-variant-numeric:tabular-nums; }
  th.sel { color:var(--text); }
  .bname { font-weight:600; cursor:pointer; }
  .bname:hover { color:var(--link); }
  .dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px; vertical-align:middle; }
  #chart { height:420px; width:100%; }
  .legend { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:10px; }
  .lchip { display:inline-flex; align-items:center; gap:6px; font-size:12px; cursor:pointer; color:var(--text); }
  .lchip.off { opacity:.34; }
  .lchip .lv { color:var(--muted); font-variant-numeric:tabular-nums; }
  .leg-toggle { font-size:11px; padding:2px 8px; border:1px solid var(--line); border-radius:6px; background:var(--panel2); color:var(--muted); cursor:pointer; margin-right:6px; }
  .leg-toggle:hover { color:var(--text); border-color:var(--muted); }
  .btbl-cats { display:flex; flex-wrap:wrap; gap:5px; margin:6px 0; }
  .bcat-chip { font-size:11.5px; padding:2px 10px; border:1px solid var(--line); border-radius:999px; background:var(--panel2); color:var(--muted); cursor:pointer; }
  .bcat-chip.on { background:var(--link); border-color:var(--link); color:#fff; }
  .bcat-chip:hover:not(.on) { border-color:var(--muted); color:var(--text); }
  .toolbar { display:flex; align-items:center; gap:10px; margin:10px 0 4px; }
  .toolbar .lbl { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
  .cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:13px; }
  .card { background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--c,#888); border-radius:10px; padding:12px 13px; cursor:pointer; transition:border-color .15s; }
  .card:hover { border-color:var(--muted); }
  .card .nm { font-weight:650; font-size:14px; }
  .card .meta { color:var(--muted); font-size:11.5px; margin:3px 0 6px; }
  .card .th { font-size:12px; line-height:1.45; color:var(--text); opacity:.9; margin-bottom:9px; min-height:50px; }
  .card .perf { display:flex; align-items:center; gap:16px; }
  .card .kpi .v { font-size:16px; font-weight:650; font-variant-numeric:tabular-nums; }
  .card .kpi .k { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .card .spark { margin-left:auto; }
  .detail { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:13px 15px; margin-top:12px; scroll-margin-top:14px; }
  .detail h4 { margin:0 0 4px; font-size:15px; display:flex; align-items:center; gap:8px; }
  .detail .th { color:var(--text); opacity:.92; font-size:12.5px; line-height:1.5; margin:0 0 9px; max-width:95ch; }
  .kpirow { display:flex; flex-wrap:wrap; gap:18px; margin:8px 0 10px; }
  .kpirow .k { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .kpirow .v { font-size:15px; font-weight:650; font-variant-numeric:tabular-nums; }
  .refline { font-size:12px; color:var(--muted); margin:2px 0 9px; }
  .why { color:var(--muted); font-size:12px; white-space:normal; max-width:46ch; }
  details > summary { cursor:pointer; font-size:12.5px; color:var(--muted); margin:6px 0; }
  .warn { display:inline-block; font-size:11px; padding:1px 7px; margin:2px 5px 2px 0; border-radius:7px; background:rgba(250,204,21,.12); border:1px solid rgba(250,204,21,.4); color:var(--warn); }
  .chip { display:inline-block; font-size:11px; padding:1px 7px; margin:0 4px 4px 0; border-radius:7px; background:var(--panel2); border:1px solid var(--line); color:var(--muted); }
  .clog { margin:6px 0 0; padding-left:18px; font-size:12px; color:var(--muted); }
  .clog li { margin:2px 0; }
  footer { color:var(--muted); font-size:11.5px; margin-top:26px; border-top:1px solid var(--line); padding-top:12px; max-width:95ch; }
  .pfx { color:var(--muted); }
  .asof { font-size:12px; color:var(--muted); margin-left:auto; }

  /* ---- Theme Rotation Desk ---- */
  .mctx { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; font-size:12.5px;
    background:var(--panel2); border:1px solid var(--line); border-radius:9px; padding:8px 12px; margin:6px 0 12px; }
  .mctx b { font-weight:650; }
  .mctx .mc-k { color:var(--muted); }
  .desk { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:13px; }
  .tcard { background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--tc,#888);
    border-radius:11px; padding:12px 13px 11px; scroll-margin-top:14px; transition:border-color .15s; }
  .tcard:hover { border-color:var(--muted); }
  .tcard .top { display:flex; align-items:center; gap:8px; }
  .tcard .nm { font-weight:660; font-size:14.5px; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .tcard .sc { font-size:23px; font-weight:720; font-variant-numeric:tabular-nums; line-height:1; }
  .tcard .sc small { font-size:11px; color:var(--muted); font-weight:500; }
  .tlabel { font-size:10px; font-weight:700; letter-spacing:.05em; padding:2px 7px; border-radius:6px; text-transform:uppercase; white-space:nowrap; }
  .treco { font-size:11px; font-weight:700; letter-spacing:.03em; padding:2px 9px; border-radius:7px; white-space:nowrap; }
  .tcard .subrow { display:flex; align-items:center; gap:10px; margin:8px 0 7px; font-size:12px; color:var(--muted); }
  .tcard .subrow .spark { margin-left:auto; }
  .cbar { display:flex; height:7px; border-radius:5px; overflow:hidden; background:var(--line); margin:7px 0 6px; }
  .cbar i { display:block; height:100%; }
  .clegend { display:flex; flex-wrap:wrap; gap:3px 11px; font-size:10.5px; color:var(--muted); margin-bottom:6px; }
  .clegend span b { color:var(--text); font-variant-numeric:tabular-nums; font-weight:600; }
  .clegend .sw { display:inline-block; width:8px; height:8px; border-radius:2px; margin-right:3px; vertical-align:middle; }
  .treason { font-size:11.5px; color:var(--text); opacity:.85; line-height:1.4; margin:2px 0 6px; }
  .tstats { display:flex; flex-wrap:wrap; gap:4px 6px; font-size:10.5px; }
  .tpill { background:var(--panel2); border:1px solid var(--line); border-radius:6px; padding:1px 6px; color:var(--muted); }
  .tpill b { color:var(--text); font-variant-numeric:tabular-nums; }
  .tcard details > summary { font-size:11.5px; margin:6px 0 0; }
  .tcard .why { font-size:11.5px; color:var(--muted); margin:5px 0 0; max-width:none; }
  .tmore > summary { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
    cursor:pointer; list-style:none; user-select:none; margin:6px 0 0; display:flex; align-items:center; gap:4px; }
  .tmore > summary::-webkit-details-marker { display:none; }
  .tmore > summary::before { content:'▾'; display:inline-block; transition:transform .15s; }
  .tmore[open] > summary::before { transform:rotate(-180deg); }
  .tflagrow { margin:2px 0 4px; }
  /* M7C-R12: split-tape chip on basket cards */
  .m7-split-chip { display:flex; align-items:flex-start; gap:5px; margin:4px 0;
    background:color-mix(in srgb,var(--warn) 10%,var(--panel2));
    border:1px solid color-mix(in srgb,var(--warn) 28%,var(--line));
    border-radius:6px; padding:4px 9px; font-size:11.5px; cursor:help; }
  .m7-split-chip .m7-split-icon { flex:none; }
  .m7-split-chip .l-en,.m7-split-chip .l-zh { color:var(--warn); font-weight:700; }
  .m7-split-chip .l-en b,.m7-split-chip .l-zh b { font-weight:700; }

  /* ---- rotation this week panel ---- */
  #rotation-this-week { background:var(--panel); border:1px solid var(--line); border-radius:13px; padding:14px 16px; margin-top:10px; }
  #rotation-this-week h2 { margin:0 0 8px; font-size:15px; }
  .rtw-verdict { font-size:13.5px; font-weight:600; margin-bottom:10px; }
  .rtw-gauges { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:8px; margin-bottom:10px; }
  .rtw-gauge { background:var(--panel2); border:1px solid var(--line); border-radius:9px; padding:8px 10px; }
  .rtw-gauge .gk { font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:4px; }
  .rtw-gauge .gv { font-size:17px; font-weight:700; font-variant-numeric:tabular-nums; }
  .rtw-gauge .gb { height:5px; border-radius:3px; background:var(--line); margin-top:5px; overflow:hidden; }
  .rtw-gauge .gb i { display:block; height:100%; border-radius:3px; background:var(--link); }
  .rtw-chip-row { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:6px; }
  .rtw-chip-row .rchip { display:inline-flex; align-items:center; gap:5px; font-size:12px; padding:3px 10px;
    border:1px solid var(--line); border-radius:999px; background:var(--panel2); cursor:pointer; }
  .rtw-chip-row .rchip:hover { border-color:var(--muted); }
  /* ---- 5-day rotation ---- */
  .rotwrap { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  @media (max-width:640px){ .rotwrap{ grid-template-columns:1fr; } }
  .rotcol { background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:10px 12px; }
  .rotcol h4 { margin:0 0 6px; font-size:13px; display:flex; align-items:center; gap:6px; }
  .rotrow { display:flex; align-items:center; gap:8px; padding:5px 0; border-top:1px solid var(--line); font-size:12.5px; }
  .rotrow:first-of-type { border-top:0; }
  .rotrow .rn { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .rotrow .rv { font-variant-numeric:tabular-nums; font-weight:650; }
  .rotrow .rk { font-size:10.5px; color:var(--muted); width:34px; text-align:right; }

  /* ---- impulse / extremes scorecards ---- */
  .scards { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:13px; }
  .scard { background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:13px 15px; }
  .scard .sk { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
  .scard .bigrow { display:flex; align-items:baseline; gap:14px; margin:7px 0 8px; }
  .scard .big { font-size:30px; font-weight:720; font-variant-numeric:tabular-nums; line-height:1; }
  .scard .big.dn { color:var(--down); } .scard .big.up { color:var(--up); }
  .scard .sublbl { font-size:11px; color:var(--muted); }
  .duo { display:flex; height:9px; border-radius:6px; overflow:hidden; background:var(--line); margin-top:4px; }
  .duo i { height:100%; display:block; }
  .scard .net { font-size:12.5px; font-variant-numeric:tabular-nums; margin-top:7px; }
  .scard.clk { cursor:pointer; transition:border-color .15s, transform .08s; }
  .scard.clk:hover { border-color:var(--muted); }
  .scard.clk:active { transform:translateY(1px); }
  .scm-hint { font-size:10.5px; color:var(--link); margin-top:9px; opacity:.9; }
  /* ---- scorecard detail popup ---- */
  .scmodal { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:200; display:none;
    align-items:flex-start; justify-content:center; padding:6vh 14px; }
  .scmodal.open { display:flex; }
  .scm-card { background:var(--panel); border:1px solid var(--line); border-radius:14px;
    box-shadow:0 24px 60px rgba(0,0,0,.45); width:min(760px,96vw); max-height:84vh; overflow:auto;
    padding:16px 18px 18px; position:relative; }
  .scm-x { position:absolute; top:10px; right:12px; background:none; border:0; color:var(--muted);
    font-size:17px; cursor:pointer; line-height:1; }
  .scm-x:hover { color:var(--text); }
  .scm-hd { font-size:16px; font-weight:740; margin:0 24px 2px 0; }
  .scm-sub { font-size:12px; color:var(--muted); margin:0 0 12px; }
  .scm-2col { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  .scm-3col { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
  @media (max-width:620px){ .scm-2col,.scm-3col { grid-template-columns:1fr; } }
  .scm-col { min-width:0; }
  .scm-colh { font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);
    padding-bottom:6px; border-bottom:1px solid var(--line); margin-bottom:2px; }
  .scm-colh b { color:var(--text); font-variant-numeric:tabular-nums; }
  .scm-colh.up { color:var(--up); } .scm-colh.dn { color:var(--down); }
  .scm-row { display:flex; align-items:center; gap:8px; padding:5px 2px; border-bottom:1px solid var(--line); font-size:12.5px; color:inherit; }
  .scm-row:last-child { border-bottom:0; }
  a.scm-row:hover { background:var(--panel2); }
  .scm-nm { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:620; }
  .scm-tk { color:var(--muted); font-weight:400; font-size:11px; margin-left:5px; }
  .scm-th { font-size:10.5px; color:var(--muted); border:1px solid var(--line); border-radius:5px;
    padding:0 6px; white-space:nowrap; max-width:130px; overflow:hidden; text-overflow:ellipsis; }
  a.scm-th:hover { color:var(--link); border-color:var(--link); }
  .scm-r { font-variant-numeric:tabular-nums; font-weight:700; min-width:46px; text-align:right; }
  .scm-empty { color:var(--muted); font-size:12px; padding:8px 2px; }
  /* ---- flow lens ---- */
  .fl-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin:11px 0 4px; }
  .fl-tile { background:var(--panel2); border:1px solid var(--line); border-radius:9px; padding:9px 11px; }
  .fl-k { font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:5px; }
  .fl-meter { height:7px; background:var(--line); border-radius:4px; overflow:hidden; margin:3px 0 5px; }
  .fl-meter span { display:block; height:100%; background:linear-gradient(90deg,var(--up),var(--warn)); }
  .fl-v { font-size:12.5px; } .fl-v b { font-weight:700; font-variant-numeric:tabular-nums; }
  .fl-chips { display:flex; flex-wrap:wrap; gap:4px; margin-top:4px; }
  .fl-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--muted); margin-right:5px; vertical-align:middle; }
  .fl-dot.warn { background:var(--warn); }
  .fl-legend { font-size:11px; color:var(--muted); margin:12px 0 6px; }
  .fl-cols { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:640px){ .fl-cols{ grid-template-columns:1fr; } }
  .fl-colh { font-weight:660; font-size:12px; margin-bottom:5px; padding-bottom:4px; border-bottom:1px solid var(--line); }
  .fl-row { display:flex; align-items:center; gap:8px; margin:4px 0; }
  .fl-stage { flex:0 0 13px; font-size:11px; text-align:center; }
  .fl-nm { flex:1; font-size:12.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .fl-bar { flex:0 0 64px; height:6px; background:var(--line); border-radius:4px; overflow:hidden; }
  .fl-bar span { display:block; height:100%; background:var(--muted); }
  .fl-rq { flex:0 0 28px; text-align:right; font-size:10.5px; color:var(--muted); font-variant-numeric:tabular-nums; }
  .fl-foot { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; margin-top:12px; padding-top:9px; border-top:1px solid var(--line); }
  .fl-verdict { font-size:12.5px; }
  .fl-more { font-size:11.5px; } .fl-more summary { color:var(--muted); cursor:pointer; }
  .fl-more[open] summary { color:var(--text); }

  /* ---- bell dropdown ---- */
  .bell { position:relative; }
  .bell-btn { background:var(--panel); border:1px solid var(--line); border-radius:9px; cursor:pointer;
    font-size:15px; line-height:1; padding:6px 9px; color:var(--text); position:relative; }
  .bell-btn:hover { border-color:var(--muted); }
  .bell-badge { position:absolute; top:-6px; right:-6px; background:var(--down); color:#fff; font-size:10px;
    font-weight:700; min-width:16px; height:16px; border-radius:9px; padding:0 4px; display:none;
    align-items:center; justify-content:center; }
  .bell-badge.on { display:flex; }
  .bell-menu { position:absolute; right:0; top:calc(100% + 8px); width:340px; max-width:86vw; max-height:60vh;
    overflow-y:auto; background:var(--panel); border:1px solid var(--line); border-radius:12px;
    box-shadow:0 18px 44px rgba(0,0,0,.34); padding:8px; z-index:60; display:none; }
  .bell-menu.open { display:block; }
  .bell-menu .bhd { font-size:12px; font-weight:650; padding:4px 6px 7px; display:flex; align-items:center; gap:6px; border-bottom:1px solid var(--line); }
  .bell-item { display:block; padding:8px 7px; border-radius:8px; border-bottom:1px solid var(--line); cursor:pointer; }
  .bell-item:last-child { border-bottom:0; }
  .bell-item:hover { background:var(--panel2); }
  .bell-item .bi-hl { font-size:12.5px; font-weight:600; line-height:1.35; }
  .bell-item .bi-dt { font-size:10.5px; color:var(--muted); margin-top:2px; }
  .bell-empty { padding:14px 8px; color:var(--muted); font-size:12px; text-align:center; }
  .sect-tag { font-size:11px; color:var(--muted); border:1px solid var(--line); border-radius:6px; padding:1px 6px; font-weight:600; }
  /* ---- card textures + detail link ---- */
  .tcard .nm { color:inherit; } .tcard a.nm:hover { color:var(--link); }
  .txrow { display:flex; flex-wrap:wrap; gap:4px 6px; margin:2px 0 6px; }
  #theme-desk .tc-extra { display:none; }
  /* Compact chip scale inside desk-table Flags cells — keeps rows one line tall */
  #theme-desk td .txrow { margin:0; gap:3px; max-height:38px; overflow:hidden; align-content:flex-start; }
  #theme-desk td .txrow .chip, #theme-desk td .txrow .ftr-stale-chip, #theme-desk td .txrow .ftr-heat-chip,
  #theme-desk td .txrow [class^="te-"], #theme-desk td .txrow [class^="ra-"] {
    font-size:9px; padding:1px 5px; line-height:14px; border-radius:4px; }
  .tpill.warn { color:var(--warn); } .tpill.neg { color:var(--down); }
  .tpill.up { color:var(--up); } .tpill.dn { color:var(--down); } .tpill.wn { color:var(--warn); }
  .sigrow { margin-top:5px; padding-top:5px; border-top:1px dashed var(--line); }
  .sigrow .tpill { font-weight:600; }
  .tflag { font-size:10px; font-weight:700; border:1px solid; border-radius:6px; padding:1px 6px; }
  .tflag.up { color:var(--up); border-color:var(--up); } .tflag.dn { color:var(--down); border-color:var(--down); } .tflag.wn { color:var(--warn); border-color:var(--warn); }
  /* ---- W4 Velocity / Heat pills — parity with _baskets_desk.html.j2 ---- */
  .heat-pill { font-size:9.5px; font-weight:700; letter-spacing:.04em; padding:1px 5px; border-radius:5px;
    white-space:nowrap; border:1px solid; margin-left:3px; }
  .heat-pill.heating { color:var(--up); border-color:var(--up); background:rgba(34,197,94,.10); }
  .heat-pill.hot     { color:var(--orange); border-color:var(--orange); background:color-mix(in srgb, var(--orange) 12%, transparent); }
  .heat-pill.cooling { color:var(--warn); border-color:var(--warn); background:rgba(251,146,60,.10); }
  .heat-pill.broken  { color:var(--down); border-color:var(--down); background:rgba(248,113,113,.10); opacity:.8; }
  .heat-dot { width:7px; height:7px; border-radius:50%; display:inline-block; flex-shrink:0;
    vertical-align:middle; margin-right:4px; border:0; padding:0; font-size:0; }
  .rot-sub { font-size:11.5px; color:var(--muted); margin:4px 0 8px; font-style:italic; }
  .rk20 { font-size:9.5px; opacity:.72; font-variant-numeric:tabular-nums; }
  .pulse-bar { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; font-size:12px;
    padding:7px 10px; border:1px solid var(--line); border-radius:9px; background:var(--panel2); margin:0 0 10px; }
  .pulse-bar a { color:var(--link); text-decoration:none; }
  .pulse-bar a:hover { text-decoration:underline; }
  .pulse-grp { white-space:normal; }
  .pulse-size { border:1px solid color-mix(in srgb, var(--warn) 45%, var(--line)); border-left:3px solid var(--warn);
    border-radius:7px; padding:2px 8px; background:color-mix(in srgb, var(--warn) 8%, transparent); }
  /* ---- Leadership Health (contested label / flip-distance / term-structure) — parity with _baskets_desk.html.j2 ---- */
  .flipcap { font-size:10.5px; color:var(--warn); margin:3px 0 0; font-variant-numeric:tabular-nums; }
  .termstrip { display:flex; flex-wrap:wrap; align-items:center; gap:4px 7px; margin:2px 0 6px; font-size:10.5px; }
  .tsc { background:var(--panel2); border:1px solid var(--line); border-radius:6px; padding:1px 6px; color:var(--muted); }
  .tsc b { font-variant-numeric:tabular-nums; font-weight:650; }
  .tsc.pos b { color:var(--up); } .tsc.neg b { color:var(--down); }
  .tspat { font-weight:650; color:var(--text); opacity:.85; }
  .tstag { color:var(--muted); font-size:9.5px; border:1px solid var(--line); border-radius:5px; padding:0 4px; }
  .detail-link { display:inline-block; margin-top:8px; font-size:11.5px; color:var(--link); border-top:1px solid var(--line); padding-top:7px; width:100%; }
  .detail-link:hover { text-decoration:underline; }
  /* ---- concentration ---- */
  .adgrid { display:flex; gap:14px; }
  .adc { text-align:center; } .adc .k { font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
  .adc .v { font-size:17px; font-weight:700; font-variant-numeric:tabular-nums; }
  /* ---- what to act on now ---- */
  .anwrap { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .anwrap.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .anwrap.four  { grid-template-columns:repeat(4,minmax(0,1fr)); }
  @media (max-width:1200px){ .anwrap.four{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (max-width:980px){ .anwrap.three,.anwrap.four{ grid-template-columns:1fr; } }
  @media (max-width:680px){ .anwrap{ grid-template-columns:1fr; } }
  .ancol { background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:10px 13px; min-width:0; }
  .anh { margin:0 0 4px; font-size:13px; } .anh.buy { color:var(--up); } .anh.red { color:var(--down); }
  .anh.wait { color:var(--warn); }
  .anrow { display:flex; align-items:center; gap:9px; padding:7px 4px; border-top:1px solid var(--line); border-radius:7px; color:inherit; min-width:0; }
  .anrow:hover { background:var(--panel2); }
  .anverb { font-size:10px; font-weight:700; border:1px solid; border-radius:6px; padding:1px 6px; white-space:nowrap; }
  .anrow .rn { font-weight:650; white-space:nowrap; min-width:0; overflow:hidden; text-overflow:ellipsis; }
  .anwhy { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ansc { font-variant-numeric:tabular-nums; font-weight:700; }

  /* ── FTR W3: Tape band v3 (two-column ranked, ported from #2227 us_stocks band) ── */
  .ftr-tape-band { background:var(--panel2); border-bottom:2px solid var(--line); display:none; }
  .ftr-tape-band.visible { display:block; }
  .dtp-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; padding:9px 16px 8px; }
  .dtp-token { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); flex:none; }
  .dtp-token.live  { color:var(--up); }
  .dtp-token.pre   { color:var(--link); }
  .dtp-token.warn  { color:var(--warn); }
  .dtp-dot { width:6px; height:6px; border-radius:50%; background:currentColor; animation:dtp-pulse 1.4s ease-in-out infinite; flex:none; }
  .dtp-token.post .dtp-dot, .dtp-token.closed .dtp-dot { animation:none; opacity:.45; }
  @keyframes dtp-pulse { 0%,100%{opacity:1;} 50%{opacity:.35;} }
  .dtp-asof { font-size:10.5px; color:var(--muted); margin-left:auto; font-variant-numeric:tabular-nums; flex:none; }
  .dtp-body { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
  .dtp-col { padding:8px 16px 9px; min-width:0; }
  .dtp-col + .dtp-col { border-left:1px solid var(--line); }
  .dtp-col-lbl { font-size:9.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:5px; }
  .dtp-col-lbl.up { color:color-mix(in srgb,var(--up) 70%,transparent); }
  .dtp-col-lbl.dn { color:color-mix(in srgb,var(--down) 70%,transparent); }
  .dtp-col-lbl.cx { color:var(--link); }
  .dtp-mrow { display:flex; align-items:center; gap:7px; padding:2.5px 0; font-size:12.5px; text-decoration:none; color:inherit; }
  .dtp-mrow:hover .dtp-mname { color:var(--link); }
  #ftr-tape-band:not(.live-mode) .dtp-mrow { opacity:.92; }
  .dtp-rank { width:16px; flex:none; font-size:10px; color:var(--muted); font-variant-numeric:tabular-nums; }
  .dtp-mname { flex:1; min-width:0; color:var(--text); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .dtp-mflow { flex:none; font-size:9.5px; color:var(--muted); white-space:nowrap; }
  .dtp-mpct { flex:none; min-width:56px; text-align:right; font-family:var(--font-mono,monospace); font-variant-numeric:tabular-nums; font-weight:700; font-size:12px; }
  .dtp-mpct.up { color:var(--up); }
  .dtp-mpct.dn { color:var(--down); }
  .dtp-mtrack { flex:none; width:56px; height:4px; display:flex; align-items:center; }
  .dtp-mtrack.dn { justify-content:flex-end; }
  .dtp-mbar { height:4px; border-radius:2px; min-width:4px; display:inline-block; }
  .dtp-mbar.up { background:color-mix(in srgb,var(--up) 65%,transparent); }
  .dtp-mbar.dn { background:color-mix(in srgb,var(--down) 65%,transparent); }
  .dtp-2d  { font-size:10px; color:var(--muted); font-family:var(--font-mono,monospace); white-space:nowrap; }
  .dtp-empty { grid-column:1/-1; padding:10px 16px; font-size:11px; color:var(--muted); }
  .dtp-colmore { border-top:1px dashed var(--line); margin-top:5px; padding-top:5px; }
  .dtp-more { display:block; width:100%; padding:5px 10px; font:inherit; font-size:11px; font-weight:600; color:var(--muted); text-align:center; background:transparent; border:none; border-top:1px solid var(--line); cursor:pointer; }
  .dtp-more:hover { color:var(--text); background:color-mix(in srgb,var(--text) 4%,transparent); }
  /* author display rules defeat the UA [hidden] default — re-assert it */
  .dtp-colmore[hidden], .dtp-more[hidden] { display:none; }
  .dtp-fn  { padding:5px 16px 7px; font-size:10.5px; color:var(--muted); border-top:1px solid var(--line); line-height:1.45; }
  .ftr-t1-help { display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px; border-radius:50%; border:1px solid var(--line); color:var(--muted); font-size:9.5px; font-weight:700; cursor:help; line-height:1; vertical-align:middle; }
  @media(max-width:640px){
    .dtp-row { gap:5px 10px; padding:8px 12px 7px; }
    .dtp-asof { width:100%; margin-left:0; }
    .dtp-body { grid-template-columns:1fr; }
    .dtp-col + .dtp-col { border-left:none; border-top:1px solid var(--line); }
    .dtp-mname { font-size:12px; }
  }
  /* ── FTR W3: per-card chip strip additions ──────────────────────────────── */
  .ftr-disagree-chip { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; padding:2px 7px; border-radius:5px; background:rgba(251,146,60,.10); border:1px solid rgba(251,146,60,.38); color:var(--amber,#fb923c); white-space:nowrap; }
  .ftr-stale-chip    { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; padding:2px 7px; border-radius:5px; background:rgba(255,92,108,.07); border:1px solid rgba(255,92,108,.28); color:var(--down); white-space:nowrap; }
  .ftr-heat-chip { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; padding:2px 7px; border-radius:5px; white-space:nowrap; }
  .ftr-heat-chip.hot     { background:rgba(35,192,138,.10); border:1px solid rgba(35,192,138,.30); color:var(--up); }
  .ftr-heat-chip.heating { background:rgba(250,204,21,.08); border:1px solid rgba(250,204,21,.30); color:var(--warn); }
  .ftr-heat-chip.cooling { background:rgba(255,92,108,.07); border:1px solid rgba(255,92,108,.25); color:var(--down); }
  .ftr-heat-chip.broken  { background:rgba(255,92,108,.07); border:1px solid rgba(255,92,108,.25); color:var(--down); opacity:.8; }
  .ftr-live-chg { font-size:12.5px; font-weight:700; font-variant-numeric:tabular-nums; }
  .ftr-live-chg.up { color:var(--up); }
  .ftr-live-chg.dn { color:var(--down); }
  /* ── FTR W4: Turn-watch inline card ─────────────────────────────────────── */
  .ftr-tw-card { border-radius:8px; border:1px solid rgba(249,115,22,.32); background:rgba(249,115,22,.05); overflow:hidden; margin:4px 0 0; }
  .ftr-tw-card.watch { border-color:rgba(250,204,21,.32); background:rgba(250,204,21,.04); }
  .ftr-tw-hd { display:flex; align-items:center; gap:7px; padding:6px 10px; border-bottom:1px solid rgba(249,115,22,.18); }
  .ftr-tw-card.watch .ftr-tw-hd { border-bottom-color:rgba(250,204,21,.18); }
  .ftr-tw-badge { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:2px 7px; border-radius:5px; color:var(--orange,#f97316); background:rgba(249,115,22,.16); border:1px solid rgba(249,115,22,.38); }
  .ftr-tw-badge.watch { color:var(--warn); background:rgba(250,204,21,.10); border-color:rgba(250,204,21,.32); }
  .ftr-tw-k { font-size:11.5px; font-weight:600; color:var(--text); }
  .ftr-tw-asof { font-size:10.5px; color:var(--muted); margin-left:auto; }
  .ftr-tw-legs { display:grid; grid-template-columns:1fr 1fr 1fr; gap:1px; background:rgba(249,115,22,.07); }
  .ftr-tw-card.watch .ftr-tw-legs { background:rgba(250,204,21,.05); }
  .ftr-tw-leg { padding:5px 9px; background:var(--bg); }
  .ftr-tw-leg-nm { font-size:9.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; margin-bottom:1px; }
  .ftr-tw-leg-val { font-size:11px; font-weight:700; color:var(--muted); }
  .ftr-tw-leg.fired .ftr-tw-leg-val { color:var(--up); }
  .ftr-tw-disc { font-size:10px; color:var(--muted); padding:4px 10px; border-top:1px solid var(--line); font-style:italic; }

  /* ── Theme Context Hero — aurora living-glass ─────────────────────────── */
  #theme-context-hero { position:relative; overflow:hidden; border-radius:12px;
    background:rgba(var(--panel-rgb,16,22,30),.55); border:1px solid rgba(255,255,255,.09);
    backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    box-shadow:0 8px 28px rgba(0,0,0,.40),0 1.5px 0 rgba(255,255,255,.06) inset;
    padding:16px 18px; margin-top:10px; }
  [data-theme='light'] #theme-context-hero {
    background:rgba(255,255,255,.78); border-color:rgba(0,0,0,.09);
    box-shadow:0 4px 18px rgba(0,0,0,.08),0 1px 0 rgba(255,255,255,.9) inset; }
  .tc-aurora { position:absolute; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
  .tc-aurora::before { content:""; position:absolute; top:-80px; left:-60px;
    width:480px; height:380px; border-radius:50%; filter:blur(80px);
    background:radial-gradient(ellipse,var(--tc-blob-a,rgba(74,222,128,.08)) 0%,transparent 70%);
    animation:tc-drift-a 28s ease-in-out infinite alternate; }
  .tc-aurora::after  { content:""; position:absolute; bottom:-60px; right:-40px;
    width:380px; height:320px; border-radius:50%; filter:blur(80px);
    background:radial-gradient(ellipse,rgba(93,139,255,.06) 0%,transparent 70%);
    animation:tc-drift-b 34s ease-in-out infinite alternate; }
  @keyframes tc-drift-a { from{transform:translate(0,0)} to{transform:translate(30px,20px)} }
  @keyframes tc-drift-b { from{transform:translate(0,0)} to{transform:translate(-25px,18px)} }
  @media(prefers-reduced-motion:reduce){
    .tc-aurora,.tc-aurora::before,.tc-aurora::after{ animation:none; } }
  #theme-context-hero.tc-rotating { --tc-blob-a:rgba(248,113,113,.09); }
  #theme-context-hero.tc-strain   { --tc-blob-a:rgba(250,204,21,.08); }
  #theme-context-hero.tc-steady   { --tc-blob-a:rgba(74,222,128,.08); }
  [data-theme='light'] #theme-context-hero.tc-rotating { --tc-blob-a:rgba(192,57,43,.05); }
  [data-theme='light'] #theme-context-hero.tc-strain   { --tc-blob-a:rgba(156,98,18,.05); }
  [data-theme='light'] #theme-context-hero.tc-steady   { --tc-blob-a:rgba(34,197,94,.04); }
  .tc-inner { position:relative; z-index:1; }
  .tc-toprow { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; margin-bottom:8px; }
  .tc-big-state { font-size:22px; font-weight:750; letter-spacing:-.01em; line-height:1.1; }
  .tc-stance-sub { color:var(--muted); font-size:13px; line-height:1.5; margin:4px 0 10px; max-width:80ch; }
  .tc-chips { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 4px; }
  .tc-chip { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; padding:3px 9px;
    border-radius:20px; border:1px solid; white-space:nowrap; text-decoration:none; color:inherit; }
  .tc-chip:hover { opacity:.85; }
  .tc-chip.up  { background:rgba(74,222,128,.12); border-color:rgba(74,222,128,.35); color:var(--up); }
  .tc-chip.dn  { background:rgba(248,113,113,.10); border-color:rgba(248,113,113,.30); color:var(--down); }
  .tc-chip.was1{ font-size:9.5px; padding:0 5px; opacity:.75; border-radius:5px; margin-left:3px;
                 background:rgba(248,113,113,.08); border-color:rgba(248,113,113,.25); color:var(--down); }
  .tc-chip.mig { background:rgba(93,139,255,.10); border-color:rgba(93,139,255,.25); color:var(--link); }
  .tc-chip.aln { background:rgba(74,222,128,.08); border-color:rgba(74,222,128,.25); color:var(--up); }
  .tc-chip.rcpt{ background:var(--panel2); border-color:var(--line); color:var(--muted); }
  .tc-chip.lever{ background:var(--panel2); border-color:var(--line); color:var(--muted); }
  .tc-receipt-tip { cursor:default; }
  .tc-days  { font-size:11px; color:var(--muted); align-self:center; }
  .tc-pb-link { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--link);
    border:1px solid var(--line); border-radius:20px; padding:3px 10px; margin-top:4px; text-decoration:none; }
  .tc-pb-link:hover { border-color:var(--link); }

  /* ── Tape collapse strip ─────────────────────────────────────────────── */
  .ftr-tape-strip { display:none; align-items:center; flex-wrap:wrap; gap:5px 10px;
    padding:7px 16px; background:var(--panel2); border-bottom:1px solid var(--line); font-size:12px; }
  .ftr-tape-strip.visible { display:flex; }
  .ftr-strip-dot { width:6px; height:6px; border-radius:50%; background:currentColor; flex:none;
    animation:dtp-pulse 1.4s ease-in-out infinite; }
  .ftr-strip-dot.no-anim { animation:none; opacity:.5; }
  .ftr-strip-token { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700;
    letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
  .ftr-strip-token.live { color:var(--up); }
  .ftr-strip-asof { font-size:10.5px; color:var(--muted); font-variant-numeric:tabular-nums; }
  .ftr-strip-chip { display:inline-flex; align-items:center; gap:4px; padding:1px 7px;
    border-radius:12px; border:1px solid var(--line); font-size:11.5px; font-variant-numeric:tabular-nums; }
  .ftr-strip-chip.up { color:var(--up); border-color:rgba(74,222,128,.3); }
  .ftr-strip-chip.dn { color:var(--down); border-color:rgba(248,113,113,.3); }
  .ftr-strip-expand { margin-left:auto; font-size:11px; color:var(--link); background:none; border:none;
    cursor:pointer; padding:0; white-space:nowrap; }
  .ftr-tape-full { display:none; }
  .ftr-tape-full.open { display:block; }

  /* ── factor-season glass chip ─────────────────────────────────────────── */
  .fs-chip { display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:4px 10px;
    border-radius:20px; border:1px solid var(--line); background:var(--panel2); }
  .fs-chip.headwind { border-color:rgba(250,204,21,.40); background:rgba(250,204,21,.07); color:var(--warn); }
  .fs-chip.tailwind { border-color:rgba(74,222,128,.35); background:rgba(74,222,128,.08); color:var(--up); }
  /* ── zh 红涨绿跌: direction-coded chip TINTS swap with the text vars (which flip
     at the --up/--down level in theme.css). Health/danger chips deliberately don't. ── */
  html[data-lang="zh"] .tc-chip.up,
  html[data-lang="zh"] .tc-chip.aln,
  html[data-lang="zh"] .fs-chip.tailwind { background:rgba(224,85,85,.10); border-color:rgba(224,85,85,.35); }
  html[data-lang="zh"] .tc-chip.dn,
  html[data-lang="zh"] .tc-chip.was1 { background:rgba(69,184,115,.10); border-color:rgba(69,184,115,.35); }
  html[data-lang="zh"] .ftr-strip-chip.up { border-color:rgba(224,85,85,.32); }
  html[data-lang="zh"] .ftr-strip-chip.dn { border-color:rgba(69,184,115,.32); }
  html[data-lang="zh"] #theme-context-hero.tc-steady   { --tc-blob-a:rgba(224,85,85,.08); }
  html[data-lang="zh"] #theme-context-hero.tc-rotating { --tc-blob-a:rgba(69,184,115,.07); }
