/* FalconOS 4.3 — extension styles */
body.portal{--c-b:#5aa7e0}
.dash{top:0;bottom:0}
body.ban-on .dash{top:16px;bottom:16px}
#fosBan{display:none;position:fixed;left:0;right:0;top:0;height:16px;z-index:2000;align-items:center;justify-content:center;font:600 10px var(--mono,monospace);letter-spacing:.14em;color:#fff}
#fosBan2{display:none;position:fixed;left:0;right:0;bottom:0;height:16px;z-index:2000;align-items:center;justify-content:center;font:600 10px var(--mono,monospace);letter-spacing:.14em;color:#fff}
.rail{overflow-y:auto;scrollbar-width:none;gap:2px !important;justify-content:flex-start}
.rail::-webkit-scrollbar{display:none}
.rail button{flex:none;padding:7px 0 5px !important}
.rail button svg{width:18px !important;height:18px !important}
.rail button.pin::after{content:"";position:absolute;top:6px;right:8px;width:5px;height:5px;border-radius:50%;background:var(--c-b)}
.rail button{position:relative}
.rail-sec{flex:none;width:44px;margin:8px 0 2px;font:500 8.5px var(--sans,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:#434c59;text-align:center;border-top:1px solid var(--c-l);padding-top:7px}
.rail-sec:first-child{border:0;margin-top:0}
body.focus .rail{display:none}
body.focus .dash{grid-template-columns:0 1fr}
body.compact .view{padding:10px 12px !important}
body.compact .t td,body.compact .t th{padding:4px 10px !important}
body.compact .pn>h4{padding:8px 12px !important}
body.mono-ui .dash{font-family:var(--mono)}
body.no-motion *{animation:none !important;transition:none !important}
body.fx-grid #cmain::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:5;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px}
body.wall .cb-right .cb-btn,body.wall #logoutBtn{opacity:.3}
/* ticker */
#fosTicker{position:fixed;left:72px;right:0;bottom:28px;height:22px;background:#0a0c10ee;border-top:1px solid var(--c-l);overflow:hidden;z-index:40;font:500 11px var(--mono,monospace);color:var(--c-m);white-space:nowrap;display:none}
body.ban-on #fosTicker{bottom:44px}
body.focus #fosTicker{left:0}
#fosTicker .tk{display:inline-block;padding:4px 0;animation:tk 90s linear infinite}
#fosTicker .tk b{color:var(--c-t);font-weight:600;margin-right:6px}
#fosTicker .tk b.crit{color:#e5575c}#fosTicker .tk b.warn{color:#d9b46a}
#fosTicker .tk i{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--c-l2);margin:0 18px;vertical-align:middle}
@keyframes tk{from{transform:translateX(0)}to{transform:translateX(-50%)}}
body.tick-on .view{padding-bottom:34px !important}
body.tick-on .view.nopad{padding-bottom:22px !important}
/* world clock */
#fosWC{position:fixed;top:56px;left:300px;width:260px;background:var(--c-p);border:1px solid var(--c-l2);border-radius:10px;padding:12px 14px;z-index:1500;box-shadow:0 18px 50px #000c}
#fosWC h5{margin:0 0 8px;font:500 11px var(--sans);color:var(--c-d)}
#fosWC div{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #151a21;font-size:12.5px}
#fosWC div:last-child{border:0}#fosWC b{font-family:var(--mono);font-weight:500}
/* shared */
.vt{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}
.vt h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em}.vt small{color:var(--c-d);font-size:12px}
.vt-r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hb{height:5px;background:#1a1f27;border-radius:3px;overflow:hidden;min-width:60px}.hb i{display:block;height:100%;border-radius:3px}
.act .ai{display:grid;grid-template-columns:70px 1fr;gap:2px 10px;padding:9px 0;border-bottom:1px solid #151a21}
.act .ai span{font:11px var(--mono);color:var(--c-d);grid-row:1/3}.act .ai b{font-size:11.5px;font-weight:600;letter-spacing:.02em}.act .ai p{margin:0;color:var(--c-m);font-size:12px}
.act .ai.crit b{color:#e5575c}.act .ai.warn b{color:#d9b46a}
.swatches{display:flex;gap:8px}.swatches button{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer}.swatches button.on{border-color:#fff}
.sc{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}.sc div{display:flex;gap:10px;align-items:center;font-size:12.5px}
.sc kbd,.gl kbd{font:11px var(--mono);border:1px solid var(--c-l2);border-radius:4px;padding:2px 6px;color:var(--c-t);background:var(--c-bg)}
.gl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 14px;font-size:12px;color:var(--c-m)}
.wn{margin-bottom:14px}.wn h5{margin:0 0 6px;font:600 11.5px var(--sans);color:var(--c-t);display:flex;justify-content:space-between}.wn h5 span{color:var(--c-d);font-weight:400}
.wn div{font-size:12px;color:var(--c-m);padding:3px 0 3px 12px;position:relative}.wn div::before{content:"";position:absolute;left:0;top:10px;width:4px;height:4px;border-radius:50%;background:var(--c-b)}
.g2{display:grid;gap:12px}
.cardx{background:var(--c-p);border:1px solid var(--c-l);border-radius:8px;padding:14px 16px}
.cardx small{display:block;color:var(--c-m);font-size:11px}.cardx b.big{display:block;font-size:26px;font-weight:500;letter-spacing:-.02em;margin:4px 0 2px}
.delta{font-size:11px}.delta.up{color:#4cc38a}.delta.dn{color:#e5575c}
.cv{width:100%;display:block;background:#07090c;border-radius:6px}
.chipbar{display:flex;gap:6px;flex-wrap:wrap}
.sel{outline:1px solid var(--c-b)}
tr.row{cursor:pointer}tr.row:hover td{background:#12161c}
.tbl-sort th{cursor:pointer;user-select:none}.tbl-sort th:hover{color:var(--c-t)}
@media print{.rail,.cbar,.statusbar,#fosTicker,#fosBan{display:none !important}.dash{position:static !important;display:block !important}.view{position:static !important;display:none !important}.view.on{display:block !important}}
.kp4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.aiKpi{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:12px}
.dh5{margin:16px 0 6px;font:500 11px var(--sans);color:var(--c-d)}
/* radar */
.rd-wrap{display:grid;grid-template-columns:1fr 280px;gap:14px}.rd-main{position:relative}.rd-main .cv{border:1px solid var(--c-l);background:#05080a}
.rd-hud{position:absolute;right:12px;bottom:10px;font:11px var(--mono);color:#7a8f86}
.rd-tg{display:flex;gap:8px;align-items:center;padding:4px 0;font-size:12.5px;color:var(--c-m);cursor:pointer}.rd-tg input{accent-color:var(--c-b)}
/* ontology */
.on-wrap{display:grid;grid-template-columns:230px 340px 1fr;gap:12px;align-items:start}
.on-t{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:var(--c-m);font:inherit;font-size:13px;padding:9px 14px;cursor:pointer;text-align:left}
.on-t i{width:8px;height:8px;border-radius:50%}.on-t em{margin-left:auto;font-style:normal;color:var(--c-d);font-size:11.5px}.on-t:hover,.on-t.on{background:var(--c-p2);color:#fff}
.on-h{padding:12px 14px 6px;font-size:11px;color:var(--c-d)}
.on-row{display:grid;gap:2px;width:100%;background:none;border:0;border-bottom:1px solid #151a21;color:var(--c-t);font:inherit;padding:10px 14px;cursor:pointer;text-align:left}
.on-row b{font-weight:500;font-size:12.5px}.on-row span{color:var(--c-d);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.on-row:hover,.on-row.on{background:#12161c}
.on-link{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;border-bottom:1px solid #151a21;color:var(--c-t);font:inherit;font-size:12.5px;padding:8px 2px;cursor:pointer;text-align:left}
.on-link i{width:7px;height:7px;border-radius:50%}.on-link em{margin-left:auto;font-style:normal;font-size:10.5px;color:var(--c-d);letter-spacing:.04em}.on-link:hover{background:#12161c}
/* graph */
.gr-wrap{position:relative}.gr-wrap .cv{border:1px solid var(--c-l);cursor:grab}
.gr-info{position:absolute;right:12px;top:12px;width:250px;background:#0d1015ee;border:1px solid var(--c-l2);border-radius:8px;padding:10px 12px;font-size:12px;display:grid;gap:4px}
/* timeline */
.tl{padding:14px 16px}.tl-axis{position:relative;height:18px;margin-left:90px;font:10.5px var(--mono);color:var(--c-d)}.tl-axis span{position:absolute;transform:translateX(-50%)}
.tl-lane{display:flex;align-items:center;height:36px;border-top:1px solid #151a21}.tl-lane label{width:90px;font-size:11.5px;color:var(--c-m)}
.tl-track{position:relative;flex:1;height:100%}.tl-ev{position:absolute;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;cursor:pointer;box-shadow:0 0 0 3px #0f121788}.tl-ev:hover{transform:scale(1.5)}
.tl-now{position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--c-b)}
.tl-row{display:grid;grid-template-columns:160px 80px 150px 1fr;gap:10px;padding:7px 14px;border-bottom:1px solid #151a21;font-size:12px}.tl-row span:first-child{font-family:var(--mono);color:var(--c-d)}.tl-row code{font-family:var(--mono);color:var(--c-m)}
/* playbooks / scenarios */
.pb-step{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #151a21;font-size:12.5px}.pb-step:last-child{border:0}
.pb-step i{width:22px;height:22px;border-radius:50%;border:1px solid var(--c-l2);display:flex;align-items:center;justify-content:center;font:normal 11px var(--mono);color:var(--c-d)}
.pb-step i.ok{background:#14281f;border-color:#1f6b4a;color:#4cc38a}.pb-step i.bad{background:#2e1517;border-color:#6b2427;color:#e5575c}.pb-step em{font-style:normal;color:var(--c-d);font-size:11.5px}
.sc-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid #151a21}.sc-row small{display:block;color:var(--c-d);font-size:11.5px;margin-top:2px}
/* reports */
.rp-pre{margin:0;font:12px/1.55 var(--mono);color:#c4ccd6;white-space:pre-wrap;max-height:calc(100vh - 260px);overflow:auto}
.nb-prev{font-size:13px;line-height:1.6;color:var(--c-m)}.nb-prev h3,.nb-prev h4,.nb-prev h5{margin:8px 0 4px;color:var(--c-t)}.nb-prev li{margin-left:18px;list-style:disc}
/* workspace */
.ws-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;grid-auto-flow:dense}.ws-t.w1{grid-column:span 1}.ws-t.w2{grid-column:span 2}.ws-t.w3{grid-column:span 3}
.ws-t{cursor:grab}.ws-t .bd small{display:block;color:var(--c-d);font-size:11.5px}.ws-t .bd b.big{display:block;font-size:30px;font-weight:500;letter-spacing:-.02em;margin:2px 0}
.ws-b{background:none;border:0;color:var(--c-d);font-size:14px;cursor:pointer;padding:0 4px}.ws-b:hover{color:#fff}
/* terminal */
.term{background:#07090c;border:1px solid var(--c-l);border-radius:8px;height:calc(100vh - 230px);display:flex;flex-direction:column;font:12.5px/1.55 var(--mono);color:#b8c4cf}
.term-out{flex:1;overflow:auto;padding:14px 16px;white-space:pre-wrap}.term-out .cmd{color:#fff;margin-top:6px}
.term-in{display:flex;gap:10px;padding:10px 16px;border-top:1px solid var(--c-l)}.term-in span{color:var(--c-b)}.term-in input{flex:1;background:none;border:0;outline:0;color:#fff;font:inherit}
@media(max-width:1100px){.on-wrap,.rd-wrap{grid-template-columns:1fr}.kp4{grid-template-columns:repeat(2,1fr)}.ws-grid{grid-template-columns:repeat(2,1fr)}}
.vt-r{flex-wrap:nowrap}.vt-r select,.vt-r input,.vt-r .inp{width:auto !important}.vt-r select{min-width:130px}
.vt-r .btn2{white-space:nowrap}
.dash select.inp{padding:6px 10px}
#fosBoot{position:fixed;inset:0;background:#07090c;z-index:3000;display:flex;align-items:center;justify-content:center;transition:opacity .5s}
#fosBoot.out{opacity:0;pointer-events:none}
#fosBoot .bt{display:grid;justify-items:center;gap:12px}#fosBoot b{font:600 22px var(--sans);letter-spacing:-.01em;color:#fff}
#fosBoot .bl{height:18px;font:12px var(--mono);color:var(--c-m)}
#fosBoot .bb{width:220px;height:2px;background:#1a1f27;border-radius:2px;overflow:hidden}#fosBoot .bb i{display:block;height:100%;width:0;background:var(--c-b);animation:bb 1.8s ease-out forwards}
@keyframes bb{to{width:100%}}
/* polish */
.pn{transition:border-color .2s}.pn:hover{border-color:var(--c-l2)}
.rail button.on{box-shadow:inset 2px 0 0 var(--c-b) !important}
.cb-chip.link i{box-shadow:0 0 8px currentColor}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#242b35;border-radius:5px}::-webkit-scrollbar-track{background:transparent}
