/* ==========================================================================
   KILLCRITIC "Switchgear" skin  (loaded after style.css — presentation only)
   Idea: KILLCRITIC is a circuit breaker for your trading, so the console is
   a breaker cabinet. Plates are bolted to a steel panel, numbers live in
   recessed readouts, colour only ever means state (red = tripped, amber =
   caution/selected, mint = healthy). The one loud element is the guarded
   emergency-stop button.
   ========================================================================== */

body[data-theme-mode="dark"]{
  --f-enc:#1B2125; --f-plate:#252D32; --f-plate-hi:#2F383E; --f-recess:#11161A;
  --f-line:#3B474E; --f-line-soft:#2C363C;
  --f-text:#E7EAE3; --f-muted:#95A2A8;
  --f-red:#EC4B36; --f-amber:#F3AE2E; --f-mint:#6FD9B0;
  --f-bone:#D9DDD3; --f-ink:#1B2125; --f-lamp-off:#3A454B;
  --f-lcd:#11161A; --f-lcd-text:#6FD9B0; --f-well:#11161A; --f-field:#11161A; --f-field-text:#E7EAE3; --f-well-muted:#95A2A8;
  --f-bevel:inset 0 1px 0 rgba(255,255,255,.07), inset 0 -1px 0 rgba(0,0,0,.5);
  --f-drop:0 1px 0 rgba(0,0,0,.65), 0 8px 16px -8px rgba(0,0,0,.65);
  --f-screw:#5C6A73;
}
body[data-theme-mode="light"]{
  --f-enc:#CDD2CA; --f-plate:#E3E6DE; --f-plate-hi:#EEF0E9; --f-recess:#B9C0B8;
  --f-line:#A3ABA3; --f-line-soft:#BCC3BB;
  --f-text:#1B2327; --f-muted:#566267;
  --f-red:#D43620; --f-amber:#B97A06; --f-mint:#1C8A67;
  --f-bone:#F4F5EF; --f-ink:#1B2327; --f-lamp-off:#A9B1A8;
  --f-lcd:#1B2125; --f-lcd-text:#6FD9B0; --f-well:#2A3237; --f-field:#F7F8F3; --f-field-text:#1B2327; --f-well-muted:#A9B4B9;
  --f-bevel:inset 0 1px 0 rgba(255,255,255,.8), inset 0 -1px 0 rgba(0,0,0,.14);
  --f-drop:0 1px 0 rgba(255,255,255,.7), 0 8px 16px -10px rgba(40,50,45,.5);
  --f-screw:#8A948C;
}
body[data-theme-mode]{
  --bg:var(--f-enc); --panel:var(--f-plate); --panel2:var(--f-plate-hi);
  --line:var(--f-line); --line2:var(--f-line); --text:var(--f-text); --muted:var(--f-muted); --faint:var(--f-muted);
  --kc-bg:var(--f-enc); --kc-surface:var(--f-plate); --kc-line:var(--f-line); --kc-text:var(--f-text);
  --kc-muted:var(--f-muted); --kc-blue:var(--f-amber); --kc-red:var(--f-red); --kc-green:var(--f-mint);
  --info:var(--f-bone); --danger:var(--f-red); --warn:var(--f-amber);
  --tac-surface-rgb:37,45,50; --tac-accent-rgb:243,174,46; --tac-text:var(--f-text);
  --tac-text-muted:var(--f-muted); --tac-danger:var(--f-red); --tac-faint:var(--f-muted);
  --f-font:'Barlow Semi Condensed','Arial Narrow',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
}

/* ---------- type ---------- */
body[data-theme-mode] #app, body[data-theme-mode] #app *{font-family:var(--f-font)}
body[data-theme-mode] #app .font-mono-tac, body[data-theme-mode] #app .kc-metric-value,
body[data-theme-mode] #app .kc-version, body[data-theme-mode] #app #kcTopTime, body[data-theme-mode] #app #kcTopDate,
body[data-theme-mode] #app .kc-market-quote-card strong, body[data-theme-mode] #app .kc-capital-value,
body[data-theme-mode] #app #liveClock{font-family:var(--f-mono)}

/* ---------- enclosure ---------- */
body[data-theme-mode]{
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0 1px, transparent 1px 3px),
    var(--f-enc);
  color:var(--f-text);
}
body[data-theme-mode] #app{background:transparent;color:var(--f-text)}

/* ---------- sidebar = breaker rail ---------- */
body[data-theme-mode] #app .kc-sidebar{
  background:linear-gradient(90deg, var(--f-plate) 0%, var(--f-plate-hi) 100%);
  border-right:1px solid #000; box-shadow:inset -1px 0 0 var(--f-line), 6px 0 18px -10px rgba(0,0,0,.7);
}
body[data-theme-mode] #app .kc-sidebar::before, body[data-theme-mode] #app .kc-sidebar::after{
  content:''; position:absolute; left:50%; width:9px; height:9px; margin-left:-4.5px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #8C9AA3 0 18%, var(--f-screw) 45%, #14191C 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.08);
}
body[data-theme-mode] #app .kc-sidebar::before{top:8px}
body[data-theme-mode] #app .kc-sidebar::after{bottom:8px}
body[data-theme-mode] #app .kc-sidebar-brand{border-bottom:1px solid var(--f-line);box-shadow:0 1px 0 rgba(255,255,255,.04);padding-top:6px}
body[data-theme-mode] #app .kc-sidebar-logo{border-radius:3px;box-shadow:0 0 0 1px var(--f-line), var(--f-drop)}
body[data-theme-mode] #app .kc-sidebar-name{font-size:21px;font-weight:700;letter-spacing:.06em;color:var(--f-text)}
body[data-theme-mode] #app .kc-sidebar-tagline{font-size:11.5px;color:var(--f-muted);letter-spacing:.02em}

body[data-theme-mode] #app .kc-side-nav .nav,
body[data-theme-mode] #app .kc-side-nav .kc-side-link-disabled{
  position:relative; border-radius:3px; border:1px solid transparent; padding:10px 10px 10px 12px;
  font-size:15px; font-weight:600; letter-spacing:.01em; color:var(--f-text); background:transparent; box-shadow:none;
}
body[data-theme-mode] #app .kc-side-nav .kc-side-link-disabled{color:var(--f-muted);opacity:.85}
body[data-theme-mode] #app .kc-side-nav .nav:hover{background:rgba(255,255,255,.04);color:var(--f-text);border-color:var(--f-line-soft)}
body[data-theme-mode] #app .kc-side-nav .nav.active{
  background:var(--f-well); color:#E7EAE3; border-color:#000;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.65), 0 1px 0 rgba(255,255,255,.08);
}
body[data-theme-mode] #app .kc-nav-icon{font-size:0;width:14px;flex:0 0 14px;display:flex;align-items:center;justify-content:center}
body[data-theme-mode] #app .kc-nav-icon::before{
  content:''; width:9px; height:9px; border-radius:50%; background:var(--f-lamp-off);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.7), 0 0 0 2px rgba(0,0,0,.25);
}
body[data-theme-mode] #app .kc-side-nav .nav.active .kc-nav-icon::before{
  background:var(--f-amber); box-shadow:0 0 0 2px rgba(0,0,0,.3), 0 0 10px 1px var(--f-amber);
}
body[data-theme-mode] #app .kc-side-badge{
  background:transparent; color:var(--f-muted); border:1px solid var(--f-line); border-radius:2px;
  padding:2px 5px; font-size:10px; font-weight:600; letter-spacing:.08em;
}
body[data-theme-mode] #app .kc-sidebar-account{
  background:var(--f-well); border:1px solid #000; border-radius:3px; color:#E7EAE3;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.6), 0 1px 0 rgba(255,255,255,.06);
}
body[data-theme-mode] #app .kc-account-title{color:#F3AE2E;font-size:13px;font-weight:700;letter-spacing:.03em}
body[data-theme-mode] #app .kc-account-title{font-size:0}
body[data-theme-mode] #app .kc-account-title span{font-size:13px}
body[data-theme-mode] #app .kc-account-sub{font-size:11.5px;margin-left:0;color:var(--f-well-muted)}
body[data-theme-mode] #app .kc-health{border-top:1px solid #3A454B;color:#6FD9B0;font-size:12px;font-weight:600}
body[data-theme-mode] #app .kc-health span{background:#6FD9B0;box-shadow:0 0 8px 1px #6FD9B0}
body[data-theme-mode] #app .kc-version{font-size:10px;color:var(--f-well-muted)}

/* ---------- top bar ---------- */
body[data-theme-mode] #app .topbar-unified{
  background:linear-gradient(180deg, var(--f-plate-hi), var(--f-plate)); border-bottom:1px solid #000;
  box-shadow:var(--f-bevel), 0 6px 14px -8px rgba(0,0,0,.6);
}
body[data-theme-mode] #app .kc-header-user{font-size:13px;font-weight:600;color:var(--f-text)}
body[data-theme-mode] #app .kc-header-avatar{
  border-radius:3px; background:var(--f-bone); color:var(--f-ink); font-size:13px; font-weight:700; box-shadow:var(--f-bevel);
}
body[data-theme-mode] #app .kc-header-logout{font-size:11.5px;color:var(--f-muted)}
body[data-theme-mode] #app .kc-header-logout:hover{color:var(--f-amber)}
body[data-theme-mode] #app .plan-badge{
  border-radius:2px; background:transparent; border:1px solid var(--f-amber); color:var(--f-amber);
  font-size:11px; font-weight:700; letter-spacing:.08em; padding:2px 6px;
}
body[data-theme-mode] #app #monitorBadge{
  background:var(--f-well)!important; color:#6FD9B0!important; border:1px solid #000!important; border-radius:2px!important;
  font-family:var(--f-mono); font-size:11px!important; letter-spacing:.06em; box-shadow:inset 0 2px 5px rgba(0,0,0,.6);
}
body[data-theme-mode] #app .kc-datetime{
  background:var(--f-well); border:1px solid #000; border-radius:2px; box-shadow:inset 0 2px 5px rgba(0,0,0,.6);
  color:#6FD9B0; padding:7px 10px;
}
body[data-theme-mode] #app .kc-datetime>span:not([id]):not(.kc-time-sep){display:none}
body[data-theme-mode] #app .kc-datetime span{color:#6FD9B0;font-size:12px;text-shadow:0 0 6px rgba(111,217,176,.45)}
body[data-theme-mode] #app .kc-theme-picker{background:var(--f-well);border:1px solid #000;border-radius:3px;padding:2px;box-shadow:inset 0 2px 5px rgba(0,0,0,.6)}
body[data-theme-mode] #app .kc-theme-btn{font-size:0;border-radius:2px;padding:6px 11px;color:var(--f-well-muted)}
body[data-theme-mode] #app .kc-theme-btn span{font-size:12.5px;font-weight:600}
body[data-theme-mode] #app .kc-theme-btn:hover{background:rgba(255,255,255,.07);color:#E7EAE3}
body[data-theme-mode] #app .kc-theme-btn.active{background:var(--f-bone);color:var(--f-ink);box-shadow:var(--f-bevel), 0 1px 0 #000}

/* ---------- THE emergency stop (the one loud element) ---------- */
body[data-theme-mode] #app .kill-switch-btn{
  position:relative; border:4px solid transparent!important; border-radius:6px!important;
  padding:8px 18px!important; font-size:14px!important; font-weight:700!important; letter-spacing:.1em; color:#fff!important;
  background:
    radial-gradient(120% 140% at 50% 15%, #FF7A62 0%, #E4402A 45%, #A81F10 100%) padding-box,
    repeating-linear-gradient(-45deg, #F3AE2E 0 7px, #17191B 7px 14px) border-box!important;
  text-shadow:0 1px 0 rgba(0,0,0,.45);
  box-shadow:0 3px 0 #5E0F06, 0 8px 16px -4px rgba(236,75,54,.55)!important;
  transition:transform .08s, box-shadow .08s;
}
body[data-theme-mode] #app .kill-switch-btn:hover{filter:brightness(1.08)}
body[data-theme-mode] #app .kill-switch-btn:active{transform:translateY(3px);box-shadow:0 0 0 #5E0F06, 0 3px 8px -2px rgba(236,75,54,.5)!important}

/* ---------- annunciator strips (banners) ---------- */
body[data-theme-mode] #app [id$="Banner"]:not(#banner){
  background:var(--f-plate)!important; color:var(--f-text)!important; border:0!important;
  border-left:8px solid var(--f-amber)!important; border-bottom:1px solid #000!important;
  box-shadow:var(--f-bevel); font-size:13.5px!important; padding:8px 20px!important; line-height:1.45;
}
body[data-theme-mode] #app #connectionWarningBanner, body[data-theme-mode] #app #timeLockTestModeBanner{border-left-color:var(--f-red)!important}
body[data-theme-mode] #app [id$="Banner"] a{color:var(--f-amber)!important;font-weight:700}

/* ---------- plates (cards & panels) ---------- */
body[data-theme-mode] #app .card,
body[data-theme-mode] #app .hud-panel,
body[data-theme-mode] #dashboard-tactical .hud-panel{
  background:linear-gradient(180deg, var(--f-plate-hi), var(--f-plate))!important;
  border:1px solid var(--f-line)!important; border-radius:4px!important; box-shadow:var(--f-bevel), var(--f-drop)!important;
}
body[data-theme-mode] #app .card h3, body[data-theme-mode] #app .card h2{letter-spacing:.01em}
body[data-theme-mode] #app h1, body[data-theme-mode] #app h2{font-weight:700;letter-spacing:.01em;color:var(--f-text)}

/* the old amber corner brackets give way to bolts */
body[data-theme-mode] #app .hud-panel::before, body[data-theme-mode] #app .hud-panel::after{display:none}

/* streak / rank labels: sentence case instead of shouting */
body[data-theme-mode] #app #streakNumber, body[data-theme-mode] #app #rankTitle{
  text-transform:lowercase!important; display:block; letter-spacing:.02em!important; font-family:var(--f-font)!important;
}
body[data-theme-mode] #app #streakNumber::first-letter, body[data-theme-mode] #app #rankTitle::first-letter{text-transform:uppercase}
body[data-theme-mode] #app #rankTitle{font-size:22px!important;text-shadow:none!important;color:var(--f-amber)!important}

/* hero → status plate with hazard edge */
body[data-theme-mode] #dashboard-tactical .kc-welcome-hero{
  background:
    radial-gradient(circle at 12px 18px, var(--f-screw) 0 2.5px, transparent 3.5px),
    radial-gradient(circle at calc(100% - 12px) 18px, var(--f-screw) 0 2.5px, transparent 3.5px),
    linear-gradient(180deg, var(--f-plate-hi), var(--f-plate))!important;
  border:1px solid var(--f-line)!important; border-radius:4px!important;
  box-shadow:var(--f-bevel), var(--f-drop)!important; color:var(--f-text);
  padding-top:32px; min-height:0;
}
body[data-theme-mode] #dashboard-tactical .kc-welcome-hero::before{
  content:''; display:block; position:absolute; top:0; left:0; right:0; bottom:auto; width:auto; border:0; height:7px; background:repeating-linear-gradient(-45deg, var(--f-amber) 0 10px, #17191B 10px 20px);
  opacity:.95; pointer-events:none;
}
body[data-theme-mode] #dashboard-tactical .kc-welcome-glow,
body[data-theme-mode] #dashboard-tactical .kc-welcome-art{display:none!important}
body[data-theme-mode] #dashboard-tactical .kc-welcome-copy{max-width:100%}
body[data-theme-mode] #dashboard-tactical .kc-welcome-eyebrow{color:var(--f-muted);font-size:11.5px;font-weight:600;letter-spacing:.1em}
body[data-theme-mode] #dashboard-tactical .kc-welcome-copy h1{
  font-size:46px; line-height:1; font-weight:700; letter-spacing:-.005em; color:var(--f-text); margin:6px 0 12px;
}
body[data-theme-mode] #dashboard-tactical .kc-welcome-copy h1 span{color:var(--f-text)}
body[data-theme-mode] #dashboard-tactical .kc-welcome-copy h1 strong{color:var(--f-muted);font-weight:500}
body[data-theme-mode] #dashboard-tactical .kc-welcome-copy p{color:var(--f-muted);font-size:15px;line-height:1.5;max-width:560px}
body[data-theme-mode] #dashboard-tactical .kc-status-row{font-size:0;gap:10px 18px}
body[data-theme-mode] #dashboard-tactical .kc-status-row span{font-size:0;gap:8px}
body[data-theme-mode] #dashboard-tactical .kc-status-row span::before{
  content:''; width:9px; height:9px; border-radius:50%; background:var(--f-mint); box-shadow:0 0 8px 1px var(--f-mint);
}
body[data-theme-mode] #dashboard-tactical .kc-status-row b{font-size:13.5px;font-weight:600;color:var(--f-text)}
body[data-theme-mode] #dashboard-tactical .kc-market-quotes-label span{color:var(--f-muted)!important}
body[data-theme-mode] #dashboard-tactical .kc-market-quotes-label{color:var(--f-muted);font-size:12px;letter-spacing:.06em}
body[data-theme-mode] #dashboard-tactical .kc-market-quote-card{
  background:var(--f-lcd)!important; border:1px solid #000!important; border-radius:2px!important;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.7), 0 1px 0 rgba(255,255,255,.06)!important;
  background-image:repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 3px)!important;
}
body[data-theme-mode] #dashboard-tactical .kc-market-name{color:#9AA7AD!important;font-size:12px!important;font-weight:600;letter-spacing:.06em}
body[data-theme-mode] #dashboard-tactical .kc-market-quote-card strong{color:var(--f-lcd-text)!important;text-shadow:0 0 8px rgba(111,217,176,.5);font-size:16px!important}
body[data-theme-mode] #dashboard-tactical .kc-market-quote-card small{color:var(--f-amber)!important;font-size:10.5px!important}
body[data-theme-mode] #dashboard-tactical .kc-welcome-action{
  background:var(--f-bone)!important; color:var(--f-ink)!important; border-radius:3px!important; font-size:14px!important;
  font-weight:700!important; padding:10px 18px!important; box-shadow:var(--f-bevel), 0 3px 0 #000!important;
}
body[data-theme-mode] #dashboard-tactical .kc-welcome-action:active{transform:translateY(2px);box-shadow:0 1px 0 #000!important}

/* ---------- readout modules (metric cards) ---------- */
body[data-theme-mode] #app .kc-metric-rail-title{color:var(--f-muted);font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:none}
body[data-theme-mode] #app .kc-metric-rail-title>span:first-child{font-size:0}
body[data-theme-mode] #app .kc-metric-rail-title>span:first-child::before{content:'';display:block;width:9px;height:9px;border-radius:50%;background:var(--f-mint);box-shadow:0 0 8px 1px var(--f-mint)}
body[data-theme-mode] #app .kc-metric-rail-title small{font-size:11.5px;color:var(--f-muted)}
body[data-theme-mode] #app #rankTitle{color:var(--f-amber)!important}
body[data-theme-mode] #app #streakSub{font-size:11px!important}
body[data-theme-mode] #app .kc-metric-card{
  background:
    radial-gradient(circle at 10px 10px, var(--f-screw) 0 2px, transparent 3px),
    radial-gradient(circle at calc(100% - 10px) 10px, var(--f-screw) 0 2px, transparent 3px),
    linear-gradient(180deg, var(--f-plate-hi), var(--f-plate))!important;
  border:1px solid var(--f-line)!important; border-radius:4px!important;
  box-shadow:var(--f-bevel), var(--f-drop)!important; padding:20px 14px 14px; transform:none!important;
}
body[data-theme-mode] #app .kc-metric-card:hover{border-color:var(--f-line)!important}
body[data-theme-mode] #app .kc-metric-icon{display:none}
body[data-theme-mode] #app .kc-metric-title{
  font-size:13px; font-weight:600; letter-spacing:.02em; color:var(--f-text); text-transform:lowercase; display:block;
}
body[data-theme-mode] #app .kc-metric-title::first-letter{text-transform:uppercase}
body[data-theme-mode] #app .kc-metric-value{
  display:inline-block; min-width:110px; margin-top:8px; padding:7px 12px; border-radius:2px; font-size:24px; font-weight:600; letter-spacing:.02em;
  color:var(--f-lcd-text); background:var(--f-lcd); border:1px solid #000;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.75), 0 1px 0 rgba(255,255,255,.06);
  background-image:repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 3px);
  text-shadow:0 0 10px rgba(111,217,176,.5);
}
body[data-theme-mode] #app .kc-metric-card.loss .kc-metric-value{color:var(--f-red);text-shadow:0 0 10px rgba(236,75,54,.55)}
body[data-theme-mode] #app .kc-metric-sub{font-size:11.5px;color:var(--f-muted)}
body[data-theme-mode] #app .kc-mini-graph{color:var(--f-amber);opacity:.4}
body[data-theme-mode] #app .kc-metric-card.loss .kc-mini-graph{color:var(--f-red)}
body[data-theme-mode] #app .kc-meter{background:var(--f-recess)}
body[data-theme-mode] #app .kc-meter span, body[data-theme-mode] #app .kc-meter b,
body[data-theme-mode] #app .kc-meter i, body[data-theme-mode] #app .kc-meter em, body[data-theme-mode] #app .kc-pulse-line span{background:var(--f-amber)}
body[data-theme-mode] #app .kc-capital-track{background:var(--f-recess);border-radius:2px;box-shadow:inset 0 2px 4px rgba(0,0,0,.7);height:10px}
body[data-theme-mode] #app .kc-capital-fill{border-radius:1px;background:repeating-linear-gradient(90deg, var(--f-amber) 0 6px, #C98C1A 6px 8px);box-shadow:none}
body[data-theme-mode] #app .kc-capital-label, body[data-theme-mode] #app .kc-capital-foot{font-size:11.5px;color:var(--f-muted)}
body[data-theme-mode] #app .kc-capital-value{font-size:12.5px}

/* ---------- controls ---------- */
body[data-theme-mode] #app input, body[data-theme-mode] #app select, body[data-theme-mode] #app textarea{
  background:var(--f-field); color:var(--f-field-text); border:1px solid #000; border-radius:3px;
  box-shadow:inset 0 2px 5px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.06);
}
body[data-theme-mode] #app input:focus, body[data-theme-mode] #app select:focus, body[data-theme-mode] #app textarea:focus{
  outline:2px solid var(--f-amber); outline-offset:1px; border-color:#000;
}
body[data-theme-mode] #app .btn{
  background:linear-gradient(180deg, var(--f-plate-hi), var(--f-plate)); border:1px solid #000; border-radius:3px; color:var(--f-text);
  box-shadow:var(--f-bevel), 0 2px 0 #000; font-weight:600; font-size:14px;
}
body[data-theme-mode] #app .btn:hover{border-color:#000;color:var(--f-amber)}
body[data-theme-mode] #app .btn:active{transform:translateY(2px);box-shadow:inset 0 2px 4px rgba(0,0,0,.6)}
body[data-theme-mode] #app .btn.primary{background:var(--f-bone);color:var(--f-ink);border-color:#000}
body[data-theme-mode] #app .btn.primary:hover{color:var(--f-ink);filter:brightness(1.06)}
body[data-theme-mode] #app .btn.danger{background:transparent;color:var(--f-red);border:1px solid var(--f-red);box-shadow:none}
body[data-theme-mode] #app button:focus-visible, body[data-theme-mode] #app a:focus-visible,
body[data-theme-mode] #app .nav:focus-visible{outline:2px solid var(--f-amber);outline-offset:2px}

@media (prefers-reduced-motion:reduce){
  body[data-theme-mode] #app *{animation:none!important;transition:none!important}
}
@media (max-width:850px){
  body[data-theme-mode] #app .kc-sidebar::before, body[data-theme-mode] #app .kc-sidebar::after{display:none}
  body[data-theme-mode] #dashboard-tactical .kc-welcome-copy h1{font-size:34px}
}

/* ==========================================================================
   v113 additions
   ========================================================================== */

/* --- inputs: the older dark-navy !important rule in style.css beat the
       Switchgear field colour on Rules / Broker / Settings. Same specificity,
       loaded later, so these win. --- */
body[data-theme-mode="dark"] #app input:not([type=checkbox]):not([type=radio]):not([type=range]),
body[data-theme-mode="dark"] #app select,
body[data-theme-mode="dark"] #app textarea{
  background:var(--f-field)!important; color:var(--f-field-text)!important; border-color:#000!important;
}
body[data-theme-mode="light"] #app input:not([type=checkbox]):not([type=radio]):not([type=range]),
body[data-theme-mode="light"] #app select,
body[data-theme-mode="light"] #app textarea{
  background:var(--f-field)!important; color:var(--f-field-text)!important; border-color:var(--f-line)!important;
}
body[data-theme-mode] #app input::placeholder, body[data-theme-mode] #app textarea::placeholder{color:var(--f-muted)!important;opacity:.8}
body[data-theme-mode] #app select option{background:var(--f-plate);color:var(--f-text)}
body[data-theme-mode] #app input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.7)}
body[data-theme-mode="light"] #app input[type=time]::-webkit-calendar-picker-indicator{filter:none}

/* --- dashboard: P&L vs loss limit --- */
body[data-theme-mode] #app .kc-pnl-card{margin:0 0 14px;padding:14px 16px 12px}
.kc-pnl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:6px}
.kc-pnl-head h3{margin:0;font-size:15px}
.kc-pnl-head .kc-eyebrow{display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.16em;color:var(--f-amber,#F3AE2E)}
body[data-theme-mode] #app .kc-pnl-read{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:22px;font-weight:600;padding:3px 10px;border-radius:2px;background:var(--f-lcd);color:var(--f-lcd-text);border:1px solid #000;box-shadow:inset 0 2px 5px rgba(0,0,0,.6)}
body[data-theme-mode] #app .kc-pnl-read.neg{color:#FF6B57}
body[data-theme-mode] #app .kc-pnl-read.pos{color:var(--f-lcd-text)}
#pnlLimitSvg{display:block;width:100%;height:auto;max-height:230px}
#pnlLimitSvg text{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;fill:var(--f-muted,#95A2A8)}
#pnlLimitSvg .kcp-grid{stroke:var(--f-line-soft,#2C363C);stroke-width:1}
#pnlLimitSvg .kcp-zero{stroke:var(--f-muted,#95A2A8);stroke-width:1;opacity:.7}
#pnlLimitSvg .kcp-l50{stroke:var(--f-amber,#F3AE2E);stroke-width:1;stroke-dasharray:2 5;opacity:.7}
#pnlLimitSvg .kcp-l80{stroke:#F08A2A;stroke-width:1;stroke-dasharray:5 4;opacity:.85}
#pnlLimitSvg .kcp-l100{stroke:var(--f-red,#EC4B36);stroke-width:1.6}
#pnlLimitSvg .kcp-l50t{fill:var(--f-amber,#F3AE2E)}
#pnlLimitSvg .kcp-l80t{fill:#F08A2A}
#pnlLimitSvg .kcp-l100t{fill:var(--f-red,#EC4B36);font-weight:600}
#pnlLimitSvg .kcp-line{fill:none;stroke:var(--f-text,#E7EAE3);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
#pnlLimitSvg .kcp-area-pos{fill:var(--f-mint,#6FD9B0);opacity:.16}
#pnlLimitSvg .kcp-area-neg{fill:var(--f-red,#EC4B36);opacity:.2}
#pnlLimitSvg .kcp-dot{fill:var(--f-amber,#F3AE2E);stroke:#000;stroke-width:1}
.kc-pnl-note{font-size:12px;margin-top:4px}

/* --- trade journal --- */
.kcj-cell{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:150px}
.kcj-chip{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:2px;border:1px solid #000;background:var(--f-recess,#11161A);letter-spacing:.02em}
.kcj-chip.bad{color:#FF8A78}
.kcj-chip.good{color:var(--f-mint,#6FD9B0)}
.kcj-btn{font-size:10.5px;padding:2px 8px;border-radius:2px;border:1px solid var(--f-line,#3B474E);background:transparent;color:var(--f-amber,#F3AE2E);cursor:pointer;font-weight:600}
.kcj-btn:hover{background:rgba(243,174,46,.12)}
.kcj-note{flex-basis:100%;font-size:11px;color:var(--f-muted,#95A2A8);font-style:italic}
.kcj-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}
.kcj-box{width:min(460px,100%);background:var(--f-plate,#252D32);color:var(--f-text,#E7EAE3);border:1px solid #000;border-radius:4px;padding:18px;box-shadow:var(--f-bevel),0 20px 50px rgba(0,0,0,.6);border-top:5px solid transparent;border-image:repeating-linear-gradient(-45deg,#F3AE2E 0 7px,#17191B 7px 14px) 5}
.kcj-box h3{margin:0 0 4px;font-size:17px}
.kcj-tags{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:6px 0 12px}
.kcj-opt{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--f-line,#3B474E);border-radius:3px;cursor:pointer;font-size:13px}
.kcj-opt input{width:auto!important;margin:0;accent-color:#F3AE2E}
.kcj-opt:has(input:checked){border-color:var(--f-amber,#F3AE2E);background:rgba(243,174,46,.1)}
.kcj-box textarea{width:100%;resize:vertical}
.kcj-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.kcj-err{min-height:16px;margin-top:6px;font-size:12px;color:#FF8A78}
body[data-theme-mode] #app .kcj-card,body[data-theme-mode] #app .kcr-card{max-width:760px;margin:14px 0}
.kcj-card h3,.kcr-card h3{margin:0 0 6px;font-size:16px}
.kcj-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.kcj-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--f-muted);padding:6px 8px;border-bottom:1px solid var(--f-line)}
.kcj-table td{padding:7px 8px;border-bottom:1px solid var(--f-line-soft);font-family:'IBM Plex Mono',ui-monospace,monospace}
.kcj-table td:first-child{font-family:inherit;font-weight:600}
.kcj-table .neg,.kcr-day .neg{color:#FF7A66}
.kcj-table .pos,.kcr-day .pos{color:var(--f-mint,#6FD9B0)}
.kcj-head{margin:10px 0 0;font-size:13px}

/* --- rule-break history --- */
.kcr-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.kcr-streak{text-align:center;padding:6px 12px;border-radius:2px;background:var(--f-lcd);border:1px solid #000;box-shadow:inset 0 2px 5px rgba(0,0,0,.6)}
.kcr-streak b{display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:24px;color:var(--f-lcd-text)}
.kcr-streak span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#95A2A8}
.kcr-day{padding:10px 0;border-top:1px solid var(--f-line-soft)}
.kcr-date{display:flex;gap:10px;align-items:baseline;font-weight:700;margin-bottom:6px}
.kcr-date span{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:500}
.kcr-ev{display:flex;gap:8px;align-items:baseline;padding:5px 0 5px 10px;border-left:3px solid var(--f-line);font-size:13px;flex-wrap:wrap}
.kcr-ev.violation{border-left-color:var(--f-red,#EC4B36)}
.kcr-ev.lockout{border-left-color:var(--f-red,#EC4B36);background:rgba(236,75,54,.07)}
.kcr-ev.warning{border-left-color:var(--f-amber,#F3AE2E)}
.kcr-kind{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:2px;border:1px solid #000;background:var(--f-recess,#11161A);color:var(--f-amber,#F3AE2E);white-space:nowrap}
.kcr-ev.violation .kcr-kind,.kcr-ev.lockout .kcr-kind{color:#FF8A78}
.kcr-time{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;color:var(--f-muted)}
.kcr-text{flex:1 1 220px}
@media (max-width:600px){.kcj-tags{grid-template-columns:1fr}}
body[data-theme-mode] #app .filter-select{width:auto;min-width:190px}

/* --- Login / landing screen + login popup: same switchgear look, fixed
       dark palette so it doesn't depend on the in-app theme choice --- */
#authScreen.auth-screen{
  --a-enc:#1B2125; --a-plate:#252D32; --a-hi:#2F383E; --a-rec:#11161A; --a-line:#3B474E;
  --a-text:#E7EAE3; --a-muted:#95A2A8; --a-amber:#F3AE2E; --a-red:#EC4B36;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0 2px, transparent 2px 4px),
    radial-gradient(900px 500px at 50% -10%, #2A343A 0%, var(--a-enc) 60%);
  color:var(--a-text); font-family:'Barlow Semi Condensed','Arial Narrow',system-ui,sans-serif;
}
#authScreen .public-topbar{border-bottom:1px solid #000;box-shadow:0 1px 0 rgba(255,255,255,.06);position:relative}
#authScreen .public-topbar::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:repeating-linear-gradient(-45deg,#F3AE2E 0 12px,#17191B 12px 24px)}
#authScreen .auth-brand{color:var(--a-text);letter-spacing:.08em;font-size:22px;font-weight:700}
#authScreen .auth-shield{border-radius:4px;box-shadow:none;border:1px solid #000}
#authScreen .auth-tagline{color:var(--a-muted);letter-spacing:.04em}
#authScreen .public-nav a{color:var(--a-muted);font-size:14px;letter-spacing:.04em;text-transform:uppercase}
#authScreen .public-nav a:hover{color:var(--a-amber)}
#authScreen .public-login-btn{background:linear-gradient(180deg,#F3AE2E,#D8921A);color:#1B2125;border:1px solid #000;border-radius:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 2px 0 #000;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
#authScreen .public-login-btn:hover{background:linear-gradient(180deg,#FFC04D,#E19F22);transform:none}
#authScreen .public-login-btn:active{transform:translateY(2px);box-shadow:inset 0 2px 4px rgba(0,0,0,.4)}
#authScreen .public-info-panel{background:var(--a-plate);border:1px solid #000;border-radius:4px;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 14px 30px -12px rgba(0,0,0,.7);position:relative}
#authScreen .public-info-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:repeating-linear-gradient(-45deg,#F3AE2E 0 8px,#17191B 8px 16px);border-radius:3px 3px 0 0}
#authScreen .public-eyebrow{color:var(--a-amber);letter-spacing:.2em;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px}
#authScreen .public-info-panel h1{color:var(--a-text);letter-spacing:-.01em}
#authScreen .public-lead{color:var(--a-muted)}
#authScreen .public-info-panel p{color:var(--a-muted)!important}
#authScreen .public-info-panel a{color:var(--a-amber)!important}
#authScreen .public-footer,#authScreen .public-footer *{color:var(--a-muted)}
#authScreen .public-footer{border-top:1px solid #000;box-shadow:0 -1px 0 rgba(255,255,255,.05)}
.auth-modal-backdrop{background:rgba(5,8,10,.72)!important;backdrop-filter:blur(3px)}
.auth-modal-dialog .auth-card{background:#252D32!important;border:1px solid #000!important;border-radius:4px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 24px 60px rgba(0,0,0,.7)!important;color:#E7EAE3;position:relative;font-family:'Barlow Semi Condensed','Arial Narrow',system-ui,sans-serif}
.auth-modal-dialog .auth-card::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:repeating-linear-gradient(-45deg,#F3AE2E 0 8px,#17191B 8px 16px);border-radius:3px 3px 0 0}
.auth-modal-dialog .auth-card-title{color:#E7EAE3!important;letter-spacing:.01em}
.auth-modal-dialog .auth-card-sub,.auth-modal-dialog .auth-note,.auth-modal-dialog .auth-switch{color:#95A2A8!important}
.auth-modal-dialog .auth-label{color:#C7CEC8!important;letter-spacing:.04em}
.auth-modal-dialog .auth-input{background:#11161A!important;color:#E7EAE3!important;border:1px solid #000!important;border-radius:3px!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.5)}
.auth-modal-dialog .auth-input:focus{outline:2px solid #F3AE2E!important;outline-offset:1px;background:#11161A!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.5)!important}
.auth-modal-dialog .auth-btn-primary{background:linear-gradient(180deg,#F3AE2E,#D8921A)!important;color:#1B2125!important;border:1px solid #000!important;border-radius:3px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 2px 0 #000;text-transform:uppercase;letter-spacing:.08em}
.auth-modal-dialog .auth-btn-primary:hover{background:linear-gradient(180deg,#FFC04D,#E19F22)!important}
.auth-modal-dialog .auth-btn-primary:active{transform:translateY(2px);box-shadow:inset 0 2px 4px rgba(0,0,0,.4)}
.auth-modal-dialog .auth-link-small,.auth-modal-dialog .auth-switch a{color:#F3AE2E!important}
.auth-modal-dialog .auth-btn-oauth{background:#2F383E!important;color:#E7EAE3!important;border:1px solid #000!important;border-radius:3px!important}
.auth-modal-dialog .auth-divider{color:#95A2A8}
.auth-modal-dialog .auth-divider::before,.auth-modal-dialog .auth-divider::after{background:#3B474E!important;border-color:#3B474E!important}
.auth-modal-close{background:#2F383E!important;color:#E7EAE3!important;border:1px solid #000!important;border-radius:3px!important}
body[data-theme-mode="dark"] #app button:not(.kc-theme-btn):not(.nav){border-color:#000}

/* v114: P&L tile turns green in profit */
body[data-theme-mode] #app .kc-metric-card.profit .kc-metric-value{color:var(--f-lcd-text);text-shadow:0 0 10px rgba(111,217,176,.5)}
body[data-theme-mode] #app .kc-metric-card.profit .kc-mini-graph{color:#3DD68C}
body[data-theme-mode] #app .kc-metric-card:not(.loss):not(.profit) .kc-mini-graph svg{opacity:.35}

/* v118: readiness card */
.kc-ready-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:3px;font-size:10px;letter-spacing:.08em;font-weight:700;background:#2a3036;color:#9aa3ab}
.kc-ready-badge.ready{background:rgba(61,214,140,.15);color:#3DD68C}
.kc-ready-badge.attention{background:rgba(214,138,60,.18);color:#D68A3C}
.kc-ready-badge.not-ready{background:rgba(236,75,54,.18);color:#EC4B36}
.kc-ready-row{display:flex;gap:8px;padding:6px 0;border-top:1px solid rgba(255,255,255,.06);font-size:12.5px}
.kc-ready-row .i{flex:0 0 20px}
.kc-ready-row .f{display:block;opacity:.75;font-size:11.5px;margin-top:2px}
