/* =====================================================================
   stockmap.css — 2D Stock-Map-Time Terminal
   Vollflächige Live-Weltkarte mit HUD-Overlays.
   ===================================================================== */
:root{
  --bg:#03070d;
  --open:#37d56f; --closed:#e0593f; --closed-dim:#a85a4d;
  --city:#5fc6e8; --city-open:#46e08a;
  --amber:#f4b942; --gold:#ffd75e;
  --ink:#dfe7f0; --ink-soft:#9fb0c2; --ink-dim:#6a7b8d; --ink-faint:#445363;
  --panel:rgba(7,13,22,0.50); --panel-bd:rgba(110,165,210,0.34);
  --hair:rgba(95,150,200,0.16); --hair-2:rgba(95,150,200,0.09);
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --sans:"Space Grotesk",system-ui,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;height:100%;background:var(--bg);}
body{font-family:var(--mono);color:var(--ink);overflow:hidden;-webkit-font-smoothing:antialiased;}
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}

#map{position:fixed;inset:0;width:100vw;height:100vh;display:block;z-index:0;}
#mapfx{position:fixed;inset:0;z-index:1;pointer-events:none;}
#hud{position:fixed;inset:0;z-index:2;pointer-events:none;}
#hud .panel{pointer-events:auto;}

/* ---- generische Panel ---- */
.panel{
  background:var(--panel);
  border:1px solid var(--panel-bd);
  backdrop-filter:blur(9px) saturate(1.15);
  -webkit-backdrop-filter:blur(9px) saturate(1.15);
  border-radius:3px;
  box-shadow:0 4px 22px rgba(0,0,0,0.35);
}
.panel .ph{
  font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);
  padding:6px 10px;border-bottom:1px solid var(--hair);text-align:center;font-weight:500;
}

/* ===================== TOP SESSION BAR ===================== */
.lang-toggle{position:absolute;top:8px;right:8px;z-index:30;display:inline-flex;border:1px solid var(--hair);border-radius:4px;overflow:hidden;background:rgba(3,7,13,0.8);backdrop-filter:blur(6px);}
.lang-btn{appearance:none;border:none;background:transparent;color:var(--ink-dim,#6a7b8d);font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:0.08em;padding:4px 8px;cursor:pointer;border-right:1px solid var(--hair);transition:all .14s;}
.lang-btn:last-child{border-right:none;}
.lang-btn.active{background:rgba(244,185,66,0.16);color:var(--gold,#ffd75e);}
.sessions{
  position:absolute;top:8px;left:266px;right:266px;
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px;
}
.sgroup{padding:6px 9px 8px;}
.sgroup h3{
  margin:0 0 5px;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--ink);font-weight:600;border-bottom:1px solid var(--hair);padding-bottom:4px;
}
.srow{display:flex;align-items:baseline;gap:5px;font-size:10px;line-height:1.5;white-space:nowrap;}
.srow .c{color:var(--city);width:60px;flex:none;letter-spacing:0.01em;}
.srow .t{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:9.5px;}
.srow .st{margin-left:auto;font-size:9px;letter-spacing:0.06em;font-weight:600;}
.srow.open .c{color:var(--city-open);}
.srow.open .st{color:var(--open);}
.srow.closed .st{color:var(--closed-dim);}

/* ===================== TOP-LEFT STACK ===================== */
.tl-stack{position:absolute;top:8px;left:10px;bottom:214px;display:flex;flex-direction:column;gap:8px;width:244px;}
.kv{display:flex;justify-content:space-between;gap:8px;font-size:9.5px;line-height:1.6;padding:1px 0;}
.kv .k{color:var(--ink-dim);letter-spacing:0.02em;flex:none;}
.kv .v{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;}
.kv .v.hi{color:var(--city);}
.pad{padding:8px 11px;}

/* Kompass */
.compass{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center;}
.compass .rose{position:relative;width:64px;height:64px;border-radius:50%;
  border:1px solid var(--panel-bd);background:radial-gradient(circle,#0a1626,#060d18);}
.compass .rose .tick{position:absolute;left:50%;top:6px;width:1px;height:7px;background:var(--ink-faint);transform-origin:50% 26px;}
.compass .rose .needle{position:absolute;left:50%;top:50%;width:2px;height:26px;background:linear-gradient(180deg,var(--closed) 50%,#33506e 50%);transform-origin:50% 100%;transform:translate(-50%,-100%) rotate(0deg);border-radius:2px;}
.compass .rose .lbl{position:absolute;font-size:7px;color:var(--ink-soft);font-weight:600;}
.compass .rose .n{top:2px;left:50%;transform:translateX(-50%);color:var(--closed);}
.compass .rose .s{bottom:2px;left:50%;transform:translateX(-50%);}
.compass .rose .e{right:3px;top:50%;transform:translateY(-50%);}
.compass .rose .w{left:3px;top:50%;transform:translateY(-50%);}

/* ===================== CENTER TOP ===================== */
.center-top{position:absolute;top:104px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;}
.nextbox{display:flex;gap:0;}
.nextbox > div{padding:5px 12px;font-size:10.5px;letter-spacing:0.02em;}
.nextbox .lbl{color:var(--amber);}
.nextbox .val{color:var(--ink);}
.nextbox .val b{color:var(--gold);font-weight:500;font-variant-numeric:tabular-nums;}
.utcbox{border:1px solid var(--amber);background:rgba(22,15,2,0.42);padding:7px 18px;border-radius:3px;
  backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);box-shadow:0 4px 22px rgba(0,0,0,0.4);
  display:flex;align-items:baseline;gap:12px;}
.utcbox .lab{font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--amber);}
.utcbox .clock{font-size:20px;letter-spacing:0.06em;color:var(--gold);font-variant-numeric:tabular-nums;}
.utcbox .date{font-size:11px;color:var(--ink-soft);letter-spacing:0.04em;}
.utcbox .date b{color:var(--gold);font-weight:500;}

/* ===================== RIGHT STACK ===================== */
.tr-stack{position:absolute;top:8px;right:10px;bottom:404px;width:244px;display:flex;flex-direction:column;gap:8px;overflow:hidden;}
.right-panel{display:flex;flex-direction:column;flex:1 1 auto;min-height:96px;overflow:hidden;}
.ta-list{padding:5px 0;overflow-y:auto;min-height:0;}
.ta-row{display:flex;justify-content:space-between;gap:10px;padding:2px 11px;font-size:9.5px;line-height:1.5;white-space:nowrap;}
.ta-row .c{color:var(--ink);}
.ta-row .a{color:var(--amber);text-align:right;}

/* ===================== CITY LABELS ON MAP ===================== */
#leaders{position:absolute;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none;}
#leaders line{stroke:rgba(120,170,210,0.30);stroke-width:1;}
#dots{position:absolute;inset:0;z-index:1;pointer-events:none;}
.citydot{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--city);
  box-shadow:0 0 6px var(--city);transform:translate(-50%,-50%);}
.citydot.open{background:var(--open);box-shadow:0 0 9px var(--open);width:6px;height:6px;animation:dotpulse 2.6s ease-in-out infinite;}
@keyframes dotpulse{0%,100%{box-shadow:0 0 7px var(--open);}50%{box-shadow:0 0 14px var(--open),0 0 5px var(--open);}}
@media (prefers-reduced-motion:reduce){.citydot.open{animation:none;}}

/* ---- Liquiditätsuhr ---- */
.liqpanel{flex:0 0 auto;position:relative;}
/* „?"-Hilfeknopf im Uhr-Header */
.liq-ph{position:relative;}
.liq-help{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:15px;height:15px;border-radius:50%;
  border:1px solid var(--hair);background:rgba(255,255,255,0.04);color:var(--gold);font-family:var(--mono);
  font-size:9px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
  transition:background .15s,border-color .15s;}
.liq-help:hover,.liq-help[aria-expanded="true"]{background:rgba(244,185,66,0.16);border-color:rgba(244,185,66,0.5);}
/* Erklär-Popover */
.liq-pop{position:absolute;top:28px;left:8px;right:8px;z-index:20;background:rgba(7,13,21,0.98);
  border:1px solid rgba(244,185,66,0.35);border-radius:5px;padding:10px 11px;
  box-shadow:0 10px 30px rgba(0,0,0,0.55);}
.liq-pop[hidden]{display:none;}
.liq-pop-h{font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;font-weight:600;}
.liq-pop p{margin:0 0 6px;font-size:10px;line-height:1.5;color:var(--ink-soft);}
.liq-pop-sub{color:var(--ink-dim) !important;font-size:9px !important;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px !important;}
.liq-pop ul{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:4px;}
.liq-pop li{display:flex;align-items:flex-start;gap:6px;font-size:10px;line-height:1.4;color:var(--ink-soft);}
.liq-pop li i{width:9px;height:9px;border-radius:2px;flex:none;margin-top:3px;}
.liq-pop li b{color:var(--ink);font-weight:600;}
.liq-pop-tip{font-size:9.5px !important;color:var(--ink-dim) !important;border-top:1px solid var(--hair);padding-top:6px;margin:0 !important;}

/* Generisches „?"-Hilfesystem (DXY-Treiber, Korrelation, Risk-Stimmung) */
.help-btn{flex:none;pointer-events:auto;width:15px;height:15px;border-radius:50%;border:1px solid var(--hair);
  background:rgba(255,255,255,0.04);color:var(--gold);font-family:var(--mono);font-size:9px;line-height:1;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;
  transition:background .15s,border-color .15s;}
.help-btn:hover,.help-btn[aria-expanded="true"]{background:rgba(244,185,66,0.16);border-color:rgba(244,185,66,0.5);}
.help-pop{position:absolute;z-index:30;pointer-events:auto;background:rgba(7,13,21,0.98);border:1px solid rgba(244,185,66,0.35);
  border-radius:5px;padding:10px 11px;box-shadow:0 10px 30px rgba(0,0,0,0.6);text-align:left;}
.help-pop[hidden]{display:none;}
.help-pop .hp-h{font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;font-weight:600;}
.help-pop p{margin:0 0 6px;font-size:10px;line-height:1.5;color:var(--ink-soft);}
.help-pop ul{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:4px;}
.help-pop li{display:flex;align-items:flex-start;gap:6px;font-size:10px;line-height:1.4;color:var(--ink-soft);}
.help-pop li i{width:9px;height:9px;border-radius:2px;flex:none;margin-top:3px;}
.help-pop li b,.help-pop p b{color:var(--ink);font-weight:600;}
.help-pop .hp-tip{font-size:9.5px !important;color:var(--ink-dim) !important;border-top:1px solid var(--hair);padding-top:6px;margin:0 !important;}
/* Anker je Panel */
.mkt-group.dxy{position:relative;}
#dxyPop{top:21px;left:0;right:0;}
#crbPop{top:21px;left:0;right:0;}
.mkt-group.crb{flex:1 1 auto;}
.crb-row.dxy-row{grid-template-columns:104px 1fr 46px;}
.crb-row .dxy-cur{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.corr{position:relative;}
.corr-help{position:absolute;top:-2px;right:0;}
#corrPop{top:20px;left:0;right:0;}
.liq-risk{position:relative;}
.risk-help{margin-left:4px;}
#riskPop{bottom:calc(100% + 7px);left:0;right:0;}
.liq-body{padding:8px 11px 11px;}
#liqDial{display:block;width:100%;max-width:150px;height:auto;margin:0 auto 6px;}
.liq-read .kv{font-size:9.5px;}
.liq-read .v{font-weight:500;}
/* Session-Fortschritt */
.liq-sess{margin-top:8px;padding-top:8px;border-top:1px solid var(--hair);}
.ls-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:9px;margin-bottom:4px;}
.ls-name{color:var(--ink-soft);letter-spacing:0.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ls-pct{color:var(--gold);font-weight:500;font-variant-numeric:tabular-nums;flex:none;}
.ls-track{height:6px;background:rgba(255,255,255,0.06);border-radius:3px;overflow:hidden;}
.ls-fill{height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,#3fbf76,#ffd75e);
  transition:width .6s cubic-bezier(.4,0,.2,1);}
.ls-fill.closed{background:rgba(120,145,170,0.5);}
/* Risk-Stimmung-Ampel */
.liq-risk{display:flex;align-items:center;gap:7px;margin-top:8px;padding:6px 8px;border-radius:3px;
  border:1px solid var(--hair);font-size:9px;}
.liq-risk .lr-dot{width:9px;height:9px;border-radius:50%;flex:none;}
.liq-risk .lr-mood{letter-spacing:0.06em;text-transform:uppercase;font-weight:600;flex:none;}
.liq-risk .lr-sub{color:var(--ink-dim);font-variant-numeric:tabular-nums;margin-left:auto;white-space:nowrap;}
.liq-risk.on{background:rgba(63,191,118,0.10);border-color:rgba(63,191,118,0.45);}
.liq-risk.on .lr-dot{background:#3fbf76;box-shadow:0 0 7px #3fbf76;}
.liq-risk.on .lr-mood{color:#5fd68f;}
.liq-risk.off{background:rgba(214,80,60,0.10);border-color:rgba(214,80,60,0.5);}
.liq-risk.off .lr-dot{background:#e0573e;box-shadow:0 0 7px #e0573e;}
.liq-risk.off .lr-mood{color:#f0795f;}
.liq-risk.neutral .lr-dot{background:var(--amber);box-shadow:0 0 6px rgba(255,180,80,0.6);}
.liq-risk.neutral .lr-mood{color:var(--amber);}
/* DXY-Intraday-Sparkline */
.liq-spark{margin-top:9px;padding-top:8px;border-top:1px solid var(--hair);}
.sp-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:8.5px;margin-bottom:3px;}
.sp-lab{color:var(--ink-dim);letter-spacing:0.06em;text-transform:uppercase;}
.sp-val{font-variant-numeric:tabular-nums;font-weight:500;}
.sp-val.up{color:var(--open);} .sp-val.down{color:var(--closed);} .sp-val.flat{color:var(--ink-soft);}
#dxySpark{display:block;width:100%;height:34px;}
.liq-legend{display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:8px;padding-top:7px;
  border-top:1px solid var(--hair);font-size:8px;color:var(--ink-dim);letter-spacing:0.03em;}
.liq-legend span{display:flex;align-items:center;gap:4px;white-space:nowrap;}
.liq-legend i{width:8px;height:8px;border-radius:2px;display:inline-block;flex:none;}
.liq-utc{display:flex;align-items:baseline;justify-content:center;gap:6px;margin-top:9px;padding-top:9px;
  border-top:1px solid var(--amber);white-space:nowrap;}
.liq-utc .lab{font-size:8.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--amber);flex:none;}
.liq-utc .clock{font-size:16px;letter-spacing:0.02em;color:var(--gold);font-variant-numeric:tabular-nums;flex:none;}
.liq-utc .date{font-size:8.5px;color:var(--ink-soft);letter-spacing:0.01em;white-space:nowrap;flex:none;}
.liq-utc .date b{color:var(--gold);font-weight:500;}
.liq-next{margin-top:8px;padding-top:8px;border-top:1px solid var(--hair);display:flex;flex-direction:column;gap:3px;}
.liq-next > div{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.liq-next .lbl{color:var(--amber);letter-spacing:0.04em;text-transform:uppercase;font-size:8px;flex:none;white-space:nowrap;}
.liq-next .val{color:var(--ink-soft);text-align:right;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.liq-next .val b{color:var(--gold);font-weight:500;font-variant-numeric:tabular-nums;}
.citylabel{position:absolute;z-index:1;pointer-events:none;white-space:nowrap;
  display:flex;align-items:center;gap:7px;transform:translate(0,-50%);}
.citylabel.left{transform:translate(-100%,-50%);flex-direction:row-reverse;}
.citylabel .ltxt{display:flex;flex-direction:column;line-height:1.18;}
.citylabel.left .ltxt{align-items:flex-end;}
.citylabel .l1{display:flex;align-items:baseline;gap:6px;}
.citylabel.left .l1{flex-direction:row-reverse;}
.citylabel .nm{font-size:11px;letter-spacing:0.03em;color:var(--city);font-weight:600;
  text-shadow:0 0 5px #000,0 1px 2px #000;}
.citylabel .br{font-size:9px;color:var(--ink-soft);font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #000;}
.citylabel .cd{font-size:8px;color:var(--ink-dim);font-variant-numeric:tabular-nums;letter-spacing:0.02em;text-shadow:0 1px 2px #000;}
.citylabel.open .nm{color:var(--city-open);}
.citylabel.open .cd{color:var(--open);}
.citylabel.closed .nm{opacity:0.88;}

/* ===================== SUN / MOON (echte Körper) ===================== */
.sun,.moon{position:absolute;z-index:2;pointer-events:none;transform:translate(-50%,-50%);}
.sun .disc{display:block;width:60px;height:60px;border-radius:50%;position:relative;
  background:radial-gradient(circle at 40% 36%,#fffce0 0%,#ffe94e 30%,#ffd11c 58%,#ffb509 84%,#ff9405 100%);
  box-shadow:0 0 0 1px rgba(255,206,60,0.55),0 0 26px 8px rgba(255,210,46,0.62),
    0 0 70px 30px rgba(255,176,24,0.32),0 0 130px 56px rgba(255,150,12,0.12);}
.sun .disc::after{content:'';position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle at 66% 72%,rgba(190,90,0,0.22),transparent 56%);}
.sun .corona{position:absolute;left:50%;top:50%;width:58px;height:58px;border-radius:50%;transform:translate(-50%,-50%);
  box-shadow:0 0 34px 12px rgba(255,196,50,0.38);animation:sunpulse 4.2s ease-in-out infinite;}
@keyframes sunpulse{0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(1);}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.13);}}
.moon .disc{display:block;width:30px;height:30px;border-radius:50%;background:#565d6b;overflow:hidden;position:relative;
  box-shadow:0 0 0 1px rgba(200,210,226,0.40),0 0 13px 4px rgba(150,168,195,0.30);}
.moon .disc .lit{position:absolute;inset:0;
  background:radial-gradient(circle at 37% 34%,#fdfdff 0%,#e2e7ef 42%,#c2cad7 72%,#a4adbd 100%);}
.moon .disc::after{content:'';position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle at 62% 30%,rgba(90,98,112,0.5) 0 7%,transparent 8%),
    radial-gradient(circle at 40% 64%,rgba(90,98,112,0.45) 0 6%,transparent 7%),
    radial-gradient(circle at 70% 70%,rgba(90,98,112,0.4) 0 5%,transparent 6%);
  box-shadow:inset -4px -4px 7px rgba(0,0,0,0.40),inset 3px 3px 5px rgba(255,255,255,0.12);}
.bodylabel{position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%);
  font-size:9.5px;color:var(--ink);line-height:1.5;white-space:nowrap;text-align:center;
  text-shadow:0 1px 3px #000,0 0 6px #000,0 0 6px #000,0 0 6px #000;}
.bodylabel b{color:var(--gold);font-weight:500;}
.bodylabel .ttl{color:var(--gold);font-size:11px;letter-spacing:0.08em;font-weight:600;}

/* ===================== BOTTOM ===================== */
.bottom{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:0;z-index:4;}
/* Klapp-Leiste für den Markt-/Forex-Bereich (sitzt unter dem Online-Banner) */
.bottom-toggle{pointer-events:auto;appearance:none;width:100%;border:1px solid var(--hair);border-radius:2px;
  background:rgba(255,255,255,0.03);color:var(--gold);font-family:var(--mono);font-size:9px;letter-spacing:0.16em;
  text-transform:uppercase;font-weight:600;padding:4px 10px;cursor:pointer;display:flex;align-items:center;
  justify-content:center;gap:8px;white-space:nowrap;transition:background .15s,border-color .15s;}
.bottom-toggle:hover{background:rgba(244,185,66,0.10);border-color:rgba(244,185,66,0.4);}
.bottom-toggle .bt-ico{font-size:10px;display:inline-block;transition:transform .2s;}
.bottom-collapsed .bottom-toggle .bt-ico{transform:rotate(-90deg);}
/* eingeklappt: nur Infoline + Markt-Layout weg — Banner & Toggle bleiben sichtbar */
.bottom-collapsed .infoline,
.bottom-collapsed .market-layout{display:none;}
.bottom-collapsed .bottom-panel{gap:6px;}
.bottom-collapsed .tl-stack{bottom:108px;}
.bottom-collapsed .tr-stack{bottom:108px;}
.infoline{text-align:center;font-size:11px;color:var(--ink-soft);padding:5px 10px;
  background:linear-gradient(0deg,rgba(3,7,13,0.92),transparent);letter-spacing:0.02em;}
.infoline b{color:var(--gold);font-weight:600;}
.bottom-panel{background:rgba(3,7,13,0.62);border-top:1px solid var(--hair);position:relative;
  backdrop-filter:blur(9px) saturate(1.1);-webkit-backdrop-filter:blur(9px) saturate(1.1);
  display:flex;flex-direction:column;gap:8px;padding:8px 12px 9px;}
.chapter-links{position:absolute;right:12px;top:9px;z-index:5;display:flex;gap:6px;}
.chapter-link{pointer-events:auto;font-family:var(--mono);
  font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);text-decoration:none;
  border:1px solid rgba(244,185,66,0.42);border-radius:3px;padding:3px 9px;background:rgba(244,185,66,0.09);
  transition:background .15s,border-color .15s;white-space:nowrap;}
.chapter-link:hover{background:rgba(244,185,66,0.2);border-color:rgba(244,185,66,0.7);}

/* Markt-Layout: links Aktien+Macro | Mitte DXY-Treiber | rechts Korrelation + Forex
   Mitte und rechte Spalte gleich breit → symmetrisch */
.market-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px 340px 340px;gap:16px;align-items:stretch;}
.market-main{display:flex;flex-direction:column;gap:10px;min-width:0;}
.market-main > .mkt-group{display:flex;flex-direction:column;min-height:0;}
.market-main > .mkt-group.eq{flex:3 1 0;}
.market-main > .mkt-group:not(.eq){flex:2 1 0;}
.market-mid{display:flex;flex-direction:column;gap:10px;min-width:0;}
.market-side{display:flex;flex-direction:column;gap:10px;}
.mkt-group{min-width:0;}
.mkt-h{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold);margin-bottom:5px;}
.mkt-h .mkt-src{margin-left:auto;color:var(--ink-dim);letter-spacing:0.05em;text-transform:none;font-size:8px;}
.mkt-h .mkt-live{width:6px;height:6px;border-radius:50%;background:var(--open);box-shadow:0 0 6px var(--open);
  animation:calpulse 1.8s ease-in-out infinite;}
.mkt-row{display:flex;flex-wrap:wrap;gap:5px;}
/* Einheitliches Kachelraster (4 Spalten) für Aktien & Macro */
.eqgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;}
.eqgrid.grow{flex:1 1 auto;grid-auto-rows:1fr;}
/* Kompakte Indizes-Zeile (S&P, NQ) */
.idx-row{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-bottom:5px;flex:none;}
.idx-row .mkt.lead{padding:3px 9px;}
.mkt{display:flex;align-items:center;gap:7px;padding:4px 9px;border:1px solid var(--hair);border-radius:2px;
  background:rgba(255,255,255,0.02);flex:1 1 162px;min-width:0;overflow:hidden;}
.eqgrid .mkt{flex:initial;}
.mkt.lead{border-color:rgba(255,215,94,0.42);background:rgba(255,215,94,0.05);}
.mkt-nm{font-size:9px;color:var(--ink-soft);letter-spacing:0.02em;white-space:nowrap;flex:none;}
.mkt.lead .mkt-nm{color:var(--gold);font-weight:600;font-size:9.5px;}
.mkt-px{font-size:11px;color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto;white-space:nowrap;}
.mkt-ch{font-size:9px;font-variant-numeric:tabular-nums;width:50px;text-align:right;flex:none;white-space:nowrap;}
.mkt-ch.up{color:var(--open);}
.mkt-ch.down{color:var(--closed);}
.mkt-ch.flat{color:var(--ink-dim);}
.mkt.flash-up{background:rgba(55,213,111,0.16);}
.mkt.flash-down{background:rgba(224,89,63,0.16);}

/* DXY-Treiber-Zerlegung (Mittelspalte) */
.mkt-group.dxy{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;}
.dxy-top{display:flex;align-items:stretch;gap:6px;margin-bottom:7px;}
.dxy-lvl,.dxy-model{flex:1 1 0;display:flex;flex-direction:column;gap:1px;padding:4px 8px;border:1px solid var(--hair);
  border-radius:2px;background:rgba(255,255,255,0.02);min-width:0;}
.dxy-lvl{border-color:rgba(255,215,94,0.42);background:rgba(255,215,94,0.05);}
.dxl-k{font-size:8px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-dim);}
.dxy-lvl .dxl-k{color:var(--gold);}
.dxl-v{font-size:14px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.05;}
.dxl-ch{font-size:9px;font-variant-numeric:tabular-nums;}
.dxl-v.up,.dxl-ch.up{color:var(--open);}
.dxl-v.down,.dxl-ch.down{color:var(--closed);}
.dxl-v.flat,.dxl-ch.flat{color:var(--ink-dim);}
.dxy-rows{display:flex;flex-direction:column;gap:4px;flex:none;}
.dxy-chart{flex:1 1 auto;min-height:86px;display:flex;flex-direction:column;margin-top:8px;}
.dxy-ch-h{font-size:8px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-dim);
  display:flex;align-items:baseline;gap:6px;margin-bottom:3px;}
.dxy-ch-rng{margin-left:auto;color:var(--ink-dim);letter-spacing:0.04em;text-transform:none;font-size:8px;}
.dxy-ch-svg{flex:1 1 auto;width:100%;min-height:70px;display:block;}
.dxy-row{display:grid;grid-template-columns:62px 1fr 46px;align-items:center;gap:7px;}
.dxy-cur{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--ink-soft);
  font-variant-numeric:tabular-nums;white-space:nowrap;}
.dxy-fl{font-style:normal;font-size:10px;line-height:1;}
.dxy-w{font-style:normal;font-size:7.5px;color:var(--ink-dim);font-weight:500;letter-spacing:0.02em;}
.dxy-bar{position:relative;height:11px;border-radius:2px;background:rgba(255,255,255,0.03);
  border:1px solid var(--hair);overflow:hidden;}
.dxy-bar::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(150,170,195,0.30);}
.dxy-fill{position:absolute;top:1px;bottom:1px;width:0;border-radius:1px;transition:width .5s ease;}
.dxy-fill.up{left:50%;background:linear-gradient(90deg,rgba(55,213,111,0.55),rgba(55,213,111,0.9));}
.dxy-fill.down{right:50%;background:linear-gradient(270deg,rgba(224,89,63,0.55),rgba(224,89,63,0.9));}
.dxy-contr{font-size:9.5px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;}
.dxy-contr.up{color:var(--open);}
.dxy-contr.down{color:var(--closed);}
.dxy-contr.flat{color:var(--ink-dim);}
.dxy-foot{margin-top:6px;font-size:7.5px;line-height:1.35;color:var(--ink-dim);letter-spacing:0.02em;}

.bottom-grid{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end;}
.strength{display:flex;flex-direction:column;gap:0;min-width:0;}
.strength .fx-ticker{margin-top:0;}
.online-banner{font-size:13px;letter-spacing:0.14em;text-transform:uppercase;font-weight:600;text-align:center;
  color:var(--open);padding:3px;border:1px solid rgba(55,213,111,0.4);background:rgba(55,213,111,0.07);border-radius:2px;}
.online-banner.closed{color:var(--closed);border-color:rgba(224,89,63,0.4);background:rgba(224,89,63,0.07);}

/* Live-Wechselkurse */
.fx-head{display:flex;justify-content:space-between;align-items:baseline;font-size:9px;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--gold);}
.fx-head .fx-src{color:var(--ink-dim);letter-spacing:0.06em;text-transform:none;font-size:9px;}
.fx-ticker{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;}
.fx{display:flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--hair);border-radius:2px;
  background:rgba(255,255,255,0.02);transition:background .35s;min-width:0;overflow:hidden;}
.fx .fx-nm{font-size:9px;color:var(--ink-soft);letter-spacing:0.02em;flex:none;}
.fx .fx-px{font-size:11px;color:var(--ink);font-variant-numeric:tabular-nums;}
.fx .fx-ch{margin-left:auto;font-size:9px;font-variant-numeric:tabular-nums;}
.fx .fx-ch.up{color:var(--open);}
.fx .fx-ch.down{color:var(--closed);}
.fx .fx-ch.flat{color:var(--ink-dim);}
.fx.flash-up{background:rgba(55,213,111,0.16);}
.fx.flash-down{background:rgba(224,89,63,0.16);}

/* Wirtschaftskalender als festes Panel (eigenes Dark-Design) */
.calpanel{display:flex;flex-direction:column;flex:1;min-height:120px;overflow:hidden;}
.calpanel .ph{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.cal-tabs{display:inline-flex;gap:2px;background:rgba(120,140,160,0.12);border-radius:4px;padding:2px;}
.cal-tab{appearance:none;border:none;background:transparent;color:var(--ink-soft);
  font-family:inherit;font-size:8.5px;letter-spacing:0.1em;text-transform:uppercase;
  padding:3px 10px;border-radius:3px;cursor:pointer;transition:background .15s,color .15s;}
.cal-tab:hover{color:var(--ink);}
.cal-tab.active{background:rgba(244,185,66,0.16);color:var(--gold);}
.calpanel .ph .cal-dot{width:7px;height:7px;border-radius:50%;background:var(--open);box-shadow:0 0 7px var(--open);
  animation:calpulse 1.8s ease-in-out infinite;}
@keyframes calpulse{0%,100%{opacity:1;}50%{opacity:.4;}}
.cal-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;}
.cal-list::-webkit-scrollbar{width:7px;}
.cal-list::-webkit-scrollbar-thumb{background:var(--hair);}
.cal-day{font-size:8.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);
  padding:7px 11px 4px;border-bottom:1px solid var(--hair-2);position:sticky;top:0;
  background:rgba(8,13,21,0.92);backdrop-filter:blur(4px);}
.cal-row{display:grid;grid-template-columns:34px 30px 1fr;gap:7px;align-items:center;
  padding:5px 11px;border-bottom:1px solid var(--hair-2);}
.cal-row.soon{background:rgba(244,185,66,0.07);}
.cal-row.past{opacity:0.5;}
.cal-time{font-size:9px;color:var(--ink-soft);font-variant-numeric:tabular-nums;}
.cal-cur{font-size:9px;font-weight:600;color:var(--city);letter-spacing:0.02em;}
.cal-main{min-width:0;}
.cal-evt{font-size:9.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  display:flex;align-items:center;gap:5px;min-width:0;}
.cal-ev-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.cal-stars{display:inline-flex;gap:1px;flex:none;}
.cal-stars .st{font-size:7.5px;line-height:1;color:var(--ink-faint);}
.cal-stars .st.on{color:var(--gold);}
.cal-stars.r3 .st.on{color:var(--closed);}
.cal-imp{display:inline-flex;gap:1.5px;flex:none;}
.cal-imp i{width:3px;height:8px;border-radius:1px;background:var(--ink-faint);}
.cal-imp.h i:nth-child(-n+3){background:var(--closed);}
.cal-imp.m i:nth-child(-n+2){background:var(--amber);}
.cal-imp.l i:nth-child(-n+1){background:var(--ink-dim);}
.cal-fc{font-size:8px;color:var(--ink-dim);font-variant-numeric:tabular-nums;margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-fc b{color:var(--ink-soft);font-weight:500;}
.cal-fc .up{color:var(--open);font-weight:600;}
.cal-fc .down{color:var(--closed);font-weight:600;}
.cal-now{display:flex;align-items:center;gap:7px;padding:5px 11px 4px;position:sticky;top:24px;
  background:linear-gradient(180deg,var(--bg-2,#0d1320) 60%,transparent);z-index:2;}
.cal-now .dot{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 6px var(--gold);flex:none;
  animation:calpulse 1.8s ease-in-out infinite;}
.cal-now .lbl{font-family:"JetBrains Mono",monospace;font-size:8px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold);white-space:nowrap;}
.cal-now .ln{flex:1;height:1px;background:linear-gradient(90deg,var(--gold),transparent);opacity:0.55;}
.cal-empty{padding:16px 11px;font-size:9px;color:var(--ink-dim);text-align:center;}
/* Key-Formular (Kalender aktivieren) */
.cal-key{padding:15px 13px;display:flex;flex-direction:column;gap:9px;}
.ck-title{font-size:11px;color:var(--ink);font-weight:600;letter-spacing:0.02em;}
.ck-text{font-size:9.5px;color:var(--ink-soft);line-height:1.5;}
.ck-link{font-size:9.5px;color:var(--gold);text-decoration:none;font-weight:600;letter-spacing:0.02em;}
.ck-link:hover{text-decoration:underline;}
.ck-input{background:rgba(8,13,21,0.6);border:1px solid var(--hair);color:var(--ink);font-family:inherit;
  font-size:10px;padding:7px 9px;border-radius:3px;outline:none;}
.ck-input:focus{border-color:var(--gold);}
.ck-save{appearance:none;border:1px solid var(--gold);background:rgba(244,185,66,0.14);color:var(--gold);
  font-family:inherit;font-size:9.5px;letter-spacing:0.05em;text-transform:uppercase;font-weight:600;
  padding:7px;border-radius:3px;cursor:pointer;transition:background .15s,color .15s;}
.ck-save:hover{background:var(--gold);color:#0b0f16;}
.ck-hint{font-size:8px;color:var(--ink-faint);line-height:1.45;}
/* News-Variante des Panels */
.cal-row.news{grid-template-columns:40px 1fr;gap:8px;align-items:baseline;padding:6px 11px;}
.cal-row.news .cal-time{padding-top:1px;}
.news-src{font-size:7.5px;color:var(--city);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:2px;display:flex;align-items:center;gap:5px;}
.news-src .nd{width:3px;height:3px;border-radius:50%;background:var(--city);flex:none;}
.news-evt{font-size:9.5px;line-height:1.38;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.news-evt a{color:var(--ink);text-decoration:none;}
.news-evt a:hover{color:var(--city);}
.cal-row.news.fresh .news-src{color:var(--gold);}
.cal-row.news.fresh .news-src .nd{background:var(--gold);box-shadow:0 0 5px var(--gold);}
.cal-foot{font-size:8px;color:var(--ink-dim);padding:4px 9px;letter-spacing:0.03em;border-top:1px solid var(--hair);}
.cal-foot a{color:var(--city);text-decoration:none;}
.cal-foot a:hover{text-decoration:underline;}

/* Korrelationsmatrix */
.corr{flex:none;display:flex;flex-direction:column;}
.corr-title{font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);text-align:center;margin-bottom:5px;}
.market-side .strength{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;}
.market-side .fx-ticker{grid-template-columns:repeat(2,1fr);flex:1 1 auto;grid-auto-rows:1fr;}
table.cmat{border-collapse:collapse;font-variant-numeric:tabular-nums;}
table.cmat th{font-size:8.5px;color:var(--ink-soft);font-weight:500;padding:2px 4px;}
table.cmat td{padding:0;}
table.cmat td .cc{display:block;width:46px;padding:3px 0;text-align:center;font-size:9.5px;color:var(--ink);margin:1px;border-radius:1px;}
table.cmat td.diag .cc{color:var(--ink-dim);background:rgba(120,140,160,0.12)!important;}

/* Footer-Hinweis */
.note{font-size:8px;color:var(--ink-faint);letter-spacing:0.06em;padding:5px 12px 4px;text-align:center;}
.copyline{font-size:8.5px;color:var(--ink-dim);letter-spacing:0.1em;text-transform:uppercase;
  padding:0 12px 7px;text-align:center;}
.copyline #copyYear{color:var(--gold);}

@media (max-width:1180px){
  .sessions{position:static;transform:none;width:auto;grid-template-columns:repeat(2,1fr);margin:8px;}
  .tl-stack,.right-panel,.center-top{position:static;width:auto;margin:8px;}
  #hud{position:absolute;overflow:auto;}
  body{overflow:auto;}
}
