/* ARGUS – Intelligence System CSS */
:root {
  --bg:       #080c14;
  --surface:  #0d1117;
  --surface-2:#161b22;
  --surface-3:#21262d;
  --border:   #30363d;
  --text:     #c9d1d9;
  --text-muted:#8b949e;
  --primary:  #388bfd;
  --primary-d:#1f6feb;
  --accent:   #f0883e;
  --danger:   #f85149;
  --success:  #3fb950;
  --warning:  #d29922;
  --info:     #388bfd;
  --terminal-bg:#03130a;
  --terminal-neon:#39ff14;
  --terminal-fg:#9aff95;
  --radius:   6px;
  --radius-sm:4px;
}

*,*::before,*::after { box-sizing:border-box; }
html { font-size:15px; }
body {
  margin:0; padding:0; background:var(--bg); color:var(--text);
  font-family:'Space Mono','JetBrains Mono','Fira Code',monospace;
  line-height:1.55; min-height:100vh;
}

a { color:var(--primary); text-decoration:none; }
a:hover { text-decoration:underline; }

/* ── Layout ── */
.argus-wrap { display:flex; min-height:100vh; }
.argus-sidebar {
  width:220px; flex-shrink:0; background:var(--surface); border-right:1px solid var(--border);
  display:flex; flex-direction:column; padding:0;
  position:sticky; top:0; height:100vh; overflow-y:auto;
}
.argus-main { flex:1; min-width:0; padding:1.5rem; }

/* ── Sidebar ── */
.argus-logo {
  display:flex; align-items:center; gap:.55rem; padding:1rem 1.1rem;
  border-bottom:1px solid var(--border); font-size:1.15rem; font-weight:800;
  letter-spacing:.06em; color:#fff; text-transform:uppercase;
}
.argus-logo svg { flex-shrink:0; }
.argus-eye {
  filter: drop-shadow(0 0 5px rgba(57,255,20,.6));
}
.argus-nav { padding:.5rem 0; flex:1; }
.argus-nav a {
  display:flex; align-items:center; gap:.55rem; padding:.55rem 1.1rem;
  color:var(--text-muted); font-size:.88rem; border-left:3px solid transparent;
  transition:background .12s,color .12s,border-color .12s;
}
.argus-nav a:hover,
.argus-nav a.active {
  color:var(--text); background:var(--surface-2); text-decoration:none;
  border-left-color:var(--primary);
}
.argus-nav .nav-section {
  padding:.65rem 1.1rem .3rem; font-size:.7rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.1em; color:var(--text-muted);
}
.argus-sidebar-footer {
  padding:.75rem 1.1rem; border-top:1px solid var(--border); font-size:.78rem; color:var(--text-muted);
}
.argus-sidebar-footer strong { color:var(--text); }

/* ── Top bar ── */
.argus-topbar {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:1.25rem; padding-bottom:.75rem; border-bottom:1px solid var(--border);
  flex-wrap:wrap; gap:.5rem;
}
.argus-topbar h1 { margin:0; font-size:1.25rem; font-weight:700; color:#fff; }
.argus-topbar p  { margin:0; color:var(--text-muted); font-size:.85rem; }

/* ── Cards ── */
.ag-card {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  margin-bottom:1rem;
}
.ag-card-header {
  padding:.65rem 1rem; border-bottom:1px solid var(--border);
  font-size:.85rem; font-weight:600; color:#fff;
  display:flex; justify-content:space-between; align-items:center;
}
.ag-card-body { padding:1rem; }

/* ── Grid ── */
.ag-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.ag-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; }
@media(max-width:720px){ .ag-grid-2,.ag-grid-3{ grid-template-columns:1fr; } }

/* ── Buttons ── */
.btn {
  display:inline-flex; align-items:center; gap:.35rem; padding:.42rem .9rem;
  border-radius:var(--radius-sm); font-size:.84rem; font-weight:500; cursor:pointer;
  border:1px solid var(--primary); background:var(--primary); color:#fff;
  transition:filter .12s; white-space:nowrap;
}
.btn:hover { filter:brightness(1.12); text-decoration:none; }
.btn-sm { padding:.28rem .65rem; font-size:.78rem; }
.btn-outline { background:transparent; color:var(--primary); }
.btn-outline:hover { background:rgba(56,139,253,.12); }
.btn-danger { background:var(--danger); border-color:var(--danger); }
.btn-danger:hover { filter:brightness(1.1); }
.btn-ghost { background:transparent; border-color:var(--border); color:var(--text-muted); }
.btn-ghost:hover { background:var(--surface-2); color:var(--text); }
.btn-success { background:var(--success); border-color:var(--success); }
.btn-accent  { background:var(--accent); border-color:var(--accent); }

/* ── Forms ── */
label { display:block; font-size:.8rem; color:var(--text-muted); margin-bottom:.25rem; }
input[type=text], input[type=email], input[type=password], input[type=date],
input[type=time], input[type=url], input[type=number], input[type=search],
select, textarea {
  width:100%; padding:.42rem .7rem; background:var(--surface-2); border:1px solid var(--border);
  border-radius:var(--radius-sm); color:var(--text); font-size:.88rem; font-family:inherit;
  transition:border-color .12s;
}
input:focus,select:focus,textarea:focus { outline:none; border-color:var(--primary); }
textarea { resize:vertical; min-height:80px; }

/* ── Table ── */
.ag-table { width:100%; border-collapse:collapse; font-size:.85rem; }
.ag-table th { padding:.55rem .75rem; text-align:left; color:var(--text-muted); font-weight:600; font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; border-bottom:1px solid var(--border); }
.ag-table td { padding:.55rem .75rem; border-bottom:1px solid var(--border); vertical-align:middle; }
.ag-table tr:last-child td { border-bottom:none; }
.ag-table tr:hover td { background:var(--surface-2); }

/* ── Badges ── */
.badge {
  display:inline-flex; align-items:center; padding:.15rem .5rem; border-radius:9999px;
  font-size:.72rem; font-weight:600; letter-spacing:.04em;
}
.badge-red    { background:rgba(248,81,73,.18); color:var(--danger); border:1px solid rgba(248,81,73,.3); }
.badge-orange { background:rgba(240,136,62,.18); color:var(--accent); border:1px solid rgba(240,136,62,.3); }
.badge-yellow { background:rgba(210,153,34,.18); color:var(--warning); border:1px solid rgba(210,153,34,.3); }
.badge-green  { background:rgba(63,185,80,.18); color:var(--success); border:1px solid rgba(63,185,80,.3); }
.badge-blue   { background:rgba(56,139,253,.18); color:var(--primary); border:1px solid rgba(56,139,253,.3); }
.badge-gray   { background:rgba(139,148,158,.18); color:var(--text-muted); border:1px solid rgba(139,148,158,.3); }

/* ── Alerts ── */
.alert {
  padding:.65rem 1rem; border-radius:var(--radius); margin-bottom:1rem;
  font-size:.88rem; border:1px solid;
}
.alert-success { background:rgba(63,185,80,.1);  border-color:rgba(63,185,80,.35);  color:var(--success); }
.alert-error   { background:rgba(248,81,73,.1);  border-color:rgba(248,81,73,.35);  color:var(--danger); }
.alert-warn    { background:rgba(210,153,34,.1); border-color:rgba(210,153,34,.35); color:var(--warning); }
.alert-info    { background:rgba(56,139,253,.1); border-color:rgba(56,139,253,.35); color:var(--primary); }

/* ── Threat level badges ── */
.tl-critical { background:rgba(248,81,73,.18); color:#f85149; border:1px solid rgba(248,81,73,.35); }
.tl-high     { background:rgba(240,136,62,.18); color:#f0883e; border:1px solid rgba(240,136,62,.35); }
.tl-medium   { background:rgba(210,153,34,.18); color:#d29922; border:1px solid rgba(210,153,34,.35); }
.tl-low      { background:rgba(63,185,80,.18); color:#3fb950; border:1px solid rgba(63,185,80,.35); }
.tl-unknown  { background:rgba(139,148,158,.18); color:#8b949e; border:1px solid rgba(139,148,158,.3); }

/* ── Chat ── */
.chat-wrap { display:flex; height:calc(100vh - 180px); gap:1rem; }
.chat-sidebar { width:200px; flex-shrink:0; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow-y:auto; }
.chat-main  { flex:1; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); }
.chat-messages { flex:1; overflow-y:auto; padding:.75rem; display:flex; flex-direction:column; gap:.5rem; }
.chat-input-row { padding:.65rem .75rem; border-top:1px solid var(--border); display:flex; gap:.5rem; }
.chat-input-row input { flex:1; }
.chat-msg { padding:.45rem .7rem; border-radius:var(--radius-sm); max-width:78%; }
.chat-msg.mine   { background:rgba(56,139,253,.15); align-self:flex-end; }
.chat-msg.theirs { background:var(--surface-2); align-self:flex-start; }
.chat-msg .meta  { font-size:.7rem; color:var(--text-muted); margin-top:.2rem; }
.chat-e2e-badge  { font-size:.7rem; color:var(--success); }

.terminal-panel {
  background:linear-gradient(180deg, #04170d 0%, #071009 100%);
  border:1px solid rgba(57,255,20,.22);
  box-shadow:inset 0 0 0 1px rgba(57,255,20,.05), 0 12px 24px rgba(0,0,0,.35);
}
.chat-nav-item {
  display:block;
  padding:.5rem .75rem;
  font-size:.84rem;
  text-decoration:none;
}
.chat-nav-item:hover {
  background:rgba(57,255,20,.1) !important;
  text-decoration:none;
}
.terminal-scroll {
  background:var(--terminal-bg);
  color:var(--terminal-fg);
  font-family:'JetBrains Mono','Fira Code',monospace;
  position:relative;
}
.terminal-scroll::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(
    to bottom,
    rgba(57,255,20,.05) 0,
    rgba(57,255,20,.05) 1px,
    transparent 1px,
    transparent 3px
  );
}
.terminal-scroll .chat-msg {
  border:1px solid rgba(57,255,20,.22);
  border-radius:2px;
}
.terminal-scroll .chat-msg.mine {
  background:rgba(57,255,20,.08);
  color:#c9ffc1;
}
.terminal-scroll .chat-msg.theirs {
  background:rgba(20,45,20,.45);
}
.terminal-scroll .meta {
  color:#65cf63;
}

.argus-boot-overlay {
  position:fixed;
  inset:0;
  background:radial-gradient(circle at center, rgba(15,42,18,.95), rgba(0,0,0,.98));
  display:none;
  z-index:9999;
  align-items:center;
  justify-content:center;
}
.argus-boot-overlay.active {
  display:flex;
}
.argus-boot-shell {
  width:min(760px,92vw);
  border:1px solid rgba(57,255,20,.35);
  background:#020907;
  box-shadow:0 0 24px rgba(57,255,20,.25);
}
.argus-boot-title {
  padding:.55rem .75rem;
  border-bottom:1px solid rgba(57,255,20,.2);
  color:var(--terminal-neon);
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.78rem;
}
.argus-boot-lines {
  margin:0;
  min-height:220px;
  max-height:60vh;
  overflow:auto;
  padding:.75rem;
  color:var(--terminal-fg);
  font-family:'JetBrains Mono','Fira Code',monospace;
  font-size:.83rem;
  line-height:1.4;
}

/* ── Camera grid ── */
.cam-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:.75rem; }
.cam-frame { background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.cam-frame .cam-label { padding:.4rem .7rem; font-size:.78rem; font-weight:600; display:flex; justify-content:space-between; align-items:center; }
.cam-frame img, .cam-frame video { width:100%; height:220px; object-fit:contain; background:#000; display:block; }
.sigint-cam { cursor:grab; }
.sigint-cam.dragging { opacity:.55; border-color:var(--terminal-neon); box-shadow:0 0 0 2px rgba(57,255,20,.35); }

/* ── Misc ── */
.muted    { color:var(--text-muted); }
.text-danger { color:var(--danger); }
.text-success { color:var(--success); }
.font-mono { font-family:'SFMono-Regular',Consolas,monospace; font-size:.88em; }
.back-link { color:var(--text-muted); font-size:.82rem; }
.back-link:hover { color:var(--text); }
.pre-wrap { white-space:pre-wrap; }
hr { border:none; border-top:1px solid var(--border); margin:1rem 0; }
.spacer { height:.75rem; }

/* ── Responsive sidebar ── */
@media(max-width:640px){
  .argus-sidebar { display:none; }
  .argus-main { padding:1rem; }
}
.sidebar-toggle { display:none; }
@media(max-width:640px){ .sidebar-toggle { display:block; } }

/* ══════════════════════════════════════════════════════════════
   SIGINT/HUMINT-Overhaul: Rollen-Cockpits, Datenanfragen,
   Gruppierungen, Beziehungen, Navigations-Badges
   ══════════════════════════════════════════════════════════════ */

.nav-badge {
    display:inline-block; min-width:18px; padding:0 5px; margin-left:.35rem;
    font-size:.7rem; font-weight:700; line-height:18px; text-align:center;
    color:#fff; background:#ef4444; border-radius:9px; vertical-align:middle;
}

.ag-head { margin-bottom:1.25rem; }
.ag-head h1 { margin:0 0 .2rem; }
.ag-sub { color:var(--text-muted,#8a93a6); font-size:.88rem; margin:0; }

.ag-grid-2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:1rem; }

.ag-card-title { margin:0 0 .85rem; font-size:1rem; font-weight:700; }
.ag-empty { color:var(--text-muted,#8a93a6); font-size:.88rem; text-align:center; padding:1rem 0; }

/* Rollen-Cockpits */
.ag-role-panel { border-left:3px solid var(--primary,#3b82f6); }
.ag-role-sigint { border-left-color:#10b981; }
.ag-role-humint { border-left-color:#8b5cf6; }
.ag-req-line, .ag-request-meta a {
    display:flex; gap:.5rem; align-items:center; padding:.4rem 0;
    border-bottom:1px solid var(--border,#26304a); font-size:.87rem;
}
.ag-req-line:last-child { border-bottom:0; }

/* Datenanfragen */
.ag-form { display:flex; flex-direction:column; gap:.65rem; }
.ag-form label { display:flex; flex-direction:column; gap:.25rem; font-size:.8rem; color:var(--text-muted,#8a93a6); }
.ag-form input, .ag-form textarea, .ag-form select {
    padding:.45rem .55rem; border:1px solid var(--border,#26304a);
    border-radius:6px; background:var(--surface-2,#141a2b); color:var(--text,#e8ecf5); font:inherit;
}
.ag-form-row { display:flex; gap:.65rem; flex-wrap:wrap; }
.ag-form-row label { flex:1; min-width:130px; }

.ag-request {
    border:1px solid var(--border,#26304a); border-left:3px solid var(--border,#26304a);
    border-radius:8px; padding:.75rem .85rem; margin-bottom:.75rem; background:var(--surface-2,#141a2b);
}
.ag-request-urgent { border-left-color:#ef4444; }
.ag-request-high   { border-left-color:#f59e0b; }
.ag-request-normal { border-left-color:#3b82f6; }
.ag-request-low    { border-left-color:#64748b; }
.ag-request-head { display:flex; gap:.5rem; align-items:center; margin-bottom:.4rem; font-size:.8rem; }
.ag-request-by { margin-left:auto; color:var(--text-muted,#8a93a6); }
.ag-request-desc { margin:.2rem 0 .5rem; font-size:.9rem; white-space:pre-line; }
.ag-request-meta { display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:.5rem; }
.ag-request-meta a { border:0; padding:0; }
.ag-request-actions { display:flex; flex-direction:column; gap:.5rem; margin-top:.5rem; }
.ag-request-actions textarea { width:100%; padding:.45rem; border:1px solid var(--border,#26304a); border-radius:6px; background:var(--surface,#0f1420); color:var(--text,#e8ecf5); font:inherit; }

/* Gruppierungen */
.ag-group {
    --grp:#ef4444; border:1px solid var(--border,#26304a); border-radius:8px;
    padding:.75rem .85rem; margin-bottom:.75rem; background:var(--surface-2,#141a2b);
}
.ag-group-head { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.ag-group-dot { width:12px; height:12px; border-radius:50%; background:var(--grp); box-shadow:0 0 6px var(--grp); }
.ag-group-count { margin-left:auto; font-size:.78rem; color:var(--text-muted,#8a93a6); }
.ag-group-desc { margin:.4rem 0; font-size:.85rem; color:var(--text-muted,#8a93a6); }
.ag-group-members { display:flex; gap:.4rem; flex-wrap:wrap; margin:.5rem 0; }

.ag-chip {
    --grp:#3b82f6; display:inline-flex; align-items:center; gap:.3rem;
    padding:.2rem .55rem; border-radius:20px; font-size:.78rem; text-decoration:none;
    color:var(--text,#e8ecf5); background:color-mix(in srgb, var(--grp) 18%, transparent);
    border:1px solid color-mix(in srgb, var(--grp) 45%, transparent);
}

/* Beziehungen */
.ag-rel-list { display:flex; flex-direction:column; gap:.4rem; margin-bottom:.85rem; }
.ag-rel { display:flex; gap:.5rem; align-items:center; padding:.4rem .5rem; background:var(--surface-2,#141a2b); border:1px solid var(--border,#26304a); border-radius:6px; font-size:.85rem; }
.ag-rel-form { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; }
.ag-rel-form select, .ag-rel-form input { padding:.4rem .5rem; border:1px solid var(--border,#26304a); border-radius:6px; background:var(--surface-2,#141a2b); color:var(--text,#e8ecf5); font:inherit; }

.ag-table { width:100%; border-collapse:collapse; font-size:.85rem; }
.ag-table th, .ag-table td { text-align:left; padding:.45rem .55rem; border-bottom:1px solid var(--border,#26304a); }
.ag-table th { color:var(--text-muted,#8a93a6); font-weight:600; }

.badge-info { background:#1e3a5f; color:#7dd3fc; }
.badge-ok   { background:#14532d; color:#86efac; }
.badge-warn { background:#78350f; color:#fcd34d; }
.badge-muted{ background:#334155; color:#cbd5e1; }
.btn-ghost  { background:transparent; border:1px solid var(--border,#26304a); }
