:root {
  --bg: #06100e;
  --panel: #0a1714;
  --panel2: #0d1d19;
  --panel3: #10241f;
  --line: #1c3b33;
  --text: #e8f4ef;
  --muted: #7f9e94;
  --accent: #41f0a0;
  --accent2: #b4ffdc;
  --warning: #f2c76d;
  --danger: #ff7b7b;
  --shadow: 0 24px 70px rgba(0,0,0,.28);
  --mono: "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html, body { margin:0; min-height:100%; background:
 radial-gradient(circle at 75% -20%, rgba(65,240,160,.08), transparent 30rem),
 linear-gradient(180deg,#050b0a,#07110f 48%,#050a09);
 color:var(--text); font-family:var(--sans); }
body { min-height:100vh; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
.app-shell { min-height:100vh; display:flex; flex-direction:column; }
.topbar { min-height:78px; padding:13px 22px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; background:rgba(5,13,11,.92); backdrop-filter: blur(14px); position:sticky; top:0; z-index:20; }
.brand { display:flex; align-items:center; gap:13px; }
.brand-mark { width:44px;height:44px; border:1px solid #256b50; position:relative; background:linear-gradient(135deg,#0c201a,#07110f); box-shadow:inset 0 0 20px rgba(65,240,160,.08); }
.brand-mark .cross-v,.brand-mark .cross-h { position:absolute;background:var(--accent);opacity:.9; }
.brand-mark .cross-v { width:7px;height:23px;left:18px;top:10px; }
.brand-mark .cross-h { width:23px;height:7px;left:10px;top:18px; }
.brand-mark .pulse { position:absolute; inset:4px; border:1px solid rgba(65,240,160,.25); animation:pulse 2s infinite; }
@keyframes pulse { 50% { opacity:.25; transform:scale(.88); } }
.brand-name { font-weight:900;letter-spacing:.18em;font-size:18px; }
.brand-sub { font:10px var(--mono); color:var(--muted);letter-spacing:.13em;margin-top:2px; }
.top-status { display:flex;align-items:center;gap:9px;font:11px var(--mono);color:#a6c7bc; }
.status-dot,.ok-dot { display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px rgba(65,240,160,.7); }
.privacy-pill,.panel-badge { border:1px solid #265243;background:#0a1c16;padding:6px 9px;color:#9cc7b7; }
.workspace { flex:1; display:grid; grid-template-columns:235px minmax(0,1fr); max-width:1600px; width:100%; margin:auto; }
.sidebar { border-right:1px solid var(--line); padding:22px 14px; background:rgba(7,18,15,.68); min-height:calc(100vh - 115px); }
.side-heading,.tiny-label,.eyebrow { font:10px var(--mono);letter-spacing:.16em;color:#668a7d; }
.side-heading { padding:0 10px 10px; }
.tool-nav { display:flex;flex-direction:column;gap:4px; }
.nav-btn { border:1px solid transparent;background:transparent;color:#91ada3;text-align:left;padding:11px 12px;display:flex;gap:10px;align-items:center; }
.nav-btn:hover { background:#0d1e19;color:#d9eee7; }
.nav-btn.active { color:var(--accent2);border-color:#255b47;background:linear-gradient(90deg,rgba(65,240,160,.12),rgba(65,240,160,.025)); box-shadow:inset 3px 0 0 var(--accent); }
.nav-btn span { width:20px;text-align:center;font-family:var(--mono);color:var(--accent); }
.sidebar-card { margin-top:28px;border:1px solid var(--line);background:#091612;padding:14px; }
.session-line { display:flex;justify-content:space-between;margin-top:11px;color:#78998e;font-size:12px; }
.session-line strong { color:#cde2db;font:12px var(--mono); }
.main { padding:28px; min-width:0; }
.tool-panel { display:none; animation:fade .18s ease; }
.tool-panel.active { display:block; }
@keyframes fade { from { opacity:.5; transform:translateY(4px); } to { opacity:1;transform:none; } }
.hero { display:grid;grid-template-columns:1.15fr .85fr; gap:26px;min-height:310px;border:1px solid var(--line);background:
 linear-gradient(120deg,rgba(16,38,31,.9),rgba(7,17,14,.92)),
 repeating-linear-gradient(0deg,transparent,transparent 29px,rgba(65,240,160,.025) 30px);
 padding:34px;box-shadow:var(--shadow);overflow:hidden; }
.eyebrow { color:var(--accent);margin-bottom:12px; }
h1 { font-size:clamp(38px,5vw,67px);line-height:.97;margin:0;letter-spacing:-.055em;max-width:700px; }
h1 span { color:#8faea3;font-weight:500; }
.hero p { max-width:650px;color:#8eaaa0;font-size:16px;line-height:1.65;margin:22px 0; }
.hero-actions,.button-row { display:flex;gap:10px;flex-wrap:wrap; }
.primary-btn,.secondary-btn,.ghost-btn { border:1px solid #2e7358;padding:10px 15px;font:700 11px var(--mono);letter-spacing:.05em; }
.primary-btn { background:var(--accent);color:#03100b;box-shadow:0 0 22px rgba(65,240,160,.12); }
.primary-btn:hover { background:#78f6ba; }
.secondary-btn,.ghost-btn { background:#0b1a16;color:#b7d1c7; }
.secondary-btn:hover,.ghost-btn:hover { border-color:#4c8c72;color:white;background:#10251e; }
.ghost-btn.danger { width:100%;margin-top:14px;border-color:#5c3434;color:#d79696; }
.network-visual { position:relative;min-height:250px;border-left:1px solid rgba(65,240,160,.12); }
.network-visual svg { position:absolute;inset:0;width:100%;height:100%; }
.network-visual path { stroke:#2e6a55;stroke-width:1;fill:none;stroke-dasharray:5 5; }
.node { position:absolute;z-index:2;border:1px solid #2c6752;background:#0c1b17;color:#92b5a8;font:700 10px var(--mono);padding:11px 12px;min-width:68px;text-align:center;box-shadow:0 0 25px rgba(0,0,0,.3); }
.node.core { left:42%;top:39%;color:#d5ffec;border-color:var(--accent);box-shadow:0 0 32px rgba(65,240,160,.12); }
.node small { color:#63877a;font-size:8px; }
.node.n1 { left:6%;top:11%; }.node.n2 { right:4%;top:9%; }.node.n3 { right:0;bottom:10%; }.node.n4 { left:3%;bottom:9%; }
.scanline { position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 12px var(--accent);animation:scan 4s linear infinite;opacity:.4; }
@keyframes scan { from { top:5%; } to { top:95%; } }
.dashboard-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px; }
.metric-card,.input-card,.binary-card,.info-card,.diagnostic-output { border:1px solid var(--line);background:linear-gradient(180deg,#0b1915,#08130f); }
.metric-card { padding:20px;min-height:192px;position:relative; }
.metric-card.clickable:hover { border-color:#326e57;transform:translateY(-2px);transition:.15s; }
.metric-icon { font:24px var(--mono);color:var(--accent);margin-bottom:25px; }
.metric-card h3 { margin:8px 0;font-size:18px; }
.metric-card p { color:#78988d;font-size:13px;line-height:1.55; }
.card-link { position:absolute;bottom:18px;color:#63c89e;font:10px var(--mono); }
.status-strip { display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-top:14px; }
.status-strip > div { padding:15px 18px;border-right:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center; }
.status-strip > div:last-child { border:0; }
.status-strip strong { font:10px var(--mono);letter-spacing:.05em; }
.status-strip small { grid-column:2;color:#658479; }
.panel-title { display:flex;justify-content:space-between;align-items:end;margin-bottom:18px; }
.panel-title h2 { margin:2px 0 0;font-size:34px;letter-spacing:-.04em; }
.panel-badge { font:10px var(--mono);letter-spacing:.08em; }
.panel-badge.accent { color:var(--accent);border-color:#286f53; }
.input-card,.binary-card,.info-card { padding:18px; }
.input-card label { display:block;color:#91aba2;font:11px var(--mono);margin:0 0 7px; }
.input-card label:not(:first-child) { margin-top:14px; }
input,textarea,select { width:100%;border:1px solid #26463d;background:#06100d;color:#def0e9;padding:12px 13px;outline:none;font-family:var(--mono); }
input:focus,textarea:focus,select:focus { border-color:#43a77e;box-shadow:0 0 0 2px rgba(65,240,160,.06); }
textarea { resize:vertical;line-height:1.5; }
.input-row { display:grid;grid-template-columns:1fr auto;gap:9px; }
.error-text { color:#ff8b8b;font:11px var(--mono);min-height:16px;margin-top:7px; }
.results-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0; }
.result-box { border:1px solid var(--line);background:#091511;padding:15px;min-height:90px; }
.result-box .label { color:#68877c;font:9px var(--mono);letter-spacing:.11em; }
.result-box .value { margin-top:11px;color:#dff3eb;font:700 15px var(--mono);word-break:break-word; }
.card-head { display:flex;justify-content:space-between;align-items:center;color:#77998d;font:10px var(--mono);letter-spacing:.09em;margin-bottom:12px; }
.binary-output,.command-output { font:13px/1.75 var(--mono);color:#9ed2bd;white-space:pre-wrap;word-break:break-word; }
.two-col { display:grid;grid-template-columns:1.25fr .75fr;gap:14px; }
.full { width:100%;margin-top:15px; }
.info-card h3 { margin:8px 0; }
.info-card p { color:#759287; }
.info-card code { display:block;border:1px solid #203c34;background:#06100d;padding:14px;color:#a8d6c4;line-height:1.8; }
.muted { color:#607c72!important;font-size:12px;line-height:1.6; }
.table-wrap { overflow:auto;border:1px solid var(--line);margin-top:14px; }
table { width:100%;border-collapse:collapse;min-width:690px; }
th { background:#0d211b;color:#678f80;font:10px var(--mono);letter-spacing:.08em;text-align:left;padding:11px 13px;border-bottom:1px solid var(--line); }
td { padding:12px 13px;border-bottom:1px solid #142a23;color:#a9c5ba;font:12px var(--mono); }
tbody tr:hover td { background:#0b1a16; }
.allocation-bar { display:flex;height:48px;border:1px solid var(--line);margin-top:13px;background:#07100e;overflow:hidden; }
.alloc-piece { border-right:1px solid #0a120f;background:rgba(65,240,160,.13);display:flex;align-items:center;justify-content:center;min-width:28px;color:#a9e0c9;font:9px var(--mono);overflow:hidden;white-space:nowrap; }
.diagnostic-output { padding:22px;min-height:260px; }
.empty-state { display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#66857a; }
.empty-icon { color:#3c735e;font-size:36px;margin-bottom:8px; }
.diagnostic-output h3 { color:#d8eee5;margin:0 0 8px; }
.diagnostic-output p { line-height:1.55; }
.diagnose-layout { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.diag-severity { display:inline-block;padding:5px 8px;border:1px solid #6b4e2b;color:var(--warning);font:10px var(--mono);margin-bottom:12px; }
.diag-severity.high { border-color:#713737;color:#ff9292; }
.diag-severity.ok { border-color:#2b624d;color:#75eab8; }
.diag-code { border-left:3px solid var(--accent);background:#07120f;padding:10px 12px;margin:12px 0;color:#9bc5b5;font:12px/1.55 var(--mono);white-space:pre-wrap; }
.diag-steps { margin:12px 0 0;padding-left:19px;color:#94afa5; }
.diag-steps li { margin:8px 0;line-height:1.45; }
.config-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px; }
.config-grid label { margin-top:0!important;margin-bottom:12px!important; }
.full-span { grid-column:1/-1; }
.command-output { min-height:150px;margin:0; }
.warning-card { margin-top:12px;border:1px solid #5c4a28;background:#1b180d;color:#c7aa68;padding:12px;font:11px var(--mono); }
.notes-list { display:flex;flex-direction:column;gap:9px; }
.note-card { border:1px solid var(--line);background:#091612;padding:14px; }
.note-card h4 { margin:0 0 5px; }
.note-card small { color:#5f8075;font-family:var(--mono); }
.note-card p { color:#8ca79d;white-space:pre-wrap;line-height:1.5; }
.note-actions { display:flex;gap:7px;justify-content:flex-end; }
footer { min-height:37px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 20px;color:#4e7064;background:#050b09;font:9px var(--mono);letter-spacing:.08em; }
@media (max-width: 980px) {
  .workspace { grid-template-columns:1fr; }
  .sidebar { min-height:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px;overflow:auto; }
  .side-heading,.sidebar-card { display:none; }
  .tool-nav { flex-direction:row;min-width:max-content; }
  .nav-btn { padding:9px 10px; }
  .hero,.diagnose-layout,.two-col { grid-template-columns:1fr; }
  .network-visual { border-left:0;border-top:1px solid rgba(65,240,160,.12); }
  .results-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 700px) {
  .topbar { padding:10px 12px; }
  .brand-sub,.privacy-pill { display:none; }
  .main { padding:14px; }
  .hero { padding:22px; }
  .dashboard-grid,.status-strip { grid-template-columns:1fr; }
  .status-strip > div { border-right:0;border-bottom:1px solid var(--line); }
  .results-grid,.config-grid { grid-template-columns:1fr; }
  .panel-title h2 { font-size:27px; }
  .top-status > span:not(.status-dot) { display:none; }
  footer span:nth-child(2) { display:none; }
}

.inline-code{display:inline!important;border:0!important;background:transparent!important;padding:0!important;color:var(--accent2)!important;}
.dns-results{margin-top:14px;min-height:220px;}
.dns-records{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;width:100%;text-align:left;}
.dns-record{border:1px solid var(--line);background:#07130f;padding:14px;min-width:0;}
.dns-record .rrtype{font:9px var(--mono);letter-spacing:.12em;color:var(--accent);margin-bottom:8px;}
.dns-record .rrdata{font:700 14px/1.5 var(--mono);color:#dff3eb;word-break:break-all;}
.dns-record .rrttl{font:10px var(--mono);color:#628277;margin-top:8px;}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0;}
.stat-box{border:1px solid var(--line);background:#07130f;padding:12px;}
.stat-box small{display:block;color:#67877c;font:9px var(--mono);letter-spacing:.08em;}
.stat-box strong{display:block;color:#d8efe6;font:17px var(--mono);margin-top:7px;}
.trace-list{display:flex;flex-direction:column;gap:6px;margin-top:12px;}
.trace-hop{display:grid;grid-template-columns:42px minmax(120px,1fr) auto;gap:10px;align-items:center;border:1px solid #183129;background:#07130f;padding:9px 11px;font:11px var(--mono);}
.trace-hop.timeout{border-color:#463b25;color:#bfa269;}
.trace-hop .hopnum{color:var(--accent);}.trace-hop .lat{color:#87aa9d;text-align:right;}
@media(max-width:700px){.stat-grid{grid-template-columns:1fr}.trace-hop{grid-template-columns:34px 1fr}.trace-hop .lat{grid-column:2;text-align:left}}

/* v0.3.x */
.port-scroll{max-height:520px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;}
.port-scroll thead th{position:sticky;top:0;z-index:3;box-shadow:0 1px 0 var(--line);}
.port-scroll::-webkit-scrollbar{width:12px;height:12px}.port-scroll::-webkit-scrollbar-track{background:#06100d}.port-scroll::-webkit-scrollbar-thumb{background:#244c3e;border:3px solid #06100d;border-radius:8px}.port-scroll::-webkit-scrollbar-thumb:hover{background:#347058}
.finding-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.finding{border:1px solid #1b382f;background:#07130f;padding:11px 12px}.finding.warn{border-color:#594b2b}.finding.bad{border-color:#633434}.finding.good{border-color:#285944}.finding strong{display:block;font:11px var(--mono);color:#d9eee6;margin-bottom:5px}.finding span{font:11px/1.5 var(--mono);color:#89a89c}.health-score{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:center;margin:8px 0 18px}.score-ring{width:105px;height:105px;border-radius:50%;display:grid;place-items:center;border:10px solid #234d3e;background:#07130f;font:800 25px var(--mono);color:var(--accent2)}.health-bars{display:flex;flex-direction:column;gap:7px}.health-row{display:grid;grid-template-columns:95px 1fr 55px;gap:8px;align-items:center;font:10px var(--mono);color:#7e9c91}.health-track{height:7px;background:#10231d;overflow:hidden}.health-fill{height:100%;background:var(--accent)}.service-chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.service-chip{border:1px solid #28523f;background:#091813;padding:6px 8px;font:10px var(--mono);color:#afd5c6}.service-chip.filtered{border-color:#574928;color:#c7a96a}.service-chip.closed{opacity:.55}
@media(max-width:700px){.port-scroll{max-height:420px}.health-score{grid-template-columns:1fr}.score-ring{margin:auto}}

/* v0.3.2 Diagram / IPAM */
.health-track.unknown{background:repeating-linear-gradient(45deg,#10231d,#10231d 5px,#172f27 5px,#172f27 10px)}
.score-ring small{display:block;font-size:9px;color:#64877a;margin-left:3px}.correlation-card{border:1px solid #2a5746;background:#091813;padding:13px 15px;margin:12px 0}.correlation-card p{margin:7px 0;color:#9ec0b3;font:11px/1.5 var(--mono)}
.diagram-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px}.diagram-controls{align-self:start;position:sticky;top:96px}.diagram-action-row{margin-top:9px}.danger-inline{border-color:#663838;color:#e29393}.active-mode{border-color:var(--accent)!important;color:var(--accent)!important;box-shadow:0 0 0 2px rgba(65,240,160,.08)}
.diagram-main{min-width:0}.diagram-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;border:1px solid var(--line);border-bottom:0;background:#091612;padding:8px 10px}.diagram-toolbar span{margin-right:auto;color:#78998e;font:10px var(--mono)}
.diagram-canvas{height:520px;position:relative;overflow:hidden;border:1px solid var(--line);background-color:#06100d;background-image:linear-gradient(rgba(65,240,160,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(65,240,160,.045) 1px,transparent 1px);background-size:24px 24px;touch-action:none}.diagram-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.diagram-links line{stroke:#387a60;stroke-width:2;stroke-dasharray:7 4;filter:drop-shadow(0 0 3px rgba(65,240,160,.25))}.diagram-empty{position:absolute;inset:0;display:grid;place-items:center;color:#46685c;font:11px var(--mono);pointer-events:none}
.diagram-node{position:absolute;width:124px;height:68px;padding:6px 8px;border:1px solid #2b6650;background:linear-gradient(180deg,#10251e,#091612);color:#d8efe6;display:grid;grid-template-columns:34px 1fr;grid-template-rows:1fr 1fr;text-align:left;align-items:center;box-shadow:0 8px 22px rgba(0,0,0,.25);user-select:none;touch-action:none}.diagram-node:hover{border-color:var(--accent);z-index:4}.diagram-node.has-warning{border-color:#b07b43;box-shadow:0 0 0 1px rgba(242,199,109,.15),0 8px 22px rgba(0,0,0,.25)}.device-icon{grid-row:1/3;width:29px;height:29px;border:1px solid #347458;color:var(--accent);display:grid;place-items:center;font:800 10px var(--mono)}.diagram-node strong{font:10px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.diagram-node small{font:9px var(--mono);color:#73978a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ipam-card{border:1px solid var(--line);background:#091612;margin-top:12px;padding:12px}.ipam-scroll{max-height:260px;overflow:auto;margin-top:0}.ipam-scroll thead th{position:sticky;top:0;z-index:2}.ipam-status{font:9px var(--mono);color:#75dcb0}.ipam-status.warn{color:var(--warning)}
@media(max-width:1050px){.diagram-layout{grid-template-columns:1fr}.diagram-controls{position:static}.diagram-canvas{height:460px}}@media(max-width:700px){.diagram-toolbar{flex-wrap:wrap}.diagram-toolbar span{width:100%;margin:0}.diagram-canvas{height:430px}}


/* v0.4.0 Technician Workbench */
.session-grid,.tech-workbench-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.case-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}
.case-summary-grid>div{border:1px solid var(--line);background:#07130f;padding:12px}
.case-summary-grid small{display:block;color:#66877b;font:9px var(--mono);letter-spacing:.09em}
.case-summary-grid strong{display:block;color:#dff3eb;font:700 15px var(--mono);margin-top:7px}
.tech-checklist{display:flex;flex-direction:column;gap:8px}
.tech-check{display:grid;grid-template-columns:46px minmax(120px,1fr) 120px;gap:10px;align-items:center;border:1px solid var(--line);background:#07130f;padding:10px}
.tech-check .layer{color:var(--accent);font:800 10px var(--mono);text-align:center}
.tech-check strong{display:block;font:11px var(--mono);color:#d5ebe2}
.tech-check small{display:block;color:#6e9184;font:10px/1.35 var(--mono);margin-top:3px}
.tech-check select{padding:7px 8px}
.tech-check.pass{border-color:#285944}.tech-check.fail{border-color:#6b3737}.tech-check.unknown{border-color:var(--line)}
.command-palette{display:flex;flex-direction:column;gap:8px}
.command-item{border:1px solid var(--line);background:#07130f;padding:10px}
.command-item .cmd-head{display:flex;justify-content:space-between;gap:8px;align-items:center}
.command-item strong{font:11px var(--mono);color:#d6ebe3}
.command-item code{display:block;margin-top:7px;color:#95c9b5;font:11px/1.5 var(--mono);word-break:break-all}
.command-item button{padding:5px 8px}
.evidence-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;max-height:350px;overflow:auto}
.evidence-item{border:1px solid var(--line);background:#07130f;padding:10px}
.evidence-item strong{font:11px var(--mono);color:#d9eee6}
.evidence-item small{display:block;color:#5f8075;font:9px var(--mono);margin:4px 0}
.evidence-item pre{white-space:pre-wrap;color:#8ca99e;font:10px/1.45 var(--mono);margin:7px 0 0}
.evidence-item .evidence-actions{text-align:right;margin-top:8px}
.report-preview{min-height:300px;max-height:430px;overflow:auto;border:1px solid var(--line);background:#06100d;padding:12px}
@media(max-width:980px){.session-grid,.tech-workbench-grid{grid-template-columns:1fr}}
@media(max-width:700px){.case-summary-grid{grid-template-columns:1fr}.tech-check{grid-template-columns:38px 1fr}.tech-check select{grid-column:2}}

.diagram-node.selected{outline:2px solid var(--accent);outline-offset:2px}


/* v0.5.0 Website Crawler */
.crawler-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-bottom:14px}
.crawler-options{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:14px 0}
.crawler-options label{margin:0!important}
.check-line{display:flex!important;align-items:center;gap:8px;border:1px solid var(--line);background:#07130f;padding:10px;color:#86a69a!important}
.check-line input{width:auto}
.crawler-notice{margin-top:12px;line-height:1.5}
.crawl-progress{height:10px;background:#06100d;border:1px solid var(--line);margin:14px 0;overflow:hidden}
.crawl-progress>div{height:100%;width:0;background:var(--accent);transition:width .2s}
.crawl-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.crawl-stat-grid>div{border:1px solid var(--line);padding:10px;background:#07130f}
.crawl-stat-grid small{display:block;color:#69897e;font:9px var(--mono)}
.crawl-stat-grid strong{display:block;margin-top:6px;font:700 16px var(--mono);color:#dff2ea}
.crawl-summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:14px}
.crawler-filter-card{padding:12px 18px}
.crawler-filter-row{display:grid;grid-template-columns:1fr 220px;gap:10px}
.crawler-table-wrap{max-height:440px;overflow:auto;margin-top:10px}
.crawler-table thead th{position:sticky;top:0;z-index:3}
.crawler-table td:nth-child(3),.crawler-table td:nth-child(4){max-width:430px;word-break:break-all}
.crawl-status{display:inline-block;padding:4px 7px;border:1px solid var(--line);font:9px var(--mono);white-space:nowrap}
.crawl-status.ok{color:#7af0bd;border-color:#285e48}
.crawl-status.warn{color:#f2c76d;border-color:#66532e}
.crawl-status.bad{color:#ff8c8c;border-color:#713737}
.crawl-status.proxy{color:#7ecbff;border-color:#31566c}
.crawl-issues{display:flex;flex-direction:column;gap:8px}
.crawl-issue{border:1px solid var(--line);background:#07130f;padding:10px}
.crawl-issue strong{display:block;font:11px var(--mono);color:#dceee7}
.crawl-issue small{display:block;color:#76978b;margin-top:4px;line-height:1.4}
.crawler-bottom{margin-top:14px}
@media(max-width:1100px){.crawler-options{grid-template-columns:repeat(2,1fr)}.crawl-summary-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.crawler-hero{grid-template-columns:1fr}}
@media(max-width:700px){.crawler-options,.crawl-summary-grid,.crawl-stat-grid{grid-template-columns:repeat(2,1fr)}.crawler-filter-row{grid-template-columns:1fr}}

.crawler-options-v051{grid-template-columns:1.5fr .7fr .7fr 1fr 1fr}
@media(max-width:1100px){.crawler-options-v051{grid-template-columns:repeat(2,1fr)}}

.relay-config{display:grid;grid-template-columns:1fr auto minmax(190px,.7fr);gap:10px;align-items:end;margin:14px 0;border:1px solid var(--line);background:#07130f;padding:12px}
.relay-config label{margin:0 0 7px!important}
.relay-status{border:1px solid var(--line);background:#06100d;padding:11px;color:#89a99d;font:10px var(--mono);min-height:39px}
@media(max-width:800px){.relay-config{grid-template-columns:1fr}.relay-config button{width:100%}}

/* v0.7.0 Discovery Import + Professional Reports */
.diagram-discovery-box{margin:14px 0;padding-top:12px;border-top:1px solid var(--line)}
.discovery-preview{margin-bottom:12px;border:1px solid var(--line);background:#07130f;padding:12px}
.discovery-table-wrap{max-height:230px;overflow:auto}
.discovery-table-wrap thead th{position:sticky;top:0;z-index:2}
.report-builder-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:14px}
.report-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.report-preview-shell{border:1px solid var(--line);background:#08130f;padding:14px;min-width:0}
.pro-report-paper{background:#fff;color:#17201d;padding:34px;min-height:720px;max-height:850px;overflow:auto;font-family:Arial,sans-serif}
.pro-report-paper h1{font-size:28px;line-height:1.15;letter-spacing:-.02em;color:#10231d;margin:0 0 4px}
.pro-report-paper h2{font-size:17px;color:#17382d;border-bottom:2px solid #d9e7e1;padding-bottom:6px;margin:25px 0 10px}
.pro-report-paper h3{font-size:14px;margin:14px 0 5px;color:#244a3d}
.pro-report-paper p,.pro-report-paper li,.pro-report-paper td,.pro-report-paper th{font-size:12px;line-height:1.5}
.pro-report-paper .report-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:7px 20px;background:#eef5f2;padding:12px;margin:16px 0 20px}
.pro-report-paper .report-meta div{font-size:11px}
.pro-report-paper .report-meta strong{display:block;color:#547267;font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.pro-report-paper table{min-width:0;width:100%;border-collapse:collapse}
.pro-report-paper th{background:#edf4f1;color:#2c4a40}
.pro-report-paper td,.pro-report-paper th{border:1px solid #dce6e2;padding:6px;text-align:left;word-break:break-word}
.pro-report-paper .report-callout{border-left:4px solid #2a8c69;background:#eef7f3;padding:10px 12px}
.pro-report-paper .report-footer{margin-top:30px;padding-top:10px;border-top:1px solid #dce6e2;color:#6d7d77;font-size:9px}
.pro-report-paper pre{white-space:pre-wrap;word-break:break-word;background:#f5f7f6;border:1px solid #e2e8e5;padding:8px;font-size:10px;max-height:230px;overflow:auto}
@media(max-width:1050px){.report-builder-grid{grid-template-columns:1fr}.pro-report-paper{max-height:none}.report-checks{grid-template-columns:1fr}}

/* v0.8.0 Infrastructure Audit + Adaptive Troubleshooting */
.audit-grid{display:grid;grid-template-columns:1fr .7fr;gap:14px;margin-bottom:14px}
.audit-score-wrap{display:flex;align-items:baseline;gap:5px;margin:12px 0}
.audit-score-wrap strong{font:800 64px/1 var(--mono);color:var(--accent)}
.audit-score-wrap span{font:18px var(--mono);color:#718f84}
.audit-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:14px 0}
.audit-metric{border:1px solid var(--line);background:#081510;padding:13px}
.audit-metric small{display:block;color:#6c8c80;font:9px var(--mono)}
.audit-metric strong{display:block;color:#dcefe7;font:700 14px var(--mono);margin-top:7px}
.audit-findings{display:flex;flex-direction:column;gap:8px;max-height:470px;overflow:auto}
.audit-finding{border:1px solid var(--line);background:#07130f;padding:11px}
.audit-finding.critical{border-color:#723838}.audit-finding.warning{border-color:#6a542d}.audit-finding.pass{border-color:#285b45}
.audit-finding strong{display:block;font:11px var(--mono)}
.audit-finding small{display:block;color:#78988d;margin-top:4px;line-height:1.45}
.adaptive-diagnosis-card{margin-bottom:14px}
.adaptive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.adaptive-grid>div{border:1px solid var(--line);background:#06110e;padding:11px}
.adaptive-grid small{display:block;color:#68887d;font:9px var(--mono)}
.adaptive-grid strong{display:block;color:#d9ede5;font:700 12px var(--mono);margin-top:6px}
.inferred-link{stroke-dasharray:6 5!important;opacity:.75}
@media(max-width:1000px){.audit-grid{grid-template-columns:1fr}.audit-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.adaptive-grid,.audit-metrics{grid-template-columns:1fr}}
