/* ----- Side panels (all layouts): shared module system (panels.js). Typography mirrors the layout-2 columns/rail. No divider lines: sections are separated by space;
   section headers keep the existing subtle hairline (as POLITICS MONITOR always had). ----- */
body.pmsys .side.left,body.pmsys .side.right{display:none!important}   /* layout 2's fixed columns are now these panels */
.pnl.mods{background:transparent;border:0;border-radius:0;display:flex;flex-direction:column;gap:16px;overflow:hidden;
 font:400 16px var(--mono,'JetBrains Mono',monospace);letter-spacing:.06em;text-transform:uppercase;color:var(--txt,#e9edf5)}
.pnl.mods.on{opacity:1;visibility:visible;transform:none;transition:opacity .5s var(--ease,ease) .15s,transform .7s var(--ease,ease),visibility 0s}
.pnl.mods.spread{justify-content:flex-start;gap:16px}          /* lists only: stacked from the top, rows fill the height (panels.js fit) — no spread gaps */
.pnl.mods>.pmod{display:none;flex:none;min-height:0}.pnl.mods>.pmod.on{display:block}
.pnl.mods h4{display:flex;align-items:center;gap:10px;font:700 11px var(--mono,'JetBrains Mono',monospace);letter-spacing:.16em;color:var(--mut,#838b88);text-transform:uppercase;
 margin:0 0 6px;padding:0 0 6px;border-bottom:1px solid var(--hair,rgba(255,255,255,.16))}
.pnl.mods h4::before{content:'';flex:none;width:6px;height:6px;border-radius:50%;background:var(--acc,#97efca)}
.pnl.mods h4 span:first-child{flex:none}
.pnl.mods h4 .via{margin-left:auto;font:500 10px var(--mono,'JetBrains Mono',monospace);letter-spacing:.14em;color:var(--mut,#838b88)}
/* list rows (events · movers · soon) */
.pnl.mods .it{padding:3px 0 5px;border:0}
.pnl.mods .it .tm{font:500 11px var(--mono,'JetBrains Mono',monospace);letter-spacing:.12em;color:var(--mut,#838b88);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pnl.mods .it .tm b{font-weight:700}.pnl.mods b.up{color:#3ddc97}.pnl.mods b.dn{color:#ff5a5a}
.pnl.mods .it .n,.pnl.mods .gvm .n{font:400 15px/1.25 var(--disp);letter-spacing:.05em;text-transform:uppercase;color:#fff;margin:3px 0 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pnl.mods .it .r,.pnl.mods .gvm .r{font:300 14px/1.3 var(--sans);letter-spacing:.02em;color:#c9cfcc;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pnl.mods .m-events .it{padding:3px 0}
.pnl.mods .m-events .it .n{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}
.pnl.mods .m-movers .it .n,.pnl.mods .m-soon .it .n{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}   /* long politics questions wrap instead of cutting off mid-word */
/* guest vs market */
.pnl.mods .gvm .gv{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:8px 0 6px}
.pnl.mods .gvm .gv div{border:1px solid var(--hair,rgba(255,255,255,.16));border-radius:4px;padding:6px 8px}
.pnl.mods .gvm .gv span{display:block;font:500 10px var(--mono,'JetBrains Mono',monospace);letter-spacing:.14em;color:var(--mut,#838b88)}
.pnl.mods .gvm .gv b{font:400 20px var(--disp);color:#fff}
.pnl.mods .gvm .tm{font:500 10px var(--mono,'JetBrains Mono',monospace);letter-spacing:.1em;color:var(--mut,#838b88);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* breaking updates (timestamped log) */
.pnl.mods .m-bu h4{margin-bottom:8px;padding-bottom:8px}
.pnl.mods .m-bu .card{display:block;margin:0 0 8px;padding:12px 16px;background:none;border:1px solid var(--hair,rgba(255,255,255,.16));border-left:2px solid var(--acc,#97efca);border-radius:4px}
.pnl.mods .m-bu .card:last-child{margin-bottom:0}
.pnl.mods .m-bu .card .tm{font:500 11px var(--mono,'JetBrains Mono',monospace);letter-spacing:.14em;color:var(--acc,#97efca);margin:0 0 4px}
.pnl.mods .m-bu .card .tx{font:300 16px/1.3 var(--sans);letter-spacing:0;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Politics Monitor charts (Kalshi slots A/B) — flexible: share what the lists leave */
.pnl.mods>.m-pm.on{display:flex;flex:1 1 0;flex-direction:column;gap:16px;min-height:min-content}   /* never shorter than its charts' legible minimum (fit() drops lists instead) */
.pnl.mods .m-pm h4{margin:0 0 8px;padding-bottom:8px}.pnl.mods .m-pm.cmp h4{margin-bottom:6px}
.pnl.mods .m-pm .pmp{flex:1 1 0;min-height:min-content;margin:0;overflow:visible}
.pnl.mods .m-pm.one>h4:nth-of-type(2),.pnl.mods .m-pm.one>.pmp:nth-of-type(2){display:none}   /* no room for chart B: it drops rather than clips */
.pnl.mods .m-pm .pmc{padding:12px 16px;margin:0;display:flex;flex-direction:column}
.pnl.mods .m-pm .pmc .pplot{flex:1;height:auto;min-height:56px}.pnl.mods .m-pm.cmp .pmc .pplot{min-height:44px}
.pnl.mods .m-pm .pmc .pbig b{font-size:32px}
.pnl.mods .m-pm.cmp .pmc .plg,.pnl.mods .m-pm.cmp .pmc .pax,.pnl.mods .m-pm.cmp .pmc .pq{display:none}
/* Kalshi market chart (slot C) and live media — flexible */
.pnl.mods>.m-chartC.on{display:flex;flex-direction:column;position:relative;flex:1 1 0;min-height:min-content;background:#000;border:1px solid var(--hair,rgba(255,255,255,.14));border-radius:8px;overflow:hidden}
.pnl.mods>.m-chartC>.pmc{position:relative;inset:auto;flex:1 1 auto;min-height:min-content}.pnl.mods>.m-chartC .pplot{min-height:72px}
.pnl.mods>.m-chartC.cmp>.pmc{padding:14px 18px 12px}.pnl.mods>.m-chartC.cmp .pbig b{font-size:48px}.pnl.mods>.m-chartC.cmp .pq{margin-top:8px}.pnl.mods>.m-chartC.cmp .pplot{min-height:56px;margin:8px 0 6px}   /* sharing the panel: compact, nothing clipped */
.pnl.mods>.m-media.on{display:block;flex:1 1 0;min-height:200px}
/* geometry: layout 2 keeps its 352px columns flush at the frame margins (cams 416…1504 with both on); other layouts as panels mode */
body.l2.ltbar{--cl:var(--m,48px);--cr:var(--m,48px);--pw:352px}body.l2.ltbar.pnL.pnR{--pw:352px}
body.l2.ltbar>.cams{left:var(--m,48px)!important;right:var(--m,48px)!important}
body.l2.ltbar.pnL>.cams{left:416px!important}body.l2.ltbar.pnR>.cams{right:416px!important}
/* layout 4: 2x2 grid with either side; both sides on → narrower panels */
body.l4.pnL>.cams{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px}body.l4.pnL .cam .lt{padding-top:24px;padding-bottom:12px}
body.l4.pnL.pnR{--pw:480px}
