/* PKB Intelligence Terminal — enterprise-dense design system (Azure/Fiori/Power-BI density) */
:root{
  --bg:#e9edf2; --panel:#fff; --p2:#f6f8fb; --p3:#eaeff5;
  --ink:#182031; --mut:#5f6b7c; --faint:#93a0b0;
  --line:#dde3ec; --line2:#e9edf3;
  --accent:#1f6fb2; --accent2:#0d4f86; --accentw:#e8f1f9;
  --good:#1a7f43; --goodb:#e7f6ec; --warn:#9a6100; --warnb:#fbf1df; --bad:#c02a26; --badb:#fdecec; --info:#5a4bd0;
  --sans:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"Cascadia Code","Consolas",monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:var(--sans);font-size:12.5px;line-height:1.4;color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.mono{font-family:var(--mono)}
.mlabel{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.muted{color:var(--mut)}.faint{color:var(--faint)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* app shell */
.app{display:grid;grid-template-rows:34px 1fr;height:100vh;overflow:hidden}
.topbar{display:flex;align-items:center;gap:12px;padding:0 10px;background:linear-gradient(180deg,#12324f,#0d2740);color:#fff}
.topbar .logo{font-weight:800;letter-spacing:.04em;font-size:13px}
.topbar .logo b{color:#7db6e6}
.topbar form{flex:1;max-width:520px;margin:0}
.topbar .search{width:100%;background:#0b2036;border:1px solid #23486a;color:#dbe7f2;border-radius:5px;padding:4px 9px;font-size:12px}
.topbar .search::placeholder{color:#6f8aa5}
.topbar .spacer{flex:1}
.jobspill{display:flex;align-items:center;gap:6px;background:#0b2036;border:1px solid #23486a;border-radius:20px;padding:2px 10px;color:#cfe0ee;font-size:11px;cursor:pointer}
.jobspill .dot{width:7px;height:7px;border-radius:50%;background:#3fd07a;box-shadow:0 0 0 0 #3fd07a;animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(63,208,122,.6)}70%{box-shadow:0 0 0 6px rgba(63,208,122,0)}100%{box-shadow:0 0 0 0 rgba(63,208,122,0)}}
.topbar .tlink{color:#bcd2e6;font-size:11px}

.body{display:grid;grid-template-columns:52px 1fr;min-height:0}
.rail{background:#0f2740;display:flex;flex-direction:column;padding:6px 0;gap:2px}
.rail a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;color:#8fa9c2;font-size:9px;text-decoration:none;border-left:2px solid transparent}
.rail a .ic{font-size:16px;line-height:1}
.rail a:hover{color:#dbe7f2;background:#143050}
.rail a.on{color:#fff;background:#173a5e;border-left-color:#3f9be0}
.rail .grow{flex:1}

.main{min-width:0;min-height:0;overflow:hidden;background:var(--bg)}

/* panes + splitters */
.ws{display:grid;height:100%;min-height:0}
.pane{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.pane:last-child{border-right:0}
.pane-head{display:flex;align-items:center;gap:8px;height:28px;padding:0 10px;background:var(--p3);border-bottom:1px solid var(--line);flex:0 0 auto}
.pane-head .t{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}
.pane-head .r{margin-left:auto;display:flex;gap:6px;align-items:center}
.pane-body{flex:1;overflow:auto;min-height:0}
.vdiv{width:5px;cursor:col-resize;background:var(--line);flex:0 0 auto}
.vdiv:hover{background:var(--accent)}

/* catalog list */
.catsearch{padding:6px;border-bottom:1px solid var(--line2)}
.catsearch input{width:100%;border:1px solid var(--line);border-radius:5px;padding:4px 8px;font-size:12px}
.filters{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border-bottom:1px solid var(--line2)}
.fchip{font-size:10.5px;padding:2px 8px;border:1px solid var(--line);border-radius:12px;background:var(--p2);color:var(--mut);cursor:pointer;user-select:none}
.fchip.on{background:var(--accentw);border-color:var(--accent);color:var(--accent2);font-weight:600}
.catgroup{border-bottom:1px solid var(--line2)}
.catgroup>.gh{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--p2);cursor:pointer;font-weight:600;font-size:11.5px}
.catgroup>.gh .cnt{margin-left:auto;color:var(--faint);font-size:10px;font-weight:600}
.catgroup>.gh .cv{color:var(--faint);width:9px;font-size:9px;transition:transform .1s}
.catgroup.open>.gh .cv{transform:rotate(90deg)}
.catgroup>.items{display:none}.catgroup.open>.items{display:block}
.pitem{display:flex;align-items:center;gap:7px;padding:4px 8px 4px 18px;cursor:pointer;border-top:1px solid var(--line2);font-size:12px}
.pitem:hover{background:var(--accentw)}
.pitem.sel{background:var(--accentw);box-shadow:inset 3px 0 0 var(--accent)}
.pitem .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pitem .mt{color:var(--faint);font-size:10px;font-family:var(--mono)}

/* KPI strip */
.kpis{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--line);background:var(--p2)}
.kpi{padding:5px 12px;border-right:1px solid var(--line2);min-width:74px}
.kpi .k{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.kpi .v{font-size:15px;font-weight:700;font-family:var(--mono);line-height:1.15}
.kpi .v small{font-size:10px;color:var(--mut);font-weight:500}
.dossier-head{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid var(--line)}
.dossier-head img{width:46px;height:46px;object-fit:contain;border:1px solid var(--line);border-radius:6px;background:#fff}
.dossier-head .ti{font-size:14px;font-weight:700;line-height:1.25}
.dossier-head .sub{color:var(--mut);font-size:11px;margin-top:2px}

/* tabs */
.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);background:var(--p3);overflow-x:auto;flex:0 0 auto}
.tab{padding:6px 13px;font-size:11.5px;font-weight:600;color:var(--mut);cursor:pointer;border-right:1px solid var(--line2);white-space:nowrap;border-bottom:2px solid transparent}
.tab:hover{background:var(--p2);color:var(--ink)}
.tab.on{background:var(--panel);color:var(--accent2);border-bottom-color:var(--accent)}
.tabwrap{flex:1;overflow:auto;min-height:0}
.tabpanel{display:none;padding:10px 12px}
.tabpanel.on{display:block}

/* dense tables */
table.dt{width:100%;border-collapse:collapse;font-size:11.5px}
table.dt thead th{position:sticky;top:0;background:var(--p3);text-align:left;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--mut);padding:4px 8px;border-bottom:1px solid var(--line);z-index:1}
table.dt td{padding:3px 8px;border-bottom:1px solid var(--line2);white-space:nowrap}
table.dt td.wrap{white-space:normal}
table.dt tbody tr:hover{background:var(--accentw)}
table.dt td.num,table.dt th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}

/* property panel (label:value grid) */
.props{display:grid;grid-template-columns:auto 1fr;gap:0;font-size:12px;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.props .k{padding:3px 10px;background:var(--p2);color:var(--mut);border-bottom:1px solid var(--line2);font-weight:600}
.props .v{padding:3px 10px;border-bottom:1px solid var(--line2);font-family:var(--mono)}
.props .k:last-of-type,.props .v:last-child{border-bottom:0}

/* grid of mini-panels */
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}
.card>.ch{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);padding:5px 10px;background:var(--p2);border-bottom:1px solid var(--line2)}
.card>.cb{padding:8px 10px}

/* chips / pills / bars */
.chip{display:inline-block;font-size:10.5px;padding:1px 8px;border-radius:11px;background:var(--p3);color:#42506a;margin:2px 3px 2px 0}
.pill{display:inline-block;font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.03em}
.pill.good{background:var(--goodb);color:var(--good)}.pill.warn{background:var(--warnb);color:var(--warn)}
.pill.bad{background:var(--badb);color:var(--bad)}.pill.neu{background:var(--p3);color:var(--mut)}
.bar{position:relative;height:14px;background:var(--p3);border-radius:3px;overflow:hidden;min-width:80px}
.bar>span{position:absolute;left:0;top:0;bottom:0}
.bar .neg{background:#f0b4b0}.bar .pos{background:#a9dcbb}
.aspect{display:grid;grid-template-columns:1fr 90px 44px;gap:8px;align-items:center;padding:2px 0;font-size:11.5px}

/* context rail */
.ctx{padding:0}
.ctx section{border-bottom:1px solid var(--line2)}
.ctx .sh{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);padding:6px 10px;background:var(--p2)}
.ctx .sb{padding:8px 10px}
.actbtn{display:block;width:100%;text-align:left;background:var(--accent);color:#fff;border:0;border-radius:5px;padding:7px 10px;font-weight:600;font-size:12px;cursor:pointer;margin-bottom:6px}
.actbtn:hover{background:var(--accent2)}
.actbtn.alt{background:var(--panel);color:var(--accent2);border:1px solid var(--accent)}

/* AI Operations */
.aiwrap{display:grid;grid-template-rows:auto 1fr;height:100%;min-height:0}
.launcher{padding:10px 12px;border-bottom:1px solid var(--line);background:var(--panel)}
.launcher textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;resize:vertical;min-height:44px;font-family:var(--sans)}
.launcher .row{display:flex;gap:8px;align-items:center;margin-top:6px}
.launcher select{border:1px solid var(--line);border-radius:5px;padding:5px 8px;font-size:12px}
.launcher .go{background:var(--accent);color:#fff;border:0;border-radius:5px;padding:6px 16px;font-weight:700;cursor:pointer}
.chipset{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.exq{font-size:11px;padding:2px 9px;border:1px solid var(--line);border-radius:12px;background:var(--p2);color:var(--mut);cursor:pointer}
.exq:hover{border-color:var(--accent);color:var(--accent2)}
.board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px;overflow:auto;min-height:0}
.col{background:var(--p2);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;min-height:0}
.col>.ch{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:7px 10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px}
.col>.ch .n{margin-left:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:0 7px;font-size:10px}
.col .cl{padding:8px;display:flex;flex-direction:column;gap:7px;overflow:auto}
.jcard{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 9px;box-shadow:0 1px 2px rgba(20,40,70,.04)}
.jcard .jt{font-weight:600;font-size:12px;display:flex;gap:6px;align-items:center}
.jcard .jm{color:var(--faint);font-size:10px;font-family:var(--mono);margin-top:3px}
.jcard .prog{height:4px;background:var(--p3);border-radius:3px;margin-top:6px;overflow:hidden}
.jcard .prog>span{display:block;height:100%;background:var(--accent);animation:indet 1.4s ease-in-out infinite;width:40%}
@keyframes indet{0%{margin-left:-40%}100%{margin-left:100%}}
.jcard .acts{display:flex;gap:6px;margin-top:7px}
.jcard .acts a,.jcard .acts button{font-size:10.5px;padding:2px 8px;border:1px solid var(--line);border-radius:4px;background:var(--p2);color:var(--mut);cursor:pointer}
.empty{color:var(--faint);font-size:12px;padding:14px;text-align:center}
.ins-tog{cursor:pointer;color:var(--mut);font-weight:700;padding:0 3px;user-select:none;flex:0 0 auto}
.ins-tog:hover{color:var(--accent)}
.pane.collapsed .pane-head .t,.pane.collapsed .pane-head .r{display:none}
.pane.collapsed .pane-body{display:none}
.mcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.mcard .mk{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.mcard .mv{font-size:26px;font-weight:700;font-family:var(--mono);line-height:1.15;color:var(--ink)}
.mcard .mv small{font-size:14px;color:var(--mut)}
.mcard .ms{font-size:10.5px;color:var(--mut);margin-top:1px}
.chartwrap{border:1px solid var(--line2);border-radius:6px;padding:6px 8px 2px;background:var(--panel);margin-top:6px}
.chartwrap .mlabel{margin-bottom:2px}
/* scoped mini-tabs for the inline competitor expansion (won't clash with the dossier tabs) */
.ctabs{display:flex;gap:0;border-bottom:1px solid var(--line);background:var(--p3);overflow-x:auto;border-radius:6px 6px 0 0}
.ctab{padding:5px 12px;font-size:11px;font-weight:600;color:var(--mut);cursor:pointer;border-right:1px solid var(--line2);white-space:nowrap;border-bottom:2px solid transparent}
.ctab.on{background:var(--panel);color:var(--accent2);border-bottom-color:var(--accent)}
.ctabpanel{display:none;padding:8px 2px}
.ctabpanel.on{display:block}
.spin{display:inline-block;width:11px;height:11px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite;vertical-align:-1px}
@keyframes sp{to{transform:rotate(360deg)}}
