/* Scanline — shared styles */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --ink:#0b0f14;
  --panel:#10161d;
  --panel-raised:#141b23;
  --line:#22303c;
  --text:#e8edf2;
  --muted:#7e8ca0;
  --signal:#4fd6c4;
  --signal-dim:#234843;
  --alert:#ff6b5b;
  --alert-dim:#4a2621;
  --neutral:#f2b344;
  --neutral-dim:#443a20;
  color-scheme: dark;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  background:var(--ink);
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:'Manrope',system-ui,sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

.mono{ font-family:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace; }

a{ color:inherit; }

.container{
  max-width:760px;
  margin:0 auto;
  padding:0 24px;
}

/* Header */
.site-header{
  border-bottom:1px solid var(--line);
  position:sticky; top:0;
  background:rgba(11,15,20,.9);
  backdrop-filter:blur(8px);
  z-index:10;
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:64px;
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-weight:800; font-size:17px; text-decoration:none; color:var(--text);
  letter-spacing:-0.01em;
}
.brand-mark{
  width:10px; height:10px; border-radius:2px;
  background:var(--signal);
  box-shadow:0 0 0 3px var(--signal-dim);
}
.nav{ display:flex; gap:28px; }
.nav-link{
  text-decoration:none; color:var(--muted); font-size:14.5px; font-weight:600;
  transition:color .15s ease;
}
.nav-link:hover, .nav-link[aria-current="page"]{ color:var(--text); }

/* Hero */
.hero{ padding:56px 24px 32px; }
.hero h1{
  font-size:clamp(28px,5vw,42px);
  line-height:1.15;
  font-weight:800;
  letter-spacing:-0.02em;
  margin:0 0 16px;
  max-width:16ch;
}
.hero-sub{
  color:var(--muted);
  font-size:17px;
  max-width:52ch;
  margin:0 0 28px;
}
.scan-status{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono',monospace;
  font-size:13.5px; color:var(--muted);
  border:1px solid var(--line);
  border-radius:999px;
  padding:9px 16px 9px 12px;
}
.scan-dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--signal);
  animation:pulse 1.4s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.35; transform:scale(.7); }
}
.scan-status.done .scan-dot{ animation:none; }
.rescan-btn{
  background:none; border:1px solid var(--line); color:var(--muted);
  font:inherit; font-size:13.5px; font-weight:600; font-family:'JetBrains Mono',monospace;
  border-radius:999px; padding:9px 16px; cursor:pointer;
  transition:border-color .15s ease, color .15s ease;
}
.rescan-btn:hover{ border-color:var(--signal); color:var(--text); }

/* Report sections */
.panel-section{
  padding:28px 24px 8px;
  border-top:1px solid var(--line);
}
.section-head{
  display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.dot{ width:8px; height:8px; border-radius:2px; flex:none; }
.dot-signal{ background:var(--signal); }
.dot-alert{ background:var(--alert); }
.dot-neutral{ background:var(--muted); }
.section-head h2{
  font-size:15.5px; font-weight:700; margin:0; letter-spacing:-0.01em;
}
.section-note{
  color:var(--muted); font-size:14px; margin:-4px 0 16px; max-width:56ch;
}

.data-row{
  display:flex; align-items:baseline; gap:12px;
  padding:11px 0;
  border-bottom:1px solid var(--line);
}
.data-row:last-child{ border-bottom:none; }
.data-row .label{
  color:var(--muted); font-size:14px; flex:1; min-width:0;
}
.data-row .value{
  font-family:'JetBrains Mono',monospace;
  font-size:14px; text-align:right; word-break:break-word;
}
.data-row .value.pending{ color:var(--muted); }
.copy-btn{
  background:none; border:none; color:var(--muted);
  font-family:'JetBrains Mono',monospace; font-size:12px; cursor:pointer;
  padding:2px 0 2px 4px; flex:none;
}
.copy-btn:hover{ color:var(--signal); }

/* Verdict pill */
.verdict{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 14px; border-radius:10px;
  font-family:'JetBrains Mono',monospace; font-size:14px; font-weight:600;
  margin-bottom:6px;
}
.verdict.safe{ background:var(--signal-dim); color:var(--signal); }
.verdict.warn{ background:var(--neutral-dim); color:var(--neutral); }
.verdict.risk{ background:var(--alert-dim); color:var(--alert); }
.verdict-caveat{ color:var(--muted); font-size:13px; margin:0 0 18px; }

/* Map + GPS */
.map-frame{
  width:100%; height:220px; border:1px solid var(--line); border-radius:10px;
  overflow:hidden; margin:14px 0;
  filter:grayscale(.3) invert(.92) contrast(.9);
}
.map-frame iframe{ width:100%; height:100%; border:0; display:block; }
.gps-btn{
  background:var(--panel-raised); border:1px solid var(--line); color:var(--text);
  font:inherit; font-weight:600; font-size:14px; border-radius:8px;
  padding:11px 16px; cursor:pointer; margin:4px 0 18px;
  transition:border-color .15s ease;
}
.gps-btn:hover{ border-color:var(--signal); }
.gps-note{ color:var(--muted); font-size:13px; margin-top:-10px; }

/* Info card (MAC explainer, fingerprint) */
.info-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
  padding:18px 20px;
  margin-bottom:20px;
}
.info-card p{ margin:0 0 10px; color:var(--muted); font-size:14.5px; }
.info-card p:last-child{ margin-bottom:0; }
.info-card .hash{
  font-family:'JetBrains Mono',monospace; font-size:18px; color:var(--signal);
  letter-spacing:.04em; margin:2px 0 10px;
}

/* Footer */
.site-footer{ border-top:1px solid var(--line); margin-top:40px; }
.footer-inner{
  display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; justify-content:space-between;
  padding:28px 24px; color:var(--muted); font-size:13.5px;
}
.footer-nav{ display:flex; gap:20px; }
.footer-nav a{ text-decoration:none; color:var(--muted); }
.footer-nav a:hover{ color:var(--text); }

/* Legal pages */
.legal{ padding:48px 24px 64px; }
.legal h1{ font-size:clamp(26px,4vw,34px); margin:0 0 6px; letter-spacing:-0.02em; }
.legal .updated{ color:var(--muted); font-size:14px; margin:0 0 28px; }
.legal .callout{
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  padding:16px 18px; margin-bottom:32px; color:var(--muted); font-size:14.5px;
}
.legal h2{ font-size:19px; margin:34px 0 10px; letter-spacing:-0.01em; }
.legal p, .legal li{ color:#c3cad3; font-size:15px; line-height:1.65; }
.legal ul{ padding-left:20px; }
.legal a.inline{ color:var(--signal); text-decoration:underline; }

@media (max-width:560px){
  .header-inner{ height:56px; }
  .nav{ gap:18px; }
  .hero{ padding:40px 20px 24px; }
  .data-row{ flex-wrap:wrap; }
  .data-row .value{ text-align:left; width:100%; }
}

:focus-visible{ outline:2px solid var(--signal); outline-offset:2px; }

@media (prefers-reduced-motion:reduce){
  .scan-dot{ animation:none; }
  html{ scroll-behavior:auto; }
}
