:root {
  --bg:      #000300;
  --surface: #010a01;
  --surf2:   #021402;
  --border:  #0a320a;
  --bord2:   #165c16;
  --mg:      #00ff41;
  --mm:      #00c832;
  --md:      #006614;
  --warn:    #ffe000;
  --danger:  #ff2200;
  --text:    #00df38;
  --muted:   #1a5c1a;
  --mono:    'Share Tech Mono', 'Courier New', monospace;
  --display: 'Orbitron', 'Courier New', monospace;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--bg); color:var(--text); font-family:var(--mono); min-height:100vh; overflow-x:hidden; }
#bg-canvas { position:fixed; inset:0; z-index:0; pointer-events:none; opacity:0.14; }
body::after {
  content:''; position:fixed; inset:0; z-index:1; pointer-events:none;
  background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,0.06) 3px,rgba(0,0,0,0.06) 4px);
}

/* ─── HEADER ─── */
header {
  position:relative; z-index:20; display:flex; align-items:center; justify-content:space-between;
  padding:10px 22px; background:rgba(0,3,0,0.97);
  border-bottom:1px solid var(--md); box-shadow:0 0 24px rgba(0,255,65,0.07);
}
.logo { display:flex; align-items:center; gap:13px; }
.logo-mark {
  width:52px; height:52px; border-radius:5px; flex-shrink:0;
  position:relative; overflow:hidden; background:#000;
  border:1px solid var(--md); box-shadow:0 0 16px rgba(0,255,65,0.2),inset 0 0 16px rgba(0,255,65,0.03);
  display:flex; align-items:center; justify-content:center;
}
#matrix-canvas { position:absolute; inset:0; width:100%; height:100%; opacity:0.55; }
.logo-letters {
  position:relative; z-index:2; display:flex; align-items:baseline; gap:0px;
  font-family:var(--display); font-weight:900; line-height:1; letter-spacing:-1px;
}
.logo-letters .la { font-size:14px; color:var(--mm); text-shadow:0 0 6px var(--mm); }
.logo-letters .ls { font-size:23px; color:var(--mg); text-shadow:0 0 12px var(--mg),0 0 30px rgba(0,255,65,0.4); }
.logo-letters .lc { font-size:14px; color:var(--mm); text-shadow:0 0 6px var(--mm); }
.logo-text { display:flex; flex-direction:column; gap:2px; }
.logo-name { font-family:var(--display); font-weight:700; font-size:19px; letter-spacing:.16em; color:var(--mg); text-shadow:0 0 12px rgba(0,255,65,0.35); }
.logo-name em { color:#fff; font-style:normal; text-shadow:0 0 8px rgba(255,255,255,0.3); }
.logo-sub { font-size:12px; color:var(--muted); letter-spacing:.16em; text-transform:uppercase; font-family:var(--mono); }
.hdr-right { display:flex; align-items:center; gap:14px; }
.session-pill {
  display:flex; align-items:center; gap:7px; padding:5px 11px; border-radius:3px;
  border:1px solid var(--border); background:var(--surface);
  font-size:13px; color:var(--muted); letter-spacing:.12em; text-transform:uppercase; font-family:var(--display);
}
.sdot { width:7px; height:7px; border-radius:50%; background:var(--muted); flex-shrink:0; }
.sdot.on   { background:var(--mg); box-shadow:0 0 8px var(--mg); animation:blink-dot 2s infinite; }
.sdot.warn { background:var(--warn); box-shadow:0 0 6px var(--warn); }
.sdot.off  { background:var(--danger); }
@keyframes blink-dot { 0%,100%{opacity:1} 50%{opacity:.3} }
.clock { font-size:18px; color:var(--mg); letter-spacing:.12em; font-family:var(--display); text-shadow:0 0 10px rgba(0,255,65,0.35); }

/* ─── CONFIG BAR ─── */
#cfg-bar {
  position:relative; z-index:15; padding:8px 22px;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  background:rgba(1,10,1,0.97); border-bottom:1px solid var(--border); font-size:14px;
}
#cfg-bar label { color:var(--mm); text-transform:uppercase; letter-spacing:.12em; white-space:nowrap; font-family:var(--display); font-size:12px; }
.ci {
  background:var(--bg); border:1px solid var(--border); border-radius:3px;
  padding:6px 10px; color:var(--mg); font-family:var(--mono); font-size:14px; letter-spacing:.03em;
}
.ci:focus { outline:none; border-color:var(--mg); box-shadow:0 0 8px rgba(0,255,65,.12); }
.ci::placeholder { color:var(--muted); }

/* ─── BUTTONS ─── */
.btn {
  padding:6px 13px; border-radius:3px; border:none; cursor:pointer;
  font-family:var(--display); font-size:12px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; transition:all .18s; white-space:nowrap;
}
.btn-accent { background:transparent; color:var(--mg); border:1px solid var(--mg); box-shadow:0 0 8px rgba(0,255,65,.15); }
.btn-accent:hover { background:rgba(0,255,65,.08); box-shadow:0 0 16px rgba(0,255,65,.3); }
.btn-green  { background:var(--mg); color:#000; font-weight:900; box-shadow:0 0 10px rgba(0,255,65,.35); }
.btn-green:hover { background:#33ff6a; box-shadow:0 0 20px rgba(0,255,65,.55); }
.btn-danger { background:transparent; color:var(--danger); border:1px solid var(--danger); }
.btn-danger:hover { background:rgba(255,34,0,.1); }
.btn-outline { background:transparent; border:1px solid var(--border); color:var(--muted); }
.btn-outline:hover { border-color:var(--mm); color:var(--mm); }
.btn:disabled { opacity:.3; cursor:not-allowed; }
#conn-status { font-size:13px; font-family:var(--display); letter-spacing:.08em; }
#conn-status.ok   { color:var(--mg); text-shadow:0 0 6px rgba(0,255,65,.4); }
#conn-status.err  { color:var(--danger); }
#conn-status.info { color:var(--warn); }
.sep { width:1px; height:22px; background:var(--border); margin:0 3px; }
.mode-toggle { margin-left:auto; display:flex; align-items:center; gap:6px; }
.mode-btn {
  padding:4px 10px; border-radius:3px; border:1px solid var(--border);
  font-family:var(--display); font-size:12px; color:var(--muted);
  cursor:pointer; background:transparent; transition:all .2s; letter-spacing:.08em;
}
.mode-btn.active.demo { border-color:var(--warn); color:var(--warn); background:rgba(255,224,0,.05); box-shadow:0 0 8px rgba(255,224,0,.15); }
.mode-btn.active.live { border-color:var(--danger); color:var(--danger); background:rgba(255,34,0,.05); box-shadow:0 0 8px rgba(255,34,0,.18); }

/* ─── LAYOUT ─── */
.app { position:relative; z-index:5; display:grid; grid-template-columns:1fr 355px; height:calc(100vh - 92px); }
.left  { display:flex; flex-direction:column; border-right:1px solid var(--border); overflow:hidden; }
.right { display:flex; flex-direction:column; background:var(--surface); }

/* ─── TABS ─── */
.tabs { display:flex; background:var(--surface); border-bottom:1px solid var(--border); }
.tab {
  padding:11px 15px; background:none; border:none; cursor:pointer;
  font-family:var(--display); font-size:12px; color:var(--muted);
  letter-spacing:.1em; text-transform:uppercase; border-bottom:2px solid transparent; transition:all .18s;
}
.tab.active { color:var(--mg); border-bottom-color:var(--mg); text-shadow:0 0 8px rgba(0,255,65,.4); }
.tab:hover  { color:var(--text); }

.kb-type-btn {
  padding:5px 12px; background:var(--surf2); border:1px solid var(--border);
  border-radius:3px; font-family:var(--mono); font-size:9px; color:var(--muted);
  cursor:pointer; transition:all .2s; letter-spacing:.06em; text-transform:uppercase;
}
.kb-type-btn.active { border-color:#ffd700; color:#ffd700; background:rgba(255,215,0,.08); }
.kb-type-btn:hover  { border-color:var(--mg); color:var(--mg); }

.kb-entry {
  background:var(--surf2); border:1px solid var(--border); border-radius:4px;
  padding:12px 14px; display:flex; gap:12px; align-items:flex-start;
  transition:border-color .2s;
}
.kb-entry:hover { border-color:rgba(255,215,0,.3); }
.kb-entry-thumb { width:72px; height:52px; object-fit:cover; border-radius:3px; flex-shrink:0; border:1px solid var(--border); cursor:pointer; }
.kb-entry-thumb-placeholder { width:72px; height:52px; border-radius:3px; flex-shrink:0; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:22px; background:var(--bg); }
.kb-entry-body { flex:1; min-width:0; }
.kb-entry-title { font-size:12px; font-weight:700; color:var(--mg); margin-bottom:3px; }
.kb-entry-meta  { font-size:11px; color:var(--text); letter-spacing:.08em; margin-bottom:5px; }
.kb-entry-text  { font-size:13px; color:var(--text); line-height:1.6; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.kb-entry-tags  { display:flex; gap:4px; flex-wrap:wrap; margin-top:6px; }
.kb-tag { padding:2px 6px; background:rgba(0,255,65,.08); border:1px solid rgba(0,255,65,.15); border-radius:2px; font-size:12px; color:var(--mg); letter-spacing:.06em; }
.kb-del { background:none; border:none; cursor:pointer; color:var(--muted); font-size:13px; padding:2px 5px; border-radius:3px; transition:all .2s; flex-shrink:0; }
.kb-del:hover { color:var(--danger); background:rgba(255,0,0,.1); }
.pane { display:none; flex:1; overflow-y:auto; padding:16px; flex-direction:column; gap:12px; }
.pane.active { display:flex; }
/* Pane posizioni: tabella in alto scorrevole, non cresce oltre */
#pane-pos { padding:0; overflow:hidden; }
#pane-pos .pos-header { padding:12px 16px 8px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
#pane-pos #pos-container { flex:1; overflow-y:auto; padding:0 16px 16px; }
/* Chat destra: scorrevole indipendente */
.right { overflow:hidden; }

/* ─── ALERTS ─── */
.alert { border-radius:3px; padding:9px 13px; font-size:13px; border:1px solid; display:flex; align-items:center; gap:10px; font-family:var(--display); letter-spacing:.06em; }
.alert.hidden  { display:none; }
.alert.danger  { background:rgba(255,34,0,.07); border-color:var(--danger); color:#ff5533; }
.alert.warn    { background:rgba(255,224,0,.05); border-color:var(--warn); color:var(--warn); }
.alert.ok      { background:rgba(0,255,65,.03); border-color:var(--md); color:var(--mg); }
.alert.info    { background:rgba(0,255,65,.02); border-color:var(--border); color:var(--mm); }

/* ─── KPI ─── */
.kpi-row { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.kpi { background:var(--surface); border:1px solid var(--border); border-radius:3px; padding:11px; position:relative; overflow:hidden; }
.kpi::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; }
.kpi.blue::before  { background:var(--mm); box-shadow:0 0 6px var(--mm); }
.kpi.green::before { background:var(--mg); box-shadow:0 0 6px var(--mg); }
.kpi.warn::before  { background:var(--warn); }
.kpi.red::before   { background:var(--danger); }
.kpi-label { font-size:11px; color:var(--muted); letter-spacing:.15em; text-transform:uppercase; margin-bottom:5px; font-family:var(--display); }
.kpi-val   { font-family:var(--display); font-size:23px; font-weight:700; }
.kpi-val.pos { color:var(--mg); text-shadow:0 0 10px rgba(0,255,65,.35); }
.kpi-val.neg { color:var(--danger); }
.kpi-val.neu { color:var(--mm); }
.kpi-sub   { font-size:11px; color:var(--muted); margin-top:4px; }
.pbar { background:var(--surf2); border-radius:2px; height:3px; margin-top:5px; overflow:hidden; }
.pfill { height:100%; border-radius:2px; transition:width .5s; }
.pfill.g { background:linear-gradient(90deg,var(--md),var(--mg)); }
.pfill.r { background:linear-gradient(90deg,#880000,var(--danger)); }

/* ─── STATS ─── */
.stats-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.stat { background:var(--surface); border:1px solid var(--border); border-radius:3px; padding:10px; text-align:center; }
.stat .v { font-family:var(--display); font-size:21px; font-weight:700; }
.stat .l { font-size:11px; color:var(--muted); margin-top:2px; letter-spacing:.1em; text-transform:uppercase; }

/* ─── SESSIONS ─── */
.sess-row { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.sess { padding:9px 6px; border-radius:3px; border:1px solid var(--border); text-align:center; transition:all .3s; opacity:.35; }
.sess.active-sess { opacity:1; }
.sess .st { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; }
.sess .sn { font-size:13px; font-weight:700; margin-top:3px; font-family:var(--display); letter-spacing:.05em; }

/* ─── TABLE ─── */
.section-hdr { font-family:var(--display); font-size:13px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.14em; padding-bottom:7px; border-bottom:1px solid var(--border); }
.tbl { width:100%; border-collapse:collapse; font-size:14px; }
.tbl th { padding:7px 9px; text-align:left; background:var(--surf2); color:var(--muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase; border-bottom:1px solid var(--border); font-weight:400; font-family:var(--display); }
.tbl td { padding:7px 9px; border-bottom:1px solid rgba(10,50,10,.4); }
.tbl tr:hover td { background:rgba(0,255,65,.015); }

/* ─── BADGES ─── */
.badge { display:inline-block; padding:2px 7px; border-radius:2px; font-size:11px; font-weight:700; letter-spacing:.1em; font-family:var(--display); }
.badge.WIN  { background:rgba(0,255,65,.08); color:var(--mg); border:1px solid var(--md); }
.badge.LOSS { background:rgba(255,34,0,.08); color:var(--danger); border:1px solid #440000; }
.badge.BE   { background:rgba(255,224,0,.08); color:var(--warn); border:1px solid #443300; }
.badge.OPEN { background:rgba(0,200,50,.07); color:var(--mm); border:1px solid var(--border); }
.badge.BUY  { background:rgba(0,255,65,.07); color:var(--mg); border:1px solid var(--md); }
.badge.SELL { background:rgba(255,34,0,.07); color:var(--danger); border:1px solid #440000; }
.pl-p { color:var(--mg); font-weight:700; }
.pl-n { color:var(--danger); font-weight:700; }
.chart-btn { background:rgba(0,255,65,.06); border:1px solid var(--border); cursor:pointer; color:var(--mg); font-size:15px; padding:2px 6px; border-radius:3px; transition:all .2s; font-family:var(--mono); }
.chart-btn:hover { border-color:var(--mg); background:rgba(0,255,65,.15); }
.del-btn { background:none; border:none; cursor:pointer; color:var(--muted); font-size:14px; padding:1px 5px; border-radius:2px; transition:all .18s; }
.del-btn:hover { color:var(--danger); background:rgba(255,34,0,.1); }
.act-btn { padding:3px 7px; border-radius:2px; border:none; cursor:pointer; font-family:var(--display); font-size:11px; font-weight:700; text-transform:uppercase; transition:all .18s; letter-spacing:.07em; }
.act-btn.close { background:rgba(255,34,0,.08); color:var(--danger); border:1px solid #440000; }
.act-btn.close:hover { background:rgba(255,34,0,.22); }

/* ─── FORM ─── */
.form-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.fg { display:flex; flex-direction:column; gap:4px; }
.fg.full { grid-column:1/-1; }
.fg label { font-size:11px; color:var(--muted); letter-spacing:.13em; text-transform:uppercase; font-family:var(--display); }
.fg input, .fg select { background:var(--bg); border:1px solid var(--border); border-radius:3px; padding:8px 10px; color:var(--mg); font-family:var(--mono); font-size:14px; }
.fg input:focus, .fg select:focus { outline:none; border-color:var(--mg); box-shadow:0 0 8px rgba(0,255,65,.1); }
.fg select option { background:var(--surf2); color:var(--mg); }
.fg input::placeholder { color:var(--muted); }
.form-actions { display:flex; gap:7px; flex-wrap:wrap; }

/* ─── CHART ─── */
.chart-card { background:var(--surface); border:1px solid var(--border); border-radius:3px; padding:12px; }
.chart-card h3 { font-size:11px; color:var(--muted); letter-spacing:.14em; text-transform:uppercase; margin-bottom:10px; font-family:var(--display); }

/* ─── STORICO CALENDARIO ─── */
.cal-header { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.cal-nav { background:none; border:1px solid var(--border); color:var(--mg); font-family:var(--display); font-size:14px; padding:5px 10px; cursor:pointer; border-radius:2px; transition:all .18s; }
.cal-nav:hover { border-color:var(--mg); box-shadow:0 0 6px rgba(0,255,65,.2); }
.cal-month { font-family:var(--display); font-size:17px; font-weight:700; color:var(--mg); letter-spacing:.1em; min-width:160px; text-align:center; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; margin-bottom:16px; }
.cal-dow { font-size:12px; color:var(--muted); text-align:center; padding:4px 0; font-family:var(--display); letter-spacing:.1em; }
.cal-day { min-height:42px; background:var(--surface); border:1px solid var(--border); border-radius:2px; padding:4px; cursor:pointer; transition:all .18s; position:relative; }
.cal-day:hover { border-color:var(--mg); }
.cal-day.empty { background:transparent; border-color:transparent; cursor:default; }
.cal-day.today { border-color:var(--mg); box-shadow:0 0 6px rgba(0,255,65,.15); }
.cal-day.has-trades { background:rgba(0,255,65,.04); }
.cal-day.selected { border-color:var(--mg); background:rgba(0,255,65,.08); }
.cal-day.weekend { opacity:.4; }
.cal-day-num { font-size:13px; color:var(--muted); font-family:var(--display); }
.cal-day.today .cal-day-num { color:var(--mg); font-weight:700; }
.cal-day-pip { font-size:12px; font-family:var(--mono); margin-top:2px; }
.cal-day-dot { width:5px; height:5px; border-radius:50%; position:absolute; bottom:4px; right:4px; }
.cal-day-dot.pos { background:var(--mg); box-shadow:0 0 4px var(--mg); }
.cal-day-dot.neg { background:var(--danger); box-shadow:0 0 4px var(--danger); }
.hist-detail { background:var(--surface); border:1px solid var(--border); border-radius:3px; padding:14px; }
.hist-detail-hdr { font-family:var(--display); font-size:14px; color:var(--mg); letter-spacing:.1em; margin-bottom:10px; border-bottom:1px solid var(--border); padding-bottom:8px; display:flex; justify-content:space-between; align-items:center; }
.hist-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:12px; }
.hist-stat { background:var(--surf2); border:1px solid var(--border); border-radius:2px; padding:8px; text-align:center; }
.hist-stat .hv { font-family:var(--display); font-size:20px; font-weight:700; }
.hist-stat .hl { font-size:11px; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; margin-top:2px; font-family:var(--display); }

/* ─── TRADE CHART ─── */
.trade-row-wrap { border-bottom:1px solid rgba(0,255,65,.06); }
.trade-row-wrap:last-child { border-bottom:none; }
.trade-row { display:grid; grid-template-columns:100px 52px 72px 52px 52px 60px 60px 1fr 40px 28px; align-items:center; gap:0; padding:7px 8px; cursor:default; transition:background .15s; font-size:14px; }
.trade-row:hover { background:rgba(0,255,65,.03); }
.trade-chart-wrap { display:none !important; padding:10px 14px 14px; background:rgba(0,0,0,.3); }
.trade-chart-wrap.open { display:block !important; }
.tv-fullscreen { position:fixed; inset:0; z-index:999; background:#000; display:flex; flex-direction:column; }
.tv-fullscreen-bar { display:flex; align-items:center; gap:12px; padding:8px 14px; background:#010a01; border-bottom:1px solid var(--border); font-family:var(--mono); font-size:11px; color:var(--mg); flex-shrink:0; }
.tv-fullscreen-bar button { padding:4px 12px; border-radius:3px; border:1px solid var(--border); background:transparent; color:var(--muted); font-family:var(--display); font-size:11px; cursor:pointer; letter-spacing:.08em; }
.tv-fullscreen-bar button:hover { border-color:var(--mg); color:var(--mg); }
.pos-chart-container { width:100%; background:#060f06; border-radius:6px; border:1px solid var(--border); overflow:hidden; }
.pos-chart-canvas { width:100%; height:200px; display:block; }
.pos-chart-loading { color:var(--muted); font-size:10px; text-align:center; padding:20px; font-family:var(--mono); }
.pos-chart-levels { display:flex; gap:16px; padding:8px 12px; font-size:10px; font-family:var(--mono); border-top:1px solid var(--border); flex-wrap:wrap; }
.tc-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.tc-title { font-family:var(--display); font-size:13px; color:var(--muted); letter-spacing:.12em; text-transform:uppercase; }
.tc-vals { display:flex; gap:20px; font-size:13px; font-family:var(--mono); }
.tc-sl  { color:var(--danger); }
.tc-en  { color:var(--mg); }
.tc-tp  { color:#00ccff; }
.tc-svg { width:100%; height:64px; display:block; }

/* ─── EMPTY STATE ─── */
.empty-state { text-align:center; padding:40px 20px; color:var(--muted); font-size:14px; font-family:var(--display); letter-spacing:.1em; }
.empty-icon { font-size:28px; margin-bottom:10px; color:var(--md); }

/* ─── AI CHAT ─── */
.chat-hdr { padding:11px 15px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; background:var(--surface); }
.chat-title { font-family:var(--display); font-size:15px; font-weight:700; color:var(--mg); letter-spacing:.1em; text-shadow:0 0 8px rgba(0,255,65,.3); }
.chat-sub { font-size:11px; color:var(--text); margin-top:2px; letter-spacing:.07em; }
.ai-pill { background:transparent; color:var(--mg); border:1px solid var(--mg); font-size:11px; font-weight:700; font-family:var(--display); padding:3px 8px; border-radius:2px; letter-spacing:.14em; box-shadow:0 0 8px rgba(0,255,65,.18); animation:blink-dot 3s infinite; }
.chat-msgs { flex:1; overflow-y:auto; padding:11px; display:flex; flex-direction:column; gap:8px; }
.msg { max-width:95%; padding:9px 11px; border-radius:3px; font-size:14px; line-height:1.7; animation:fade-up .3s ease; font-family:var(--mono); }
@keyframes fade-up { from{opacity:0;transform:translateY(5px)} to{opacity:1;transform:translateY(0)} }
.msg.user { align-self:flex-end; background:rgba(0,255,65,.04); border:1px solid var(--bord2); color:var(--mm); }
.msg.ai   { align-self:flex-start; background:var(--surf2); border:1px solid var(--border); color:var(--text); }
.msg.sys  { align-self:center; text-align:center; background:rgba(0,255,65,.02); border:1px solid var(--border); color:var(--text); font-size:13px; max-width:100%; }
.msg-lbl  { font-size:11px; color:var(--text); margin-bottom:4px; letter-spacing:.14em; text-transform:uppercase; font-family:var(--display); }
.typing span { animation:blink-char 1.4s infinite; color:var(--mg); }
.typing span:nth-child(2) { animation-delay:.2s; }
.typing span:nth-child(3) { animation-delay:.4s; }
@keyframes blink-char { 0%,80%,100%{opacity:0} 40%{opacity:1} }
.quick-bar { padding:7px 11px; border-top:1px solid var(--border); display:flex; gap:4px; flex-wrap:wrap; }
.qbtn { padding:4px 8px; background:var(--surf2); border:1px solid var(--border); border-radius:2px; font-family:var(--display); font-size:11px; color:var(--muted); cursor:pointer; transition:all .18s; white-space:nowrap; letter-spacing:.07em; }
.qbtn:hover { border-color:var(--mg); color:var(--mg); box-shadow:0 0 6px rgba(0,255,65,.12); }
.chat-input-row { padding:10px 11px; border-top:1px solid var(--border); display:flex; gap:7px; align-items:flex-end; }
#chat-in { flex:1; background:var(--bg); border:1px solid var(--border); border-radius:3px; padding:8px 11px; color:var(--mg); font-family:var(--mono); font-size:14px; resize:none; max-height:80px; line-height:1.5; caret-color:var(--mg); }
#chat-in:focus { outline:none; border-color:var(--mg); box-shadow:0 0 8px rgba(0,255,65,.1); }
#chat-in::placeholder { color:var(--muted); }
#send-btn { width:37px; height:37px; border-radius:3px; border:1px solid var(--mg); background:transparent; color:var(--mg); cursor:pointer; font-size:19px; display:flex; align-items:center; justify-content:center; transition:all .18s; flex-shrink:0; box-shadow:0 0 8px rgba(0,255,65,.12); }
#send-btn:hover { background:rgba(0,255,65,.1); box-shadow:0 0 14px rgba(0,255,65,.3); }
#send-btn:disabled { opacity:.3; cursor:not-allowed; }

/* ─── MODAL ─── */
#modal-overlay { display:none; position:fixed; inset:0; z-index:100; background:rgba(0,0,0,.92); backdrop-filter:blur(4px); align-items:center; justify-content:center; }
#modal-overlay.show { display:flex; }
.modal { background:var(--surface); border:1px solid var(--bord2); border-radius:4px; padding:22px; width:360px; animation:fade-up .3s ease; box-shadow:0 0 40px rgba(0,255,65,.1); }
.modal h2 { font-family:var(--display); font-size:17px; margin-bottom:7px; color:var(--mg); letter-spacing:.1em; text-shadow:0 0 10px rgba(0,255,65,.4); }
.modal p  { font-size:13px; color:var(--text); line-height:1.8; margin-bottom:12px; }
.modal-actions { display:flex; gap:8px; justify-content:flex-end; }
.modal-detail { background:var(--bg); border:1px solid var(--border); border-radius:3px; padding:10px; font-size:14px; line-height:2; margin-bottom:11px; color:var(--text); font-family:var(--mono); }
.modal-detail span { color:var(--mg); }
::-webkit-scrollbar { width:3px; }
::-webkit-scrollbar-thumb { background:var(--bord2); border-radius:2px; }
::-webkit-scrollbar-track { background:transparent; }

/* ─── LOGIN SCREEN ─── */
#login-screen{position:fixed;inset:0;z-index:9999;background:#000300;display:flex;align-items:center;justify-content:center;}
#login-bg-canvas{position:absolute;inset:0;opacity:.15;}
.login-box{position:relative;z-index:10;background:rgba(0,3,0,.97);border:1px solid var(--md);border-radius:4px;padding:40px 46px;width:370px;text-align:center;box-shadow:0 0 40px rgba(0,255,65,.1);}
.login-logo{width:54px;height:54px;margin:0 auto 16px;border-radius:4px;border:1px solid var(--md);background:#000;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;}
.login-logo canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.5;}
.login-logo-letters{position:relative;z-index:2;display:flex;align-items:baseline;font-family:var(--display);font-weight:900;}
.login-logo-letters .la{font-size:13px;color:var(--mm);}
.login-logo-letters .ls{font-size:22px;color:var(--mg);text-shadow:0 0 10px var(--mg);}
.login-logo-letters .lc{font-size:13px;color:var(--mm);}
.login-title{font-family:var(--display);font-size:19px;font-weight:700;color:var(--mg);letter-spacing:.14em;margin-bottom:4px;}
.login-title em{color:#fff;font-style:normal;}
.login-sub{font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:24px;font-family:var(--display);}
.login-field{display:flex;flex-direction:column;gap:5px;text-align:left;margin-bottom:11px;}
.login-field label{font-size:10px;color:var(--mm);text-transform:uppercase;letter-spacing:.12em;font-family:var(--display);}
.login-field input{background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:10px 12px;color:var(--mg);font-family:var(--mono);font-size:14px;}
.login-field input:focus{outline:none;border-color:var(--mg);box-shadow:0 0 8px rgba(0,255,65,.12);}
.login-btn{width:100%;padding:11px;margin-top:6px;border-radius:3px;border:1px solid var(--mg);background:transparent;color:var(--mg);font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .2s;box-shadow:0 0 8px rgba(0,255,65,.1);}
.login-btn:hover{background:rgba(0,255,65,.08);box-shadow:0 0 18px rgba(0,255,65,.28);}
#login-error{font-size:11px;color:var(--danger);margin-top:9px;min-height:16px;font-family:var(--display);letter-spacing:.08em;}
#app-wrapper{display:none;}
#app-wrapper.visible{display:block;}
.logout-btn{padding:5px 11px;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--muted);font-family:var(--display);font-size:10px;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;transition:all .2s;}
.logout-btn:hover{border-color:var(--danger);color:var(--danger);}

/* ─── TOTP MODAL ─── */
#totp-modal{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.92);backdrop-filter:blur(4px);align-items:center;justify-content:center;}
#totp-modal.show{display:flex;}
.totp-box{background:var(--surface);border:1px solid var(--danger);border-radius:4px;padding:26px;width:340px;text-align:center;box-shadow:0 0 30px rgba(255,34,0,.12);animation:fade-up .3s ease;}
.totp-box h2{font-family:var(--display);font-size:16px;color:var(--danger);letter-spacing:.1em;margin-bottom:8px;}
.totp-box p{font-size:12px;color:var(--text);line-height:1.8;margin-bottom:18px;font-family:var(--mono);}
.totp-box p strong{color:var(--mg);}
#totp-input{width:100%;text-align:center;letter-spacing:.4em;font-size:26px;font-weight:700;background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:13px;color:var(--mg);font-family:var(--display);margin-bottom:8px;transition:border-color .2s;caret-color:var(--mg);}
#totp-input:focus{outline:none;border-color:var(--danger);}
#totp-timer{font-size:11px;color:var(--muted);margin-bottom:11px;font-family:var(--display);letter-spacing:.07em;}
#totp-timer span{color:var(--warn);font-weight:700;}
#totp-error{font-size:11px;color:var(--danger);min-height:16px;margin-bottom:11px;font-family:var(--display);letter-spacing:.07em;}
.totp-actions{display:flex;gap:9px;}

/* ─── FONT SIZES INCREASED ─── */
.kpi-label{font-size:13px!important;}
.kpi-sub{font-size:13px!important;}
.stat .l{font-size:13px!important;}
.tbl{font-size:13px!important;}
.tbl th{font-size:13px!important;}
.badge{font-size:13px!important;}
.tab{font-size:13px!important;}
.msg{font-size:14px!important;}
.msg-lbl{font-size:12px!important;}
.qbtn{font-size:12px!important;}
#chat-in{font-size:14px!important;}
#cfg-bar label{font-size:13px!important;}
.ci{font-size:14px!important;}
.btn{font-size:13px!important;}
.alert{font-size:13px!important;}
.section-hdr{font-size:14px!important;}

/* ─── CONNETTI/DISCONNETTI states ─── */
#btn-connetti.connected{opacity:.4;pointer-events:none;}
#btn-disconnetti.connected{opacity:1;}

/* ─── NOW PRICE column ─── */
.now-price{font-weight:700;font-size:13px;}
.now-price.above{color:var(--mg);}
.now-price.below{color:var(--danger);}
.now-price.eq{color:var(--mm);}

/* ─── MANUAL/AUTO stop buttons ─── */
#stop-mode-manual.active { border-color:var(--mg) !important; color:var(--mg) !important; background:rgba(0,255,65,.08) !important; box-shadow:0 0 8px rgba(0,255,65,.25) !important; }
#stop-mode-auto.active   { border-color:var(--danger) !important; color:var(--danger) !important; background:rgba(255,34,0,.08) !important; box-shadow:0 0 8px rgba(255,34,0,.25) !important; }

/* ─── MANUAL/AUTO open buttons ─── */
#open-mode-manual.active { border-color:var(--mg) !important; color:var(--mg) !important; background:rgba(0,255,65,.08) !important; box-shadow:0 0 8px rgba(0,255,65,.25) !important; }
#open-mode-auto.active   { border-color:var(--danger) !important; color:var(--danger) !important; background:rgba(255,34,0,.08) !important; box-shadow:0 0 8px rgba(255,34,0,.25) !important; }
