
/* V57: real workspace separation and ops-console hardening */
:root{--ktv-radius-xl:28px;--ktv-soft-border:rgba(255,255,255,.08)}
body.ktv-workspace-signal{background:
 radial-gradient(circle at 12% 8%,rgba(59,255,135,.18),transparent 30%),
 radial-gradient(circle at 94% 22%,rgba(96,255,196,.08),transparent 28%),
 #020604!important}
body.ktv-workspace-exec{background:
 radial-gradient(circle at 84% 4%,rgba(255,200,82,.22),transparent 28%),
 radial-gradient(circle at 12% 80%,rgba(255,119,48,.08),transparent 30%),
 #020604!important}
body.ktv-workspace-market{background:
 radial-gradient(circle at 50% 0%,rgba(62,164,255,.25),transparent 30%),
 radial-gradient(circle at 90% 72%,rgba(34, 197, 94,.08),transparent 26%),
 #020604!important}
body.ktv-workspace-board{background:
 linear-gradient(90deg,rgba(48,255,130,.05) 1px,transparent 1px),
 linear-gradient(rgba(48,255,130,.04) 1px,transparent 1px),
 #020604!important;background-size:28px 28px!important}
body.ktv-workspace-ops,body.ktv-ops-console{background:
 radial-gradient(circle at 18% 0%,rgba(255,209,102,.12),transparent 28%),
 radial-gradient(circle at 90% 10%,rgba(84,182,255,.10),transparent 28%),
 #020604!important}
.v57-workspace-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.v57-workspace-rail .v57-tile{border:1px solid var(--ktv-soft-border);border-radius:20px;padding:15px 16px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(0,0,0,.10));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.v57-workspace-rail small{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:1000;color:#22c55e;margin-bottom:8px}
.v57-workspace-rail b{display:block;font-size:18px;color:#ffffff}
.ktv-workspace-signal .v57-workspace-rail .v57-tile{border-color:rgba(62,255,141,.20);background:linear-gradient(180deg,rgba(34,255,125,.08),rgba(2,10,5,.75))}
.ktv-workspace-exec .v57-workspace-rail .v57-tile{border-color:rgba(255,208,95,.24);background:linear-gradient(180deg,rgba(255,208,95,.10),rgba(15,9,2,.74))}
.ktv-workspace-market .v57-workspace-rail .v57-tile{border-color:rgba(78,169,255,.24);background:linear-gradient(180deg,rgba(78,169,255,.10),rgba(3,9,15,.74))}
.ktv-workspace-board .v57-workspace-rail{grid-template-columns:2fr 1fr 1fr}.ktv-workspace-board .v57-workspace-rail .v57-tile{border-color:rgba(66,255,137,.18);background:#020604}
.ktv-workspace-signal .intel-workbench-grid{grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr)!important}
.ktv-workspace-signal .intel-board-panel{border-left:5px solid #22c55e!important}
.ktv-workspace-signal #edgeRows{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:12px}
.ktv-workspace-signal #edgeRows .intel-row,.ktv-workspace-signal #edgeRows .edge-row,.ktv-workspace-signal #edgeRows tr{border-radius:18px!important;background:linear-gradient(135deg,rgba(15,47,25,.82),rgba(3,10,5,.88))!important;border:1px solid rgba(55,255,130,.16)!important;box-shadow:0 18px 50px rgba(0,0,0,.22)!important}
.ktv-workspace-signal #analystBox,.ktv-workspace-signal #researchMemo{border:1px solid rgba(55,255,130,.20)!important;border-radius:22px!important;background:radial-gradient(circle at 90% 0%,rgba(55,255,130,.12),transparent 35%),rgba(2,8,4,.90)!important}
.ktv-workspace-exec .xdesk-shell{grid-template-columns:minmax(0,1.8fr) 430px!important}
.ktv-workspace-exec .xqueue{border:1px solid rgba(255,208,95,.18);border-radius:20px;padding:10px;background:rgba(10,7,2,.62)}
.ktv-workspace-exec .xrow{grid-template-columns:42px minmax(260px,1fr) 120px 112px 96px 96px!important;background:linear-gradient(90deg,rgba(255,208,95,.10),rgba(11,8,2,.84))!important;border:1px solid rgba(255,208,95,.16)!important;border-left:4px solid #4ade80!important}
.ktv-workspace-exec #selected,.ktv-workspace-exec #checklist,.ktv-workspace-exec #memo{background:linear-gradient(180deg,rgba(34,22,5,.92),rgba(5,4,2,.94))!important;border-color:rgba(255,208,95,.20)!important}
.ktv-workspace-market .market-hero{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr)!important}
.ktv-workspace-market .workstation-grid{grid-template-columns:minmax(0,1fr) minmax(430px,.8fr)!important}
.ktv-workspace-market #marketBars,.ktv-workspace-market #bookBars{display:grid;gap:10px;border-radius:22px;padding:12px;background:rgba(2,10,17,.75);border:1px solid rgba(78,169,255,.14)}
.ktv-workspace-market .memo-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.ktv-workspace-market .memo{border-top:4px solid #4ade80!important;background:linear-gradient(180deg,rgba(22,64,102,.32),rgba(3,9,15,.86))!important}
.ktv-workspace-board .ktv-content{max-width:1680px!important}
.ktv-workspace-board .ktv-hero{padding:18px 22px!important;border-radius:16px!important;background:#020604!important;border:1px solid rgba(64,255,136,.18)!important}
.ktv-workspace-board .edge-table-wrap{max-height:68vh;overflow:auto;border:1px solid rgba(64,255,136,.18);border-radius:18px;background:#020604}
.ktv-workspace-board .edge-table{font-family:"SFMono-Regular",Consolas,monospace!important;font-size:12px!important;border-collapse:separate!important;border-spacing:0!important}
.ktv-workspace-board .edge-table th{position:sticky;top:0;z-index:5;background:#030a06!important;color:#bbf7d0!important;text-transform:uppercase;letter-spacing:.12em;font-size:10px}
.ktv-workspace-board .edge-table tr:nth-child(even) td{background:rgba(255,255,255,.018)}
.ktv-workspace-board .edge-table td{border-bottom:1px solid rgba(65,255,137,.08)!important}
.ktv-workspace-board .edge-metrics{grid-template-columns:repeat(6,minmax(120px,1fr))!important}
.ktv-ops-console .ktv-content,.ktv-workspace-ops .ktv-content{max-width:1700px!important}
.ktv-monitoring-v56 .ktv-hero{border-radius:18px!important;background:linear-gradient(135deg,rgba(30,22,4,.95),rgba(2,5,7,.93))!important;border:1px solid rgba(255,209,102,.20)!important}
.ops-v56-kpis{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px!important;margin:14px 0!important}
.ops-v56-card{min-height:100px!important;border-radius:18px!important;background:linear-gradient(180deg,rgba(255,209,102,.09),rgba(5,8,7,.82))!important;border:1px solid rgba(255,209,102,.18)!important}
.ops-v56-grid{display:grid!important;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr)!important;gap:14px!important;margin-bottom:14px}
.ops-v56-panel{min-height:0!important;border-radius:20px!important;border:1px solid rgba(255,255,255,.09)!important;background:linear-gradient(180deg,rgba(10,16,14,.94),rgba(2,5,4,.96))!important;box-shadow:0 24px 80px rgba(0,0,0,.25)!important}
.ops-v56-title{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;border-bottom:1px solid rgba(255,255,255,.07)!important;padding-bottom:10px!important;margin-bottom:12px!important}
.ops-v56-title b{font-size:15px!important}.ops-v56-title span{color:#22c55e!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.1em}
.ops-v56-table{display:grid;gap:8px}.ops-v56-row{display:grid!important;grid-template-columns:minmax(180px,1.2fr) 100px 100px minmax(220px,1fr)!important;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:10px;background:rgba(255,255,255,.025)}
.ops-v56-row.header{background:#030a06!important;color:#bbf7d0!important;text-transform:uppercase;letter-spacing:.1em;font-size:10px}
.ops-v56-row small{display:block;color:#22c55e;margin-top:2px}.ops-v56-good{color:#4ade80!important}.ops-v56-watch{color:#4ade80!important}.ops-v56-fail{color:#4ade80!important}
.ops-v56-bars{display:grid;gap:10px}.ops-v56-bar{display:grid;grid-template-columns:140px 1fr 80px;gap:10px;align-items:center;font-size:12px}.ops-v56-bar div{height:10px;background:#06120b;border-radius:999px;overflow:hidden}.ops-v56-bar i{display:block;height:100%;background:linear-gradient(90deg,#22c55e,#4ade80,#4ade80);border-radius:999px}
.ops-v56-log{display:grid;gap:8px;max-height:360px;overflow:auto}.ops-v56-event{border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:10px;background:rgba(255,255,255,.025)}.ops-v56-event small{display:block;color:#22c55e;margin-top:3px}.ops-v56-memo{white-space:pre-wrap;min-height:260px!important;max-height:420px;overflow:auto;background:#020604!important;border-radius:16px!important;border:1px solid rgba(255,209,102,.15)!important;padding:14px!important;color:#bbf7d0!important}
.ops-v56-empty{border:1px dashed rgba(255,255,255,.14);border-radius:16px;padding:16px;color:#22c55e;background:rgba(255,255,255,.025)}
@media(max-width:1100px){.v57-workspace-rail,.ops-v56-kpis,.ops-v56-grid,.ktv-workspace-exec .xdesk-shell,.ktv-workspace-market .market-hero,.ktv-workspace-market .workstation-grid{grid-template-columns:1fr!important}.ktv-workspace-market .memo-grid{grid-template-columns:1fr!important}}


/* V58: layout repair after workspace separation.
   Fixes over-broad V55/V57 grid overrides that compressed Market Intelligence
   and table-body grid rules that clipped/cut off card text. */
html,body{max-width:100%;overflow-x:hidden}

/* Market Intelligence should be a normal vertical workstation, not a two-column main shell. */
body.ktv-workspace-market .ktv-content.market-shell,
body.ktv-workspace-market main.market-shell,
body.ktv-workspace-market .ktv-market-terminal-v56{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:18px!important;
  width:min(100% - 36px,1500px)!important;
  max-width:1500px!important;
  margin:0 auto!important;
  padding-left:18px!important;
  padding-right:18px!important;
  box-sizing:border-box!important;
}
body.ktv-workspace-market .market-hero{
  display:grid!important;
  grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)!important;
  gap:18px!important;
  align-items:stretch!important;
  width:100%!important;
}
body.ktv-workspace-market .workstation-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr)!important;
  gap:18px!important;
  width:100%!important;
}
body.ktv-workspace-market .memo-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
  width:100%!important;
}
body.ktv-workspace-market .ktv-hero,
body.ktv-workspace-market .command-card,
body.ktv-workspace-market .ktv-panel,
body.ktv-workspace-market .memo,
body.ktv-workspace-market .chart-card{
  min-width:0!important;
  overflow:hidden!important;
}
body.ktv-workspace-market .ktv-title{
  max-width:720px!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  line-height:.98!important;
}
body.ktv-workspace-market .ktv-subtitle,
body.ktv-workspace-market .memo p,
body.ktv-workspace-market .chart-card,
body.ktv-workspace-market .report-line{
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
body.ktv-workspace-market .status-strip,
body.ktv-workspace-market .quality-radar{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
body.ktv-workspace-market .control-row{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:10px!important;
}
body.ktv-workspace-market .control-row .ktv-input,
body.ktv-workspace-market .control-row button{
  min-width:0!important;
  max-width:220px!important;
}
body.ktv-workspace-market .market-table{
  table-layout:fixed!important;
  width:100%!important;
}
body.ktv-workspace-market .market-table th,
body.ktv-workspace-market .market-table td{
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
body.ktv-workspace-market .market-table th:nth-child(1),body.ktv-workspace-market .market-table td:nth-child(1){width:52px!important}
body.ktv-workspace-market .market-table th:nth-child(2),body.ktv-workspace-market .market-table td:nth-child(2){width:27%!important}
body.ktv-workspace-market .market-table th:nth-child(3),body.ktv-workspace-market .market-table td:nth-child(3){width:28%!important}
body.ktv-workspace-market .market-table th:nth-child(4),body.ktv-workspace-market .market-table td:nth-child(4){width:17%!important}
body.ktv-workspace-market .market-table th:nth-child(5),body.ktv-workspace-market .market-table td:nth-child(5){width:12%!important}
body.ktv-workspace-market .market-table th:nth-child(6),body.ktv-workspace-market .market-table td:nth-child(6){width:14%!important}

/* Signal Intelligence: never turn table body into CSS grid; it clips rows and overlaps cells. */
body.ktv-workspace-signal #edgeRows{
  display:table-row-group!important;
}
body.ktv-workspace-signal #edgeRows tr{
  display:table-row!important;
  border-radius:0!important;
  box-shadow:none!important;
}
body.ktv-workspace-signal #edgeRows td{
  display:table-cell!important;
  vertical-align:top!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
body.ktv-workspace-signal .intel-workbench-grid,
body.ktv-workspace-signal .workstation-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr)!important;
  gap:18px!important;
}
body.ktv-workspace-signal .ktv-panel,
body.ktv-workspace-signal .analyst-panel{
  min-width:0!important;
  overflow:hidden!important;
}
body.ktv-workspace-signal .edge-table{
  table-layout:fixed!important;
  width:100%!important;
}
body.ktv-workspace-signal .edge-table th,
body.ktv-workspace-signal .edge-table td{
  overflow-wrap:break-word!important;
  word-break:normal!important;
}

/* General text clipping repair for all terminal cards after V57. */
.ktv-panel,.ktv-hero,.command-card,.memo,.chart-card,.status-tile,.quality-tile,
.xrow,.xmetric,.v57-tile,.ops-v56-card,.ops-v56-panel{
  min-width:0!important;
  box-sizing:border-box!important;
}
.ktv-title,.ktv-panel-title,.market-name,.tape-head,.xrow b,.memo h3,.v57-tile b{
  overflow-wrap:break-word!important;
  word-break:normal!important;
  hyphens:none!important;
}
.ktv-subtitle,.micro,.memo p,.report-line,.xrow,.ops-v56-row{
  overflow-wrap:break-word!important;
  word-break:normal!important;
}

/* Keep the execution variation, but avoid card text clipping. */
body.ktv-workspace-exec .xdesk-shell{
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr)!important;
  gap:18px!important;
}
body.ktv-workspace-exec .xrow{
  min-width:0!important;
  overflow:hidden!important;
}
body.ktv-workspace-exec .xrow>*{
  min-width:0!important;
  overflow-wrap:break-word!important;
}

/* Monitoring toast should never cover the product. */
.ktv-toast,.terminal-toast,.health-toast,#ktvHealthRibbon{
  max-width:min(420px,calc(100vw - 32px))!important;
  max-height:150px!important;
  overflow:auto!important;
  right:16px!important;
  bottom:16px!important;
}

/* Mobile/tablet fallback */
@media(max-width:1100px){
  body.ktv-workspace-market .market-hero,
  body.ktv-workspace-market .workstation-grid,
  body.ktv-workspace-market .memo-grid,
  body.ktv-workspace-signal .intel-workbench-grid,
  body.ktv-workspace-signal .workstation-grid,
  body.ktv-workspace-exec .xdesk-shell{
    grid-template-columns:1fr!important;
  }
  body.ktv-workspace-market .status-strip,
  body.ktv-workspace-market .quality-radar{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:720px){
  body.ktv-workspace-market .status-strip,
  body.ktv-workspace-market .quality-radar{
    grid-template-columns:1fr!important;
  }
  body.ktv-workspace-market .ktv-content.market-shell,
  body.ktv-workspace-market main.market-shell{
    width:100%!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
}


/* v100 unified green neutralized: final green theme loaded after this file. */



/* KTV v103 clean production theme: green / black / white only */
:root{
  --ktv-bg:#020604!important; --ktv-bg2:#020604!important;
  --ktv-surface:#030a06!important; --ktv-card:#030a06!important;
  --ktv-green:#22c55e!important; --ktv-green2:#16a34a!important;
  --ktv-border:rgba(70,255,120,.30)!important; --ktv-border2:rgba(70,255,120,.55)!important;
  --ktv-text:#f8fff9!important; --ktv-muted:#bbf7d0!important;
  --blue:#22c55e!important; --red:#22c55e!important; --orange:#22c55e!important;
  --gold:#22c55e!important; --yellow:#22c55e!important; --purple:#22c55e!important; --pink:#22c55e!important;
}
html,body,#root,.app,main,.page,.ktv-page,.terminal-shell,.landing-page,.marketing-page{
  background:radial-gradient(circle at 18% 18%,rgba(70,255,120,.10),transparent 30%),
             linear-gradient(180deg,#020604 0%,#020604 100%)!important;
  color:var(--ktv-text)!important;
}
body:before,body:after,#root:before,#root:after,.app:before,.app:after,main:before,main:after,
.page:before,.page:after,.terminal-shell:before,.terminal-shell:after{
  content:none!important;display:none!important;border:0!important;box-shadow:none!important;
}
*{ scrollbar-color:#16a34a #020604!important; }
*:not(svg):not(path):not(circle):not(rect):not(line){
  border-color:var(--ktv-border);
}
header,nav,.topbar,.navbar,.site-header{
  background:#020604!important;border-color:var(--ktv-border)!important;color:var(--ktv-text)!important;
}
.hero,.hero-panel,.hero-card,.terminal-hero,.workspace-hero,.institutional-hero,.market-hero,.search-hero,
.execution-hero,.decision-hero,.player-hero,.team-hero,.book-hero,.replay-hero,
[class*="hero"],[class*="Hero"],[class*="workspace"],[class*="Workspace"]{
  background:linear-gradient(135deg,rgba(7,23,13,.98),rgba(3,9,6,.98))!important;
  border:1px solid var(--ktv-border)!important;
  border-left:1px solid var(--ktv-border)!important;
  color:var(--ktv-text)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.35), inset 0 0 0 1px rgba(70,255,120,.05)!important;
}
.card,.panel,.box,.kpi,.metric,.tile,.module,.widget,.terminal-card,.stat-card,.summary-card,.report-card,.note-card,
.search-card,.result-card,[class*="card"],[class*="Card"],[class*="panel"],[class*="Panel"],
[class*="kpi"],[class*="Kpi"],[class*="metric"],[class*="Metric"]{
  background:linear-gradient(145deg,rgba(7,23,13,.96),rgba(3,11,7,.96))!important;
  border-color:var(--ktv-border)!important;color:var(--ktv-text)!important;
}
button,.btn,.button,.pill,.badge,.tag,.tab,.chip,a.button,a.btn,input[type=button],input[type=submit],
[class*="button"],[class*="Button"],[class*="btn"],[class*="Btn"],[class*="pill"],[class*="Pill"],
[class*="badge"],[class*="Badge"],[class*="tag"],[class*="Tag"],[class*="tab"],[class*="Tab"]{
  background:linear-gradient(180deg,#08160d,#06120b)!important;
  border:1px solid var(--ktv-border2)!important;color:var(--ktv-text)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.22)!important;
}
button:hover,.btn:hover,.button:hover,.pill:hover,.badge:hover,.tag:hover,.tab:hover,.chip:hover,a.button:hover,a.btn:hover{
  background:linear-gradient(180deg,#0b1f12,#06120b)!important;border-color:var(--ktv-green)!important;color:#ffffff!important;
}
.active,[aria-current=page],[data-active=true],.selected,.is-active{
  background:linear-gradient(180deg,#0b1f12,#06120b)!important;border-color:var(--ktv-green)!important;color:#ffffff!important;
}
input,select,textarea{
  background:#030a06!important;border:1px solid var(--ktv-border)!important;color:var(--ktv-text)!important;box-shadow:none!important;
}
input::placeholder,textarea::placeholder{color:rgba(247,255,248,.55)!important}
h1,h2,h3,h4,h5,h6,strong,b,label{color:var(--ktv-text)!important}
.muted,.subtext,.subtitle,.caption,small{color:var(--ktv-muted)!important}
[class*="blue"],[class*="Blue"],[class*="orange"],[class*="Orange"],[class*="purple"],[class*="Purple"],
[class*="red"],[class*="Red"],[class*="gold"],[class*="Gold"]{
  color:inherit;border-color:var(--ktv-border)!important;
}
svg *[stroke]{stroke:#22c55e!important}
svg *[fill]:not([fill="none"]){fill:#08160d!important}
.production-note,.readiness-note,.terminal-readiness-note,.test-note,
[class*="ProductionAnalyst"],[class*="production-analyst"],[class*="Readiness"],[class*="readiness"],
[class*="TerminalReadiness"],[class*="terminal-readiness"]{display:none!important}
.global-search,.global-search-page,[class*="global-search"],[class*="GlobalSearch"],
.execution-page,.decision-page,.book-page,.replay-page,.market-page,.player-page,.team-page{
  background:linear-gradient(180deg,#020604,#020604)!important;
}
.status-bar,.bottom-bar,.dock,.terminal-dock,[class*="status"],[class*="Status"]{
  background:#030a06!important;border-color:rgba(70,255,120,.22)!important;color:var(--ktv-muted)!important;
}
.error,.danger,.warning,.alert,[class*="error"],[class*="danger"],[class*="warning"],[class*="alert"]{
  background:#06120b!important;border-color:rgba(70,255,120,.35)!important;color:#f8fff9!important;
}
.landing-page [class*="grid"],.marketing-page [class*="grid"],.public-landing [class*="grid"]{background-image:none!important}
