/* ===== SCANNER.CSS ===== */
@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Chakra+Petch:ital,wght@0,300;0,500;0,600;0,700;1,300&family=Crimson+Pro:ital,wght@0,300;0,400;1,300&display=swap');

:root {
  --bg:         #000a00;
  --deep:       #001200;
  --panel:      #001a00;
  --card:       #002000;
  --phos:       #00e676;
  --phos-dim:   #00b248;
  --phos-pale:  rgba(0,230,118,.1);
  --phos-glow:  rgba(0,230,118,.06);
  --amber:      #ffab00;
  --red-alert:  #ff3d00;
  --text:       #c8e6c9;
  --muted:      #2e5c2e;
  --border:     rgba(0,230,118,.15);
  --font-h:     'Chakra Petch', sans-serif;
  --font-b:     'Crimson Pro', serif;
  --font-m:     'Share Tech Mono', monospace;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-b);background:var(--bg);color:var(--text);line-height:1.75;overflow-x:hidden}

/* Phosphor scanline */
body::after{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.12) 2px,rgba(0,0,0,.12) 4px);pointer-events:none;z-index:0;pointer-events:none}

body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse 90% 70% at 50% 30%,rgba(0,230,118,.04) 0%,transparent 65%);pointer-events:none;z-index:0}

#progress-bar{position:fixed;top:0;left:0;height:2px;background:var(--phos);width:0%;z-index:200;box-shadow:0 0 12px var(--phos);transition:width .1s}

nav{position:fixed;top:0;left:0;right:0;z-index:100;height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;background:rgba(0,10,0,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}
.nav-brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.nav-ct-icon{font-family:var(--font-h);font-size:1.1rem;font-weight:700;color:var(--phos);letter-spacing:.1em;text-shadow:0 0 8px var(--phos)}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-family:var(--font-m);font-size:.72rem;color:var(--muted);text-decoration:none;letter-spacing:.08em;transition:color .2s}
.nav-links a:hover{color:var(--phos)}
.nav-kv{font-family:var(--font-m);font-size:.68rem;color:var(--phos);background:var(--phos-pale);border:1px solid var(--border);padding:.28rem .8rem;border-radius:100px}

/* HERO */
.hero{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:55% 45%;align-items:center;gap:3rem;padding:8rem 3rem 4rem;overflow:hidden}
.hero-tag{font-family:var(--font-m);font-size:.7rem;color:var(--phos);letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.2rem;display:flex;align-items:center;gap:.7rem}
.hero-tag::before{content:'';width:24px;height:1px;background:var(--phos)}
.hero h1{font-family:var(--font-h);font-size:clamp(3rem,7vw,6.5rem);font-weight:700;line-height:.95;letter-spacing:-.01em;color:var(--text);margin-bottom:1.2rem;text-shadow:0 0 30px rgba(0,230,118,.1)}
.hero h1 em{font-style:italic;color:var(--phos);font-family:var(--font-b);font-weight:300}
.hero-desc{font-size:.95rem;color:var(--muted);max-width:470px;line-height:1.85;margin-bottom:2.5rem;font-weight:300}
.hero-kpis{display:flex;gap:2.5rem;flex-wrap:wrap}
.hk{display:flex;flex-direction:column}
.hk-n{font-family:var(--font-h);font-size:2.2rem;font-weight:700;color:var(--phos);line-height:1;text-shadow:0 0 16px rgba(0,230,118,.25)}
.hk-l{font-family:var(--font-m);font-size:.64rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:.3rem}

/* CT scan ring visual */
.ct-visual{display:flex;align-items:center;justify-content:center}

/* BAND */
.rad-band{background:var(--panel);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:3.5rem 3rem}
.rad-inner{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center}
.rb-n{font-family:var(--font-h);font-size:2.8rem;font-weight:700;color:var(--phos);line-height:1;text-shadow:0 0 20px rgba(0,230,118,.2)}
.rb-l{font-family:var(--font-m);font-size:.66rem;color:var(--muted);letter-spacing:.1em;margin-top:.4rem}

/* SEC */
.sec{position:relative;z-index:1;max-width:1160px;margin:0 auto;padding:5rem 3rem}
.shead{display:flex;align-items:center;gap:1rem;margin-bottom:3rem}
.snum{font-family:var(--font-m);font-size:.7rem;color:var(--phos);letter-spacing:.18em;flex-shrink:0}
.stitle{font-family:var(--font-h);font-size:clamp(1.4rem,2.5vw,2.2rem);font-weight:600;letter-spacing:.02em}
.sline{flex:1;height:1px;background:var(--border);margin-left:.8rem}

/* PROTOCOLES */
.proto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5px;background:var(--border);border:1px solid var(--border)}
.proto-card{background:var(--card);padding:1.8rem;transition:background .25s;position:relative;overflow:hidden;cursor:default}
.proto-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--phos);transform:scaleY(0);transform-origin:top;transition:transform .4s}
.proto-card:hover::before{transform:scaleY(1)}
.proto-card:hover{background:var(--panel)}
.proto-code{font-family:var(--font-m);font-size:.64rem;color:var(--phos);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.6rem}
.proto-name{font-family:var(--font-h);font-size:1.05rem;font-weight:600;margin-bottom:.6rem;letter-spacing:.02em}
.proto-desc{font-size:.85rem;color:var(--muted);line-height:1.75}
.proto-params{margin-top:.9rem;display:flex;flex-direction:column;gap:.25rem}
.pp{font-family:var(--font-m);font-size:.68rem;display:flex;justify-content:space-between;padding:.2rem 0;border-bottom:1px solid rgba(0,230,118,.06)}
.pp span:last-child{color:var(--amber)}

/* TABLE */
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:4px}
table{width:100%;border-collapse:collapse;font-size:.86rem}
thead{background:var(--panel)}
th{font-family:var(--font-m);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--phos);padding:.9rem 1.2rem;text-align:left;border-bottom:1px solid var(--border)}
td{padding:.9rem 1.2rem;border-bottom:1px solid rgba(0,230,118,.05);color:var(--text);vertical-align:top}
tr:hover td{background:var(--phos-glow)}
tr:last-child td{border-bottom:none}
.tag{font-family:var(--font-m);font-size:.63rem;padding:.18rem .55rem;border-radius:2px;text-transform:uppercase;letter-spacing:.06em}
.tag-ok{background:rgba(0,230,118,.1);color:var(--phos);border:1px solid rgba(0,230,118,.2)}
.tag-w{background:rgba(255,171,0,.1);color:var(--amber);border:1px solid rgba(255,171,0,.2)}
.tag-r{background:rgba(255,61,0,.1);color:#ff7043;border:1px solid rgba(255,61,0,.2)}

/* DOSE VISUALIZER */
.dose-bar-wrap{display:flex;flex-direction:column;gap:.7rem;margin-top:1.5rem}
.dose-row{display:grid;grid-template-columns:160px 1fr 60px;gap:1rem;align-items:center}
.dose-label{font-family:var(--font-m);font-size:.72rem;color:var(--text);letter-spacing:.04em}
.dose-bar-bg{background:rgba(0,230,118,.08);border-radius:2px;height:8px;overflow:hidden}
.dose-bar{height:100%;border-radius:2px;transition:width 1.2s ease;width:0%}
.dose-val{font-family:var(--font-m);font-size:.72rem;color:var(--amber);text-align:right}

/* ALERTS */
.alert-rad{background:rgba(255,61,0,.07);border:1px solid rgba(255,61,0,.2);border-left:3px solid var(--red-alert);padding:1.2rem 1.5rem;font-size:.87rem;color:#ff8a65;line-height:1.75;margin-top:1rem}
.alert-ok{background:var(--phos-pale);border:1px solid var(--border);border-left:3px solid var(--phos);padding:1.2rem 1.5rem;font-size:.87rem;color:var(--text);line-height:1.75;margin-top:1rem}

/* FI */
.fi{opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}
.fi.visible{opacity:1;transform:translateY(0)}

footer{border-top:1px solid var(--border);padding:2rem 3rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;z-index:1;position:relative}
.ft{font-family:var(--font-m);font-size:.7rem;color:var(--muted)}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;padding:7rem 1.2rem 3rem}
  .ct-visual{display:none}
  .rad-inner{grid-template-columns:repeat(2,1fr)}
  nav{padding:0 1.2rem}
  .nav-links{display:none}
  .sec{padding:3rem 1.2rem}
  .dose-row{grid-template-columns:120px 1fr 50px}
}
