/* ============================================================
   KENDROS — "Terminal Density" design system
   Information-dense productivity UI (Bloomberg / GDS inspired)
   ============================================================ */

:root{
  --navy-950:#0a1220;
  --navy-900:#0d1830;
  --navy-850:#111e3a;
  --navy-800:#152546;
  --navy-700:#1c3159;
  --navy-600:#28457c;
  --navy-line:#26375c;
  --bg:#eef1f6;
  --bg-panel:#ffffff;
  --bg-alt:#e4e8f0;
  --bg-row-alt:#f4f6fa;
  --ink:#101826;
  --ink-dim:#4a5568;
  --ink-faint:#8a93a6;
  --magenta:#c2136b;
  --magenta-dark:#960f52;
  --line:#c7cedb;
  --line-strong:#9aa5ba;

  --ok:#0a7d3c;
  --ok-bg:#dff4e6;
  --warn:#a5680a;
  --warn-bg:#fbeecb;
  --bad:#b3261e;
  --bad-bg:#fbdedc;
  --info:#0a5fa5;
  --info-bg:#dcedfb;
  --neutral:#5b6472;
  --neutral-bg:#e6e9ef;

  --mono: "JetBrains Mono","IBM Plex Mono","Consolas",monospace;
  --grot: "Inter","IBM Plex Sans","Arial",sans-serif;

  --u:4px; /* baseline unit */
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--grot);
  font-size:12.5px;
  line-height:1.35;
  color:var(--ink);
  background:var(--bg);
  font-variant-numeric: tabular-nums;
}
table{ font-variant-numeric: tabular-nums; }
a{color:var(--info);text-decoration:none;}
a:hover{text-decoration:underline;}
button{font-family:inherit;}
.mono{font-family:var(--mono);}

/* ---------- layout shell ---------- */
.shell{min-height:100vh;display:flex;flex-direction:column;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;}

/* ---------- header ---------- */
.topbar{
  background:var(--navy-950);
  color:#dfe6f2;
  display:flex;
  align-items:center;
  gap:calc(var(--u)*4);
  padding:0 calc(var(--u)*3);
  height:34px;
  border-bottom:1px solid var(--magenta-dark);
  font-size:11.5px;
}
.logo-wrap{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.logo-word{
  font-family:var(--grot);
  font-weight:800;
  font-size:15px;
  letter-spacing:-0.02em;
  color:#fff;
  position:relative;
  display:flex;align-items:center;
}
.logo-word svg{margin-left:1px;}
.logo-tagline{
  color:#93a3bd;
  font-size:9.5px;
  letter-spacing:.03em;
  text-transform:uppercase;
  border-left:1px solid var(--navy-600);
  padding-left:8px;
  margin-left:2px;
  white-space:nowrap;
}
.topbar-spacer{flex:1;}
.session-info{
  display:flex;align-items:center;gap:10px;
  color:#aeb9cc;
  white-space:nowrap;
}
.session-info b{color:#fff;font-weight:600;}
.lang-toggle{
  display:flex;border:1px solid var(--navy-600);border-radius:2px;overflow:hidden;
}
.lang-toggle span{
  padding:2px 6px;color:#8fa0bc;cursor:default;
}
.lang-toggle span.active{background:var(--navy-700);color:#fff;}
.lang-toggle span + span{border-left:1px solid var(--navy-600);}
.acct-link{color:#cfd9ea;padding:2px 4px;}
.acct-link:hover{color:#fff;}
.acct-sep{color:var(--navy-600);}

/* ---------- tab strip nav ---------- */
.tabstrip{
  background:var(--navy-900);
  border-bottom:2px solid var(--navy-600);
  display:flex;
  overflow-x:auto;
  scrollbar-width:thin;
}
.tabstrip::-webkit-scrollbar{height:5px;}
.tabgroup{
  display:flex;
  align-items:stretch;
  border-right:1px solid var(--navy-700);
}
.tabgroup:last-child{border-right:none;}
.tab-label{
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#5f7096;
  padding:6px 8px 2px 10px;
  white-space:nowrap;
  align-self:flex-start;
}
.tab-items{display:flex;}
.tab-item{
  padding:5px 9px 6px;
  color:#c3cde0;
  font-size:11.5px;
  white-space:nowrap;
  border-bottom:2px solid transparent;
  cursor:pointer;
}
.tab-item:hover{background:var(--navy-800);color:#fff;text-decoration:none;}
.tab-item.active{
  color:#fff;
  border-bottom-color:var(--magenta);
  background:var(--navy-850);
  font-weight:600;
}
.tabstrip-inner{display:flex;}

/* ---------- footer ---------- */
.footer{
  background:var(--navy-950);
  color:#7c8aa3;
  font-size:10px;
  padding:6px 14px;
  border-top:1px solid var(--navy-700);
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.footer a{color:#9fb0cc;}

/* ---------- content area ---------- */
.content{
  padding: calc(var(--u)*3);
  flex:1;
  display:flex;
  flex-direction:column;
  gap:calc(var(--u)*3);
}

/* ---------- rationale panel ---------- */
.rationale{
  background:var(--navy-850);
  color:#dbe3f0;
  border:1px solid var(--navy-600);
  border-left:3px solid var(--magenta);
  border-radius:2px;
  padding:8px 12px;
  font-size:11.5px;
}
.rationale-head{
  display:flex;align-items:center;gap:6px;
  font-size:10px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--magenta);font-weight:700;margin-bottom:5px;
}
.rationale-head .dot{width:6px;height:6px;border-radius:50%;background:var(--magenta);display:inline-block;}
.rationale ul{margin:0;padding-left:16px;}
.rationale li{margin-bottom:3px;}
.rationale li:last-child{margin-bottom:0;}
.rationale li b{color:#fff;}
.rationale .tradeoff{
  margin-top:6px;padding-top:6px;border-top:1px dashed var(--navy-600);
  color:#a9b6cc;font-style:italic;font-size:11px;
}

/* ---------- panel / zone ---------- */
.panel{
  background:var(--bg-panel);
  border:1px solid var(--line);
}
.panel-head{
  display:flex;align-items:center;justify-content:space-between;
  background:var(--bg-alt);
  border-bottom:1px solid var(--line);
  padding:4px 8px;
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:700;
  color:var(--navy-800);
}
.panel-head .count{
  font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-faint);
}
.panel-body{padding:0;}
.panel-body.pad{padding:8px;}

/* ---------- grid dashboard (home) ---------- */
.dashboard{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows:min-content;
  gap:calc(var(--u)*3);
  align-items:start;
}
.dashboard .span-2{grid-column:span 2;}
.dashboard .span-4{grid-column:span 4;}

.ticker{
  grid-column:span 4;
  background:var(--navy-950);
  color:#dfe6f2;
  font-family:var(--mono);
  font-size:11px;
  padding:5px 10px;
  border:1px solid var(--navy-700);
  display:flex;gap:22px;overflow:hidden;white-space:nowrap;
}
.ticker .item{color:#c3cde0;}
.ticker .flag-new{color:var(--magenta);font-weight:700;margin-right:4px;}
.ticker .sep{color:var(--navy-600);}

/* list rows inside panels */
.plist{width:100%;border-collapse:collapse;}
.plist td{padding:4px 8px;border-bottom:1px solid var(--bg-row-alt);vertical-align:top;}
.plist tr:last-child td{border-bottom:none;}
.plist tr:nth-child(even){background:var(--bg-row-alt);}
.plist .meta{color:var(--ink-faint);font-size:10.5px;white-space:nowrap;}
.plist .primary{color:var(--ink);}
.plist a{color:var(--ink);font-weight:600;}
.plist a:hover{color:var(--info);}

/* ---------- badges / status dots ---------- */
.badge{
  display:inline-flex;align-items:center;gap:4px;
  font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  padding:1px 5px;border-radius:2px;line-height:1.6;white-space:nowrap;
}
.badge.ok{color:var(--ok);background:var(--ok-bg);}
.badge.warn{color:var(--warn);background:var(--warn-bg);}
.badge.bad{color:var(--bad);background:var(--bad-bg);}
.badge.info{color:var(--info);background:var(--info-bg);}
.badge.neutral{color:var(--neutral);background:var(--neutral-bg);}

.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0;}
.dot.ok{background:var(--ok);}
.dot.warn{background:var(--warn);}
.dot.bad{background:var(--bad);}
.dot.info{background:var(--info);}
.dot.neutral{background:var(--ink-faint);}
.flag-new{color:#fff;background:var(--magenta);font-size:8.5px;font-weight:800;padding:1px 4px;border-radius:2px;letter-spacing:.04em;margin-left:5px;}

/* ---------- filter row (spreadsheet style forms) ---------- */
.filterbar{
  background:var(--bg-panel);
  border:1px solid var(--line);
  padding:8px 10px;
  display:flex;
  flex-wrap:wrap;
  gap:10px 16px;
  align-items:end;
}
.field{display:flex;flex-direction:column;gap:2px;}
.field label{
  font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--ink-dim);font-weight:700;
}
.field input[type=text],
.field input[type=password],
.field input[type=email],
.field select{
  border:1px solid var(--line-strong);
  background:#fff;
  padding:4px 6px;
  font-size:12px;
  font-family:inherit;
  min-width:150px;
  border-radius:2px;
  color:var(--ink);
}
.field input:focus,.field select:focus{outline:2px solid var(--magenta);outline-offset:-1px;}
.checks{display:flex;flex-wrap:wrap;gap:4px 12px;max-width:520px;}
.chk{display:flex;align-items:center;gap:4px;font-size:11.5px;white-space:nowrap;}
.chk input{margin:0;}
.btn{
  border:1px solid var(--navy-900);
  background:var(--navy-900);
  color:#fff;
  padding:5px 14px;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.02em;
  border-radius:2px;
  cursor:pointer;
}
.btn:hover{background:var(--navy-800);}
.btn.magenta{background:var(--magenta);border-color:var(--magenta-dark);}
.btn.magenta:hover{background:var(--magenta-dark);}
.btn.ghost{background:#fff;color:var(--navy-900);}
.btn.small{padding:3px 9px;font-size:10.5px;}

/* ---------- data grid (core table component) ---------- */
.gridwrap{border:1px solid var(--line);background:#fff;overflow-x:auto;}
table.datagrid{width:100%;border-collapse:collapse;min-width:640px;}
table.datagrid th{
  position:sticky;top:0;
  background:var(--navy-900);
  color:#dbe3f0;
  text-align:left;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:5px 8px;
  border-right:1px solid var(--navy-700);
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}
table.datagrid th:hover{background:var(--navy-800);}
table.datagrid th .sort-ico{color:var(--magenta);margin-left:3px;}
table.datagrid th:last-child{border-right:none;}
table.datagrid td{
  padding:4px 8px;
  border-bottom:1px solid var(--bg-row-alt);
  border-right:1px solid var(--bg-row-alt);
  font-size:12px;
  vertical-align:middle;
  white-space:nowrap;
}
table.datagrid td:last-child{border-right:none;}
table.datagrid tbody tr:nth-child(even){background:var(--bg-row-alt);}
table.datagrid tbody tr:hover{background:var(--info-bg);cursor:pointer;}
table.datagrid tbody tr.expanded{background:#fff6fb;}
table.datagrid td.num{font-family:var(--mono);text-align:right;}
table.datagrid td.code{font-family:var(--mono);}
.row-detail{background:#f7f9fc;border-bottom:1px solid var(--line);}
.row-detail td{white-space:normal;}
.row-detail-inner{padding:10px 16px;display:flex;gap:26px;flex-wrap:wrap;font-size:11.5px;}
.row-detail-inner .col{min-width:180px;}
.row-detail-inner h4{margin:0 0 4px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy-700);}

.gridfoot{
  display:flex;justify-content:space-between;align-items:center;
  padding:4px 8px;background:var(--bg-alt);border-top:1px solid var(--line);
  font-size:10.5px;color:var(--ink-dim);
}

/* ---------- empty state ---------- */
.emptystate{
  border:1px dashed var(--line-strong);
  background:#fff;
  padding:26px 20px;
  text-align:center;
  color:var(--ink-dim);
}
.emptystate .ico{font-family:var(--mono);font-size:22px;color:var(--ink-faint);margin-bottom:6px;}
.emptystate h3{margin:0 0 4px;color:var(--ink);font-size:13px;}
.emptystate p{margin:0 0 10px;font-size:11.5px;}

/* ---------- login pages ---------- */
.login-wrap{
  flex:1;display:flex;align-items:center;justify-content:center;
  background:
    linear-gradient(var(--navy-950),var(--navy-950)) ,
    repeating-linear-gradient(0deg, rgba(255,255,255,0.02) 0 1px, transparent 1px 24px);
  background-blend-mode:normal;
  padding:30px 14px;
}
.login-grid{
  display:grid;grid-template-columns: 340px 360px;gap:26px;
  align-items:start;
}
.login-card{
  background:var(--bg-panel);
  border:1px solid var(--line);
  border-top:3px solid var(--magenta);
}
.login-card .panel-head{background:var(--navy-950);color:#fff;border-bottom:none;}
.login-body{padding:16px;display:flex;flex-direction:column;gap:12px;}
.login-body .field input{width:100%;min-width:0;}
.login-help{font-size:10.5px;color:var(--ink-dim);border-top:1px dashed var(--line);padding-top:10px;margin-top:2px;line-height:1.5;}
.login-help a{color:var(--info);}
.promo-card{
  background:var(--navy-900);color:#c9d3e6;border:1px solid var(--navy-700);
  padding:16px;font-size:11.5px;line-height:1.6;
}
.promo-card h3{color:#fff;margin:0 0 8px;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;}
.err-banner{
  background:var(--bad-bg);color:var(--bad);border:1px solid #eab5b1;
  padding:7px 10px;font-size:11.5px;font-weight:600;border-radius:2px;
  display:flex;gap:6px;align-items:center;
}
.field-error{border-color:var(--bad) !important;background:#fff6f5 !important;}
.field-error-msg{color:var(--bad);font-size:10px;margin-top:1px;}

.user-select-list{display:flex;flex-direction:column;gap:0;}
.user-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border-bottom:1px solid var(--bg-row-alt);
  cursor:pointer;
}
.user-row:hover{background:var(--info-bg);}
.user-row:last-child{border-bottom:none;}
.user-avatar{
  width:26px;height:26px;border-radius:2px;background:var(--navy-800);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-family:var(--mono);
}
.user-row .uname{font-weight:600;}
.user-row .uid{color:var(--ink-faint);font-size:10.5px;font-family:var(--mono);}

/* ---------- page heading strip ---------- */
.pagehead{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;
}
.pagehead h1{font-size:15px;margin:0;color:var(--navy-900);letter-spacing:-0.01em;}
.crumb{font-size:10.5px;color:var(--ink-faint);font-family:var(--mono);}

/* ---------- provider detail ---------- */
.detail-grid{display:grid;grid-template-columns:280px 1fr;gap:calc(var(--u)*3);align-items:start;}
.kv{width:100%;border-collapse:collapse;}
.kv td{padding:3px 6px;font-size:11.5px;border-bottom:1px solid var(--bg-row-alt);}
.kv td:first-child{color:var(--ink-dim);width:40%;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;}
.tagrow{display:flex;flex-wrap:wrap;gap:5px;padding:8px;}
.tag{background:var(--bg-alt);border:1px solid var(--line);font-size:10.5px;padding:2px 6px;border-radius:2px;color:var(--navy-800);}

/* ---------- index / overview page ---------- */
.cover{padding:26px 30px;max-width:1100px;margin:0 auto;width:100%;}
.cover-hero{
  background:var(--navy-950);color:#fff;padding:26px 30px;border:1px solid var(--navy-700);
  border-left:5px solid var(--magenta);margin-bottom:22px;
}
.cover-hero .eyebrow{color:var(--magenta);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:6px;}
.cover-hero h1{margin:0 0 6px;font-size:26px;letter-spacing:-0.01em;}
.cover-hero p{margin:0;color:#b8c3da;font-size:13px;max-width:720px;}
.cover-section{margin-bottom:20px;}
.cover-section h2{
  font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--magenta-dark);
  border-bottom:1px solid var(--line);padding-bottom:4px;margin:0 0 10px;
}
.spec-table{width:100%;border-collapse:collapse;}
.spec-table td{padding:6px 10px;border-bottom:1px solid var(--bg-row-alt);font-size:12px;vertical-align:top;}
.spec-table td.k{width:190px;font-weight:700;color:var(--navy-800);font-size:11px;text-transform:uppercase;letter-spacing:.03em;}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.swot{border:1px solid var(--line);background:#fff;padding:12px 14px;}
.swot h3{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;}
.swot.strength h3{color:var(--ok);}
.swot.weak h3{color:var(--warn);}
.swot.risk h3{color:var(--bad);}
.swot ul{margin:0;padding-left:16px;font-size:11.5px;}
.swot li{margin-bottom:3px;}

.ratings{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px;}
.rating-row{display:flex;align-items:center;gap:10px;}
.rating-row .rlabel{width:150px;font-size:11px;color:var(--ink-dim);font-weight:600;flex-shrink:0;}
.rbar{flex:1;height:9px;background:var(--bg-alt);border:1px solid var(--line);border-radius:1px;overflow:hidden;}
.rbar-fill{height:100%;background:var(--magenta);}
.rval{font-family:var(--mono);font-size:11px;width:30px;text-align:right;color:var(--ink-dim);}
.risk-chip{font-size:10px;font-weight:700;padding:2px 8px;border-radius:2px;text-transform:uppercase;}

.linkgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.linkcard{
  border:1px solid var(--line);background:#fff;padding:9px 11px;display:flex;flex-direction:column;gap:2px;
}
.linkcard:hover{border-color:var(--magenta);background:#fff6fb;}
.linkcard .fname{font-family:var(--mono);font-size:10.5px;color:var(--magenta-dark);font-weight:700;}
.linkcard .ftitle{font-weight:700;font-size:12.5px;color:var(--ink);}
.linkcard .fdesc{font-size:11px;color:var(--ink-dim);}

@media (max-width: 1000px){
  .dashboard{grid-template-columns:repeat(2,1fr);}
  .login-grid{grid-template-columns:1fr;}
  .detail-grid{grid-template-columns:1fr;}
  .cols2{grid-template-columns:1fr;}
  .linkgrid{grid-template-columns:1fr;}
}

/* Reviewer toolbar — shared across all 10 prototypes, do not restyle per-proposal */
.kx-reviewer-bar{position:sticky;top:0;z-index:9999;display:flex;align-items:center;gap:10px;background:#1a1b1e;color:#e8e8ea;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:12.5px;padding:8px 16px;border-bottom:1px solid #000;flex-wrap:wrap;}
.kx-reviewer-bar a{color:#e8e8ea;text-decoration:none;padding:4px 8px;border-radius:4px;}
.kx-reviewer-bar a:hover{background:#33343a;}
.kx-reviewer-bar select{background:#2a2b30;color:#e8e8ea;border:1px solid #45464c;border-radius:4px;padding:4px 8px;font-size:12.5px;}
.kx-rb-sep{color:#55565c;}
.kx-rb-name{font-weight:700;letter-spacing:.02em;white-space:nowrap;}
.kx-rb-count{color:#9a9ba1;margin-left:auto;padding:4px 4px;white-space:nowrap;}
@media(max-width:800px){.kx-reviewer-bar{font-size:11.5px}}
