:root{--dusk: #0d1322;--dusk2: #111a2e;--panel: #161f33;--panel2: #1b2740;--line: #26334e;--ink: #eaf0fa;--muted: #8b97ae;--faint: #57648a;--glow: #ffb938;--glow-hi: #ffd97a;--glow-dim: #8a6a2a;--released: #7bd88f;--breach: #ff6b5b;--info: #6fb4ff;--violet: #a78bfa;--s1: #ff8a5b;--s2: #ffb938;--s3: #e8d26b;--s4: #7e8ca6;--radius: 14px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--dusk);color:var(--ink);font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45;min-height:100vh}#app{display:flex;min-height:100vh}#side{width:216px;background:linear-gradient(180deg,#0b101d,#0f1626);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:6px;flex-shrink:0}.logo{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;cursor:pointer}.logo .mark{width:34px;height:42px}.logo h1{font-size:21px;font-weight:800;letter-spacing:.4px}.logo small{display:block;font-size:9.5px;color:var(--muted);font-weight:500;letter-spacing:1.4px;text-transform:uppercase}.nav-label{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:#57648a;padding:12px 10px 4px}.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;color:var(--muted);text-decoration:none;font-weight:600;font-size:13.5px;cursor:pointer}.nav a .ic{width:17px;text-align:center;opacity:.9}.nav a .cnt{margin-left:auto;font-size:10.5px;font-weight:800;background:var(--panel2);border:1px solid var(--line);border-radius:99px;padding:1px 8px;color:var(--muted)}.nav a.on{background:#ffb9381a;color:var(--glow-hi)}.nav a.on .cnt{color:var(--glow-hi);border-color:var(--glow-dim)}.nav a:hover:not(.on){background:#ffffff0a;color:var(--ink)}.jarmeter{margin-top:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;text-align:center}.jarmeter h4{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.jarmeter .cap{font-size:10.5px;color:var(--muted);margin-top:6px}.jarmeter .cap b{color:var(--glow-hi)}#main{flex:1;display:flex;flex-direction:column;min-width:0}#topbar{display:flex;align-items:center;gap:14px;padding:14px 26px;border-bottom:1px solid var(--line);background:#0d1322b3;position:sticky;top:0;z-index:20;backdrop-filter:blur(6px)}#topbar .crumb{font-size:13px;color:var(--muted)}#topbar .crumb b{color:var(--ink)}.spacer{flex:1}.persona{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:3px;gap:2px}.persona button{background:none;border:none;color:var(--muted);font-weight:600;font-size:12px;padding:6px 13px;border-radius:99px;cursor:pointer;font-family:inherit}.persona button.on{background:#ffb93824;color:var(--glow-hi)}.iqbtn{display:flex;align-items:center;gap:8px;background:linear-gradient(120deg,#a78bfa29,#ffb9381f);border:1px solid #3a3a5e;color:var(--ink);border-radius:99px;padding:7px 15px;font-weight:600;font-size:12.5px;cursor:pointer;font-family:inherit}.iqbtn .dot{width:7px;height:7px;border-radius:50%;background:var(--violet);box-shadow:0 0 8px var(--violet)}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#2e3d61,#1b2740);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;color:var(--glow-hi)}#content{padding:24px 26px 60px;overflow:auto}h2.page{font-size:22px;font-weight:800;margin-bottom:3px}p.sub{color:var(--muted);font-size:13px;margin-bottom:20px}.grid{display:grid;gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card h3{font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;gap:8px}.card h3 .r{margin-left:auto;text-transform:none;letter-spacing:0;font-weight:600}.stat{font-size:30px;font-weight:800;line-height:1}.stat small{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:6px}.clicky{cursor:pointer}.clicky:hover{border-color:var(--glow-dim)}.fly{display:inline-block;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--glow-hi),var(--glow) 60%,#b87f16);box-shadow:0 0 8px #ffb938bf;flex-shrink:0}.fly.calm{box-shadow:0 0 4px #ffb93859;opacity:.75}.fly.hot{animation:pulse 1.2s ease-in-out infinite}.fly.breach{background:radial-gradient(circle at 35% 30%,#ff9e8f,var(--breach) 60%,#96261b);box-shadow:0 0 10px #ff6b5be6;animation:pulse .8s ease-in-out infinite}.fly.released{background:radial-gradient(circle at 35% 30%,#b9f0c6,var(--released) 60%,#2e7c44);box-shadow:0 0 8px #7bd88fb3}.fly.new{background:radial-gradient(circle at 35% 30%,#bbddff,var(--info) 60%,#2a5c96);box-shadow:0 0 8px #6fb4ffb3}.fly.gray{background:radial-gradient(circle at 35% 30%,#b8c2d6,#7e8ca6 60%,#4a5570);box-shadow:none;opacity:.7}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.75}}.chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.chip.s1{color:var(--s1);border-color:#ff8a5b66;background:#ff8a5b14}.chip.s2{color:var(--s2);border-color:#ffb93866;background:#ffb93814}.chip.s3{color:var(--s3);border-color:#e8d26b59;background:#e8d26b12}.chip.s4{color:var(--s4);border-color:#7e8ca666}.chip.rel{color:var(--released);border-color:#7bd88f66;background:#7bd88f12}.chip.brc{color:var(--breach);border-color:#ff6b5b73;background:#ff6b5b17}.chip.inf{color:var(--info);border-color:#6fb4ff66;background:#6fb4ff14}.chip.vio{color:var(--violet);border-color:#a78bfa66;background:#a78bfa14}.chip.strat{color:#f7c8ff;border-color:#f7c8ff59;background:#f7c8ff12}.chip.gray{color:var(--s4)}table{width:100%;border-collapse:collapse}th{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:#57648a;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-weight:700}td{padding:11px 10px;border-bottom:1px solid rgba(38,51,78,.55);font-size:13px;vertical-align:middle}tr.rowlink{cursor:pointer}tr.rowlink:hover td{background:#ffffff08}td .id,.id{font-family:Consolas,monospace;font-size:12px;color:var(--muted)}td .title,.title{font-weight:600;color:var(--ink)}td .meta,.meta{font-size:11.5px;color:var(--muted);margin-top:2px}.btn{background:var(--glow);color:#1a1204;border:none;border-radius:10px;padding:10px 18px;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit}.btn:hover{background:var(--glow-hi)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);font-weight:600}.btn.ghost:hover{border-color:var(--glow-dim);background:#ffb9380f}.btn.sm{padding:6px 12px;font-size:12px;border-radius:8px}.btn.rel{background:var(--released);color:#0e2415}.btn.brc{background:var(--breach);color:#2b0b07}.btn:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{width:100%;background:var(--dusk2);border:1px solid var(--line);border-radius:10px;color:var(--ink);padding:10px 12px;font-size:13.5px;font-family:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--glow-dim)}label.f{display:block;font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.4px;margin:0 0 6px;text-transform:uppercase}.req{color:var(--glow)}.hint{font-size:11.5px;color:#57648a;margin-top:5px}.rail{display:flex;align-items:center;gap:0;margin:6px 0 2px}.rail .st{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:86px}.rail .st .nd{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;background:var(--dusk2);font-size:11px}.rail .st span{font-size:10.5px;font-weight:700;letter-spacing:.5px;color:#57648a;text-transform:uppercase}.rail .st.done .nd{border-color:var(--glow-dim);background:#ffb93814}.rail .st.done span{color:var(--muted)}.rail .st.now .nd{border-color:var(--glow);box-shadow:0 0 12px #ffb93880}.rail .st.now span{color:var(--glow-hi)}.rail .ln{flex:1;height:2px;background:var(--line);min-width:18px;margin-bottom:22px}.rail .ln.done{background:var(--glow-dim)}.trail{position:relative;padding-left:22px}.trail:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--line)}.ev{position:relative;padding:0 0 16px}.ev:before{content:"";position:absolute;left:-20px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--glow);box-shadow:0 0 6px #ffb93899}.ev.sys:before{background:var(--info);box-shadow:0 0 6px #6fb4ff80}.ev.iq:before{background:var(--violet);box-shadow:0 0 6px #a78bfa80}.ev.bad:before{background:var(--breach);box-shadow:0 0 6px #ff6b5b99}.ev .who{font-weight:700;font-size:12.5px}.ev .what{font-size:12.5px;color:var(--muted);margin-top:1px}.ev .why{font-size:12px;color:var(--ink);background:var(--dusk2);border:1px solid var(--line);border-radius:8px;padding:7px 10px;margin-top:6px;font-style:italic}.ev .ts{font-size:10.5px;color:#57648a;margin-top:3px;font-family:Consolas,monospace}.lock{font-size:10px;color:#57648a;letter-spacing:.5px}.row{display:flex;gap:14px;align-items:stretch}.kv{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid rgba(38,51,78,.5);font-size:12.5px}.kv:last-child{border-bottom:none}.kv b{color:var(--ink);text-align:right}.kv span{color:var(--muted);flex-shrink:0}.bar{display:flex;align-items:center;gap:9px;margin-bottom:9px}.bar .lbl{width:128px;font-size:12px;color:var(--muted);flex-shrink:0}.bar .trk{flex:1;height:9px;border-radius:99px;background:#26334e;overflow:hidden}.bar .trk i{display:block;height:100%;border-radius:99px}.bar .val{width:46px;text-align:right;font-size:12px;font-weight:700}.iqcard{background:linear-gradient(150deg,#a78bfa17,#ffb9380d);border:1px solid #34345a}.iqcard h3{color:#c9b8f5}.iqline{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid rgba(52,52,90,.6);font-size:12.5px;align-items:flex-start}.iqline:last-child{border-bottom:none}.iqline .glyph{color:var(--violet);flex-shrink:0}.iqline .act{margin-left:auto;flex-shrink:0}.tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}.tabs button{background:var(--panel);border:1px solid var(--line);color:var(--muted);font-weight:700;font-size:12.5px;padding:8px 16px;border-radius:99px;cursor:pointer;font-family:inherit}.tabs button.on{background:#ffb9381f;border-color:var(--glow-dim);color:var(--glow-hi)}.notice{display:flex;gap:10px;align-items:flex-start;background:#6fb4ff12;border:1px solid rgba(111,180,255,.25);border-radius:10px;padding:11px 13px;font-size:12.5px;color:#bcd9ff;margin-bottom:14px}.notice.warn{background:#ffb93812;border-color:#ffb9384d;color:#ffe2a8}.notice.bad{background:#ff6b5b14;border-color:#ff6b5b59;color:#ffc4bb}.filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center}.filters select,.filters input{width:auto;min-width:130px;padding:8px 10px;font-size:12.5px}.filters input[type=search]{min-width:220px}.actionbox{background:var(--dusk2);border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px}.actionbox h4{font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--glow-hi);margin-bottom:10px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(120px);background:var(--panel2);border:1px solid var(--glow-dim);color:var(--ink);padding:12px 22px;border-radius:12px;font-size:13px;font-weight:600;z-index:99;transition:transform .3s ease;box-shadow:0 8px 30px #00000080;max-width:640px;text-align:center;display:flex;align-items:center;gap:10px}#toast.show{transform:translate(-50%) translateY(0)}.foot{margin-top:26px;font-size:11px;color:#57648a;text-align:center}.backlink{font-size:12.5px;color:var(--info);cursor:pointer;font-weight:600;margin-bottom:10px;display:inline-block;text-decoration:none}.backlink:hover{text-decoration:underline}.emptystate{text-align:center;padding:40px;color:var(--muted)}.emptystate .big{font-size:34px;margin-bottom:10px}a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}@media(max-width:960px){#app{flex-direction:column}#side{width:100%}.row{flex-direction:column}.grid[style*="repeat(4"]{grid-template-columns:1fr 1fr!important}}
