@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#000;--s1:#0a0a0a;--s2:#111;--s3:#1a1a1a;
  --border:rgba(0,219,135,0.15);--border2:rgba(0,219,135,0.35);
  --acid:#00db87;--acid-dim:#00a866;--acid-glow:rgba(0,219,135,0.25);
  --text:#f0f0f0;--muted:#6b7280;--muted2:#9ca3af;
  --ok:#00db87;--info:#6b7280;--warn:#fbbf24;--err:#f97316;--crit:#ff3b3b;--down:#a855f7;--reach:#38bdf8;
  --r:6px;--mono:'JetBrains Mono',monospace;--sans:'Inter',sans-serif;
}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;min-height:100vh}
body::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,219,135,0.015) 2px,rgba(0,219,135,0.015) 4px);pointer-events:none;z-index:0}

/* Lucide icon sizing */
.lucide{width:14px;height:14px;stroke-width:2;vertical-align:middle}
.stat-icon{width:12px;height:12px;opacity:.7}
.filter-icon{width:13px;height:13px}
.logo-icon{width:18px;height:18px;color:var(--acid)}

/* Login screen */
.login-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:500;background:var(--bg)}
.login-card{background:var(--s1);border:1px solid var(--border2);border-radius:12px;padding:48px 40px;text-align:center;max-width:400px;width:90%;box-shadow:0 0 80px rgba(0,219,135,.08)}
.login-logo{font-family:var(--mono);font-size:24px;font-weight:700;color:var(--acid);margin-bottom:8px}
.login-logo::before{content:'';display:none}
.login-sub{color:var(--muted);font-size:13px;margin-bottom:28px;font-family:var(--mono)}
.login-btn{width:100%;padding:12px 24px;font-size:14px;display:flex;align-items:center;justify-content:center;gap:10px}
.login-error{color:var(--crit);font-size:12px;font-family:var(--mono);margin-top:16px;min-height:16px}

/* User button */
.user-btn{font-size:11px;padding:4px 12px;display:flex;align-items:center;gap:6px}

/* Header */
header{background:rgba(0,0,0,0.95);border-bottom:1px solid var(--border2);padding:14px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;position:sticky;top:0;z-index:100;backdrop-filter:blur(12px)}
.logo{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--acid);white-space:nowrap;display:flex;align-items:center;gap:8px}
.logo::before{content:'>';color:var(--acid);opacity:.7}
.logo-sub{font-size:10px;color:var(--muted);font-family:var(--mono);margin-left:4px;letter-spacing:.05em}
.stats-bar{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.stat{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:5px 12px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.stat-label{color:var(--muted);font-size:11px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:4px}
.stat-value{font-weight:700;font-size:15px;font-family:var(--mono)}
.stat-value.critical{color:var(--crit)} .stat-value.error{color:var(--err)} .stat-value.warning{color:var(--warn)} .stat-value.ok{color:var(--ok)}
.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.last-scan{font-size:11px;color:var(--muted);white-space:nowrap;font-family:var(--mono)}

/* Buttons */
.btn{padding:8px 18px;border-radius:var(--r);border:none;font-size:13px;font-weight:600;font-family:var(--mono);cursor:pointer;transition:all .15s;white-space:nowrap;letter-spacing:.04em;display:inline-flex;align-items:center;gap:6px}
.btn:hover{transform:translateY(-1px)} .btn:active{transform:scale(.97)} .btn:disabled{opacity:.35;cursor:not-allowed;transform:none}
.btn-primary{background:var(--acid);color:#000}
.btn-primary:hover{background:#00f097;box-shadow:0 0 20px var(--acid-glow)}
.btn-ghost{background:transparent;color:var(--acid);border:1px solid var(--border2)}
.btn-ghost:hover{background:var(--acid-glow);box-shadow:0 0 12px var(--acid-glow)}

/* Progress */
#progress-bar-wrap{position:fixed;top:0;left:0;right:0;height:2px;z-index:200;display:none}
#progress-bar-wrap.active{display:block}
#progress-bar{height:100%;background:var(--acid);transition:width .4s ease;box-shadow:0 0 8px var(--acid)}

/* Toolbar */
.toolbar{padding:12px 24px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--border);background:rgba(0,0,0,0.8);backdrop-filter:blur(8px)}
.filter-btn{padding:4px 14px;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:12px;font-family:var(--mono);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:5px}
.filter-btn:hover{border-color:var(--acid);color:var(--text)}
.filter-btn.active{background:var(--acid);border-color:var(--acid);color:#000;font-weight:700}
.filter-dot{width:7px;height:7px;border-radius:50%}
.search-wrap{margin-left:auto}
.search-input{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:6px 12px;color:var(--text);font-size:13px;font-family:var(--mono);width:200px;outline:none}
.search-input:focus{border-color:var(--acid);box-shadow:0 0 8px var(--acid-glow)}
.search-input::placeholder{color:var(--muted)}

/* Grid */
main{padding:20px 24px;position:relative;z-index:1}
#domains-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}

/* Card */
.card{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:16px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--acid),transparent);opacity:0;transition:opacity .2s}
.card:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:0 0 24px var(--acid-glow)}
.card:hover::before{opacity:1}
.card-priority-bar{position:absolute;top:0;left:0;bottom:0;width:2px}
.card-priority-bar.high{background:var(--crit);box-shadow:0 0 8px var(--crit)}
.card-priority-bar.medium{background:var(--warn);box-shadow:0 0 8px var(--warn)}
.card-priority-bar.low{background:var(--ok);box-shadow:0 0 6px var(--ok)}
.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;padding-left:12px}
.card-domain{font-weight:700;font-size:14px;font-family:var(--mono);word-break:break-all;flex:1;color:var(--text)}
.badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:3px;white-space:nowrap;text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono)}
.badge-ok{background:rgba(0,219,135,.15);color:var(--ok);border:1px solid rgba(0,219,135,.3)}
.badge-info{background:rgba(107,114,128,.15);color:var(--muted2);border:1px solid rgba(107,114,128,.2)}
.badge-warning{background:rgba(251,191,36,.1);color:var(--warn);border:1px solid rgba(251,191,36,.3)}
.badge-error{background:rgba(249,115,22,.1);color:var(--err);border:1px solid rgba(249,115,22,.3)}
.badge-critical{background:rgba(255,59,59,.1);color:var(--crit);border:1px solid rgba(255,59,59,.3)}
.badge-down{background:rgba(168,85,247,.1);color:var(--down);border:1px solid rgba(168,85,247,.3)}
.badge-reachability{background:rgba(56,189,248,.1);color:var(--reach);border:1px solid rgba(56,189,248,.35)}
.badge-pending{background:rgba(0,219,135,.05);color:var(--acid);border:1px solid var(--border2)}
.card-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding-left:12px}
.card-meta .muted{color:var(--muted);font-size:11px;font-family:var(--mono)}
.card-issues{padding-left:12px}
.issue-item{display:flex;gap:8px;align-items:flex-start;padding:4px 0;font-size:12px;border-top:1px solid rgba(255,255,255,.04)}
.issue-item:first-child{border-top:none}
.issue-dot{width:6px;height:6px;border-radius:50%;margin-top:5px;flex-shrink:0}
.issue-dot.critical{background:var(--crit)} .issue-dot.error{background:var(--err)} .issue-dot.warning{background:var(--warn)} .issue-dot.info{background:var(--info)}
.known-issue{color:var(--muted);font-size:12px}
.known-badge{font-size:9px;background:rgba(251,191,36,.08);color:var(--warn);border:1px solid rgba(251,191,36,.25);border-radius:3px;padding:1px 5px;white-space:nowrap;font-family:var(--mono)}
.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-left:12px}
.card-time{color:var(--muted);font-size:10px;font-family:var(--mono)}
.scan-btn{font-size:11px;padding:3px 10px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-family:var(--mono);transition:all .15s;display:inline-flex;align-items:center;gap:4px}
.scan-btn:hover{border-color:var(--acid);color:var(--acid);box-shadow:0 0 8px var(--acid-glow)}
.scan-btn.scanning{opacity:.4;cursor:default}
.fix-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px;padding-left:12px}
.fix-tag{font-size:10px;padding:2px 7px;border-radius:3px;font-family:var(--mono);display:inline-flex;align-items:center;gap:3px}
.fix-tag.fixed{background:rgba(0,219,135,.08);color:var(--ok);border:1px solid rgba(0,219,135,.2)}
.fix-tag.new{background:rgba(255,59,59,.08);color:var(--crit);border:1px solid rgba(255,59,59,.2)}
.no-scan{color:var(--muted);font-size:11px;font-style:italic;padding-left:12px;font-family:var(--mono)}

/* Event Log Drawer */
.event-drawer{position:fixed;top:0;right:-420px;bottom:0;width:400px;background:var(--s1);border-left:1px solid var(--border2);z-index:150;transition:right .3s ease;display:flex;flex-direction:column;box-shadow:-10px 0 40px rgba(0,0,0,.5)}
.event-drawer.open{right:0}
.event-drawer-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.event-drawer-body{flex:1;overflow-y:auto;padding:10px 16px}
.event-entry{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.03);font-size:11px;font-family:var(--mono)}
.event-entry:hover{background:var(--s2)}
.event-time{color:var(--muted);font-size:10px}
.event-type{font-weight:700;text-transform:uppercase;font-size:9px;letter-spacing:.06em;margin:2px 0}
.event-msg{color:var(--muted2);font-size:11px}
.event-type.scan_complete{color:var(--acid)} .event-type.issue_detected{color:var(--err)}
.event-type.issue_fixed{color:var(--ok)} .event-type.alert_sent{color:var(--warn)}
.event-type.cron_scan{color:var(--acid)} .event-type.system{color:var(--muted2)}
.event-type.auth_login{color:var(--down)}
.event-type.scan_reachability_issue{color:var(--reach)}

/* Modal */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);backdrop-filter:blur(6px);z-index:300;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}
.modal-overlay.open{display:flex}
.modal{background:var(--s1);border:1px solid var(--border2);border-radius:10px;width:100%;max-width:720px;padding:28px;position:relative;box-shadow:0 0 60px rgba(0,219,135,.1)}
.modal-close{position:absolute;top:16px;right:16px;background:var(--s2);border:1px solid var(--border);border-radius:4px;color:var(--muted);font-size:16px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:var(--mono)}
.modal-close:hover{color:var(--acid);border-color:var(--border2)}
.modal-domain{font-size:18px;font-weight:700;font-family:var(--mono);color:var(--acid);margin-bottom:4px}
.modal-domain::before{content:'// ';color:var(--muted);font-size:14px}
.modal-url{color:var(--muted2);font-size:12px;margin-bottom:16px;font-family:var(--mono)}
.modal-url a{color:var(--acid);text-decoration:none;opacity:.8}
.modal-url a:hover{opacity:1}
.modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}
.modal-stat{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:10px 14px}
.modal-stat-label{color:var(--muted);font-size:10px;margin-bottom:2px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}
.modal-stat-value{font-weight:700;font-size:15px;font-family:var(--mono)}
.section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:20px 0 8px;font-family:var(--mono);display:flex;align-items:center;gap:6px}
.section-title::before{content:'## ';color:var(--acid);opacity:.5}
.issue-row{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;margin-bottom:6px}
.issue-row-header{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.issue-type{font-weight:700;font-size:12px;font-family:var(--mono)}
.issue-msg{font-size:12px;color:var(--text);margin-bottom:6px}
.issue-fix{font-size:11px;color:var(--muted2);border-left:2px solid var(--acid);padding-left:10px;line-height:1.6;opacity:.85}
.known-row{background:rgba(251,191,36,.04);border:1px solid rgba(251,191,36,.15);border-radius:var(--r);padding:10px 14px;margin-bottom:5px;font-size:12px;color:var(--muted2);font-family:var(--mono)}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.check-item{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:8px 12px;display:flex;justify-content:space-between;align-items:center;font-size:12px}
.check-label{color:var(--muted);font-family:var(--mono)}
.check-val{font-weight:600;font-size:11px;font-family:var(--mono)}
.check-val.pass{color:var(--ok)} .check-val.fail{color:var(--crit)} .check-val.warn{color:var(--warn)}
.history-entry{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:8px 14px;margin-bottom:5px;display:flex;justify-content:space-between;align-items:center;font-size:12px}
.history-time{color:var(--muted);font-size:11px;font-family:var(--mono)}
.empty-state{text-align:center;padding:60px 20px;color:var(--muted)}
.empty-state h2{font-size:16px;margin-bottom:8px;color:var(--text);font-family:var(--mono)}
.spinning{animation:spin 1s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.redirect-chain{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--muted);margin-top:6px;font-family:var(--mono)}
.redirect-url{color:var(--acid);word-break:break-all}
/* Tabs */
.tabs-container { border-bottom: 1px solid var(--border); padding: 0 24px; background: rgba(0,0,0,0.8); backdrop-filter: blur(8px); }
.tabs { display: flex; gap: 24px; }
.tab-btn { padding: 14px 0; background: transparent; border: none; color: var(--muted); cursor: pointer; font-family: var(--mono); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; border-bottom: 2px solid transparent; display: flex; align-items: center; gap: 8px; transition: all 0.2s; }
.tab-btn:hover { color: var(--text); }
.tab-btn.active { color: var(--acid); border-bottom-color: var(--acid); }
.tab-pane { display: none; }
.tab-pane.active { display: block; }

/* Uptime Grid */
.uptime-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 12px; }
.uptime-card { background: var(--s1); border: 1px solid var(--border); border-radius: var(--r); padding: 16px; cursor: pointer; transition: all 0.2s; position: relative; overflow: hidden; }
.uptime-card:hover { border-color: var(--border2); transform: translateY(-2px); box-shadow: 0 0 24px var(--acid-glow); }
.uptime-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.uptime-domain { font-weight: 700; font-size: 14px; font-family: var(--mono); color: var(--text); }
.uptime-stats { display: flex; gap: 24px; margin-bottom: 12px; }
.uptime-stat { display: flex; flex-direction: column; }
.uptime-stat-val { font-size: 16px; font-weight: 700; font-family: var(--mono); }
.uptime-stat-label { font-size: 10px; color: var(--muted); text-transform: uppercase; font-family: var(--mono); letter-spacing: 0.05em; margin-top: 2px; }
.sparkline-container { display: flex; gap: 1px; height: 24px; align-items: flex-end; margin-top: 10px; opacity: 0.8; }
.spark-bar { flex: 1; background: var(--acid); transition: height 0.2s; border-radius: 1px 1px 0 0; }
.spark-bar.down { background: var(--crit); }
.spark-bar.degraded { background: var(--warn); }
.spark-bar.unknown { background: var(--s2); }

/* AI Table */
.ai-table-wrap { overflow-x: auto; background: var(--s1); border: 1px solid var(--border); border-radius: var(--r); }
.ai-table { width: 100%; border-collapse: collapse; text-align: left; font-family: var(--mono); font-size: 12px; }
.ai-table th { padding: 12px 16px; border-bottom: 1px solid var(--border); color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; font-size: 10px; white-space: nowrap; }
.ai-table td { padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,0.03); color: var(--text); white-space: nowrap; }
.ai-table tr:hover { background: var(--s2); }
.ai-check { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 4px; background: var(--s2); }
.ai-check.yes { color: var(--ok); background: rgba(0,219,135,0.1); }
.ai-check.no { color: var(--muted2); }
.ai-check.warn { color: var(--warn); background: rgba(251,191,36,0.1); }
.ai-score-bar { height: 4px; border-radius: 2px; background: var(--s2); width: 60px; overflow: hidden; display: inline-block; vertical-align: middle; margin-left: 8px; }
.ai-score-fill { height: 100%; background: var(--acid); transition: width 0.3s; }
.type-badge { font-size: 9px; padding: 2px 6px; border-radius: 3px; background: var(--s2); color: var(--muted); border: 1px solid var(--border); text-transform: uppercase; }

@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.card{animation:fadeIn .25s ease both}
@media(max-width:600px){header{gap:10px}.modal-grid{grid-template-columns:repeat(2,1fr)}.check-grid{grid-template-columns:1fr}main{padding:14px}#domains-grid{grid-template-columns:1fr}.event-drawer{width:100%}}
