:root {
  color-scheme: dark;
  --ink: #f4f8ff;
  --muted: #91a2b8;
  --dim: #5c7087;
  --bg: #050811;
  --panel: rgba(10, 18, 31, .94);
  --panel-2: rgba(12, 23, 38, .96);
  --line: rgba(142, 180, 207, .16);
  --line-strong: rgba(120, 245, 222, .36);
  --cyan: #79f5df;
  --blue: #58b8ff;
  --violet: #a78bfa;
  --amber: #ffd27a;
  --red: #ff6d88;
  --green: #91e8a5;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg);
  color: var(--ink);
  font-size: 16px;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--bg); }
body { min-width: 320px; min-height: 100vh; margin: 0; background: var(--bg); overflow-x: hidden; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
button:disabled { cursor: not-allowed; opacity: .38; }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

body::before, body::after {
  position: fixed;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  content: "";
}
body::before {
  background:
    radial-gradient(circle at 12% 8%, rgba(45, 116, 163, .24), transparent 28rem),
    radial-gradient(circle at 83% 15%, rgba(135, 92, 220, .16), transparent 27rem),
    linear-gradient(180deg, #070d1a 0%, #050811 56%, #04060c 100%);
}
body::after {
  z-index: -2;
  opacity: .23;
  background-image: linear-gradient(rgba(81, 132, 163, .15) 1px, transparent 1px), linear-gradient(90deg, rgba(81, 132, 163, .15) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.55) 55%, transparent 100%);
}
.blackroom-atmosphere { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.atmosphere-orb { position: absolute; width: 36rem; height: 36rem; border-radius: 50%; filter: blur(100px); opacity: .12; }
.orb-cyan { top: -18rem; left: -12rem; background: #27cce8; }
.orb-violet { right: -17rem; bottom: -22rem; background: #9367f4; }
.atmosphere-scanline { position: absolute; inset: 0; opacity: .12; background: repeating-linear-gradient(180deg, transparent 0, transparent 4px, rgba(255,255,255,.04) 5px, transparent 6px); mix-blend-mode: screen; }

.ops-desk { min-height: 100vh; padding: 24px; }
.ops-shell { position: relative; width: min(1540px, 100%); min-height: calc(100vh - 48px); margin: 0 auto; padding: 0 18px 18px; overflow: hidden; border: 1px solid rgba(139, 185, 215, .23); border-radius: 22px; background: linear-gradient(135deg, rgba(9, 17, 30, .985), rgba(5, 10, 19, .97) 56%, rgba(12, 12, 27, .98)); box-shadow: 0 35px 120px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.045); }
.ops-shell::before { position: absolute; top: 0; left: 0; width: 58%; height: 1px; content: ""; background: linear-gradient(90deg, transparent, var(--cyan), transparent); opacity: .78; }
.ops-shell::after { position: absolute; inset: 0; pointer-events: none; content: ""; border-radius: inherit; box-shadow: inset 0 0 90px rgba(53, 91, 149, .09); }

.ops-header { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 102px; padding: 20px 10px 16px; border-bottom: 1px solid var(--line); }
.ops-brand { display: flex; align-items: center; gap: 15px; min-width: 260px; }
.ops-brand-mark { position: relative; display: grid; place-items: center; width: 52px; height: 52px; overflow: hidden; border: 1px solid rgba(121, 245, 223, .63); border-radius: 14px; background: linear-gradient(145deg, rgba(35, 85, 100, .7), rgba(9, 23, 39, .85)); box-shadow: 0 0 22px rgba(121,245,223,.16), inset 0 0 20px rgba(121,245,223,.12); }
.ops-brand-mark::before { position: absolute; inset: 8px; content: ""; border: 1px solid rgba(121,245,223,.35); border-radius: 9px; transform: rotate(45deg); }
.ops-brand-mark span { position: relative; z-index: 1; display: block; width: 19px; height: 2px; margin: 2px 0; border-radius: 8px; background: var(--cyan); box-shadow: 0 0 8px var(--cyan); }
.ops-brand-mark span:nth-child(2) { width: 27px; opacity: .62; }
.ops-brand-mark span:nth-child(3) { width: 13px; opacity: .84; }
.ops-kicker, .ops-eyebrow { margin: 0 0 6px; color: var(--cyan); font-family: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace; font-size: 11px; font-weight: 700; letter-spacing: .16em; line-height: 1.35; text-transform: uppercase; }
.ops-brand h1 { margin: 0; color: #f7f4ed; font-size: clamp(1.28rem, 1.8vw, 1.72rem); font-weight: 760; letter-spacing: .17em; line-height: 1.1; }
.ops-header-status { display: flex; align-items: center; gap: 10px; color: #a6bbc5; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 12px; letter-spacing: .1em; white-space: nowrap; }
.ops-header-status i { display: block; width: 1px; height: 19px; margin: 0 6px; background: var(--line); }
.ops-header-status [data-ops-ai-status] { color: var(--cyan); }
.ops-header-status [data-ops-ai-status].online { color: var(--green); }
.status-pulse, .live-badge i, .integrity-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 0 4px rgba(255,210,122,.1), 0 0 15px var(--amber); animation: pulse 2.2s ease-in-out infinite; }
.ops-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; min-width: 350px; }
.viewer-chip, .panel-badge, .ops-clock { display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(121, 245, 223, .27); border-radius: 999px; background: rgba(13, 36, 45, .58); color: #a4f7ea; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 11px; font-weight: 700; letter-spacing: .08em; line-height: 1; white-space: nowrap; }
.viewer-chip { padding: 9px 12px; }
.viewer-chip b { color: var(--cyan); font-size: 12px; }
.ops-clock { padding: 9px 10px; border-color: var(--line); color: #a4b4c7; }
.roster-trigger { display: inline-flex; align-items: center; gap: 10px; min-height: 38px; padding: 0 12px; border: 1px solid rgba(121, 245, 223, .32); border-radius: 10px; background: rgba(27, 70, 75, .42); color: var(--cyan); cursor: pointer; font-size: 12px; font-weight: 800; letter-spacing: .09em; }
.roster-trigger:hover { border-color: var(--cyan); background: rgba(43, 103, 105, .46); }
kbd { display: inline-grid; place-items: center; min-width: 22px; height: 21px; padding: 0 5px; border: 1px solid rgba(163, 200, 215, .25); border-bottom-color: rgba(163, 200, 215, .5); border-radius: 5px; background: rgba(3, 9, 17, .62); color: #d8e5ed; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; line-height: 1; }

.ops-navigation { position: relative; z-index: 1; display: flex; align-items: center; gap: 7px; min-height: 54px; padding: 8px 4px; overflow-x: auto; border-bottom: 1px solid var(--line); scrollbar-width: thin; scrollbar-color: rgba(120, 245, 222, .3) transparent; }
.ops-navigation button { position: relative; flex: 0 0 auto; padding: 11px 14px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #92a7b9; cursor: pointer; font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.ops-navigation button::after { position: absolute; right: 14px; bottom: -9px; left: 14px; height: 2px; content: ""; background: transparent; }
.ops-navigation button:hover { color: var(--ink); background: rgba(122, 179, 203, .08); }
.ops-navigation button.active { border-color: rgba(121, 245, 223, .23); background: rgba(68, 123, 130, .14); color: var(--cyan); }
.ops-navigation button.active::after { background: var(--cyan); box-shadow: 0 0 14px var(--cyan); }

.ops-monitor-rail { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; height: 47px; padding: 7px 3px 6px; overflow: hidden; border-bottom: 1px solid rgba(142, 180, 207, .11); }
.mini-monitor { display: grid; grid-template-columns: auto auto; align-items: center; gap: 3px 8px; min-width: 120px; padding: 5px 9px; border: 1px solid rgba(131, 185, 208, .14); border-radius: 7px; background: linear-gradient(135deg, rgba(12, 26, 42, .72), rgba(6, 13, 24, .65)); font-family: "IBM Plex Mono", Consolas, monospace; }
.mini-monitor span { color: var(--dim); font-size: 9px; letter-spacing: .12em; }
.mini-monitor b { color: var(--cyan); font-size: 10px; letter-spacing: .06em; }
.mini-monitor i { grid-column: 1 / -1; display: block; width: 100%; height: 2px; overflow: hidden; border-radius: 3px; background: rgba(96, 144, 165, .15); }
.mini-monitor i::before { display: block; width: 68%; height: 100%; content: ""; background: var(--cyan); box-shadow: 0 0 8px currentColor; animation: telemetry 3s ease-in-out infinite; }
.monitor-green b { color: var(--green); }.monitor-green i::before { width: 84%; background: var(--green); }.monitor-amber b { color: var(--amber); }.monitor-amber i::before { width: 42%; background: var(--amber); }.monitor-red b { color: var(--red); }.monitor-red i::before { width: 22%; background: var(--red); }
.rail-signal { margin-left: auto; color: #71859a; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; letter-spacing: .11em; white-space: nowrap; }
.rail-signal span { display: inline-block; width: 6px; height: 6px; margin-right: 5px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 12px var(--cyan); }.rail-signal b { margin-left: 7px; color: var(--cyan); }

.ops-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(340px, .83fr) minmax(520px, 1.47fr); gap: 14px; padding-top: 14px; }
.ops-side-stack { display: grid; grid-template-rows: minmax(350px, .9fr) minmax(320px, 1.1fr); gap: 14px; min-width: 0; }
.ops-panel { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(145deg, rgba(14, 26, 42, .86), rgba(7, 14, 26, .94)); box-shadow: inset 0 1px 0 rgba(255,255,255,.025), 0 12px 30px rgba(0,0,0,.14); }
.ops-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-height: 82px; padding: 20px 20px 14px; border-bottom: 1px solid var(--line); }
.ops-panel-head h2 { margin: 0; color: #f2f6fb; font-size: clamp(1.15rem, 1.5vw, 1.45rem); font-weight: 720; letter-spacing: -.02em; }
.ops-panel-head .ops-eyebrow { color: #6fe3d5; }
.live-badge { display: inline-flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid rgba(145, 232, 165, .23); border-radius: 7px; color: var(--green); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.live-badge i { width: 6px; height: 6px; background: var(--green); box-shadow: 0 0 12px var(--green); }
.panel-badge { padding: 7px 9px; border-color: rgba(255,210,122,.25); background: rgba(61, 47, 25, .28); color: var(--amber); font-size: 10px; letter-spacing: .08em; }
.panel-badge-muted { border-color: var(--line); background: rgba(16, 29, 45, .42); color: #8396aa; }

.ops-chat-pane { display: flex; flex-direction: column; min-height: 745px; }
.ops-channel-switch { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin: 14px 16px 10px; padding: 4px; border: 1px solid rgba(124, 171, 195, .15); border-radius: 10px; background: rgba(4, 10, 19, .5); }
.ops-channel-switch button { min-height: 34px; padding: 0 7px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: #8398ad; cursor: pointer; font-size: 10px; font-weight: 800; letter-spacing: .05em; white-space: nowrap; }
.ops-channel-switch button:hover { color: var(--ink); }
.ops-channel-switch button.active { border-color: rgba(121, 245, 223, .25); background: rgba(92, 163, 155, .16); color: var(--cyan); box-shadow: inset 0 0 14px rgba(121,245,223,.05); }
.ops-chat-address { display: flex; align-items: center; gap: 8px; min-height: 33px; margin: 0 20px; color: #9aafc1; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 11px; letter-spacing: .05em; }
.address-dot { width: 7px; height: 7px; border: 1px solid var(--cyan); border-radius: 50%; background: rgba(121, 245, 223, .34); box-shadow: 0 0 10px rgba(121,245,223,.62); }
.address-lock { margin-left: auto; color: #60758b; font-size: 9px; letter-spacing: .08em; }
#opsChatRecipient { max-width: 190px; border: 0; border-bottom: 1px solid rgba(121,245,223,.32); background: transparent; color: var(--cyan); font-size: 11px; }
.ops-chat-note { min-height: 35px; margin: 3px 20px 8px; color: #71869b; font-size: 12px; line-height: 1.45; }
.ops-chat-messages { flex: 1; min-height: 325px; max-height: 435px; padding: 6px 18px 12px; overflow-y: auto; scrollbar-color: rgba(121,245,223,.28) transparent; scrollbar-width: thin; }
.ops-message { display: flex; align-items: flex-start; gap: 10px; max-width: 92%; margin: 10px 0; animation: rise .24s ease-out both; }
.ops-message.from-player { flex-direction: row-reverse; margin-left: auto; }
.ops-message-avatar, .ops-avatar { position: relative; display: inline-grid; flex: 0 0 auto; place-items: center; width: 35px; height: 35px; overflow: hidden; border: 1px solid rgba(121,245,223,.3); border-radius: 10px; background: #17283a; color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 12px; font-weight: 800; }
.ops-message-avatar img, .ops-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ops-message-avatar i, .ops-avatar i { position: relative; z-index: 0; font-style: normal; }
.ops-message-avatar img + i, .ops-avatar img + i { display: none; }
.ops-message-body { min-width: 0; padding: 9px 11px; border: 1px solid rgba(123, 173, 198, .15); border-radius: 12px 12px 12px 4px; background: rgba(13, 27, 44, .72); }
.from-player .ops-message-body { border-color: rgba(121,245,223,.25); border-radius: 12px 12px 4px 12px; background: rgba(27, 67, 70, .4); }
.ops-message-body small { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; color: #8ba8ba; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; font-weight: 700; letter-spacing: .05em; }
.from-player .ops-message-body small { justify-content: flex-end; color: var(--cyan); }
.ops-message-body time { color: #5e7386; font-size: 9px; font-weight: 400; }
.ops-message-body p { margin: 0; color: #d7e4ed; font-size: 13px; line-height: 1.52; white-space: pre-wrap; }
.ops-empty-chat { display: grid; place-items: center; align-content: center; min-height: 270px; padding: 20px; text-align: center; }
.ops-empty-chat span { display: grid; place-items: center; width: 49px; height: 49px; margin-bottom: 13px; border: 1px solid rgba(121,245,223,.3); border-radius: 14px; color: var(--cyan); font-size: 25px; box-shadow: 0 0 30px rgba(121,245,223,.08); }
.ops-empty-chat b { color: #e0ebf3; font-size: 15px; }.ops-empty-chat small { max-width: 280px; margin-top: 8px; color: #75899c; font-size: 12px; line-height: 1.5; }
.ops-chat-form { margin: auto 16px 0; padding: 12px; border: 1px solid rgba(123, 173, 198, .18); border-radius: 11px; background: rgba(3, 9, 17, .58); }
.ops-chat-form textarea { display: block; width: 100%; min-height: 54px; resize: vertical; border: 0; outline: none; background: transparent; color: #e4f2f8; font-size: 13px; line-height: 1.45; }
.ops-chat-form textarea::placeholder { color: #60768b; }
.chat-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 9px; border-top: 1px solid rgba(123,173,198,.12); color: #60768b; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; }
.chat-form-actions button { display: inline-flex; align-items: center; gap: 9px; min-height: 32px; padding: 0 12px; border: 1px solid rgba(121,245,223,.48); border-radius: 7px; background: rgba(64, 141, 133, .3); color: var(--cyan); cursor: pointer; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.chat-form-actions button:hover { background: rgba(75, 173, 158, .42); box-shadow: 0 0 20px rgba(121,245,223,.1); }.chat-form-actions button b { font-size: 15px; }
.ops-chat-hint { margin: 10px 20px 17px; color: #53697c; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; line-height: 1.45; }

.ops-rival-panel, .ops-team-panel { display: flex; flex-direction: column; min-height: 0; }
.ops-rival-content, .ops-team-content { flex: 1; min-height: 0; overflow: auto; scrollbar-width: thin; scrollbar-color: rgba(121,245,223,.28) transparent; }
.ops-rival-idle, .ops-team-idle { display: grid; place-items: center; align-content: center; min-height: 285px; padding: 25px 30px; text-align: center; }
.ops-rival-idle small, .ops-team-idle small { color: var(--amber); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; font-weight: 700; letter-spacing: .16em; }.ops-rival-idle p, .ops-team-idle p { max-width: 510px; margin: 12px 0 0; color: #8094a7; font-size: 13px; line-height: 1.6; }.ops-team-idle p { max-width: 480px; }
.ops-idle-circuit { display: flex; align-items: center; gap: 8px; margin-bottom: 22px; }.ops-idle-circuit span, .ops-idle-circuit i, .ops-idle-circuit b, .ops-idle-circuit u { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid rgba(121,245,223,.24); border-radius: 9px; color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 15px; font-style: normal; font-weight: 700; text-decoration: none; }.ops-idle-circuit i, .ops-idle-circuit b, .ops-idle-circuit u { color: #72879a; }.ops-idle-circuit::before, .ops-idle-circuit::after { display: block; width: 19px; height: 1px; content: ""; background: linear-gradient(90deg, var(--cyan), transparent); opacity: .6; }.ops-idle-circuit::after { background: linear-gradient(90deg, transparent, var(--violet)); }
.ops-team-idle > span { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 14px; border: 1px solid rgba(121,245,223,.3); border-radius: 14px; color: var(--cyan); font-size: 25px; box-shadow: 0 0 30px rgba(121,245,223,.1); }.ops-team-idle b { display: block; color: #e3eef5; font-size: 15px; }.ops-team-idle button { margin-top: 18px; padding: 9px 13px; border: 1px solid rgba(121,245,223,.32); border-radius: 8px; background: rgba(51, 111, 109, .28); color: var(--cyan); cursor: pointer; font-size: 12px; font-weight: 700; }

.ops-system-head, .ops-mission-strip { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid rgba(123,173,198,.13); }.ops-system-head small, .ops-mission-strip small { display: block; margin-bottom: 4px; color: #6d8498; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; letter-spacing: .09em; }.ops-system-head b, .ops-mission-strip b { color: #dceaf2; font-size: 14px; }.ops-system-head > span { color: var(--violet); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; letter-spacing: .1em; }
.ops-network-stage { position: relative; min-height: 245px; margin: 14px 18px 0; overflow: hidden; border: 1px solid rgba(100, 165, 190, .17); border-radius: 11px; background: radial-gradient(circle at 50% 50%, rgba(35, 79, 107, .22), transparent 58%), #07111e; }.ops-network-grid { position: absolute; inset: 0; opacity: .45; background-image: linear-gradient(rgba(85, 145, 169, .11) 1px, transparent 1px), linear-gradient(90deg, rgba(85, 145, 169, .11) 1px, transparent 1px); background-size: 32px 32px; }.ops-network-wires { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }.ops-network-link { stroke: rgba(91, 192, 202, .37); stroke-width: .45; stroke-dasharray: 2 2; }.ops-network-link.is-blocked { stroke: rgba(255,109,136,.65); stroke-dasharray: 1 2; }.ops-network-node { position: absolute; top: var(--node-y); left: var(--node-x); display: grid; grid-template-columns: 27px 1fr; grid-template-rows: auto auto; gap: 2px 7px; width: 122px; padding: 6px; transform: translate(-50%, -50%); border: 1px solid rgba(111, 179, 196, .18); border-radius: 8px; background: rgba(7, 17, 29, .86); cursor: pointer; text-align: left; }.ops-network-node > span { grid-row: 1 / 3; display: grid; place-items: center; align-self: center; width: 27px; height: 27px; border: 1px solid rgba(121,245,223,.3); border-radius: 7px; color: #71889a; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 13px; }.ops-network-node b { overflow: hidden; color: #cde0eb; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.ops-network-node small { overflow: hidden; color: #70869a; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.ops-network-node.is-reachable { border-color: rgba(121,245,223,.38); box-shadow: 0 0 17px rgba(121,245,223,.08); }.ops-network-node.is-reachable > span { color: var(--cyan); }.ops-network-node.is-selected { border-color: var(--amber); box-shadow: 0 0 22px rgba(255,210,122,.14); }.ops-network-node.is-selected > span { border-color: var(--amber); color: var(--amber); }.ops-network-node.is-isolated { border-color: rgba(255,109,136,.45); }.ops-network-stamp { position: absolute; right: 9px; bottom: 8px; color: #557087; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; letter-spacing: .08em; }.ops-network-stamp i { color: #637b8f; font-style: normal; }
.ops-rival-meter { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 13px 18px; }.ops-rival-meter span, .ops-meter span { display: grid; grid-template-columns: 1fr auto; gap: 5px; color: #7690a3; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; }.ops-rival-meter b, .ops-meter i { color: #b5cbd6; font-style: normal; font-weight: 600; }.ops-rival-meter i, .ops-meter em { grid-column: 1 / -1; display: block; height: 4px; overflow: hidden; border-radius: 10px; background: rgba(112, 158, 176, .15); }.ops-rival-meter u, .ops-meter u { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #4ab5c7, var(--cyan)); box-shadow: 0 0 8px rgba(121,245,223,.43); text-decoration: none; }.ops-rival-meter u.exposure, .ops-meter u.exposure { background: linear-gradient(90deg, #c28d55, var(--amber)); box-shadow: 0 0 8px rgba(255,210,122,.35); }.ops-rival-meter u.network { background: linear-gradient(90deg, #8090f8, var(--violet)); }
.ops-intel-feed { padding: 0 18px 17px; }.ops-feed-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }.ops-feed-title b { color: #dceaf1; font-size: 12px; }.ops-feed-title small { color: #697f91; font-size: 10px; }.ops-intel-row { display: grid; grid-template-columns: 23px minmax(0, 1fr) auto; align-items: start; gap: 8px; padding: 9px 0; border-top: 1px solid rgba(120,161,182,.1); }.ops-intel-row > span { display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid rgba(121,245,223,.25); border-radius: 6px; color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 11px; }.ops-intel-row small { display: block; margin-bottom: 3px; color: #74899c; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; letter-spacing: .08em; }.ops-intel-row p { margin: 0; color: #c7d8e2; font-size: 11px; line-height: 1.42; }.ops-intel-row button { align-self: center; padding: 5px 7px; border: 1px solid rgba(121,245,223,.23); border-radius: 6px; background: transparent; color: var(--cyan); cursor: pointer; font-size: 9px; }.ops-intel-row.severity-high > span { border-color: rgba(255,109,136,.45); color: var(--red); }.ops-intel-row.severity-high p { color: #ffd7de; }.shared-label { align-self: center; color: var(--green); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; white-space: nowrap; }.ops-no-intel { display: flex; gap: 9px; padding: 11px 0 0; color: #748b9d; font-size: 11px; line-height: 1.45; }.ops-no-intel i { color: var(--violet); font-style: normal; }
.ops-alarm-banner { display: flex; gap: 10px; margin: 12px 18px 0; padding: 10px 12px; border: 1px solid rgba(255,109,136,.42); border-radius: 8px; background: rgba(108, 31, 50, .23); }.ops-alarm-banner > span { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 6px; background: rgba(255,109,136,.2); color: var(--red); font-family: "IBM Plex Mono", Consolas, monospace; font-weight: 800; }.ops-alarm-banner b { display: block; color: #ffbecb; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; letter-spacing: .07em; }.ops-alarm-banner small { display: block; margin-top: 3px; color: #bb7b89; font-size: 10px; }

.ops-mission-strip { padding: 12px 16px; }.ops-mission-strip > strong { color: var(--amber); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 14px; }.ops-meter { display: grid; grid-template-columns: repeat(2, minmax(100px, 1fr)); gap: 7px 14px; width: min(260px, 35%); }.ops-meter span { font-size: 8px; }.ops-team-roster { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; padding: 12px 16px; }.ops-operator-card { display: grid; grid-template-columns: 33px 1fr; gap: 1px 8px; padding: 8px; border: 1px solid rgba(120, 165, 185, .14); border-radius: 8px; background: rgba(4, 11, 20, .45); cursor: pointer; text-align: left; }.ops-operator-card:hover, .ops-operator-card.active { border-color: rgba(121,245,223,.34); background: rgba(23, 59, 67, .34); }.ops-operator-card .ops-avatar { grid-row: 1 / 4; width: 33px; height: 33px; border-radius: 8px; }.ops-operator-card b { overflow: hidden; color: #dbe9f1; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.ops-operator-card small { overflow: hidden; color: #738a9b; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.ops-operator-card em { overflow: hidden; color: var(--cyan); font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }.ops-health-track { grid-column: 1 / -1; display: block; height: 3px; margin-top: 4px; overflow: hidden; border-radius: 5px; background: rgba(115,160,177,.14); }.ops-health-track span { display: block; height: 100%; border-radius: inherit; background: var(--green); }
.ops-assignment-view { min-height: 245px; margin: 0 16px; border: 1px solid rgba(120,165,185,.16); border-radius: 9px; overflow: hidden; background: #06101c; }.ops-terminal { min-height: 245px; padding-bottom: 12px; background: radial-gradient(circle at 50% 0%, rgba(57,120,140,.14), transparent 54%), #050c15; }.ops-terminal-bar { display: flex; align-items: center; gap: 5px; padding: 8px 10px; border-bottom: 1px solid rgba(121,245,223,.13); color: #7592a1; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; letter-spacing: .1em; }.ops-terminal-bar i { display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }.ops-terminal-bar i:nth-child(2) { background: var(--amber); }.ops-terminal-bar i:nth-child(3) { background: var(--green); }.ops-terminal-bar span { margin-left: 6px; }.ops-terminal-lines { padding: 12px 14px; }.ops-terminal-lines > div { display: grid; grid-template-columns: 27px 70px 1fr; gap: 8px; padding: 5px 0; border-bottom: 1px dashed rgba(100,154,176,.1); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; }.ops-terminal-lines i { color: #577487; font-style: normal; }.ops-terminal-lines b { color: var(--cyan); font-weight: 500; }.ops-terminal-lines span { overflow: hidden; color: #9bb4c1; text-overflow: ellipsis; white-space: nowrap; }.ops-terminal-cursor { margin: 0 14px; color: #657e8c; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; }.ops-terminal-cursor span { display: inline-block; width: 6px; height: 11px; margin-right: 4px; vertical-align: -2px; background: var(--cyan); animation: blink 1s steps(2) infinite; }
.ops-actions { display: grid; grid-template-columns: 145px 145px 1fr; align-items: end; gap: 9px; padding: 12px 16px 15px; }.ops-actions label, .ops-recovery-card label, .ops-field-label { display: grid; gap: 5px; color: #7890a1; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; letter-spacing: .07em; }.ops-actions select, .ops-recovery-card select, .ops-field-label select, .ops-client-card + * input, #opsCounterAmount { width: 100%; min-height: 31px; padding: 0 7px; border: 1px solid rgba(120,165,185,.2); border-radius: 6px; background: rgba(4,11,20,.7); color: #d7e9ef; font-size: 11px; }.ops-action-buttons { display: flex; flex-wrap: wrap; gap: 5px; }.ops-action-buttons button { min-height: 31px; padding: 0 8px; border: 1px solid rgba(121,245,223,.26); border-radius: 6px; background: rgba(37, 90, 93, .24); color: var(--cyan); cursor: pointer; font-size: 9px; font-weight: 700; }.ops-action-buttons button:hover { background: rgba(61, 139, 128, .35); }.ops-action-buttons button[data-sim-action="defend"] { border-color: rgba(255,109,136,.46); color: var(--red); }

.ops-command-rail { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 65px; margin-top: 14px; padding: 12px 13px; border: 1px solid rgba(120,165,185,.15); border-radius: 11px; background: rgba(4, 10, 18, .55); }.command-rail-brand { display: flex; align-items: center; gap: 9px; }.command-square { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid rgba(121,245,223,.36); border-radius: 8px; color: var(--cyan); }.command-rail-brand b { display: block; color: #dbeaf1; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; letter-spacing: .13em; }.command-rail-brand small { display: block; margin-top: 2px; color: #617789; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; letter-spacing: .06em; }.command-shortcuts { display: flex; align-items: center; gap: 15px; color: #71879a; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; }.command-shortcuts span { display: inline-flex; align-items: center; gap: 5px; }.command-integrity { color: #7890a0; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; letter-spacing: .08em; white-space: nowrap; }.command-integrity b { color: var(--green); }.integrity-dot { width: 6px; height: 6px; margin-right: 5px; background: var(--green); box-shadow: 0 0 10px var(--green); }

.ops-nav-sheet { position: absolute; z-index: 5; top: 114px; right: 18px; bottom: 92px; display: flex; flex-direction: column; width: min(720px, calc(100% - 36px)); overflow: hidden; border: 1px solid rgba(121,245,223,.35); border-radius: 14px; background: linear-gradient(145deg, rgba(10, 23, 37, .995), rgba(4, 10, 19, .995)); box-shadow: -20px 25px 75px rgba(0,0,0,.55), 0 0 35px rgba(121,245,223,.08); opacity: 0; pointer-events: none; transform: translateX(18px); transition: opacity .2s ease, transform .24s ease; }.ops-nav-sheet.open { opacity: 1; pointer-events: auto; transform: translateX(0); }.ops-nav-sheet-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 20px 20px 15px; border-bottom: 1px solid var(--line); }.ops-nav-sheet-head h2 { margin: 0; font-size: 1.35rem; }.sheet-close { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(121,245,223,.3); border-radius: 10px; background: rgba(17, 46, 56, .34); color: var(--cyan); cursor: pointer; font-size: 26px; font-weight: 300; line-height: 1; }.sheet-close:hover { border-color: var(--cyan); background: rgba(44, 104, 103, .42); }.ops-nav-content { flex: 1; padding: 17px 20px 25px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(121,245,223,.28) transparent; }.ops-nav-explain { margin: 0 0 15px; color: #8499aa; font-size: 13px; line-height: 1.5; }
.ops-contracts-intro { padding: 12px 14px; border: 1px solid rgba(121,245,223,.16); border-radius: 9px; background: rgba(17, 55, 58, .24); }.ops-contracts-intro small { color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; letter-spacing: .12em; }.ops-contracts-intro p { margin: 6px 0 0; color: #9eb3bf; font-size: 12px; line-height: 1.5; }.ops-contract-list { display: grid; gap: 10px; margin-top: 12px; }.ops-contract-card { padding: 13px; border: 1px solid rgba(120,165,185,.16); border-radius: 9px; background: rgba(8,18,30,.66); }.ops-contract-card:hover { border-color: rgba(121,245,223,.32); }.ops-contract-top, .ops-contract-card > div:last-of-type { display: flex; justify-content: space-between; gap: 8px; color: #758a9d; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; }.ops-contract-top span { color: var(--cyan); }.ops-contract-card h4 { margin: 9px 0 5px; color: #e3edf3; font-size: 15px; }.ops-contract-card p { margin: 0 0 10px; color: #8ea3b2; font-size: 12px; line-height: 1.5; }.ops-contract-card > div:last-of-type b { color: var(--amber); }.ops-contract-card button, .ops-client-actions button, .ops-client-questions button, .ops-client-actions + button, .ops-counter-form button, .ops-accepted button, .ops-item-grid button, .ops-recovery-card button, .ops-save-squad { margin-top: 10px; min-height: 31px; padding: 0 10px; border: 1px solid rgba(121,245,223,.26); border-radius: 6px; background: rgba(36, 87, 91, .28); color: var(--cyan); cursor: pointer; font-size: 10px; font-weight: 700; }.ops-contract-card button:hover, .ops-item-grid button:hover, .ops-recovery-card button:hover, .ops-save-squad:hover { background: rgba(53, 127, 118, .38); }.ops-client-card { display: flex; gap: 11px; padding: 12px; border: 1px solid rgba(121,245,223,.2); border-radius: 9px; background: rgba(20, 59, 63, .24); }.ops-client-face { display: grid; flex: 0 0 auto; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(121,245,223,.37); border-radius: 10px; color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 18px; font-weight: 700; }.ops-client-card small { color: #7fa89f; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; letter-spacing: .07em; }.ops-client-card h4 { margin: 4px 0; font-size: 15px; }.ops-client-card p { margin: 0; color: #96aab7; font-size: 11px; line-height: 1.45; }.ops-client-terms { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin: 11px 0; }.ops-client-terms div { padding: 8px; border: 1px solid rgba(120,165,185,.14); border-radius: 7px; background: rgba(4,11,20,.45); }.ops-client-terms span { display: block; color: #71869a; font-size: 9px; }.ops-client-terms b { display: block; margin-top: 4px; color: var(--amber); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 11px; }.ops-subtitle { margin: 15px 0 7px; color: #a9bfca; font-size: 11px; letter-spacing: .04em; }.ops-brief-details { margin: 0; padding-left: 17px; color: #839aaa; font-size: 11px; line-height: 1.55; }.ops-brief-details li + li { margin-top: 5px; }.ops-client-questions b { display: block; margin-top: 12px; color: #9bb1be; font-size: 11px; }.ops-client-questions > div { display: flex; flex-wrap: wrap; gap: 5px; }.ops-client-questions button { margin-top: 6px; padding: 5px 7px; min-height: 27px; color: #a8c4cf; font-size: 9px; }.ops-client-actions { display: flex; flex-wrap: wrap; gap: 6px; }.ops-client-actions button { margin-top: 11px; }.ops-client-actions .primary, .ops-accepted .primary { border-color: rgba(255,210,122,.4); background: rgba(105, 76, 31, .31); color: var(--amber); }.ops-accepted { margin-top: 14px; padding: 12px; border: 1px solid rgba(145,232,165,.27); border-radius: 8px; background: rgba(33, 79, 50, .2); }.ops-accepted b { color: var(--green); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; }.ops-accepted p { margin: 7px 0 0; color: #98b4a1; font-size: 11px; line-height: 1.45; }
.ops-roster-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.ops-roster-detail { padding: 11px; border: 1px solid rgba(120,165,185,.15); border-radius: 9px; background: rgba(6,15,26,.64); }.ops-roster-detail.selected { border-color: rgba(121,245,223,.34); background: rgba(20, 57, 64, .3); }.ops-roster-detail label { display: grid; grid-template-columns: 37px 1fr; gap: 2px 8px; align-items: center; cursor: pointer; }.ops-roster-detail label input { grid-row: 1 / 3; align-self: start; margin: 10px 0 0 2px; accent-color: var(--cyan); }.ops-roster-detail label .ops-avatar { grid-row: 1 / 3; width: 37px; height: 37px; border-radius: 9px; }.ops-roster-detail label b { color: #e0ecf3; font-size: 12px; }.ops-roster-detail label small { color: #7891a1; font-size: 9px; }.ops-roster-detail p { margin: 9px 0; color: #8fa4b1; font-size: 10px; line-height: 1.5; }.ops-roster-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3px 7px; }.ops-roster-stats span { display: flex; justify-content: space-between; gap: 4px; padding: 3px 5px; border-radius: 4px; background: rgba(108, 150, 168, .08); color: #6f8496; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; }.ops-roster-stats i { color: var(--cyan); font-style: normal; }.ops-roster-detail footer { display: flex; justify-content: space-between; gap: 5px; margin-top: 9px; color: #718699; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; }.ops-form-note { display: block; margin-top: 10px; color: #72889b; font-size: 10px; }.ops-save-squad { width: 100%; margin-top: 14px; min-height: 36px; color: var(--amber); border-color: rgba(255,210,122,.32); background: rgba(89, 69, 31, .25); }
.ops-funds-hero { padding: 15px; border: 1px solid rgba(255,210,122,.22); border-radius: 9px; background: linear-gradient(130deg, rgba(83,64,28,.31), rgba(22,26,38,.24)); }.ops-funds-hero small { display: block; color: #c5a566; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; letter-spacing: .1em; }.ops-funds-hero b { display: block; margin: 5px 0; color: var(--amber); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 24px; }.ops-funds-hero span { color: #8f9e9f; font-size: 10px; }.ops-wallet-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; margin-top: 11px; }.ops-wallet-grid div { display: flex; justify-content: space-between; gap: 6px; padding: 7px; border: 1px solid rgba(120,165,185,.12); border-radius: 6px; color: #839aaa; font-size: 9px; }.ops-wallet-grid span { color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; }.ops-ledger { margin: 0; padding: 0; list-style: none; }.ops-ledger li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(120,165,185,.12); color: #91a7b5; font-size: 10px; }.ops-ledger b { color: var(--green); font-family: "IBM Plex Mono", Consolas, monospace; }.ops-ledger b.negative { color: var(--red); }.ops-recovery-card { margin-bottom: 10px; padding: 13px; border: 1px solid rgba(120,165,185,.15); border-radius: 8px; background: rgba(5,14,24,.55); }.ops-recovery-card h4 { margin: 0 0 10px; color: #dbe7ed; font-size: 13px; }.ops-recovery-card p { margin: 0 0 8px; color: #879ba9; font-size: 11px; line-height: 1.4; }.ops-recovery-card button { width: 100%; }.ops-field-label { margin-bottom: 10px; }.ops-item-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }.ops-item-grid article { display: grid; align-content: start; padding: 10px; border: 1px solid rgba(120,165,185,.14); border-radius: 8px; background: rgba(5,14,24,.55); }.ops-item-grid small { color: var(--violet); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; }.ops-item-grid b { margin-top: 5px; color: #dce9f0; font-size: 12px; }.ops-item-grid p { margin: 6px 0; color: #8095a4; font-size: 10px; line-height: 1.45; }.ops-item-grid span, .ops-item-grid strong { color: var(--amber); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; }.ops-item-grid button { width: 100%; }

.ops-field-view { height: 100%; min-height: 245px; }.ops-field-map-head { display: flex; align-items: center; justify-content: space-between; padding: 9px 11px; border-bottom: 1px solid rgba(121,245,223,.13); }.ops-field-map-head small { display: block; color: #718899; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; letter-spacing: .09em; }.ops-field-map-head b { display: block; margin-top: 3px; color: #c8e0e7; font-size: 11px; }.ops-map-zoom { display: flex; align-items: center; gap: 5px; color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; }.ops-map-zoom button { width: 23px; height: 23px; border: 1px solid rgba(121,245,223,.25); border-radius: 5px; background: rgba(16, 50, 58, .35); color: var(--cyan); cursor: pointer; }.ops-real-map { position: relative; height: 178px; overflow: hidden; background: #102435; }.ops-real-map-fallback { position: absolute; inset: 0; opacity: .65; background: radial-gradient(circle at 34% 34%, rgba(86,184,197,.2), transparent 28%), linear-gradient(35deg, transparent 47%, rgba(130,185,164,.36) 48% 50%, transparent 51%), linear-gradient(125deg, transparent 47%, rgba(216,176,107,.35) 48% 49%, transparent 50%), repeating-linear-gradient(20deg, rgba(94,154,175,.14) 0 1px, transparent 1px 17px); }.ops-map-tiles { position: absolute; display: grid; grid-template-columns: repeat(3, 256px); grid-template-rows: repeat(2, 256px); opacity: .7; }.ops-map-tiles img { position: absolute; width: 256px; height: 256px; image-rendering: auto; }.ops-map-vignette { position: absolute; inset: 0; background: radial-gradient(circle, transparent 45%, rgba(4,10,18,.72) 100%); }.ops-map-marker { position: absolute; z-index: 1; display: flex; align-items: center; gap: 4px; transform: translate(-50%, -50%); color: #dceaf1; font-size: 9px; white-space: nowrap; }.ops-map-marker i { display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid var(--cyan); border-radius: 50%; background: rgba(11,58,64,.85); color: var(--cyan); font-style: normal; }.marker-objective i { border-color: var(--red); background: rgba(87, 32, 49, .8); color: var(--red); }.ops-map-attribution { position: absolute; right: 4px; bottom: 3px; z-index: 2; color: #91a9ae; font-size: 8px; }.ops-map-state { position: absolute; top: 7px; right: 7px; z-index: 2; padding: 4px 6px; border: 1px solid rgba(121,245,223,.24); border-radius: 4px; background: rgba(3,10,18,.62); color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; }.ops-map-evidence { padding: 7px 10px; }.ops-map-evidence small { color: #718898; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; }.ops-map-evidence small i { color: var(--cyan); font-style: normal; }.ops-map-evidence > div { display: flex; flex-wrap: wrap; gap: 5px 10px; margin-top: 5px; color: #8da4ae; font-size: 9px; }.ops-map-evidence span { display: inline-flex; align-items: center; gap: 4px; }.ops-map-evidence i { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--cyan); }.evidence-objective i { background: var(--red); }.evidence-route i { background: var(--amber); }.evidence-pending i { background: #6d8092; }

.ops-toast { position: fixed; right: 35px; bottom: 28px; z-index: 10; max-width: min(420px, calc(100vw - 50px)); padding: 11px 14px; border: 1px solid rgba(255,109,136,.35); border-radius: 8px; background: rgba(45, 18, 29, .95); color: #ffd7df; box-shadow: 0 12px 40px rgba(0,0,0,.4); font-size: 12px; line-height: 1.4; opacity: 0; pointer-events: none; transform: translateY(7px); transition: opacity .18s ease, transform .18s ease; }.ops-toast.visible { opacity: 1; transform: translateY(0); }.ops-desk.is-busy::after { position: absolute; inset: 0; z-index: 8; pointer-events: none; content: ""; background: linear-gradient(90deg, transparent, rgba(121,245,223,.04), transparent); animation: sweep 1.1s linear infinite; }

.ops-skill-codex { display: grid; gap: 6px; margin: 10px 0; padding: 9px 10px; border: 1px dashed rgba(167,139,250,.35); border-radius: 8px; background: rgba(35,22,58,.28); }
.ops-codex-title { display: block; color: var(--violet); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.ops-codex-entry b { display: block; color: #e3d9fb; font-size: 10.5px; }
.ops-codex-entry b i { color: var(--violet); font-size: 9px; font-style: normal; }
.ops-codex-entry p { margin: 2px 0; color: #a9a0c4; font-size: 10px; line-height: 1.5; }
.ops-codex-entry small { display: block; color: #8a81a8; font-size: 9px; }
.ops-codex-lab-link { display: inline-block; margin-top: 5px; color: var(--cyan); font-size: 9.5px; text-decoration: none; }
.ops-codex-lab-link:hover { text-decoration: underline; }
.ops-codex-note { margin-top: 2px; color: #746b91; font-size: 8.5px; font-style: italic; }
.ops-avatar-zoomable { padding: 0; border: 1px solid rgba(121,245,223,.3); cursor: zoom-in; transition: border-color .15s ease, transform .15s ease; }
.ops-avatar-zoomable:hover, .ops-avatar-zoomable:focus-visible { border-color: var(--cyan); transform: scale(1.06); }

.ops-profile-modal { position: fixed; inset: 0; z-index: 9; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(3,7,13,.76); }
.ops-profile-card { position: relative; width: min(480px, 100%); max-height: min(640px, 88vh); overflow-y: auto; padding: 26px 22px 22px; border: 1px solid rgba(121,245,223,.35); border-radius: 16px; background: linear-gradient(160deg, rgba(10,23,37,.99), rgba(4,10,19,.99)); box-shadow: 0 30px 90px rgba(0,0,0,.55), 0 0 40px rgba(121,245,223,.1); scrollbar-width: thin; scrollbar-color: rgba(121,245,223,.28) transparent; }
.ops-profile-card .sheet-close { position: absolute; top: 14px; right: 14px; }
.ops-profile-head { display: flex; align-items: center; gap: 14px; padding-right: 40px; }
.ops-profile-avatar-img { width: 72px; height: 72px; border-radius: 14px; }
.ops-profile-head small { display: block; color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; letter-spacing: .07em; }
.ops-profile-head h3 { margin: 4px 0 2px; font-size: 1.2rem; }
.ops-profile-head h3 span { color: #8499aa; font-size: .75rem; font-weight: 500; }
.ops-profile-role { margin: 0; color: #8fa4b1; font-size: 11px; }
.ops-profile-personality { margin: 14px 0; color: #a9bcc9; font-size: 12px; line-height: 1.6; }
.ops-profile-card .ops-subtitle { margin: 16px 0 6px; color: #7ee9d6; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.ops-profile-card p { margin: 0; color: #a9bcc9; font-size: 11.5px; line-height: 1.6; }
.ops-profile-powers { display: grid; gap: 8px; }
.ops-profile-power { padding: 9px 11px; border: 1px solid rgba(120,165,185,.16); border-radius: 8px; background: rgba(6,15,26,.6); }
.ops-profile-power b { display: block; margin-bottom: 3px; color: var(--cyan); font-size: 11px; }
.ops-profile-power p { color: #8fa4b1; font-size: 10.5px; }
.ops-profile-footer { display: flex; justify-content: space-between; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); color: #718699; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; }
.ops-view-profile { width: 100%; margin-top: 9px; min-height: 30px; border: 1px solid rgba(121,245,223,.28); border-radius: 6px; background: rgba(15,42,50,.32); color: var(--cyan); font-size: 9.5px; cursor: pointer; }
.ops-view-profile:hover { border-color: var(--cyan); background: rgba(23,59,67,.4); }

.ops-avatar-lightbox { position: fixed; inset: 0; z-index: 11; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; background: rgba(3,7,13,.84); }
.ops-avatar-lightbox img { width: min(360px, 80vw); height: min(360px, 80vw); object-fit: cover; border: 1px solid rgba(121,245,223,.35); border-radius: 18px; box-shadow: 0 25px 80px rgba(0,0,0,.5); }
.ops-avatar-lightbox p { margin: 0; color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 11px; letter-spacing: .08em; }
.ops-avatar-lightbox .sheet-close { position: absolute; top: 22px; right: 22px; }

.ops-challenge-card { width: min(520px, 100%); }
.ops-challenge-card label { display: block; margin: 10px 0 4px; color: var(--muted); font-size: 12px; }
.ops-challenge-card label input { display: block; width: 100%; margin-top: 5px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; background: #0c1420; color: var(--ink); font: inherit; }
.ops-challenge-card > button, .ops-challenge-card label + button { margin-top: 4px; padding: 9px 16px; border: 1px solid rgba(121,245,223,.35); border-radius: 8px; background: rgba(15,42,50,.4); color: var(--cyan); font: inherit; cursor: pointer; }
.ops-challenge-card > button:hover { border-color: var(--cyan); background: rgba(23,59,67,.55); }
.ops-challenge-card .output { display: block; margin-top: 10px; padding: 12px 14px; border-radius: 8px; background: #05090f; border: 1px solid var(--line); color: #b9d3e0; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 12px; white-space: pre-wrap; word-break: break-word; min-height: 20px; }
.ops-challenge-card .flag { margin-top: 12px; padding: 10px 12px; border: 1px solid rgba(139,232,165,.4); border-radius: 8px; background: rgba(20,46,30,.5); color: var(--green); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 12.5px; }
.ops-challenge-card .hint { margin-top: 14px; font-size: 12px; color: var(--muted); }
.ops-challenge-card .hint summary { cursor: pointer; color: var(--amber); }
.ops-challenge-card [data-confirm-exploit] { width: 100%; margin-top: 10px; min-height: 38px; border: 1px solid rgba(139,232,165,.4); border-radius: 8px; background: rgba(20,46,30,.4); color: var(--green); font: inherit; font-weight: 600; cursor: pointer; }
.ops-exploit-button { margin-left: 6px; border-color: rgba(167,139,250,.4) !important; color: var(--violet) !important; }
.ops-exploit-button:not(:disabled):hover { background: rgba(58,35,94,.4) !important; }

.ops-trace-bar { display: flex; align-items: center; gap: 8px; margin: 12px 0; padding: 7px 10px; border: 1px solid rgba(255,109,136,.3); border-radius: 8px; background: rgba(45,18,29,.35); }
.ops-trace-bar span { color: #ff9fb0; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 9px; letter-spacing: .08em; }
.ops-trace-track { flex: 1; display: block; height: 6px; overflow: hidden; border-radius: 4px; background: rgba(255,109,136,.14); }
.ops-trace-track u { display: block; height: 100%; border-radius: inherit; background: var(--red); transition: width .4s linear; }
.ops-trace-bar b { color: #ffd7df; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 11px; min-width: 42px; text-align: right; }
.ops-trace-track u.is-critical { animation: pulse .6s ease-in-out infinite; }
.ops-trace-bar.is-safe { border-color: rgba(139,232,165,.4); background: rgba(20,46,30,.35); }
.ops-trace-bar.is-safe span, .ops-trace-bar.is-safe b { color: var(--green); }

.ops-terminal-window { border: 1px solid rgba(121,245,223,.25); border-radius: 10px; background: #04070c; overflow: hidden; }
.ops-terminal-output { max-height: 260px; padding: 12px 14px; overflow-y: auto; font-family: "IBM Plex Mono", Consolas, monospace; font-size: 12px; line-height: 1.6; scrollbar-width: thin; scrollbar-color: rgba(121,245,223,.28) transparent; }
.ops-terminal-output .line { white-space: pre-wrap; word-break: break-word; }
.ops-terminal-output .line-cmd { color: var(--cyan); }
.ops-terminal-output .line-out { color: #b9d3e0; }
.ops-terminal-output .line-ok { color: var(--green); }
.ops-terminal-output .line-err { color: var(--red); }
.ops-terminal-inputline { display: flex; align-items: center; gap: 8px; padding: 9px 14px; border-top: 1px solid rgba(121,245,223,.15); background: rgba(121,245,223,.03); }
.ops-terminal-prompt { color: var(--cyan); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 12px; }
.ops-terminal-inputline input { flex: 1; border: none; background: transparent; color: var(--ink); font-family: "IBM Plex Mono", Consolas, monospace; font-size: 12px; outline: none; }
.ops-terminal-inputline input:disabled { opacity: .5; }

@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
@keyframes telemetry { 0%, 100% { transform: translateX(-5%); opacity: .72; } 50% { transform: translateX(7%); opacity: 1; } }
@keyframes rise { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes blink { 0%, 45% { opacity: 1; } 46%, 100% { opacity: 0; } }
@keyframes sweep { from { transform: translateX(-100%); } to { transform: translateX(100%); } }

@media (max-width: 1180px) {
  .ops-header { flex-wrap: wrap; }.ops-header-status { order: 3; width: 100%; }.ops-header-actions { margin-left: auto; }.ops-layout { grid-template-columns: minmax(315px, .75fr) minmax(0, 1.25fr); }.ops-monitor-rail .mini-monitor { min-width: 103px; }.rail-signal { display: none; }
}
@media (max-width: 900px) {
  .ops-desk { padding: 8px; }.ops-shell { min-height: calc(100vh - 16px); padding: 0 10px 12px; border-radius: 15px; }.ops-header { min-height: auto; padding: 16px 5px 13px; }.ops-brand h1 { letter-spacing: .11em; }.ops-header-actions { width: 100%; min-width: 0; justify-content: flex-start; }.viewer-chip { flex: 1; justify-content: center; }.ops-layout { grid-template-columns: 1fr; }.ops-chat-pane { min-height: 590px; }.ops-side-stack { grid-template-rows: minmax(360px, auto) minmax(360px, auto); }.ops-nav-sheet { top: 105px; right: 10px; bottom: 77px; width: calc(100% - 20px); }.ops-command-rail { flex-wrap: wrap; }.command-shortcuts { order: 3; width: 100%; justify-content: space-between; }.command-integrity { margin-left: auto; }
}
@media (max-width: 560px) {
  .ops-brand-mark { width: 43px; height: 43px; }.ops-brand { min-width: 0; gap: 10px; }.ops-kicker { font-size: 9px; }.ops-brand h1 { font-size: 1.12rem; }.ops-header-status { font-size: 10px; }.encrypted-label, .ops-header-status i, .ops-clock { display: none; }.ops-header-actions { gap: 6px; }.viewer-chip { font-size: 9px; }.roster-trigger { padding: 0 8px; }.ops-monitor-rail { display: none; }.ops-panel-head { padding: 16px 14px 12px; }.ops-channel-switch { margin: 11px 10px 7px; }.ops-chat-address, .ops-chat-note { margin-right: 13px; margin-left: 13px; }.address-lock { display: none; }.ops-chat-messages { padding-right: 10px; padding-left: 10px; }.ops-message { max-width: 100%; }.ops-chat-form { margin-right: 10px; margin-left: 10px; }.ops-chat-hint { margin-right: 13px; margin-left: 13px; }.ops-rival-meter { grid-template-columns: 1fr; }.ops-team-roster { grid-template-columns: 1fr; }.ops-meter { width: 43%; }.ops-actions { grid-template-columns: 1fr 1fr; }.ops-action-buttons { grid-column: 1 / -1; }.ops-contract-list, .ops-item-grid, .ops-roster-list { grid-template-columns: 1fr; }.ops-client-terms { grid-template-columns: repeat(2, 1fr); }.ops-command-rail { gap: 8px; }.command-integrity { width: 100%; margin-left: 0; }.command-shortcuts { gap: 5px; font-size: 8px; }.command-shortcuts span:nth-child(3) { display: none; }.ops-nav-content { padding-right: 13px; padding-left: 13px; }
}
