:root {
  --bg:       #0a0a0f;
  --bg2:      #111118;
  --bg3:      #18181f;
  --bg4:      #1e1e27;
  --border:   #2a2a35;
  --border2:  #35353f;
  --text:     #e8e8f0;
  --text2:    #9090a8;
  --text3:    #8080a0;
  --green:    #22c55e;
  --green-bg: #052e16;
  --green-b:  #166534;
  --green-t:  #86efac;
  --red:      #ef4444;
  --red-bg:   #2d0a0a;
  --red-b:    #7f1d1d;
  --red-t:    #fca5a5;
  --blue:     #3b82f6;
  --blue-bg:  #0c1a3a;
  --blue-b:   #1e40af;
  --blue-t:   #93c5fd;
  --purple:   #a855f7;
  --amber:    #f59e0b;
  --accent:   #4f46e5;
  --accent2:  #818cf8;
  --font-h:   'Syne', sans-serif;
  --font-m:   'DM Mono', monospace;
  --font-n:   'Inter', sans-serif;
  --r:        10px;
  --r2:       6px;
  /* Spacing tokens */
  --sp-xs:    6px;
  --sp-s:     10px;
  --sp-m:     16px;
  --sp-l:     24px;
  --sp-xl:    32px;
  --shadow:   0 0 0 1px var(--border), 0 4px 24px rgba(0,0,0,.4);
  --shadow-el: inset 0 1px 0 rgba(255,255,255,.05);
  --shadow-el-hover: 0 0 0 1px rgba(99,102,241,.22), inset 0 1px 0 rgba(255,255,255,.08), 0 4px 20px rgba(99,102,241,.09);
  --topbar-bg: rgba(10,10,15,.85);
  --mc-card-bg: rgba(24,24,31,.8);
}
html.theme-deep{--bg:#000;--bg2:#080808;--bg3:#101010;--bg4:#141414;--border:#1e1e1e;--border2:#282828;--topbar-bg:rgba(0,0,0,.9);--shadow-el:inset 0 1px 0 rgba(255,255,255,.08);--shadow-el-hover:0 0 0 1px rgba(99,102,241,.35),inset 0 1px 0 rgba(255,255,255,.13),0 4px 24px rgba(99,102,241,.18);--mc-card-bg:rgba(255,255,255,.04);}
html.theme-light{--bg:#ede7dc;--bg2:#f3ede4;--bg3:#f8f4ef;--bg4:#fdfbf8;--border:#d4cbc0;--border2:#c2b9ad;--text:#1a1612;--text2:#5a5248;--text3:#595959;--accent:#273c78;--accent2:#3b52a0;--green:#166534;--green-bg:#bbf7d0;--green-b:#22c55e;--green-t:#052e16;--red:#b91c1c;--red-bg:#fecaca;--red-b:#ef4444;--red-t:#7f1d1d;--blue:#2563eb;--blue-bg:#dbeafe;--blue-b:#93c5fd;--blue-t:#1d4ed8;--amber:#d97706;--amber-bg:#fef9c3;--amber-b:#fde047;--amber-t:#92400e;--shadow:0 0 0 1px var(--border),0 4px 24px rgba(0,0,0,.1);--topbar-bg:rgba(237,231,220,.92);--shadow-el:0 1px 3px rgba(0,0,0,.07),0 4px 12px rgba(0,0,0,.05);--shadow-el-hover:0 2px 8px rgba(0,0,0,.11),0 8px 24px rgba(0,0,0,.07),0 0 0 1px rgba(39,60,120,.14);--mc-card-bg:var(--bg3);}
::-webkit-scrollbar{width:4px;}::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:99px;}
::-webkit-scrollbar-thumb:hover{background:var(--text3);}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-m);
  font-size: 13px;
  line-height: 1.5;
  min-height: 100vh;
}

/* ── PIN Screen ────────────────────────────────── */
#pin-screen{position:fixed;inset:0;z-index:1000;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;padding:24px;overflow:hidden;}
/* Mode 1 default — subtle */
#pin-screen::before{content:'';position:absolute;inset:-20%;z-index:0;background:radial-gradient(ellipse 55% 45% at 20% 45%,rgba(99,102,241,.18) 0%,transparent 55%),radial-gradient(ellipse 45% 55% at 80% 55%,rgba(129,140,248,.12) 0%,transparent 50%),radial-gradient(ellipse 35% 40% at 55% 12%,rgba(168,85,247,.10) 0%,transparent 45%),radial-gradient(ellipse 30% 35% at 35% 88%,rgba(59,130,246,.08) 0%,transparent 40%);animation:pinBlobOld 14s ease-in-out infinite alternate;pointer-events:none;transition:opacity .5s;}
#pin-screen::after{content:'';position:absolute;inset:0;z-index:0;background-image:radial-gradient(circle,rgba(255,255,255,.055) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;transition:opacity .5s;}
@keyframes pinBlobOld{0%{transform:scale(1) translateX(0) translateY(0);}33%{transform:scale(1.04) translateX(1%) translateY(-1.5%);}66%{transform:scale(.97) translateX(-1%) translateY(1%);}100%{transform:scale(1.03) translateX(.5%) translateY(-.5%);}}
/* Mode 2 — dramatic aurora */
#pin-screen[data-bg="2"]::before{inset:-35%;background:radial-gradient(ellipse 65% 55% at 22% 42%,rgba(99,102,241,.38) 0%,transparent 58%),radial-gradient(ellipse 50% 65% at 78% 58%,rgba(168,85,247,.28) 0%,transparent 52%),radial-gradient(ellipse 45% 40% at 58% 10%,rgba(236,72,153,.20) 0%,transparent 50%),radial-gradient(ellipse 38% 45% at 32% 90%,rgba(59,130,246,.18) 0%,transparent 48%);animation:pinBlob1 18s ease-in-out infinite alternate;}
#pin-screen[data-bg="2"]::after{inset:-30%;background:radial-gradient(ellipse 55% 50% at 72% 22%,rgba(6,182,212,.22) 0%,transparent 55%),radial-gradient(ellipse 60% 45% at 18% 72%,rgba(129,140,248,.26) 0%,transparent 52%),radial-gradient(ellipse 35% 55% at 82% 82%,rgba(244,114,182,.18) 0%,transparent 48%),radial-gradient(ellipse 42% 38% at 48% 52%,rgba(99,102,241,.12) 0%,transparent 50%);background-size:auto;animation:pinBlob2 13s ease-in-out infinite alternate-reverse;}
@keyframes pinBlob1{0%{transform:scale(1) translateX(0) translateY(0) rotate(0deg);}25%{transform:scale(1.07) translateX(3%) translateY(-2.5%) rotate(1.5deg);}50%{transform:scale(.94) translateX(-2.5%) translateY(3%) rotate(-2deg);}75%{transform:scale(1.05) translateX(2%) translateY(-1%) rotate(1deg);}100%{transform:scale(.97) translateX(-1.5%) translateY(2%) rotate(-1deg);}}
@keyframes pinBlob2{0%{transform:scale(1) translateX(0) translateY(0) rotate(0deg);}33%{transform:scale(1.09) translateX(-3.5%) translateY(2%) rotate(2.5deg);}66%{transform:scale(.92) translateX(3%) translateY(-2.5%) rotate(-2deg);}100%{transform:scale(1.06) translateX(-2%) translateY(1.5%) rotate(1.5deg);}}
/* Mode 3 — canvas candles (hide pseudo-elements) */
#pin-screen[data-bg="3"]::before,#pin-screen[data-bg="3"]::after{opacity:0;}
/* Light theme — mode 1 */
html.theme-light #pin-screen::before{background:radial-gradient(ellipse 55% 45% at 20% 45%,rgba(39,60,120,.12) 0%,transparent 55%),radial-gradient(ellipse 45% 55% at 80% 55%,rgba(39,60,120,.08) 0%,transparent 50%),radial-gradient(ellipse 35% 40% at 55% 12%,rgba(107,107,107,.07) 0%,transparent 45%);}
html.theme-light #pin-screen::after{background-image:radial-gradient(circle,rgba(0,0,0,.055) 1px,transparent 1px);background-size:28px 28px;}
/* Light theme — mode 2 */
html.theme-light #pin-screen[data-bg="2"]::before{background:radial-gradient(ellipse 65% 55% at 22% 42%,rgba(39,60,120,.22) 0%,transparent 58%),radial-gradient(ellipse 50% 65% at 78% 58%,rgba(39,60,120,.16) 0%,transparent 52%),radial-gradient(ellipse 45% 40% at 58% 10%,rgba(107,107,107,.12) 0%,transparent 50%),radial-gradient(ellipse 38% 45% at 32% 90%,rgba(39,60,120,.10) 0%,transparent 48%);}
html.theme-light #pin-screen[data-bg="2"]::after{background:radial-gradient(ellipse 55% 50% at 72% 22%,rgba(39,60,120,.12) 0%,transparent 55%),radial-gradient(ellipse 60% 45% at 18% 72%,rgba(107,107,107,.14) 0%,transparent 52%),radial-gradient(ellipse 35% 55% at 82% 82%,rgba(39,60,120,.08) 0%,transparent 48%);background-size:auto;}
/* Mobile — always mode 1 */
@media(max-width:600px){
  #pin-screen[data-bg="2"]::before,#pin-screen[data-bg="3"]::before{opacity:1;inset:-20%;background:radial-gradient(ellipse 55% 45% at 20% 45%,rgba(99,102,241,.18) 0%,transparent 55%),radial-gradient(ellipse 45% 55% at 80% 55%,rgba(129,140,248,.12) 0%,transparent 50%),radial-gradient(ellipse 35% 40% at 55% 12%,rgba(168,85,247,.10) 0%,transparent 45%),radial-gradient(ellipse 30% 35% at 35% 88%,rgba(59,130,246,.08) 0%,transparent 40%);animation:pinBlobOld 14s ease-in-out infinite alternate;}
  #pin-screen[data-bg="2"]::after,#pin-screen[data-bg="3"]::after{opacity:1;inset:0;background:none;background-image:radial-gradient(circle,rgba(255,255,255,.055) 1px,transparent 1px);background-size:28px 28px;animation:none;}
  html.theme-light #pin-screen[data-bg="2"]::before,html.theme-light #pin-screen[data-bg="3"]::before{background:radial-gradient(ellipse 55% 45% at 20% 45%,rgba(39,60,120,.12) 0%,transparent 55%),radial-gradient(ellipse 45% 55% at 80% 55%,rgba(39,60,120,.08) 0%,transparent 50%),radial-gradient(ellipse 35% 40% at 55% 12%,rgba(107,107,107,.07) 0%,transparent 45%);}
  html.theme-light #pin-screen[data-bg="2"]::after,html.theme-light #pin-screen[data-bg="3"]::after{background:none;background-image:radial-gradient(circle,rgba(0,0,0,.055) 1px,transparent 1px);background-size:28px 28px;}
}
.pin-logo{font-family:var(--font-h);font-size:28px;font-weight:800;color:var(--text);letter-spacing:-1px;position:relative;z-index:1;}
.pin-logo span{color:var(--accent2);}
.pin-firm{font-family:'Times New Roman',Times,serif;font-size:11px;letter-spacing:.22em;color:var(--text3);text-transform:uppercase;opacity:.75;position:absolute;bottom:max(28px,env(safe-area-inset-bottom,28px));left:50%;transform:translateX(-50%);white-space:nowrap;z-index:1;}
.pin-card{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:32px;width:100%;max-width:360px;box-shadow:var(--shadow);position:relative;z-index:1;}
.pin-sub{color:var(--text2);font-size:12px;margin-bottom:28px;text-align:center;}
.pin-dots-wrap{position:relative;cursor:text;margin-bottom:24px;}
.pin-dots{display:flex;gap:14px;justify-content:center;padding:10px 0;}
.pin-dot{width:13px;height:13px;border-radius:50%;border:2px solid var(--border2);transition:background .1s,border-color .1s,transform .1s;flex-shrink:0;}
.pin-dot.filled{background:var(--accent2);border-color:var(--accent2);transform:scale(1.15);}
.pin-input-hidden{position:absolute;width:1px;height:1px;opacity:0;top:50%;left:50%;transform:translate(-50%,-50%);border:none;outline:none;font-size:16px;}
.pin-btn{width:100%;padding:13px;background:var(--accent);border:none;border-radius:var(--r2);color:#fff;font-family:var(--font-h);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s;}
.pin-btn:hover{opacity:.85;}
.pin-error{color:var(--red-t);font-size:12px;text-align:center;margin-top:10px;display:none;}

/* ── App Layout ────────────────────────────────── */
#app { display: none; min-height: 100vh; }

.topbar {
  position: sticky; top: 0; z-index: 100;
  background: var(--topbar-bg);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
  padding: 0 24px;
  display: flex; align-items: center; justify-content: space-between;
  height: 56px;
}
.topbar-logo {
  font-family: var(--font-h); font-weight: 800; font-size: 17px;
  color: var(--text); letter-spacing: -.5px;
}
.topbar-logo span { color: var(--accent2); }
.topbar-nav { display: flex; gap: 4px; align-items: center; }
.nav-link {
  padding: 6px 12px; border-radius: var(--r2);
  font-family: var(--font-h); font-size: 13px; font-weight: 600;
  color: var(--text2); background: transparent; border: none;
  cursor: pointer; transition: all .15s; text-decoration: none;
}
.nav-link:hover { color: var(--text); background: var(--bg3); }
.nav-link.active { color: var(--text); background: var(--bg3); }
.logout-btn {
  padding: 6px 12px; border-radius: var(--r2);
  font-family: var(--font-h); font-size: 12px; font-weight: 600;
  color: var(--text3); background: transparent;
  border: 1px solid var(--border); cursor: pointer;
  transition: all .15s; margin-left: 8px;
}
.logout-btn:hover { color: var(--red-t); border-color: var(--red-b); }

.main { max-width: min(1400px, 92vw); margin: 0 auto; padding: 36px 0; }

/* ── Metrics ────────────────────────────────────── */
.metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.metrics-grid2 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 28px;
}
.metric {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 18px 20px;
  transition: border-color .2s, box-shadow .2s;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: var(--shadow-el);
}
.metric:hover { border-color: var(--border2); box-shadow: var(--shadow-el-hover); }
.metric-label {
  font-family: var(--font-h); font-size: 10px;
  color: var(--text3); letter-spacing: .1em;
  text-transform: uppercase; margin-bottom: 8px;
}
.metric-val {
  font-family: var(--font-n); font-size: 28px; font-weight: 700;
  color: var(--text); letter-spacing: -.5px; line-height: 1.1;
}
.metric-val.pos { color: var(--green); }
.metric-val.neg { color: var(--red); }
.metric-val.blue { color: var(--blue-t); }
.metric-val.purple { color: var(--purple); }
.metric-val.amber { color: var(--amber); }

/* ── Panel ──────────────────────────────────────── */
.panel {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 20px;
  margin-bottom: 16px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: border-color .2s, box-shadow .2s;
  box-shadow: var(--shadow-el);
}
.panel:hover { border-color: var(--border2); box-shadow: var(--shadow-el-hover); }
.panel-title {
  font-family: var(--font-h); font-size: 11px; font-weight: 700;
  color: var(--text3); text-transform: uppercase; letter-spacing: .1em;
  margin-bottom: 14px;
}

/* ── Form ───────────────────────────────────────── */
.form-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.fgrp { display: flex; flex-direction: column; gap: 5px; }
.fgrp label { font-size: 11px; color: var(--text3); text-transform: uppercase; letter-spacing: .06em; }
input[type=text], input[type=number], input[type=date], input[type=time], select {
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: var(--r2); padding: 9px 12px;
  color: var(--text); font-family: var(--font-m); font-size: 13px;
  outline: none; width: 100%; transition: border-color .15s;
}
input:focus, select:focus { border-color: var(--accent2); }
select option { background: var(--bg3); }
.outcome-row { display: flex; gap: 6px; }
.ob {
  flex: 1; padding: 7px 4px;
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: var(--r2); cursor: pointer;
  font-family: var(--font-h); font-size: 12px; font-weight: 600;
  color: var(--text2); transition: all .15s; text-align: center;
}
.ob:hover { border-color: var(--border); color: var(--text); }
.ob.win.active { background: var(--green-bg); border-color: var(--green-b); color: var(--green-t); }
.ob.loss.active { background: var(--red-bg); border-color: var(--red-b); color: var(--red-t); }
.ob.be.active { background: var(--blue-bg); border-color: var(--blue-b); color: var(--blue-t); }
.form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; align-items:center; }
.form-notes-toggle { background:transparent; border:none; color:var(--text3); font-family:var(--font-m); font-size:11px; cursor:pointer; padding:2px 4px; margin-right:auto; transition:color .15s; }
.form-notes-toggle:hover { color:var(--text2); }
.form-notes-section { display:grid; grid-template-columns:1fr 2fr; gap:10px; overflow:hidden; max-height:0; opacity:0; margin-top:0; transition:max-height .3s ease,opacity .25s ease,margin-top .25s ease; }
.form-notes-section.open { max-height:600px; opacity:1; margin-top:10px; }
.form-notes-section .fgrp-full { grid-column:1/-1; }
/* Ghost (missed) toggle inside the Setup/Notes section */
.ghost-toggle-row { margin-top:2px; padding-top:10px; border-top:1px dashed var(--border2); }
.tj-switch { display:flex; align-items:center; gap:10px; cursor:pointer; user-select:none; }
.tj-switch input { position:absolute; opacity:0; width:0; height:0; }
.tj-switch-track { position:relative; flex:0 0 auto; width:38px; height:22px; border-radius:99px; background:var(--bg4); border:1px solid var(--border2); transition:background .18s, border-color .18s; }
.tj-switch-track::after { content:''; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:var(--text3); transition:transform .18s, background .18s; }
.tj-switch input:checked + .tj-switch-track { background:var(--accent); border-color:var(--accent); }
.tj-switch input:checked + .tj-switch-track::after { transform:translateX(16px); background:#fff; }
.tj-switch input:focus-visible + .tj-switch-track { box-shadow:0 0 0 2px var(--accent2); }
.tj-switch-label { font-family:var(--font-m); font-size:12px; color:var(--text2); }
.form-notes-section textarea {
  resize:vertical; min-height:36px;
  background:var(--bg3); border:1px solid var(--border2);
  border-radius:var(--r2); padding:9px 12px;
  color:var(--text); font-family:var(--font-m); font-size:13px;
  outline:none; width:100%; transition:border-color .15s;
  box-sizing:border-box; line-height:1.5;
}
/* R:R prefix wrapper */
.rr-wrap{display:flex;align-items:center;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);transition:border-color .15s;}
.rr-wrap:focus-within{border-color:var(--accent2);}
.rr-prefix{padding:0 4px 0 10px;color:var(--text3);font-size:12px;white-space:nowrap;font-family:var(--font-m);user-select:none;}
.rr-wrap input{border:none!important;background:transparent!important;flex:1;width:auto!important;padding:9px 10px 9px 0;min-width:0;}
.form-notes-section textarea:focus { border-color:var(--accent2); }
.form-notes-section textarea::placeholder { color:var(--text3); }
.setup-badge { display:inline-block; padding:1px 7px; border-radius:99px; font-size:10px; font-family:var(--font-m); font-weight:500; background:var(--accent)22; color:var(--accent2); border:1px solid var(--accent)44; white-space:nowrap; }
.notes-icon { display:inline-block; width:14px; height:14px; border-radius:50%; background:var(--bg3); border:1px solid var(--border2); cursor:pointer; text-align:center; line-height:13px; font-size:9px; color:var(--text3); flex-shrink:0; position:relative; }
.notes-icon:hover::after { content:attr(data-notes); position:absolute; left:18px; top:-4px; background:var(--bg4); border:1px solid var(--border); border-radius:var(--r2); padding:6px 10px; font-size:11px; color:var(--text); white-space:pre-wrap; max-width:220px; z-index:50; line-height:1.5; box-shadow:var(--shadow); }
.btn {
  padding: 9px 18px; border-radius: var(--r2);
  font-family: var(--font-h); font-size: 13px; font-weight: 600;
  cursor: pointer; transition: all .15s; border: none;
}
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent2); }
.btn-ghost { background: transparent; border: 1px solid var(--border2); color: var(--text2); }
.btn-ghost:hover { color: var(--text); border-color: var(--border); }
.btn-loading { opacity: .6; pointer-events: none; }

/* ── Tabs ───────────────────────────────────────── */
.tabs { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 16px; }
.tab {
  padding: 6px 13px; border-radius: 99px;
  border: 1px solid var(--border);
  font-family: var(--font-h); font-size: 12px; font-weight: 600;
  color: var(--text2); background: transparent; cursor: pointer;
  transition: all .15s;
}
.tab:hover { color: var(--text); border-color: var(--border2); }
.tab.active { background: var(--text); color: var(--bg); border-color: var(--text); }

/* ── Calendar ───────────────────────────────────── */
.cal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.cal-nav span { font-family: var(--font-h); font-size: 16px; font-weight: 700; }
.cal-nav-btn {
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: var(--r2); padding: 5px 12px;
  color: var(--text2); cursor: pointer; font-size: 16px; font-family: var(--font-m);
  transition: all .15s;
}
.cal-nav-btn:hover { color: var(--text); border-color: var(--border); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
@media(min-width:601px) {
  .cal-grid {
    grid-template-columns: var(--cc1,1fr) var(--cc2,1fr) var(--cc3,1fr) var(--cc4,1fr) var(--cc5,1fr) var(--cc6,1fr) var(--cc7,1fr) var(--cc8,0fr);
    transition: grid-template-columns .42s cubic-bezier(.4,0,.2,1);
  }
}
.cal-hdr {
  text-align: center; font-family: var(--font-h); font-size: 10px;
  font-weight: 700; color: var(--text3); padding: 6px 0;
  text-transform: uppercase; letter-spacing: .08em;
}
.cal-day {
  min-height: 72px;
  border: 1px solid var(--border);
  border-radius: var(--r2); padding: 8px 10px;
  cursor: default; transition: border-color .15s;
  display: flex; flex-direction: column; justify-content: space-between;
}
.cal-day.has { cursor: pointer; }
.cal-day.has:hover { border-color: var(--border2); background: var(--bg3); }
.cal-day .dn {
  font-family: var(--font-n); font-size: 11px; font-weight: 500;
  color: var(--text3); line-height: 1;
}
.cal-day .dp {
  font-family: var(--font-n); font-size: 17px; font-weight: 700;
  margin-top: 4px; line-height: 1;
}
.cal-day .dtc {
  font-family: var(--font-h); font-size: 11px; font-weight: 600;
  letter-spacing: .01em; margin-top: 3px; line-height: 1;
}
@media (min-width: 901px) {
  .cal-grid { gap: 4px; }
  .cal-day { min-height: 68px; padding: 7px 9px; }
  .cal-day .dp { font-size: 15px; }
  .cal-day .dtc { font-size: 10px; }
}
.cal-day.profit { background: var(--green-bg); border-color: var(--green-b); }
.cal-day.profit .dp { color: var(--green-t); }
.cal-day.profit .dtc { color: var(--green-t); opacity: .7; }
.cal-day.loss-d { background: var(--red-bg); border-color: var(--red-b); }
.cal-day.loss-d .dp { color: var(--red-t); }
.cal-day.loss-d .dtc { color: var(--red-t); opacity: .7; }
.cal-day.other { opacity: .2; }

/* ── Calendar detail panel ──────────────────────── */
#cal-detail-outer {
  overflow: hidden;
  height: 0;
  /* height is managed entirely by JS */
}
#cal-detail {
  padding-top: 14px;
  opacity: 0;
  transition: opacity 0.15s ease;
}
#cal-detail.visible { opacity: 1; }

/* ── Trade rows ─────────────────────────────────── */
.trade-row {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 0; border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}
.trade-time { font-family: var(--font-m); font-size: 11px; color: var(--text3); white-space: nowrap; }
.trade-dur { font-family: var(--font-m); font-size: 11px; color: var(--text3); opacity: .7; }
.trade-row:last-child { border-bottom: none; }
.atag {
  border-radius: var(--r2); padding: 2px 8px;
  font-family: var(--font-m); font-size: 11px; font-weight: 500;
}
.bdg {
  display: inline-block; padding: 2px 8px; border-radius: 99px;
  font-family: var(--font-h); font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
}
.bdg.win { background: var(--green-bg); color: var(--green-t); border: 1px solid var(--green-b); }
.bdg.loss { background: var(--red-bg); color: var(--red-t); border: 1px solid var(--red-b); }
.bdg.be { background: var(--blue-bg); color: var(--blue-t); border: 1px solid var(--blue-b); }
.bdg.ghost { background: var(--bg3); color: var(--text3); border: 1px dashed var(--border2); font-style: italic; }
.dir-tag { font-family: var(--font-m); font-size: 11px; font-weight: 600; color: var(--text2); letter-spacing: .02em; }

/* ── Ghost (verpasste) Trades ────────────────────────────── */
.cal-day.ghost-day { background: var(--bg2) !important; border: 1px dashed var(--border2) !important; }
.cal-day.ghost-day .dp { color: var(--text3) !important; font-style: normal; }
.cal-day.ghost-day .dtc { color: var(--text3); }
.ghost-rr { font-size: 13px !important; font-family: var(--font-h); font-weight: 700; color: var(--text2) !important; }
.ghost-asset { font-size: 11px; font-family: var(--font-h); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ghost-badge { display: flex; align-items: center; gap: 3px; font-size: 10px; color: var(--text3); font-family: var(--font-h); font-weight: 600; }
.ghost-v-lbl { background: var(--bg3); border: 1px dashed var(--border2); border-radius: 3px; padding: 0 4px; font-size: 9px; font-weight: 700; color: var(--text3); }
.cal-day.has.ghost-mix .ghost-corner { display: block; }
.ghost-corner { display: none; position: absolute; top: 4px; right: 5px; font-size: 9px; color: var(--text3); font-family: var(--font-h); font-weight: 700; line-height: 1; }
.trade-row.ghost-row { opacity: 0.8; border-left: 2px dashed var(--border2) !important; padding-left: 8px; }
.ghost-banner { background: var(--bg3); border: 1px dashed var(--border2); border-radius: var(--r2); padding: 8px 14px; font-size: 12px; font-family: var(--font-h); color: var(--text2); margin-bottom: 12px; display: none; }
.ghost-banner.active { display: block; }
.ghost-add-btn { float: right; background: transparent; border: 1px dashed var(--border2); color: var(--text3); font-family: var(--font-h); font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 99px; cursor: pointer; transition: color .15s, border-color .15s; }
.ghost-add-btn:hover { color: var(--text2); border-color: var(--text3); }
/* ── Tagesinfo (day note) ─────────────────────────────────── */
.cal-dayinfo-text { font-family: var(--font-h); font-weight: 600; opacity: .68; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.cal-day .dtc.dtc-row { display: flex; align-items: baseline; gap: 5px; overflow: hidden; }
.dtc-row .dtc-cnt { flex: 0 0 auto; }
.dtc-row .cal-dayinfo-text { flex: 1 1 0; }
.cal-day.no-trade.has-dayinfo { border-color: var(--border) !important; }
.cal-day.no-trade.has-dayinfo .dn { color: var(--text2); }
.cal-dayinfo-solo { margin-top: 4px; color: var(--text2); opacity: .8; max-width: 100%; }
.cal-dayinfo-edit { margin-bottom: 12px; }
.cal-dayinfo-edit-lbl { display: block; font-size: 10px; font-weight: 700; color: var(--text3); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 5px; }
.cal-dayinfo-ta { width: 100%; box-sizing: border-box; min-height: 34px; resize: vertical; background: var(--bg3); border: 1px dashed var(--border2); border-radius: var(--r2); padding: 8px 11px; color: var(--text); font-family: var(--font-m); font-size: 12px; line-height: 1.5; outline: none; transition: border-color .15s; }
.cal-dayinfo-ta:focus { border-color: var(--accent2); border-style: solid; }
.cal-dayinfo-ta::placeholder { color: var(--text3); }
/* Tagesinfo + Trade-Tag-Nr. side by side */
.cal-day-meta { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; }
.cal-day-meta .cal-dayinfo-edit { flex: 1 1 auto; min-width: 0; margin-bottom: 0; }
.cal-tradenum-edit { flex: 0 0 auto; width: 96px; }
.cal-tradenum-row { display: flex; align-items: center; gap: 4px; }
.cal-tradenum-input { width: 100%; min-width: 0; box-sizing: border-box; background: var(--bg3); border: 1px dashed var(--border2); border-radius: var(--r2); padding: 8px 10px; color: var(--text); font-family: var(--font-h); font-size: 16px; font-weight: 700; outline: none; transition: border-color .15s; -moz-appearance: textfield; }
.cal-tradenum-input::-webkit-outer-spin-button, .cal-tradenum-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cal-tradenum-input:focus { border-color: var(--accent2); border-style: solid; }
.cal-tradenum-input::placeholder { color: var(--text3); font-weight: 600; }
.cal-tradenum-clear { flex: 0 0 auto; background: none; border: none; color: var(--text3); cursor: pointer; font-size: 13px; line-height: 1; padding: 4px; border-radius: var(--r2); transition: color .15s, background .15s; }
.cal-tradenum-clear:hover { color: var(--red); background: var(--bg3); }
/* Trade-Tag-Nr. badge (calendar SS header + gallery date prefix) */
.trade-num-badge { display: inline-flex; align-items: center; margin-left: 7px; padding: 1px 7px; border-radius: 99px; background: var(--accent); color: #fff; font-family: var(--font-h); font-size: 11px; font-weight: 800; letter-spacing: .02em; vertical-align: middle; }
.trade-num-badge.gal-num { margin-left: 0; margin-right: 2px; font-size: 12px; padding: 2px 9px; }
.cal-ctx-menu { position: fixed; z-index: 800; background: var(--bg2); border: 1px solid var(--border2); border-radius: var(--r2); padding: 4px; min-width: 210px; box-shadow: var(--shadow-el); }
.cal-ctx-menu button { display: block; width: 100%; padding: 9px 14px; text-align: left; background: none; border: none; font-family: var(--font-h); font-size: 13px; font-weight: 600; color: var(--text); cursor: pointer; border-radius: var(--r2); transition: background .1s; }
.cal-ctx-menu button:hover { background: var(--bg3); }
.ab {
  background: none; border: none; cursor: pointer;
  color: var(--text3); font-size: 14px; padding: 2px 4px;
  line-height: 1; transition: color .15s;
}
.ab:hover { color: var(--blue-t); }
.ab.dl:hover { color: var(--red-t); }
.empty { text-align: center; padding: 40px 0; color: var(--text3); font-size: 12px; }
.tab-empty-msg { text-align: center; padding: 48px 0; color: var(--text3); font-size: 12px; font-family: var(--font-h); }
.tab-empty-active > .chart-block,
.tab-empty-active > .chart-wrap,
.tab-empty-active > .score-wrap,
.tab-empty-active > .score-cards,
.tab-empty-active > .adv-stats-wrap,
.tab-empty-active > #as-dur-stats { display: none !important; }

/* ── Month cards ────────────────────────────────── */
.mo-card {
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 16px; margin-bottom: 10px;
  transition: border-color .15s;
}
.mo-card { cursor: pointer; }
.mo-card:hover { border-color: var(--border2); }
.mo-card-chevron { transition: transform .25s; font-size: 10px; margin-left: 8px; opacity: .5; }
.mo-detail { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.mo-detail.open { max-height: 2400px; }
.mo-detail-inner { border-top: 1px solid rgba(255,255,255,.1); margin-top: 14px; padding-top: 14px; }
html.theme-light .mo-detail-inner { border-top-color: rgba(0,0,0,.12); }
.mo-ds { font-size: 10px; font-weight: 700; font-family: var(--font-h); color: var(--text3); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 7px; margin-top: 14px; }
.mo-ds:first-child { margin-top: 0; }
.mo-bk-row { display: flex; justify-content: space-between; align-items: center; padding: 5px 9px; border-radius: var(--r2); background: rgba(0,0,0,.2); margin-bottom: 4px; font-size: 12px; }
html.theme-light .mo-bk-row { background: rgba(0,0,0,.07); }
.mo-bk-name { color: var(--text2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 55%; }
.mo-bk-val { font-family: var(--font-h); font-weight: 700; white-space: nowrap; }
.mo-note-ta { width: 100%; background: rgba(0,0,0,.25); border: 1px solid rgba(255,255,255,.12); border-radius: var(--r2); color: var(--text); font-family: var(--font-m); font-size: 12px; padding: 9px 11px; resize: vertical; min-height: 58px; margin-top: 4px; box-sizing: border-box; }
html.theme-light .mo-note-ta { background: rgba(0,0,0,.06); border-color: rgba(0,0,0,.15); color: var(--text); }
.mo-note-ta:focus { outline: none; border-color: var(--accent); }
.mo-note-save { margin-top: 7px; padding: 5px 14px; background: var(--accent); border: none; border-radius: var(--r2); color: #fff; font-family: var(--font-h); font-size: 11px; font-weight: 700; cursor: pointer; transition: opacity .15s; }
.mo-note-save:hover { opacity: .85; }
.mo-note-saved { font-size: 11px; color: var(--green); margin-left: 8px; opacity: 0; transition: opacity .3s; }
.mo-note-saved.show { opacity: 1; }
/* ── Advanced Analytics (Score tab) ─────── */
.adv-stats-wrap { margin-top: 12px; }
.adv-stats-title { font-size: 10px; font-weight: 700; font-family: var(--font-h); color: var(--text3); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.adv-stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
@media(max-width:600px) { .adv-stats-grid { grid-template-columns: 1fr 1fr; } }
.adv-card { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--r2); padding: 14px 16px; position: relative; }
.adv-card-lbl { font-size: 10px; color: var(--text3); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 5px; }
.adv-card-val { font-family: var(--font-h); font-size: 20px; font-weight: 800; line-height: 1.1; }
.adv-card-sub { font-size: 10px; color: var(--text3); margin-top: 4px; line-height: 1.4; }
.adv-card-info { position: absolute; top: 10px; right: 10px; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--border2); background: transparent; color: var(--text3); font-size: 10px; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; line-height: 1; padding: 0; transition: color .15s, border-color .15s; }
.adv-card-info:hover { color: var(--text); border-color: var(--text3); }
.adv-card-center { text-align: center; }
.adv-card-center .adv-card-val { font-size: 24px; }
@media(max-width:600px) { .streak-grid { grid-template-columns: 1fr 1fr !important; } }

/* ── Day Screenshot Gallery ─────────────────────────────── */
.day-ss-section { margin-top: 16px; border-top: 1px solid var(--border); padding-top: 14px; }
.day-ss-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.day-ss-title { font-family: var(--font-h); font-size: 11px; font-weight: 700; color: var(--text3); text-transform: uppercase; letter-spacing: .08em; }
.day-ss-upload-btn { font-family: var(--font-h); font-size: 12px; font-weight: 600; color: var(--accent2); cursor: pointer; padding: 5px 10px; border-radius: var(--r2); border: 1px solid var(--border2); transition: all .15s; }
.day-ss-upload-btn:hover { background: var(--bg3); }
.day-ss-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.day-ss-title { display: inline-flex; align-items: center; }
/* Auto-sort button — grayed by default, colored when order differs from time-sort */
.day-ss-sort-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 30px; padding: 0 9px; border-radius: var(--r2); border: 1px solid var(--border2); background: transparent; color: var(--text3); font-size: 15px; line-height: 1; cursor: pointer; transition: all .15s; }
.day-ss-sort-btn:hover { background: var(--bg3); color: var(--text2); }
.day-ss-sort-btn.active { color: #fff; background: var(--accent); border-color: var(--accent); }
.day-ss-sort-btn.active:hover { opacity: .9; background: var(--accent); color: #fff; }
/* Delete-all-screenshots button (calendar) */
.day-ss-del-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 30px; padding: 0 9px; border-radius: var(--r2); border: 1px solid var(--border2); background: transparent; color: var(--text3); font-size: 14px; line-height: 1; cursor: pointer; white-space: nowrap; transition: all .15s; }
.day-ss-del-btn:hover { background: var(--red-bg); border-color: var(--red-b); color: var(--red-t); }
.day-ss-del-btn.confirm { background: var(--red); border-color: var(--red); color: #fff; font-family: var(--font-h); font-size: 11px; font-weight: 700; }
.day-ss-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 260px)); gap: 10px; justify-content: start; }
.day-ss-thumb { position: relative; border-radius: var(--r2); overflow: hidden; aspect-ratio: 16/9; cursor: pointer; border: 2px solid transparent; background: var(--bg3); transition: border-color .15s, opacity .15s; }
.day-ss-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transition: opacity .4s ease; }
.day-ss-thumb img.ss-loaded { opacity: 1; }
.day-ss-thumb.ss-skeleton { cursor: default; background: var(--bg3); animation: ssShimmer 1.2s ease-in-out infinite; }
@keyframes ssShimmer { 0%,100% { opacity: .45; } 50% { opacity: .8; } }
.day-ss-thumb:hover { border-color: var(--border2); }
.day-ss-thumb.ss-dragging { opacity: .35; border-color: var(--accent2); }
.day-ss-thumb.ss-drag-over { border-color: var(--accent2); box-shadow: 0 0 0 3px var(--accent2)44; }
.day-ss-thumb .screenshot-del { position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; border-radius: 50%; border: none; background: rgba(0,0,0,.65); color: #fff; font-size: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .15s; }
.day-ss-thumb:hover .screenshot-del { opacity: 1; }
.day-ss-empty { color: var(--text3); font-size: 12px; font-family: var(--font-h); padding: 16px 0; }
/* Upload progress indicator */
.ss-upload-progress { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background: var(--bg2); border: 1px solid var(--border2); border-radius: 99px; padding: 8px 16px; display: flex; align-items: center; gap: 10px; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 900; font-family: var(--font-m); font-size: 11px; color: var(--text2); white-space: nowrap; }
.ss-upload-progress.show { opacity: 1; }
.ss-up-track { width: 80px; height: 4px; background: var(--bg4); border-radius: 99px; overflow: hidden; }
.ss-up-bar { height: 100%; width: 0; background: var(--accent); border-radius: 99px; transition: width .15s; }
@media(max-width:600px) { .day-ss-grid { grid-template-columns: 1fr 1fr; justify-content: stretch; } }
@media(max-width:600px) { .day-ss-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); justify-content: stretch; } }

/* ── Galerie Tab ─────────────────────────────────────────── */
.gal-day-section { margin-bottom: 28px; }
.gal-day-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.gal-day-date { font-family: var(--font-h); font-size: 13px; font-weight: 700; color: var(--text); }
.gal-day-left { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gal-day-stats { display: flex; align-items: center; gap: 7px; font-family: var(--font-m); font-size: 11px; color: var(--text2); }
.gal-day-sep { color: var(--text3); opacity: .55; }
.adv-be-wrap { margin-bottom: 10px; }
.adv-be-card { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--r2); padding: 16px 20px; position: relative; display: flex; align-items: center; gap: 20px; }
.adv-be-card-lbl { font-size: 10px; color: var(--text3); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }
.adv-be-card-val { font-family: var(--font-h); font-size: 28px; font-weight: 800; line-height: 1; }
.adv-be-card-sub { font-size: 11px; color: var(--text3); margin-top: 4px; }
@media(max-width:600px) {
  .adv-be-card { flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 20px 16px; }
  .adv-be-card-val { font-size: 36px; }
}
.mo-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; }
.mo-name { font-family: var(--font-h); font-size: 14px; font-weight: 700; }
.mo-pnl { font-family: var(--font-h); font-size: 22px; font-weight: 800; }
.mo-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.mo-stat { background: var(--bg3); border-radius: var(--r2); padding: 7px 10px; }
.mo-stat-label { font-size: 10px; color: var(--text3); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 2px; }
.mo-stat-val { font-family: var(--font-h); font-size: 13px; font-weight: 700; color: var(--text); }
html.theme-light .mo-stat { background: #273c78; }
html.theme-light .mo-stat-label { color: rgba(255,255,255,.55); }
html.theme-light .mo-stat-val { color: #fff; }

/* ── Score ──────────────────────────────────────── */
.score-wrap{display:grid;grid-template-columns:1fr 1fr;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:12px;}
@media(max-width:780px){.score-wrap{grid-template-columns:1fr;} .score-right{border-left:none !important;border-top:1px solid var(--border);}}
.score-left{padding:32px 36px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;}
.score-right{display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.7);border-left:1px solid rgba(15,23,42,.9);}
html.theme-light .score-right{background:var(--bg3);border-left-color:var(--border);}
.score-num{font-family:var(--font-h);font-size:64px;font-weight:800;color:var(--text);letter-spacing:-3px;line-height:1;}
.score-lbl{font-family:var(--font-h);font-size:15px;font-weight:700;margin-top:6px;}
.score-divider{width:36px;height:3px;border-radius:99px;background:var(--accent);margin:16px 0;}
.score-hint{font-size:12px;color:var(--text3);line-height:1.65;max-width:260px;}
.score-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
@media(max-width:500px){.score-cards{grid-template-columns:1fr 1fr;}}
.scard{position:relative;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);padding:16px 18px;}
.scard-lbl{font-size:10px;color:var(--text3);font-family:var(--font-h);font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;}
.scard-val{font-family:var(--font-h);font-size:30px;font-weight:800;line-height:1;letter-spacing:-1px;}
.scard-track{height:4px;background:var(--bg4);border-radius:99px;overflow:hidden;margin-top:12px;}
.scard-fill{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.4,0,.2,1);}
.scard-info{position:absolute;top:10px;right:10px;width:16px;height:16px;border-radius:50%;border:1px solid var(--border2);background:transparent;color:var(--text3);font-size:9px;font-family:var(--font-h);font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;line-height:1;}
.scard-info:hover{border-color:var(--accent);color:var(--accent2);}
#sc-tip-pop{position:fixed;z-index:9000;background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:12px;color:var(--text2);line-height:1.55;max-width:220px;box-shadow:0 8px 32px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .15s;}
#sc-tip-pop.show{opacity:1;pointer-events:auto;}

/* ── Sessions Tab ─────────────────────────────── */
.ses-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0 12px;}
.ses-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:20px;}
.ses-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:16px;transition:border-color .15s;}
.ses-card:hover{border-color:var(--border2);}
.ses-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.ses-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.ses-name{font-family:var(--font-h);font-size:13px;font-weight:700;color:var(--text);}
.ses-range{margin-left:auto;font-size:10px;color:var(--text3);}
.ses-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.ses-stat{background:var(--bg4);border-radius:var(--r2);padding:8px 10px;}
.ses-stat-val{font-size:14px;font-weight:700;color:var(--text);font-family:var(--font-m);}
.ses-stat-lbl{font-size:10px;color:var(--text3);margin-top:2px;}
.ses-chart-wrap{height:220px;margin-top:4px;}
.ses-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;margin-left:4px;vertical-align:middle;}
/* Session Timeline */
.ses-timeline-wrap{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:16px;margin-bottom:16px;}
.ses-tl-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.ses-now-info{flex:1;min-width:0;font-size:12px;color:var(--text2);font-family:var(--font-n);}
.ses-now-badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:11px;font-weight:700;font-family:var(--font-h);margin-right:6px;}
.ses-tl-utc-label{font-size:10px;color:var(--text3);font-family:var(--font-m);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;}
/* Mode toggle — inline in header */
.ses-mode-wrap{display:flex;gap:5px;flex-shrink:0;}
.ses-mode-btn{padding:3px 11px;border-radius:99px;border:1px solid var(--border);background:transparent;cursor:pointer;font-family:var(--font-m);font-size:11px;color:var(--text2);transition:all .15s;}
.ses-mode-btn:hover{border-color:var(--border2);color:var(--text);}
.ses-mode-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
/* Overlay row — clock + hover label above Gantt */
.ses-overlay-row{display:flex;gap:8px;height:22px;margin-bottom:3px;}
.ses-overlay-spacer{width:76px;flex-shrink:0;}
.ses-overlay-track{flex:1;position:relative;}
.ses-now-clock{position:absolute;bottom:0;transform:translateX(-50%);font-size:10px;font-family:var(--font-m);color:rgba(255,255,255,.95);background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);padding:1px 6px;border-radius:3px;white-space:nowrap;pointer-events:none;z-index:4;letter-spacing:.03em;}
.ses-hover-label{position:absolute;bottom:0;transform:translateX(-50%);font-size:10px;font-family:var(--font-m);color:var(--text2);background:var(--bg2);border:1px solid var(--border);padding:1px 6px;border-radius:3px;white-space:nowrap;pointer-events:none;z-index:5;transition:transform .06s;}
/* Gantt */
.ses-gantt-outer{display:flex;gap:8px;margin-bottom:6px;}
.ses-gantt-labels{width:76px;flex-shrink:0;display:flex;flex-direction:column;gap:4px;}
.ses-gantt-label-item{height:26px;display:flex;align-items:center;justify-content:flex-end;font-size:11px;color:var(--text2);font-family:var(--font-m);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ses-gantt-tracks{flex:1;position:relative;display:flex;flex-direction:column;gap:4px;}
.ses-gantt-track{height:26px;background:var(--bg4);border-radius:4px;position:relative;overflow:hidden;cursor:crosshair;}
.ses-gantt-bar{position:absolute;top:0;bottom:0;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.ses-gantt-bar-name{font-family:var(--font-h);font-size:10px;font-weight:700;white-space:nowrap;padding:0 6px;pointer-events:none;}
.ses-gantt-now{position:absolute;top:0;bottom:0;width:2px;background:rgba(255,255,255,.85);border-radius:1px;pointer-events:none;box-shadow:0 0 8px rgba(255,255,255,.45);transform:translateX(-50%);z-index:3;}
.ses-gantt-now-dot{position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.7);}
.ses-hover-line{position:absolute;top:0;bottom:0;width:0;border-left:1.5px dashed rgba(255,255,255,.4);transform:translateX(-50%);pointer-events:none;z-index:2;}
/* Ticks row */
.ses-tl-ticks-row{display:flex;gap:8px;}
.ses-tl-ticks-spacer{width:76px;flex-shrink:0;}
.ses-tl-ticks{flex:1;display:flex;justify-content:space-between;padding:0 1px;margin-top:4px;}
.ses-tick-item{display:flex;flex-direction:column;align-items:center;font-size:9px;color:var(--text3);font-family:var(--font-m);}
.ses-tick-local{opacity:.55;font-size:8px;margin-top:1px;}
html.theme-light .ses-gantt-now{background:rgba(0,0,0,.65);}
html.theme-light .ses-gantt-now-dot{background:#1a1a2e;box-shadow:none;}
html.theme-light .ses-now-clock{color:rgba(0,0,0,.75);background:rgba(0,0,0,.06);border-color:rgba(0,0,0,.14);}
html.theme-light .ses-hover-line{border-color:rgba(0,0,0,.3);}
@media(max-width:600px){
  .ses-cards-grid{grid-template-columns:1fr 1fr;}.ses-chart-wrap{height:180px;}
  .ses-gantt-bar-name{display:none;}
  .ses-gantt-labels{width:52px;}.ses-overlay-spacer{width:52px;}.ses-tl-ticks-spacer{width:52px;}
  .ses-gantt-label-item{font-size:10px;}
  .ses-tl-header{gap:6px;}
}
@media(max-width:380px){.ses-cards-grid{grid-template-columns:1fr;}}

/* ── Charts ─────────────────────────────────────── */
.chart-block { margin-bottom: 24px; }
#v-vis .chart-block {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 16px 18px;
}
#v-vis > #vis-streak-stats { margin-top: 4px; }
@media(min-width:700px) {
  #v-vis { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 28px; }
  #v-vis .chart-block { margin-bottom: 0; }
  #v-vis .chart-block:nth-child(5) { grid-column: 1 / -1; }
  #v-vis > #vis-streak-stats { grid-column: 1 / -1; margin-top: 0; }
}
.chart-title { font-family: var(--font-h); font-size: 11px; font-weight: 700; color: var(--text3); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.chart-wrap { position: relative; width: 100%; }
.heatmap-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; margin-bottom: 14px; }
.hm-cell { border-radius: var(--r2); padding: 8px 4px; text-align: center; border: 1px solid var(--border); }
.legend-row { display: flex; gap: 14px; margin-bottom: 8px; font-size: 11px; color: var(--text3); flex-wrap: wrap; }
.ld { width: 10px; height: 10px; border-radius: 2px; display: inline-block; margin-right: 4px; vertical-align: middle; }

/* ── Filters ────────────────────────────────────── */
.filter-row { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; align-items:center; }
.filter-row select { width: auto; min-width: 120px; }
.filter-row .csv-btn { padding:6px 11px; background:transparent; border:1px solid var(--border); border-radius:var(--r2); color:var(--text2); font-family:var(--font-m); font-size:11px; cursor:pointer; transition:all .15s; white-space:nowrap; }
.filter-row .csv-btn:hover { border-color:var(--border2); color:var(--text); }

/* ── Streak badge ───────────────────────────────── */
.streak-badge {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 12px; border-radius: 99px;
  font-family: var(--font-h); font-size: 12px; font-weight: 700;
}
.streak-win { background: var(--green-bg); color: var(--green-t); border: 1px solid var(--green-b); }
.streak-loss { background: var(--red-bg); color: var(--red-t); border: 1px solid var(--red-b); }
.streak-none { background: var(--bg3); color: var(--text3); border: 1px solid var(--border); }

/* ── Simulation Panel ────────────────────────────── */
.mc-warn{background:#1c1007;border:1px solid #92400e;border-radius:var(--r2);padding:10px 14px;font-size:12px;color:#fcd34d;margin-bottom:16px;}
.sim-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--border);}
.sim-head{font-family:var(--font-h);font-size:14px;font-weight:800;color:var(--text);letter-spacing:-.3px;}
.sim-ctx{font-size:12px;color:var(--text2);margin-top:3px;}
.sim-ctrls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.pill-group{display:flex;border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;}
.pill-btn{padding:7px 14px;background:transparent;border:none;font-family:var(--font-h);font-size:12px;font-weight:700;color:var(--text2);cursor:pointer;transition:all .15s;}
.pill-btn:hover{color:var(--text);}
.pill-btn.active{background:var(--accent);color:#fff;}
.sim-go-btn{padding:9px 20px;background:var(--accent);border:none;border-radius:var(--r2);color:#fff;font-family:var(--font-h);font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;}
.sim-go-btn:hover{background:var(--accent2);}
.sim-go-btn:disabled{opacity:.5;pointer-events:none;}
.sim-slider-wrap{display:flex;align-items:center;gap:12px;margin-bottom:20px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:11px 16px;}
.sim-slider-label{font-family:var(--font-h);font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;}
.sim-slider-val{font-family:var(--font-h);font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;min-width:80px;text-align:right;}
input[type=range]{accent-color:var(--accent);cursor:pointer;width:100%;}
.sim-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px;}
.mc-card{background:var(--mc-card-bg);border:1px solid var(--border);border-radius:var(--r2);padding:14px 16px;transition:border-color .2s,box-shadow .2s;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-el);}
.mc-card:hover{border-color:rgba(99,102,241,.3);box-shadow:var(--shadow-el-hover);}
.mc-card-lbl{font-family:var(--font-h);font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;}
.mc-card-val{font-family:var(--font-n);font-size:22px;font-weight:700;line-height:1.1;letter-spacing:-.5px;color:var(--text);}
.mc-card-val.pos{color:var(--green);}.mc-card-val.neg{color:var(--red);}.mc-card-val.amber{color:var(--amber);}
.mc-card-sub{font-size:11px;color:var(--text3);margin-top:4px;}
.mc-card-sub.pos{color:var(--green-t);}.mc-card-sub.neg{color:var(--red-t);}
.sim-fan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.sim-fan-header .chart-title{margin-bottom:0;}
.sim-paths-btn{padding:4px 10px;background:transparent;border:1px solid var(--border);border-radius:var(--r2);font-family:var(--font-h);font-size:10px;font-weight:700;color:var(--text3);cursor:pointer;transition:all .15s;white-space:nowrap;}
.sim-paths-btn:hover{border-color:var(--border2);color:var(--text2);}
.sim-paths-btn.active{background:rgba(99,102,241,.15);border-color:var(--accent);color:var(--accent);}
/* Responsive */
@media(max-width:900px){
  .sim-top{flex-direction:column;align-items:stretch;}
  .sim-ctrls{flex-wrap:wrap;}
  .sim-cards{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  .sim-cards{grid-template-columns:1fr 1fr;}
  .pill-btn{padding:6px 9px;font-size:11px;}
  .sim-go-btn{padding:8px 14px;font-size:12px;}
  .sim-slider-wrap{padding:9px 12px;gap:8px;}
  .mc-card-val{font-size:18px;}
  #v-sim .chart-wrap{overflow:hidden;}
}
@media(max-width:420px){
  .sim-cards{grid-template-columns:1fr 1fr;}
  .pill-group{flex-wrap:wrap;border-radius:var(--r2);}
  .pill-btn{border:1px solid var(--border);border-radius:var(--r2)!important;margin:2px;}
}

/* ── Loading overlay ────────────────────────────── */
.loading {
  position: fixed; inset: 0; z-index: 500;
  background: var(--bg);
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 16px;
  opacity: 1; transition: opacity .3s;
}
.loading.hide { opacity: 0; pointer-events: none; }
.spinner {
  width: 32px; height: 32px;
  border: 2px solid var(--border2);
  border-top-color: var(--accent2);
  border-radius: 50%;
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── Toast ──────────────────────────────────────── */
.toast {
  position: fixed; bottom: 24px; right: 24px; z-index: 2000;
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: var(--r); padding: 12px 18px;
  font-family: var(--font-h); font-size: 13px; font-weight: 600;
  color: var(--text); box-shadow: var(--shadow);
  transform: translateY(100px); opacity: 0;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  pointer-events: none;
}
.toast.show { transform: translateY(0); opacity: 1; }
.toast.err { border-color: var(--red-b); color: var(--red-t); }
.toast.ok { border-color: var(--green-b); color: var(--green-t); }

/* ── Mobile menu ────────────────────────────────── */
.mobile-menu-btn {
  display: none;
  background: transparent; border: 1px solid var(--border);
  border-radius: var(--r2); padding: 7px 10px;
  color: var(--text2); cursor: pointer; font-size: 16px;
  line-height: 1; transition: all .15s;
}
.mobile-menu-btn:hover { color: var(--text); border-color: var(--border2); }
.mobile-menu {
  display: none;
  position: fixed; top: 56px; left: 0; right: 0; z-index: 99;
  background: var(--bg2); border-bottom: 1px solid var(--border);
  padding: 12px 16px; flex-direction: column; gap: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
.mobile-menu.open { display: flex; }
.mobile-menu a, .mobile-menu button {
  padding: 11px 14px; border-radius: var(--r2);
  font-family: var(--font-h); font-size: 14px; font-weight: 600;
  color: var(--text2); background: transparent;
  border: none; cursor: pointer; text-decoration: none;
  text-align: left; transition: all .15s;
}
.mobile-menu a:hover, .mobile-menu button:hover { color: var(--text); background: var(--bg3); }
.mobile-menu a.active { color: var(--text); background: var(--bg3); }
.mobile-menu .m-logout { color: var(--text3); border-top: 1px solid var(--border); margin-top: 4px; padding-top: 14px; }
.mobile-menu .m-logout:hover { color: var(--red-t); }

/* ── Theme Toggle ───────────────────────────────── */
.theme-toggle{display:flex;gap:4px;background:var(--bg3);border:1px solid var(--border);border-radius:99px;padding:5px 8px;align-items:center;}
.theme-btn{width:14px;height:14px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:border-color .15s,transform .1s;flex-shrink:0;}
.theme-btn:hover{transform:scale(1.15);}
.theme-btn.active{border-color:var(--text);}
#tb-dark{background:#18181f;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);}
#tb-deep{background:#000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);}
#tb-light{background:#ede7dc;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);}

/* ── Mobile Bottom Nav ──────────────────────────── */
.bottom-nav{display:none;}
@media(max-width:600px){
  .bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--bg2);border-top:1px solid var(--border);min-height:52px;padding-bottom:env(safe-area-inset-bottom,0px);align-items:flex-start;}
  .bn-item{flex:1;display:flex;align-items:center;justify-content:center;padding-top:14px;height:52px;text-decoration:none;color:var(--text3);font-family:'Syne',sans-serif;font-size:10px;font-weight:700;transition:color .15s;letter-spacing:.02em;position:relative;}
  .bn-item:hover{color:var(--text2);}
  .bn-item.active{color:var(--accent2);}
  .bn-item.active::before{content:'';position:absolute;top:0;left:20%;right:20%;height:2px;background:var(--accent2);border-radius:0 0 2px 2px;}
  body{padding-bottom:calc(52px + env(safe-area-inset-bottom,0px));}
  .mobile-menu-btn{display:none;}
}
/* Challenge danger dot on Tracker link */
.bn-danger-dot{display:none;width:6px;height:6px;border-radius:50%;background:var(--red);position:absolute;top:10px;right:calc(50% - 18px);animation:pulse-red 1.6s ease-in-out infinite;}
@keyframes pulse-red{0%,100%{opacity:1;}50%{opacity:.45;}}
.bn-item.has-danger .bn-danger-dot{display:block;}
/* iOS PWA */
html.is-pwa .bottom-nav{min-height:62px;}
html.is-pwa .bn-item{height:62px;}
html.is-pwa body{padding-bottom:calc(62px + env(safe-area-inset-bottom,0px));}

/* ── FAB ─────────────────────────────────────────── */
.fab{position:fixed;bottom:28px;right:28px;z-index:1200;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;font-size:26px;font-weight:300;border:none;cursor:pointer;box-shadow:0 4px 20px rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;transition:transform .15s,box-shadow .15s,opacity .2s;line-height:1;}
body.app-ready .fab{display:flex;}
.fab:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(0,0,0,.55);}
.fab:active{transform:scale(.93);}
body.trade-modal-open .fab{opacity:0;pointer-events:none;}
@media(max-width:600px){.fab{bottom:68px;right:16px;}}

/* ── Trade Modal ─────────────────────────────────── */
.trade-modal-overlay{
  display:flex;position:fixed;inset:0;z-index:1100;
  background:rgba(0,0,0,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .22s ease;
}
.trade-modal-overlay.open{opacity:1;pointer-events:auto;}
.trade-modal-inner{
  background:var(--bg2);border:1px solid var(--border);border-radius:16px;
  padding:24px 28px 22px;width:min(530px,96vw);max-height:90vh;overflow-y:auto;
  transform:scale(.96) translateY(10px);opacity:0;
  transition:transform .25s cubic-bezier(.32,.72,0,1),opacity .2s ease;
}
.trade-modal-overlay.open .trade-modal-inner{transform:none;opacity:1;}
.trade-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.trade-modal-title{font-family:var(--font-h);font-size:13px;font-weight:700;color:var(--text1);text-transform:uppercase;letter-spacing:.07em;}
.trade-modal-close{background:none;border:none;color:var(--text3);font-size:19px;cursor:pointer;padding:2px 7px;border-radius:7px;line-height:1;transition:all .12s;}
.trade-modal-close:hover{color:var(--text1);background:var(--bg4);}
/* Desktop: 4-Spalten — Asset(2) RR(1) Ergebnis(1) / Datum(2) Entry(1) Exit(1) */
.trade-modal-inner .form-grid{grid-template-columns:repeat(4,1fr);}
.trade-modal-inner .form-grid>:nth-child(1){grid-column:span 2;}
.trade-modal-inner .fgrp-result{grid-column:auto;}
.trade-modal-inner .form-grid>:nth-child(4){grid-column:span 2;}
@media(max-width:600px){
  .trade-modal-overlay{align-items:flex-end;}
  .trade-modal-inner{
    width:100%;max-width:100vw;box-sizing:border-box;
    border-radius:20px 20px 0 0;max-height:92vh;padding:20px 16px 32px;
    overflow-x:hidden;
    transform:translateY(100%);opacity:1;
    transition:transform .32s cubic-bezier(.32,.72,0,1);
  }
  .trade-modal-overlay.open .trade-modal-inner{transform:translateY(0);opacity:1;}
  .trade-modal-inner .form-grid{grid-template-columns:1fr 1fr;}
  .trade-modal-inner .fgrp-result{grid-column:1/-1;}
  /* Asset (1) + RR (2) + Datum (4) volle Breite, Entry (5) + Exit (6) nebeneinander */
  .trade-modal-inner .form-grid>:nth-child(1),
  .trade-modal-inner .form-grid>:nth-child(2),
  .trade-modal-inner .form-grid>:nth-child(4){grid-column:1/-1;}
  .trade-modal-inner .form-notes-section{grid-template-columns:1fr!important;}
  .trade-modal-inner .fgrp{min-width:0;}
  .trade-modal-inner input,.trade-modal-inner textarea{width:100%;box-sizing:border-box;}
  .trade-modal-inner input,.trade-modal-inner textarea,.trade-modal-inner select{font-size:16px!important;}
}

/* ── Settings Modal ─────────────────────────────── */
.settings-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--text3);font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-left:4px;flex-shrink:0;}
.settings-btn:hover{color:var(--text);border-color:var(--border2);background:var(--bg3);}
.ps-dot{width:12px;height:12px;border-radius:50%;background:#7f1d1d;display:block;flex-shrink:0;margin-left:6px;transition:transform .15s,background .15s;cursor:pointer;text-decoration:none;}
.ps-dot:hover{transform:scale(1.25);background:#991b1b;}
#settings-overlay{
  position:fixed;inset:0;z-index:3000;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:flex-end;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .22s ease;
}
#settings-overlay.open{opacity:1;pointer-events:auto;}
@media(min-width:600px){#settings-overlay{align-items:center;}}
.settings-sheet{width:100%;max-width:460px;background:var(--bg2);border:1px solid var(--border);border-radius:20px 20px 0 0;padding:0 0 env(safe-area-inset-bottom,0px);max-height:90vh;overflow-y:auto;transform:translateY(110%);transition:transform .35s cubic-bezier(.32,.72,0,1);box-shadow:0 -8px 40px rgba(0,0,0,.5);}
#settings-overlay.open .settings-sheet{transform:translateY(0);}
@media(min-width:600px){
  .settings-sheet{border-radius:16px;max-height:85vh;box-shadow:0 8px 60px rgba(0,0,0,.6);transform:translateY(16px) scale(.97);opacity:0;transition:transform .25s cubic-bezier(.32,.72,0,1),opacity .22s ease;}
  #settings-overlay.open .settings-sheet{transform:translateY(0) scale(1);opacity:1;}
}
.settings-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg2);z-index:1;}
.settings-title{font-family:var(--font-h);font-weight:700;font-size:16px;color:var(--text);}
.settings-close{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--text3);font-size:13px;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.settings-close:hover{color:var(--text);background:var(--bg3);}
.settings-body{padding:4px 0 20px;}
.settings-section{padding:16px 20px;border-bottom:1px solid var(--border2);}
.settings-section:last-child{border-bottom:none;}
.settings-section-label{font-family:var(--font-h);font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;}
.sg-pills{display:flex;flex-wrap:wrap;gap:6px;}
.sg-pill{padding:6px 13px;border-radius:99px;border:1px solid var(--border);background:transparent;cursor:pointer;font-family:var(--font-m);font-size:12px;color:var(--text2);transition:all .15s;}
.sg-pill:hover{border-color:var(--border2);color:var(--text);}
.sg-pill.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.settings-risk-row{display:flex;align-items:center;gap:10px;}
.settings-risk-row input{width:72px;padding:6px 10px;border-radius:var(--r2);border:1px solid var(--border);background:var(--bg3);color:var(--text);font-family:var(--font-m);font-size:13px;outline:none;}
.settings-risk-row input:focus{border-color:var(--accent);}
.settings-risk-row span{font-size:12px;color:var(--text3);}
.settings-mobile-logout{display:none;width:100%;padding:11px 16px;border-radius:var(--r2);font-family:var(--font-h);font-size:13px;font-weight:600;color:var(--red-t);background:var(--red-bg);border:1px solid var(--red-b);cursor:pointer;transition:all .15s;margin-top:4px;}
.settings-mobile-logout:hover{opacity:.85;}
@media(max-width:600px){.settings-mobile-logout{display:block;}}

/* ── Responsive ─────────────────────────────────── */
@media (max-width: 900px) {
  .metrics-grid, .metrics-grid2 { grid-template-columns: repeat(2, 1fr); }
  .form-grid { grid-template-columns: 1fr 1fr; }
  .mo-stats { grid-template-columns: repeat(2, 1fr); }
  .main { max-width: 100%; padding: 20px 16px; }
}
@media (max-width: 600px) {
  .main { padding: 12px; }
  .topbar { padding: 0 14px; }
  .topbar-nav .nav-link { display: none; }
  .topbar-nav .logout-btn { display: none; }
  .mobile-menu-btn { display: none; }
  .metrics-grid, .metrics-grid2 { grid-template-columns: 1fr 1fr; gap: 8px; }
  .metric { padding: 12px 14px; }
  .metric-val { font-size: 22px; }
  .form-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .mo-stats { grid-template-columns: repeat(2, 1fr); }
  .score-num { font-size: 42px; }
  .tabs { gap: 3px; }
  .tab { padding: 10px 13px; font-size: 12px; }
  .panel { padding: 12px; }
  .heatmap-grid { gap: 3px; }
  .hm-cell { padding: 5px 2px; }
  .cal-day { min-height: 52px; padding: 5px 6px; }
  .cal-day .dn { font-size: 10px; }
  .cal-day .dp { font-size: 13px; }
  .cal-day .dtc { font-size: 9px; }

  /* ── Touch-Target-Fixes (Apple HIG: min 44px) ── */
  .ob { padding: 13px 4px; }
  .cal-nav-btn { padding: 10px 16px; min-width: 44px; }
  .kpi-scope-btn { padding: 9px 16px; font-size: 12px; }


  /* ── Scrollbarer Tab-Strip ── */
  .tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-mask-image: linear-gradient(to right, black 88%, transparent 100%);
    mask-image: linear-gradient(to right, black 88%, transparent 100%);
    padding-right: 28px;
  }
  .tabs::-webkit-scrollbar { display: none; }
  .tab { white-space: nowrap; flex-shrink: 0; }
}

/* ── Setup Analysis Tab ─────────────────────────── */
.setup-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-top:14px;}
.setup-stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);padding:12px 14px;transition:border-color .15s;}
.setup-stat-card:hover{border-color:var(--border2);}
.setup-stat-name{font-family:var(--font-h);font-size:12px;font-weight:700;margin-bottom:8px;color:var(--text);}
.setup-stat-row{display:flex;justify-content:space-between;font-size:11px;color:var(--text2);margin-bottom:3px;}
.setup-stat-val{color:var(--text);}

/* ── Goals / Ziele Tab ──────────────────────────── */
.goal-hdr-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;gap:10px;}
.goals-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:700px){.goals-grid{grid-template-columns:1fr;}}
.goal-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;transition:border-color .22s,background .22s;}
.goal-card:hover{border-color:var(--border2);}
.goal-card.met{border-color:var(--green-b);background:var(--green-bg);}
.goal-card.met-low{border-color:var(--green-b);background:var(--green-bg);}
.goal-card.warn{border-color:var(--amber);background:rgba(245,158,11,.08);}
.goal-card.danger{border-color:var(--red-b);background:var(--red-bg);}
.goal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.goal-label{font-family:var(--font-h);font-size:12px;font-weight:700;}
.goal-progress{height:5px;background:var(--bg4);border-radius:99px;overflow:hidden;}
.goal-progress-fill{height:100%;border-radius:99px;transition:width .4s;}
.btn-customize{padding:5px 11px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);color:var(--text2);font-family:var(--font-m);font-size:11px;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0;}
.btn-customize:hover{color:var(--text);border-color:var(--border);background:var(--bg4);}
.btn-customize.active{background:var(--accent);border-color:var(--accent);color:#fff;}
/* Goals config modal overlay */
#goals-overlay{position:fixed;inset:0;z-index:3500;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .22s ease;}
#goals-overlay.open{opacity:1;pointer-events:auto;}
@media(min-width:600px){#goals-overlay{align-items:center;}}
.goals-sheet{width:100%;max-width:460px;background:var(--bg2);border:1px solid var(--border);border-radius:20px 20px 0 0;padding:0 0 env(safe-area-inset-bottom,0px);max-height:90vh;overflow-y:auto;transform:translateY(110%);transition:transform .35s cubic-bezier(.32,.72,0,1);box-shadow:0 -8px 40px rgba(0,0,0,.5);}
#goals-overlay.open .goals-sheet{transform:translateY(0);}
@media(min-width:600px){
  .goals-sheet{border-radius:16px;max-height:85vh;box-shadow:0 8px 60px rgba(0,0,0,.6);transform:translateY(16px) scale(.97);opacity:0;transition:transform .25s cubic-bezier(.32,.72,0,1),opacity .22s ease;}
  #goals-overlay.open .goals-sheet{transform:translateY(0) scale(1);opacity:1;}
}
.goals-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg2);z-index:1;}
.goals-sheet-title{font-family:var(--font-h);font-weight:700;font-size:16px;color:var(--text);}
.goals-sheet-close{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--text3);font-size:13px;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.goals-sheet-close:hover{color:var(--text);background:var(--bg3);}
.goals-sheet-body{padding:4px 0 12px;}
.goals-cfg-row{display:flex;justify-content:space-between;align-items:center;padding:13px 20px;border-bottom:1px solid var(--border2);}
.goals-cfg-row:last-child{border-bottom:none;}
/* Setups Config Modal */
#setups-overlay{position:fixed;inset:0;z-index:3500;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .22s ease;}
#setups-overlay.open{opacity:1;pointer-events:auto;}
#setups-overlay.open .goals-sheet{transform:translateY(0);}
@media(min-width:600px){
  #setups-overlay{align-items:center;}
  #setups-overlay .goals-sheet{border-radius:16px;max-height:85vh;box-shadow:0 8px 60px rgba(0,0,0,.6);transform:translateY(16px) scale(.97);opacity:0;transition:transform .25s cubic-bezier(.32,.72,0,1),opacity .22s ease;}
  #setups-overlay.open .goals-sheet{transform:translateY(0) scale(1);opacity:1;}
}
/* My Setups section in setup tab */
.my-setups-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.my-setups-title{font-family:var(--font-h);font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;}
.my-setups-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;padding:12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);}
.my-setups-empty{font-size:11px;color:var(--text3);font-style:italic;}
/* Setups config body */
.setup-cfg-row{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid var(--border2);}
.setup-cfg-row:last-child{border-bottom:none;}
.setup-cfg-name{font-size:13px;color:var(--text);}
.setup-cfg-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:var(--r2);transition:all .12s;line-height:1;}
.setup-cfg-del:hover{color:var(--red-t);background:var(--red-bg);}
.setup-cfg-add{display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--border);}
.setup-cfg-add input{flex:1;padding:7px 10px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);color:var(--text);font-family:var(--font-m);font-size:16px;outline:none;}
.setup-cfg-add input:focus{border-color:var(--accent2);}
.setup-cfg-add button{padding:7px 14px;background:var(--accent);border:none;border-radius:var(--r2);color:#fff;font-family:var(--font-h);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .15s;}
.setup-cfg-add button:hover{opacity:.85;}
/* Mobile Wizard */
#mobile-wizard{display:none;}
.mw-progress{display:flex;gap:6px;justify-content:center;align-items:center;margin-bottom:22px;}
.mw-dot{width:9px;height:9px;border-radius:99px;background:var(--bg4);border:1px solid var(--border2);transition:all .2s;}
.mw-dot.done{background:var(--accent);border-color:var(--accent);opacity:.5;}
.mw-dot.active{background:var(--accent);border-color:var(--accent);width:24px;}
.mw-step-label{font-family:var(--font-h);font-size:17px;font-weight:700;color:var(--text);text-align:center;margin-bottom:18px;}
.mw-step-count{font-size:12px;font-weight:600;color:var(--text3);margin-left:6px;}
.mw-body{min-height:90px;}
.mw-body input,.mw-body textarea{font-size:16px!important;padding:11px 14px!important;width:100%;box-sizing:border-box;}
.mw-body textarea{min-height:80px;resize:vertical;background:var(--bg3);color:var(--text);border:1px solid var(--border2);border-radius:var(--r2);outline:none;font-family:var(--font-m);transition:border-color .15s;}
.mw-body textarea:focus{border-color:var(--accent2);}
.mw-body textarea::placeholder{color:var(--text3);}
.mw-outcome-row{display:flex;flex-direction:column;gap:10px;}
.mw-ob{padding:15px;font-size:15px;font-weight:700;border-radius:var(--r2);cursor:pointer;border:2px solid var(--border2);background:var(--bg3);color:var(--text2);font-family:var(--font-h);transition:all .15s;text-align:center;}
.mw-ob.win.active,.mw-ob.win:active{background:var(--green-bg);border-color:var(--green-b);color:var(--green-t);}
.mw-ob.loss.active,.mw-ob.loss:active{background:var(--red-bg);border-color:var(--red-b);color:var(--red-t);}
.mw-ob.be.active,.mw-ob.be:active{background:var(--blue-bg);border-color:var(--blue-b);color:var(--blue-t);}
.mw-ob.long.active,.mw-ob.long:active{background:var(--green-bg);border-color:var(--green-b);color:var(--green-t);}
.mw-ob.short.active,.mw-ob.short:active{background:var(--red-bg);border-color:var(--red-b);color:var(--red-t);}
.ob.long.active,.ob.long:active{background:var(--green-bg);border-color:var(--green-b);color:var(--green-t);}
.ob.short.active,.ob.short:active{background:var(--red-bg);border-color:var(--red-b);color:var(--red-t);}
.mw-times-row{display:flex;flex-direction:column;gap:10px;}
.mw-times-row .fgrp{gap:4px;}
.mw-times-row label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;}
.mw-rr-wrap{display:flex;align-items:center;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);transition:border-color .15s;}
.mw-rr-wrap:focus-within{border-color:var(--accent2);}
.mw-rr-prefix{padding:0 4px 0 14px;color:var(--text3);font-size:14px;white-space:nowrap;font-family:var(--font-m);user-select:none;}
.mw-rr-wrap input{border:none!important;background:transparent!important;flex:1;width:auto!important;padding:11px 14px 11px 0!important;min-width:0;}
.mw-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:8px;}
.mw-btn-back{background:transparent;border:1px solid var(--border2);border-radius:var(--r2);color:var(--text2);font-family:var(--font-h);font-size:13px;font-weight:600;padding:10px 18px;cursor:pointer;transition:all .15s;}
.mw-btn-back:hover{border-color:var(--border);color:var(--text);}
.mw-btn-skip{background:transparent;border:none;color:var(--text3);font-family:var(--font-m);font-size:12px;cursor:pointer;padding:4px 8px;}
.mw-btn-skip:hover{color:var(--text2);}
.mw-btn-next{background:var(--accent);border:none;border-radius:var(--r2);color:#fff;font-family:var(--font-h);font-size:13px;font-weight:700;padding:10px 22px;cursor:pointer;transition:opacity .15s;}
.mw-btn-next:hover{opacity:.88;}
@media(max-width:600px){
  /* Mobile wizard: hide form, show wizard */
  .trade-modal-inner.mw-active .form-grid,
  .trade-modal-inner.mw-active .form-notes-section,
  .trade-modal-inner.mw-active .ghost-banner,
  .trade-modal-inner.mw-active .form-actions{display:none!important;}
  .trade-modal-inner.mw-active #mobile-wizard{display:block;}
  /* Fix iOS date/time input overflow */
  .trade-modal-inner input[type=date],
  .trade-modal-inner input[type=time]{max-width:100%;min-width:0;-webkit-appearance:textfield;appearance:textfield;}
  .trade-modal-inner .fgrp{overflow:hidden;}
}
/* Post-save screenshot mode: hide form, show only screenshots + done button */
.ss-success-note{font-size:12px;color:var(--text3);margin-bottom:4px;}

/* ── Screenshots ──────────────────────────────────── */
#screenshots-section{display:none;flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);}
.screenshots-header{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.screenshots-title{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;flex:1;}
.screenshots-add-btn{padding:4px 10px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);color:var(--text2);font-size:11px;cursor:pointer;transition:all .15s;font-family:var(--font-m);white-space:nowrap;}
.screenshots-add-btn:hover{border-color:var(--accent2);color:var(--text);}
.screenshots-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;align-items:flex-start;flex-wrap:nowrap;}
.screenshot-thumb{position:relative;flex-shrink:0;width:76px;height:56px;border-radius:var(--r2);overflow:hidden;cursor:pointer;border:1px solid var(--border2);transition:border-color .15s;}
.screenshot-thumb:hover{border-color:var(--accent2);}
.screenshot-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .2s;}
.screenshot-thumb:hover img{transform:scale(1.04);}
/* Delete button: hover on desktop, always visible on touch */
.screenshot-del{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.75);border:none;border-radius:50%;color:#fff;width:18px;height:18px;font-size:10px;cursor:pointer;display:none;align-items:center;justify-content:center;line-height:1;padding:0;}
.screenshot-thumb:hover .screenshot-del{display:flex;}
@media(pointer:coarse){.screenshot-del{display:flex;}}
.screenshot-label{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.6);color:#fff;font-size:9px;text-align:center;padding:2px;text-transform:uppercase;letter-spacing:.04em;}
.screenshots-empty{font-size:11px;color:var(--text3);padding:8px 0;line-height:1.5;}
.screenshots-hint-desktop{display:inline;}
.screenshots-hint-mobile{display:none;}
@media(pointer:coarse){.screenshots-hint-desktop{display:none;}.screenshots-hint-mobile{display:inline;}}
/* Screenshot label selector */
.ss-label-group{display:flex;gap:5px;margin:2px 0 4px;}
.ss-lbl-btn{padding:3px 10px;border-radius:99px;border:1px solid var(--border2);background:transparent;color:var(--text3);font-size:10px;font-family:var(--font-m);cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.06em;}
.ss-lbl-btn:hover{border-color:var(--text2);color:var(--text);}
.ss-lbl-btn[data-lbl="entry"].active{background:#22c55e22;border-color:var(--green);color:var(--green);}
.ss-lbl-btn[data-lbl="exit"].active{background:#ef444422;border-color:var(--red);color:var(--red);}
.ss-lbl-btn[data-lbl="analysis"].active{background:#3b82f622;border-color:#3b82f6;color:#3b82f6;}
/* Label dot on thumbnails */
.ss-dot-lbl{position:absolute;bottom:4px;right:4px;width:7px;height:7px;border-radius:50%;pointer-events:none;border:1px solid rgba(0,0,0,.25);}
.ss-dot-entry{background:var(--green);}
.ss-dot-exit{background:var(--red);}
.ss-dot-analysis{background:#3b82f6;}
/* Session LIVE badge */
.ses-card.live{border-color:var(--green);box-shadow:0 0 0 1px rgba(34,197,94,.2);}
.ses-live-badge{display:inline-block;background:var(--green);color:#fff;font-size:9px;font-weight:700;font-family:var(--font-h);padding:1px 6px;border-radius:99px;letter-spacing:.08em;margin-left:4px;animation:pulse-green 2s ease-in-out infinite;}
@keyframes pulse-green{0%,100%{opacity:1;}50%{opacity:.55;}}
/* Lightbox */
#lightbox{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;}
#lightbox.lb-open{display:flex;}
.lightbox-inner{position:relative;max-width:92vw;max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:12px;}
#lb-img{max-width:90vw;max-height:78vh;object-fit:contain;border-radius:8px;display:block;}
.lb-close{position:fixed;top:16px;right:16px;background:rgba(255,255,255,.12);border:none;color:#fff;font-size:22px;cursor:pointer;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.lb-close:hover{background:rgba(255,255,255,.22);}
.lb-prev,.lb-next{position:fixed;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;color:#fff;font-size:28px;cursor:pointer;padding:14px 16px;border-radius:var(--r2);transition:background .15s;line-height:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.lb-prev:hover,.lb-next:hover,.lb-prev:active,.lb-next:active{background:rgba(255,255,255,.25);}
.lb-prev{left:8px;}.lb-next{right:8px;}
@media(max-width:600px){
  .lb-prev,.lb-next{font-size:32px;padding:16px 18px;background:rgba(255,255,255,.15);}
  .lb-close{top:12px;right:12px;width:42px;height:42px;font-size:20px;}
}
.lb-label{font-size:11px;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;min-height:16px;}
.lb-counter{font-size:11px;color:rgba(255,255,255,.4);font-family:var(--font-m);}
.lb-footer{display:flex;gap:16px;color:rgba(255,255,255,.6);font-size:13px;align-items:center;flex-wrap:wrap;justify-content:center;}
.lb-footer a,.lb-footer button{color:rgba(255,255,255,.6);background:none;border:none;cursor:pointer;font-size:13px;text-decoration:none;padding:0;transition:color .15s;font-family:var(--font-m);min-height:32px;display:inline-flex;align-items:center;}
.lb-footer a:hover,.lb-footer button:hover{color:#fff;}
.lb-time{font-size:11px;color:rgba(255,255,255,.4);font-family:var(--font-m);min-height:14px;}
/* Lock button: disables swipe so the image can be pinch-zoomed */
#lb-lock{font-size:16px;}
#lb-lock.locked{color:var(--accent2);}
#lb-lock.locked:hover{color:#fff;}
#lightbox.lb-locked #lb-img{touch-action:pinch-zoom;cursor:zoom-in;}
.lb-locked .lightbox-inner{touch-action:pinch-zoom;}
@media(max-width:600px){
  .lb-footer{gap:22px;}
  #lb-lock{font-size:19px;}
  .lb-footer a,.lb-footer button{min-height:40px;}
}
.goals-cfg-left{display:flex;flex-direction:column;gap:3px;}
.goals-cfg-label{font-size:13px;color:var(--text);}
.goals-cfg-unit{font-size:11px;color:var(--text3);}
.goals-cfg-right{display:flex;align-items:center;gap:12px;}
.goals-cfg-target-wrap{display:flex;align-items:center;gap:5px;}
.goals-cfg-target-wrap input{width:66px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:5px 8px;color:var(--text);font-family:var(--font-m);font-size:12px;outline:none;text-align:right;}
.goals-cfg-target-wrap input:focus{border-color:var(--accent2);}
.goals-cfg-target-wrap span{font-size:11px;color:var(--text3);}
.g-toggle-wrap{position:relative;display:inline-block;width:38px;height:22px;flex-shrink:0;}
.g-toggle-wrap input{opacity:0;width:0;height:0;position:absolute;}
.g-toggle-track{position:absolute;inset:0;border-radius:99px;background:var(--border2);cursor:pointer;transition:background .18s;}
.g-toggle-track::after{content:'';position:absolute;width:16px;height:16px;top:3px;left:3px;border-radius:50%;background:var(--text3);transition:transform .18s,background .18s;}
.g-toggle-wrap input:checked+.g-toggle-track{background:var(--accent);}
.g-toggle-wrap input:checked+.g-toggle-track::after{transform:translateX(16px);background:#fff;}
html.theme-light .mo-stat{background:rgba(255,255,255,.75);color:#1a1612;}
html.theme-light .mo-stat-label{color:#5a5248;}
html.theme-light .mo-stat-val{color:#1a1612;font-weight:600;}

/* ── Risk Calculator Tab ────────────────────────── */
.rcalc-wrap{max-width:700px;margin:4px auto 0;}
.rcalc-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;margin-bottom:10px;}
.rcalc-section-title{font-family:var(--font-h);font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;}
/* Instrument picker */
.rcalc-irow{display:flex;flex-wrap:wrap;gap:6px 16px;}
.rcalc-igrp{display:flex;align-items:flex-start;gap:6px;}
.rcalc-igrp-lbl{font-size:10px;color:var(--text3);font-family:var(--font-h);font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding-top:5px;}
.rcalc-ibtn-row{display:flex;flex-wrap:wrap;gap:4px;}
.rcalc-ibtn{padding:4px 10px;border:1px solid var(--border2);border-radius:99px;background:transparent;color:var(--text2);font-family:var(--font-m);font-size:11px;cursor:pointer;transition:all .15s;white-space:nowrap;}
.rcalc-ibtn:hover{border-color:var(--accent);color:var(--accent2);}
.rcalc-ibtn.sel{background:var(--accent);border-color:var(--accent);color:#fff;}
/* Inputs grid */
.rcalc-inputs-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px;}
@media(max-width:540px){.rcalc-inputs-grid{grid-template-columns:1fr;}}
.rcalc-inp-lbl{font-size:10px;color:var(--text3);font-family:var(--font-h);font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}
.rcalc-inp-row{display:flex;align-items:center;gap:6px;}
.rcalc-inp{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:8px 10px;color:var(--text);font-family:var(--font-m);font-size:14px;outline:none;width:100%;transition:border-color .15s;box-sizing:border-box;}
.rcalc-inp:focus{border-color:var(--accent2);}
.rcalc-unit{font-size:11px;color:var(--text3);flex-shrink:0;}
.rcalc-presets{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.rcalc-preset-btn{padding:3px 8px;border:1px solid var(--border2);border-radius:99px;background:transparent;color:var(--text3);font-family:var(--font-m);font-size:10px;cursor:pointer;transition:all .12s;}
.rcalc-preset-btn:hover{border-color:var(--accent);color:var(--accent2);}
.rcalc-preset-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
/* Summary bar */
.rcalc-summary{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:var(--bg3);border-radius:var(--r2);}
.rcalc-summary-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;}
.rcalc-summary-val{font-family:var(--font-h);font-size:22px;font-weight:800;color:var(--accent2);}
.rcalc-badge{padding:4px 12px;border-radius:99px;font-family:var(--font-h);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;}
.rcalc-badge-conservative{background:rgba(34,197,94,.15);color:#22c55e;border:1px solid rgba(34,197,94,.3);}
.rcalc-badge-moderate{background:rgba(99,102,241,.15);color:#818cf8;border:1px solid rgba(99,102,241,.3);}
.rcalc-badge-aggressive{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3);}
.rcalc-badge-very-aggressive{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3);}
/* Result cards */
.rcalc-results{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:0;}
@media(max-width:580px){.rcalc-results{grid-template-columns:1fr 1fr;}}
.rcalc-res-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:12px 14px;}
.rcalc-res-val{font-family:var(--font-h);font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.5px;line-height:1.1;}
.rcalc-res-lbl{font-size:10px;color:var(--text3);margin-top:3px;text-transform:uppercase;letter-spacing:.04em;}
.rcalc-res-sub{font-size:11px;color:var(--text2);margin-top:4px;}
/* Profit targets */
.rcalc-profit-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.rcalc-profit-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:12px 14px;text-align:center;}
.rcalc-profit-ratio{font-family:var(--font-h);font-size:12px;font-weight:700;color:var(--text3);margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em;}
.rcalc-profit-dollar{font-family:var(--font-h);font-size:18px;font-weight:800;color:#22c55e;letter-spacing:-.3px;}
.rcalc-profit-pts{font-size:11px;color:var(--text2);margin-top:3px;}
/* Misc */
.rcalc-infobar{display:flex;flex-wrap:wrap;gap:12px;padding:8px 12px;background:var(--bg3);border-radius:var(--r2);font-size:11px;color:var(--text2);margin-bottom:10px;}
.rcalc-infobar span{display:flex;gap:5px;align-items:center;}
.rcalc-infobar strong{color:var(--text);font-family:var(--font-h);}
.rcalc-warn{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);border-radius:var(--r2);padding:8px 12px;font-size:11px;color:var(--amber-t);margin-top:10px;}
.rcalc-custom-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.rcalc-custom-lbl{font-size:11px;color:var(--text2);min-width:90px;}

/* ── CSV Import Modal ───────────────────────────── */
#import-overlay{position:fixed;inset:0;z-index:4000;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:16px;}
.import-modal{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:24px;width:100%;max-width:500px;box-shadow:0 8px 60px rgba(0,0,0,.6);transform:translateY(12px) scale(.97);opacity:0;transition:transform .22s ease,opacity .22s ease;}
.import-modal.open{transform:translateY(0) scale(1);opacity:1;}
.import-modal-title{font-family:var(--font-h);font-size:16px;font-weight:800;margin-bottom:16px;}
.import-modal-actions{display:flex;gap:8px;margin-top:16px;justify-content:flex-end;}

/* ── Welle 2: KPI Scope Toggle ──────────────────── */
.kpi-scope-row{display:flex;align-items:center;gap:6px;margin-bottom:10px;}
.kpi-scope-btn{padding:4px 12px;border-radius:99px;border:1px solid var(--border);background:transparent;color:var(--text3);font-family:var(--font-h);font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;}
.kpi-scope-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.metric-sub{font-size:10px;color:var(--text3);margin-top:6px;display:flex;align-items:center;gap:6px;font-family:var(--font-h);}
.kpi-mini-bar-wrap{flex:0 0 60px;height:3px;background:var(--border);border-radius:99px;overflow:hidden;}
.kpi-mini-bar{height:100%;border-radius:99px;transition:width .4s;}
@keyframes streak-pulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.45);}60%{box-shadow:0 0 0 7px rgba(34,197,94,0);}}
.streak-win{animation:streak-pulse 2.2s ease-in-out infinite;}

/* ── Welle 2: Calendar enhancements ─────────────── */
.cal-day.today{outline:2px solid var(--accent);outline-offset:-2px;z-index:1;position:relative;}
.cal-day.today .dn{color:var(--accent2);font-weight:700;}
.cal-day.no-trade{cursor:pointer;}
.cal-day.no-trade:hover{border-color:var(--border2);background:var(--bg3);}
.cal-day.no-trade:hover::after{content:'+';position:absolute;bottom:6px;right:8px;font-size:15px;color:var(--text3);font-family:var(--font-h);font-weight:700;line-height:1;}
.cal-pbar{height:3px;border-radius:2px;margin-top:5px;flex-shrink:0;}
.cal-heatmap-btn{padding:4px 10px;border-radius:var(--r2);border:1px solid var(--border);background:transparent;color:var(--text3);font-family:var(--font-h);font-size:10px;font-weight:700;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.04em;}
.cal-heatmap-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.cal-day.hm-p1{background:rgba(34,197,94,.07);border-color:rgba(34,197,94,.22);}
.cal-day.hm-p2{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.35);}
.cal-day.hm-p3{background:rgba(34,197,94,.25);border-color:rgba(34,197,94,.5);}
.cal-day.hm-p4{background:rgba(34,197,94,.38);border-color:rgba(34,197,94,.65);}
.cal-day.hm-l1{background:rgba(239,68,68,.07);border-color:rgba(239,68,68,.22);}
.cal-day.hm-l2{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.35);}
.cal-day.hm-l3{background:rgba(239,68,68,.25);border-color:rgba(239,68,68,.5);}
.cal-day.hm-l4{background:rgba(239,68,68,.38);border-color:rgba(239,68,68,.65);}
.cal-day.hm-p1 .dp,.cal-day.hm-p2 .dp,.cal-day.hm-p3 .dp,.cal-day.hm-p4 .dp{color:var(--green-t);}
.cal-day.hm-l1 .dp,.cal-day.hm-l2 .dp,.cal-day.hm-l3 .dp,.cal-day.hm-l4 .dp{color:var(--red-t);}
#cal-tooltip{position:fixed;z-index:9000;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);padding:10px 12px;min-width:140px;max-width:220px;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.5);font-size:11px;line-height:1.6;display:none;}
.cal-tip-row{display:flex;align-items:center;gap:6px;padding:1px 0;}

/* ── Welle 2: Trades list enhancements ──────────── */
.list-date-btns{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px;}
.list-date-btn{padding:4px 10px;border-radius:99px;border:1px solid var(--border);background:transparent;color:var(--text3);font-family:var(--font-h);font-size:10px;font-weight:700;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
.list-date-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.list-sort-hdr{display:flex;align-items:center;gap:10px;padding:6px 0 8px;border-bottom:1px solid var(--border);flex-wrap:wrap;font-family:var(--font-h);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);user-select:none;}
.list-sort-col{cursor:pointer;transition:color .15s;display:inline-flex;align-items:center;gap:3px;}
.list-sort-col:hover{color:var(--text2);}
.list-sort-col.active{color:var(--accent2);}
.sort-arrow{font-size:9px;}
.list-summary{padding:9px 0 2px;margin-top:4px;border-top:1px solid var(--border);display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--text3);font-family:var(--font-m);}
.list-summary b{color:var(--text);font-weight:600;}
.trade-row{cursor:pointer;}
.trade-row:hover{background:var(--bg3);border-radius:var(--r2);margin:0 -6px;padding-left:6px;padding-right:6px;}

/* ── Welle 2: Jetzt button ───────────────────────── */
.time-wrap{display:flex;gap:6px;align-items:center;}
.time-wrap input{flex:1;min-width:0;}
.now-btn{padding:4px 8px;border-radius:var(--r2);border:1px solid var(--border);background:var(--bg3);color:var(--text3);font-family:var(--font-h);font-size:10px;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0;}
.now-btn:hover{color:var(--accent2);border-color:var(--accent);}

/* ── Wochensummary ─────────────────────────────── */
/* Basis: Mobile eingeklappt — Schließen: Inhalt zuerst ausblenden, dann Höhe */
.cal-week-sum {
  grid-column: 1 / span 7;
  background: var(--bg2); border: 1px solid transparent;
  border-radius: var(--r2);
  display: flex; flex-direction: row; align-items: center; gap: 0;
  cursor: default; overflow: hidden;
  max-height: 0; min-height: 0; opacity: 0; padding: 0 14px;
  transition: opacity .18s ease 0s,
              max-height .38s cubic-bezier(.4,0,.2,1) .18s,
              padding .35s ease .18s,
              border-color .15s ease .18s,
              background .15s;
}
.cal-week-sum.has-trades { cursor: pointer; }
.cal-week-sum.has-trades:hover { background: var(--bg3); }
.cal-week-sum.pos { border-left: 3px solid var(--green-b); }
.cal-week-sum.neg { border-left: 3px solid var(--red-b); }
.cal-week-sum.zero { border-left: 3px solid var(--border2); }
.cal-wk-label { font-size: 11px; font-weight: 500; font-family: var(--font-n);
  color: var(--text3); line-height: 1; flex: 0 0 auto; white-space: nowrap; }
.cal-wk-pnl { font-size: 17px; font-weight: 700; font-family: var(--font-n); line-height: 1; margin-top: 4px; }
.cal-wk-pnl.pos { color: var(--green-t); }
.cal-wk-pnl.neg { color: var(--red-t); }
.cal-wk-pnl.zero { color: var(--text2); }
.cal-wk-n { font-size: 11px; font-family: var(--font-h); font-weight: 600;
  letter-spacing: .01em; margin-top: 3px; line-height: 1; color: var(--text2); }
/* KW-Header */
.cal-hdr-wk { display: none !important; opacity: 0; transition: opacity .3s ease .2s; }
/* Border-Farbe mit höherer Spezifität */
.cal-grid.show-wk-sum .cal-week-sum.pos { border-left: 3px solid var(--green-b); }
.cal-grid.show-wk-sum .cal-week-sum.neg { border-left: 3px solid var(--red-b); }
.cal-grid.show-wk-sum .cal-week-sum.zero { border-left: 3px solid var(--border2); }

/* ── Mobile (<=600px): Öffnen: Höhe zuerst, dann Inhalt einblenden ── */
@media(max-width:600px) {
  .cal-grid.show-wk-sum .cal-week-sum {
    max-height: 38px; opacity: 1;
    padding: 7px 12px; min-height: 34px; border-color: var(--border);
    transition: max-height .38s cubic-bezier(.4,0,.2,1) 0s,
                opacity .3s ease .18s,
                padding .35s ease 0s,
                border-color .15s ease,
                background .15s;
  }
  .cal-grid.show-wk-sum .cal-week-sum .cal-wk-label { margin-right: 12px; margin-top: 0; }
  .cal-grid.show-wk-sum .cal-week-sum .cal-wk-pnl { flex: 1; font-size: 13px; margin-top: 0; }
  .cal-grid.show-wk-sum .cal-week-sum .cal-wk-n { font-size: 10px; margin-top: 0; }
}

/* ── Desktop (>600px): KW-Spalte via --cc8 animiert, Inhalt per opacity ── */
@media(min-width:601px) {
  /* Immer display:flex — --cc8 (0fr->1fr) steuert Spaltenbreite */
  .cal-week-sum {
    display: flex !important; grid-column: auto;
    flex-direction: column; justify-content: center; align-items: flex-start;
    gap: 5px; max-height: none; overflow: hidden;
    padding: 10px 12px; min-height: unset;
    border-color: var(--border);
    /* Schließen: Inhalt schnell ausblenden bevor Spalte zufährt */
    transition: opacity .18s ease 0s, background .15s, border-color .15s;
  }
  /* Öffnen: Inhalt erst einblenden nachdem Spalte aufgegangen ist */
  .cal-grid.show-wk-sum .cal-week-sum {
    opacity: 1;
    transition: opacity .32s ease .28s, background .15s, border-color .15s;
  }
  .cal-hdr-wk {
    display: flex !important; align-items: center; justify-content: center;
    overflow: hidden; opacity: 0; transition: opacity .18s ease 0s;
  }
  .cal-grid.show-wk-sum .cal-hdr-wk { opacity: 1; transition: opacity .32s ease .22s; }
  .cal-grid.show-wk-sum .cal-week-sum .cal-wk-label { margin-right: 0; }
  .cal-grid.show-wk-sum .cal-week-sum .cal-wk-pnl { font-size: 17px; flex: 0 0 auto; margin-top: 4px; }
  .cal-grid.show-wk-sum .cal-week-sum .cal-wk-n { font-size: 10px; margin-top: 3px; }
}
