/* ARGUS WordPress Defence -- admin dashboard * Same token palette as argus-appliance's own Reporting Center HTML * output (report_html_helpers.go) -- deliberate, so this reads as part * of the ARGUS family rather than a generic plugin skin (ADR-0053 ยง5's * differentiation goal extends to the UI itself, not just detection). */ .argus-wpd-shell { --bg: #0a0e17; --panel: #10151f; --panel-2: #141b28; --border: rgba(148,163,184,.14); --border-strong: rgba(148,163,184,.24); --text: #e5ecf5; --muted: #93a3b8; --faint: #5c6b82; --cyan: #00d4ff; --cyan-dim: rgba(0,212,255,.12); --violet: #a78bfa; --violet-dim: rgba(167,139,250,.12); --rose: #ff3d3d; --rose-dim: rgba(255,61,61,.12); --amber: #ffaa00; --amber-dim: rgba(255,170,0,.12); --orange: #ff8c1a; --emerald: #00ff88; --emerald-dim: rgba(0,255,136,.12); --mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace; --radius: 12px; /* Full-bleed within WP's #wpbody-content padding */ margin: 0 -20px; padding: 0; background: var(--bg); background-image: radial-gradient(ellipse 900px 500px at 15% -10%, rgba(0,212,255,.08), transparent 60%), radial-gradient(ellipse 700px 500px at 100% 10%, rgba(167,139,250,.06), transparent 55%); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; min-height: calc(100vh - 100px); } .argus-wpd-shell * { box-sizing: border-box; } .argus-wpd-inner { max-width: 1280px; margin: 0 auto; padding: 28px 32px 60px; } /* ---------- Top header ---------- */ .argus-wpd-topbar { display: flex; align-items: center; gap: 16px; padding-bottom: 20px; margin-bottom: 8px; border-bottom: 1px solid var(--border); flex-wrap: wrap; } .argus-wpd-logo { width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0; background: linear-gradient(135deg, var(--cyan-dim), var(--violet-dim)); border: 1px solid var(--border-strong); display: flex; align-items: center; justify-content: center; font-size: 20px; box-shadow: 0 0 24px rgba(0,212,255,.15); } .argus-wpd-brand { display: flex; flex-direction: column; gap: 2px; } .argus-wpd-eyebrow { font: 700 10.5px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--cyan); display: flex; align-items: center; gap: 7px; } .argus-wpd-eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 8px var(--cyan); animation: argus-pulse 2s ease-in-out infinite; } .argus-wpd-title { font-size: 19px; font-weight: 800; letter-spacing: -.01em; color: var(--text); font-variant-numeric: tabular-nums; } .argus-wpd-domain-caption { font-size: 11.5px; color: var(--faint); } @keyframes argus-pulse { 0%,100%{opacity:1} 50%{opacity:.35} } .argus-wpd-status-badge { margin-left: auto; display: flex; align-items: center; gap: 8px; font: 700 11px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; padding: 8px 14px; border-radius: 99px; border: 1px solid var(--border-strong); background: var(--panel); } .argus-wpd-status-badge.on { color: var(--emerald); border-color: rgba(0,255,136,.3); background: var(--emerald-dim); } .argus-wpd-status-badge.on .dot { background: var(--emerald); box-shadow: 0 0 8px var(--emerald); } .argus-wpd-status-badge.danger { color: var(--rose); border-color: rgba(230,103,103,.35); background: var(--rose-dim); } .argus-wpd-status-badge.danger .dot { background: var(--rose); box-shadow: 0 0 8px var(--rose); } .argus-wpd-status-badge.checking { color: var(--amber); border-color: rgba(255,170,0,.35); background: var(--amber-dim); } .argus-wpd-status-badge.checking .dot { background: var(--amber); box-shadow: 0 0 8px var(--amber); } .argus-wpd-status-badge .dot { width: 6px; height: 6px; border-radius: 50%; animation: argus-pulse 2s ease-in-out infinite; } /* ---------- Nav tabs ---------- */ .argus-wpd-nav { display: flex; gap: 4px; margin: 18px 0 28px; flex-wrap: wrap; } .argus-wpd-nav a { font: 600 13px/1 -apple-system, sans-serif; color: var(--muted); text-decoration: none; padding: 9px 16px; border-radius: 8px; border: 1px solid transparent; transition: all .15s; } .argus-wpd-nav a:hover { color: var(--text); background: var(--panel); } .argus-wpd-nav a.active { color: var(--cyan); background: var(--cyan-dim); border-color: rgba(0,212,255,.3); } /* ---------- Cards / grid ---------- */ .argus-wpd-grid { display: grid; grid-template-columns: 220px repeat(4, 1fr); gap: 16px; margin-bottom: 28px; } @media (max-width: 1100px) { .argus-wpd-grid { grid-template-columns: 1fr 1fr; } } .argus-wpd-card { background: linear-gradient(180deg, var(--panel-2), var(--panel)); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; position: relative; overflow: hidden; } .argus-wpd-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--cyan), transparent); } .argus-wpd-card.k-crit::before { background: linear-gradient(90deg, var(--rose), transparent); } .argus-wpd-card.k-warn::before { background: linear-gradient(90deg, var(--amber), transparent); } .argus-wpd-card.k-ok::before { background: linear-gradient(90deg, var(--emerald), transparent); } /* ---------- Score gauge ---------- */ .argus-wpd-score { grid-row: span 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 6px; } .argus-wpd-score svg { width: 128px; height: 128px; } .argus-wpd-score-num { font: 800 30px/1 var(--mono); fill: var(--text); } .argus-wpd-score-track { fill: none; stroke: var(--border); stroke-width: 8; } .argus-wpd-score-arc { fill: none; stroke: var(--cyan); stroke-width: 8; stroke-linecap: round; filter: drop-shadow(0 0 6px rgba(0,212,255,.6)); transition: stroke-dashoffset .6s ease; } .argus-wpd-score-label { font: 700 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--faint); margin-top: 4px; } .argus-wpd-stat-label { font: 700 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--faint); margin-bottom: 10px; } .argus-wpd-stat-value { font: 800 30px/1 var(--mono); color: var(--text); font-variant-numeric: tabular-nums; } .argus-wpd-card.k-crit .argus-wpd-stat-value { color: var(--rose); } .argus-wpd-card.k-ok .argus-wpd-stat-value { color: var(--emerald); } .argus-wpd-stat-sub { font-size: 11.5px; color: var(--faint); margin-top: 6px; } /* ---------- Panels ---------- */ .argus-wpd-columns { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; align-items: start; } @media (max-width: 960px) { .argus-wpd-columns { grid-template-columns: 1fr; } } .argus-wpd-panel { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); padding: 22px; margin-bottom: 18px; } .argus-wpd-panel h2, .argus-wpd-panel h3 { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: 0 0 16px; display: flex; align-items: center; gap: 8px; } .argus-wpd-empty { color: var(--faint); font-size: 13px; font-style: italic; padding: 20px 0; text-align: center; } /* ---------- Findings ---------- */ .argus-wpd-finding-list { display: flex; flex-direction: column; gap: 10px; } .argus-wpd-finding-card { border: 1px solid var(--border); border-left: 3px solid var(--faint); border-radius: 9px; padding: 14px 16px; background: var(--panel-2); } .argus-wpd-finding-summary { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .argus-wpd-finding-title { font-size: 13.5px; color: var(--text); font-weight: 650; flex: 1; display: flex; align-items: center; gap: 7px; min-width: 200px; } .argus-wpd-finding-time { font: 500 11px/1 var(--mono); color: var(--faint); white-space: nowrap; } .argus-wpd-flag { font-size: 15px; line-height: 1; flex-shrink: 0; } .argus-wpd-finding-actions { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; } .argus-wpd-finding-details { margin-top: 12px; } .argus-wpd-finding-details summary { cursor: pointer; font: 700 11px/1 var(--mono); letter-spacing: .04em; color: var(--cyan); list-style: none; padding: 4px 0; } .argus-wpd-finding-details summary::-webkit-details-marker { display: none; } .argus-wpd-finding-details summary::before { content: "\25B8 "; } .argus-wpd-finding-details[open] summary::before { content: "\25BE "; } .argus-wpd-finding-details[open] summary { margin-bottom: 2px; } .argus-wpd-sev-badge { font: 800 9.5px/1 var(--mono); letter-spacing: .06em; padding: 3px 8px; border-radius: 5px; flex-shrink: 0; } .argus-wpd-sev-critical { border-left-color: var(--rose) !important; } .argus-wpd-sev-critical .argus-wpd-sev-badge { background: var(--rose-dim); color: var(--rose); border: 1px solid rgba(255,61,61,.3); } .argus-wpd-sev-high { border-left-color: var(--orange) !important; } .argus-wpd-sev-high .argus-wpd-sev-badge { background: rgba(255,140,26,.12); color: var(--orange); border: 1px solid rgba(255,140,26,.3); } .argus-wpd-sev-medium { border-left-color: var(--amber) !important; } .argus-wpd-sev-medium .argus-wpd-sev-badge { background: var(--amber-dim); color: var(--amber); border: 1px solid rgba(255,170,0,.3); } .argus-wpd-sev-low, .argus-wpd-sev-info { border-left-color: var(--cyan) !important; } .argus-wpd-sev-low .argus-wpd-sev-badge, .argus-wpd-sev-info .argus-wpd-sev-badge { background: var(--cyan-dim); color: var(--cyan); border: 1px solid rgba(0,212,255,.3); } .argus-wpd-status-pill { font: 700 10px/1 var(--mono); padding: 3px 9px; border-radius: 99px; background: var(--panel); border: 1px solid var(--border-strong); color: var(--muted); text-transform: uppercase; letter-spacing: .04em; } .argus-wpd-status-open { color: var(--amber); border-color: rgba(255,170,0,.3); background: var(--amber-dim); } /* explainability template */ .argus-explain { margin: 14px 0 0; display: grid; gap: 10px; } .argus-explain dt { font: 700 10px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--faint); margin-bottom: 3px; } .argus-explain dd { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.6; } .argus-explain dd p { margin: 0; } /* ---------- Buttons ---------- */ .argus-wpd-shell .button, .argus-wpd-shell button.button, .argus-wpd-shell .argus-wpd-finding-actions button { font: 700 12px/1 -apple-system, sans-serif !important; padding: 9px 16px !important; height: auto !important; border-radius: 8px !important; border: 1px solid var(--border-strong) !important; background: var(--panel-2) !important; color: var(--text) !important; text-shadow: none !important; box-shadow: none !important; } .argus-wpd-shell .button:hover { border-color: var(--cyan) !important; color: var(--cyan) !important; } .argus-wpd-shell .button-primary, .argus-wpd-shell input[type="submit"].button-primary { background: var(--cyan) !important; border-color: var(--cyan) !important; color: #001820 !important; } .argus-wpd-shell .button-primary:hover { background: #33ddff !important; } /* ---------- Tables ---------- */ .argus-wpd-shell table.widefat { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; border-collapse: separate; border-spacing: 0; } .argus-wpd-shell table.widefat th { background: var(--panel-2); color: var(--faint); font: 700 10.5px/1 var(--mono); text-transform: uppercase; letter-spacing: .06em; border-bottom: 1px solid var(--border) !important; padding: 12px 16px; } .argus-wpd-shell table.widefat td { color: var(--muted); border-bottom: 1px solid var(--border) !important; padding: 12px 16px; font-size: 12.5px; } .argus-wpd-shell table.widefat tr:last-child td { border-bottom: none !important; } .argus-wpd-shell table.widefat code { background: var(--panel-2); color: var(--cyan); padding: 2px 6px; border-radius: 4px; font-size: 11.5px; } .argus-wpd-shell table.widefat.striped > tbody > tr:nth-child(odd) { background: var(--panel-2); } /* ---------- Settings form ---------- */ .argus-wpd-shell .form-table th { color: var(--text); font-weight: 650; padding: 18px 16px 18px 0; } .argus-wpd-shell .form-table td { padding: 18px 0; } .argus-wpd-shell .form-table label { color: var(--muted); font-size: 13px; } .argus-wpd-shell select, .argus-wpd-shell input[type="checkbox"] { accent-color: var(--cyan); } .argus-wpd-shell select { background: var(--panel-2); color: var(--text); border: 1px solid var(--border-strong); border-radius: 7px; padding: 7px 10px; } .argus-wpd-shell .description { color: var(--faint); } .argus-wpd-shell .notice, .argus-wpd-shell .notice p, .argus-wpd-shell .notice-warning, .argus-wpd-shell .notice-warning p, .argus-wpd-shell .notice-success, .argus-wpd-shell .notice-success p, .argus-wpd-shell .notice-error, .argus-wpd-shell .notice-error p { color: var(--text) !important; } .argus-wpd-shell .notice { background: var(--emerald-dim); border-left: 3px solid var(--emerald); border-radius: 6px; border-width: 0 0 0 3px; } .argus-wpd-shell .notice-warning { background: var(--amber-dim); border-left-color: var(--amber); } .argus-wpd-shell .notice-error { background: var(--rose-dim); border-left-color: var(--rose); } /* ---------- Ban / recent tables spacing ---------- */ .argus-wpd-shell h1.argus-wpd-page-title { color: var(--text); font-size: 22px; font-weight: 800; margin: 0 0 4px; } /* ---------- Pagination ---------- */ .argus-wpd-pagination { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 24px 0 8px; } .argus-wpd-page-link { color: var(--cyan); font: 700 12.5px/1 -apple-system, sans-serif; text-decoration: none; padding: 8px 14px; border-radius: 8px; border: 1px solid var(--border-strong); background: var(--panel); } .argus-wpd-page-link:hover { border-color: var(--cyan); background: var(--cyan-dim); } .argus-wpd-page-info { font: 600 12px/1 var(--mono); color: var(--faint); } /* ---------- Inline forms (block IP, whitelist add) ---------- */ .argus-wpd-inline-form { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; } .argus-wpd-shell .argus-wpd-inline-form input[type="text"] { background: var(--panel-2); color: var(--text); border: 1px solid var(--border-strong); border-radius: 7px; padding: 9px 12px; font-size: 13px; min-width: 200px; } .argus-wpd-shell .argus-wpd-inline-form input[type="text"]:focus { border-color: var(--cyan); outline: none; } /* ---------- Site-type templates ---------- */ .argus-wpd-template-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; } @media (max-width: 1200px) { .argus-wpd-template-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 640px) { .argus-wpd-template-grid { grid-template-columns: 1fr; } } .argus-wpd-template-card { background: var(--panel-2); border: 1px solid var(--border); border-radius: 10px; padding: 18px; display: flex; flex-direction: column; gap: 10px; } .argus-wpd-template-card.active { border-color: rgba(0,212,255,.4); background: var(--cyan-dim); } .argus-wpd-template-title { font: 700 14px/1.3 -apple-system, sans-serif; color: var(--text); display: flex; flex-direction: column; gap: 6px; align-items: flex-start; } .argus-wpd-template-badge { font: 700 9.5px/1 var(--mono); letter-spacing: .05em; text-transform: uppercase; padding: 3px 8px; border-radius: 5px; background: var(--violet-dim); color: var(--violet); border: 1px solid rgba(167,139,250,.3); } .argus-wpd-template-badge.active { background: var(--cyan-dim); color: var(--cyan); border-color: rgba(0,212,255,.3); } .argus-wpd-template-desc { font-size: 12px; color: var(--muted); line-height: 1.55; flex: 1; margin: 0; } /* ---------- Whitelist / exceptions list ---------- */ .argus-wpd-exception-row { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--border); } .argus-wpd-exception-row:last-child { border-bottom: none; } .argus-wpd-exception-row code { background: var(--panel-2); color: var(--cyan); padding: 3px 8px; border-radius: 5px; font-size: 12px; } .argus-wpd-exception-row .note { flex: 1; color: var(--faint); font-size: 12px; } .argus-wpd-exception-row .added { font: 500 11px/1 var(--mono); color: var(--faint); } /* ---------- Donut stats (Statistics page) ---------- */ .argus-wpd-donut-row { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; } .argus-wpd-donut-svg { width: 168px; height: 168px; flex-shrink: 0; } .argus-wpd-donut-svg circle { transition: stroke-dasharray .5s ease; } .argus-wpd-donut-total { font: 800 22px/1 var(--mono); fill: var(--text); font-variant-numeric: tabular-nums; } .argus-wpd-donut-legend { display: flex; flex-direction: column; gap: 10px; flex: 1; min-width: 180px; } .argus-wpd-donut-legend-row { display: flex; align-items: center; gap: 10px; font-size: 12.5px; } .argus-wpd-donut-swatch { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; } .argus-wpd-donut-legend-label { color: var(--text); flex: 1; } .argus-wpd-donut-legend-value { font: 700 12px/1 var(--mono); color: var(--muted); font-variant-numeric: tabular-nums; } .argus-wpd-donut-legend-value em { color: var(--faint); font-style: normal; margin-left: 3px; } /* ---------- Console: gear icon (Settings, off primary nav) ---------- */ .argus-wpd-gear { margin-left: 10px; width: 38px; height: 38px; border-radius: 9px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 16px; background: var(--panel); border: 1px solid var(--border-strong); color: var(--muted); text-decoration: none; transition: all .15s; } .argus-wpd-gear:hover, .argus-wpd-gear.active { color: var(--cyan); border-color: rgba(0,212,255,.35); background: var(--cyan-dim); } /* ---------- Console: metric cards w/ trend ---------- */ .argus-wpd-metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; } @media (max-width: 1100px) { .argus-wpd-metric-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 640px) { .argus-wpd-metric-grid { grid-template-columns: 1fr; } } .argus-wpd-metric-card { background: linear-gradient(180deg, var(--panel-2), var(--panel)); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; position: relative; overflow: hidden; } .argus-wpd-metric-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--cyan), transparent); } .argus-wpd-metric-label { font: 700 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--faint); margin-bottom: 12px; } .argus-wpd-metric-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; } .argus-wpd-metric-value { font: 800 28px/1 var(--mono); color: var(--text); font-variant-numeric: tabular-nums; } .argus-wpd-metric-sub { font-size: 11px; color: var(--faint); margin-top: 8px; } .argus-wpd-trend { font: 700 11.5px/1 var(--mono); display: inline-flex; align-items: center; gap: 3px; padding: 4px 8px; border-radius: 99px; white-space: nowrap; } .argus-wpd-trend.up { color: var(--rose); background: var(--rose-dim); } .argus-wpd-trend.down { color: var(--emerald); background: var(--emerald-dim); } .argus-wpd-trend.flat { color: var(--faint); background: var(--panel); } /* ---------- Console: activity area chart ---------- */ .argus-wpd-area-card { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); padding: 22px; margin-bottom: 20px; } .argus-wpd-area-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; } .argus-wpd-range-tabs { display: flex; gap: 4px; } .argus-wpd-range-tabs a { font: 700 11px/1 var(--mono); letter-spacing: .04em; color: var(--faint); text-decoration: none; padding: 7px 12px; border-radius: 7px; border: 1px solid var(--border); transition: all .15s; } .argus-wpd-range-tabs a:hover { color: var(--text); } .argus-wpd-range-tabs a.active { color: var(--cyan); background: var(--cyan-dim); border-color: rgba(0,212,255,.3); } .argus-wpd-area-card h2 { font: 700 13px/1 -apple-system, sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: 0; } .argus-wpd-area-svg { width: 100%; height: 160px; display: block; } .argus-wpd-area-empty { color: var(--faint); font-size: 13px; font-style: italic; padding: 40px 0; text-align: center; } /* ---------- Console: status badge row ---------- */ .argus-wpd-status-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; } .argus-wpd-status-chip { display: flex; align-items: center; gap: 8px; font: 700 11px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; padding: 9px 14px; border-radius: 9px; border: 1px solid var(--border-strong); background: var(--panel); } .argus-wpd-status-chip .dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; } .argus-wpd-status-chip .label { color: var(--faint); } .argus-wpd-status-chip .state { color: var(--text); } .argus-wpd-status-chip.chip-cyan { border-color: rgba(0,212,255,.3); background: var(--cyan-dim); } .argus-wpd-status-chip.chip-cyan .dot { background: var(--cyan); box-shadow: 0 0 8px var(--cyan); } .argus-wpd-status-chip.chip-cyan .state { color: var(--cyan); } .argus-wpd-status-chip.chip-emerald { border-color: rgba(0,255,136,.3); background: var(--emerald-dim); } .argus-wpd-status-chip.chip-emerald .dot { background: var(--emerald); box-shadow: 0 0 8px var(--emerald); } .argus-wpd-status-chip.chip-emerald .state { color: var(--emerald); } .argus-wpd-status-chip.chip-amber { border-color: rgba(255,170,0,.3); background: var(--amber-dim); } .argus-wpd-status-chip.chip-amber .dot { background: var(--amber); box-shadow: 0 0 8px var(--amber); } .argus-wpd-status-chip.chip-amber .state { color: var(--amber); } .argus-wpd-status-chip.chip-rose { border-color: rgba(255,61,61,.3); background: var(--rose-dim); } .argus-wpd-status-chip.chip-rose .dot { background: var(--rose); box-shadow: 0 0 8px var(--rose); } .argus-wpd-status-chip.chip-rose .state { color: var(--rose); } .argus-wpd-status-chip.chip-violet { border-color: rgba(167,139,250,.3); background: var(--violet-dim); } .argus-wpd-status-chip.chip-violet .dot { background: var(--violet); box-shadow: 0 0 8px var(--violet); } .argus-wpd-status-chip.chip-violet .state { color: var(--violet); } .argus-wpd-status-chip.chip-off .dot { background: var(--faint); } .argus-wpd-status-chip.chip-off .state { color: var(--faint); } /* ---------- Console: stat tiles (Firewall / Scanner) ---------- */ .argus-wpd-tile-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; } @media (max-width: 960px) { .argus-wpd-tile-row { grid-template-columns: 1fr 1fr; } } .argus-wpd-tile { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; } .argus-wpd-tile-label { font: 700 10px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--faint); margin-bottom: 8px; } .argus-wpd-tile-value { font: 800 22px/1 var(--mono); color: var(--text); font-variant-numeric: tabular-nums; } /* ---------- Console: Intelligence IOC rows + not-connected banner ---------- */ .argus-wpd-not-connected { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; margin-bottom: 20px; background: var(--panel-2); border: 1px solid var(--border-strong); border-left: 3px solid var(--violet); border-radius: var(--radius); } .argus-wpd-not-connected .icon { font-size: 20px; line-height: 1; flex-shrink: 0; } .argus-wpd-not-connected h3 { margin: 0 0 6px; font-size: 13.5px; color: var(--text); font-weight: 700; } .argus-wpd-not-connected p { margin: 0; font-size: 12.5px; color: var(--muted); line-height: 1.6; } .argus-wpd-ioc-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border); } .argus-wpd-ioc-row:last-child { border-bottom: none; } .argus-wpd-ioc-type { font: 700 9.5px/1 var(--mono); letter-spacing: .05em; text-transform: uppercase; padding: 4px 9px; border-radius: 5px; background: var(--violet-dim); color: var(--violet); border: 1px solid rgba(167,139,250,.3); flex-shrink: 0; min-width: 66px; text-align: center; } .argus-wpd-ioc-desc { flex: 1; font-size: 12.5px; color: var(--text); } .argus-wpd-ioc-meta { font: 500 11px/1 var(--mono); color: var(--faint); white-space: nowrap; } /* ---------- Console: scanner engine cards ---------- */ .argus-wpd-scan-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; align-items: start; } @media (max-width: 960px) { .argus-wpd-scan-grid { grid-template-columns: 1fr; } } .argus-wpd-scan-fact-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 12.5px; } .argus-wpd-scan-fact-row:last-child { border-bottom: none; } .argus-wpd-scan-fact-row .k { color: var(--faint); font: 700 10.5px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; } .argus-wpd-scan-fact-row .v { color: var(--text); font-weight: 650; } /* ---------- Threats: mockup-matched Live Threat Activity + feed ---------- */ .argus-wpd-subtle-label { font: 600 10.5px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--faint); margin-left: 4px; } .argus-wpd-live-chart-panel { margin-bottom: 0; padding-bottom: 14px; } .argus-wpd-live-chart-panel .argus-wpd-chart-wrap { line-height: 0; } /* Deliberately not wrapped in .argus-wpd-panel -- mirrors the reference mockup's own composition, where the activity list flows directly below the chart panel rather than sitting in its own bordered box. */ .argus-wpd-live-feed-rows { display: flex; flex-direction: column; margin: 0 0 24px; } .argus-wpd-live-feed-row { display: flex; align-items: center; gap: 18px; padding: 14px 4px; border-bottom: 1px solid var(--border); font-size: 13.5px; border-radius: 6px; transition: background .15s; } .argus-wpd-live-feed-row:hover { background: var(--panel-2); } .argus-wpd-live-feed-row:last-child { border-bottom: none; } .argus-wpd-live-feed-row.is-entering { animation: argusWpdRowEnter .5s ease-out; } @keyframes argusWpdRowEnter { from { opacity: 0; transform: translateY(-6px); background: var(--cyan-dim); } to { opacity: 1; transform: translateY(0); } } @media (prefers-reduced-motion: reduce) { .argus-wpd-live-feed-row.is-entering { animation: none; } } .argus-wpd-live-feed-time { font: 600 12.5px/1 var(--mono); color: var(--faint); font-variant-numeric: tabular-nums; flex-shrink: 0; width: 96px; white-space: nowrap; } .argus-wpd-live-feed-desc { color: var(--text); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .argus-wpd-live-feed-action { font: 800 10px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; padding: 5px 12px; border-radius: 6px; flex-shrink: 0; background: var(--rose-dim); color: var(--rose); border: 1px solid rgba(255,61,61,.3); } @media (max-width: 640px) { .argus-wpd-live-feed-row { flex-wrap: wrap; } .argus-wpd-live-feed-time { width: 100%; order: -1; } .argus-wpd-live-feed-desc { white-space: normal; } }