:root{
    --bg:#070a0e; --panel:#0d1218; --panel2:#111823; --line:#1c2733; --line2:#26333f;
    --text:#d6dee8; --dim:#6f7d8c; --dim2:#8a97a5; --amber:#eab308; --amber2:#fcd34d;
    --green:#46e0a0; --red:#f0503c; --grid:rgba(70,224,160,.05);
  }
  *{box-sizing:border-box;}
  body{margin:0; background:var(--bg); color:var(--text);
    font:15px/1.6 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
    background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
    background-size:40px 40px;}
  .mono{font-family:ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;}
  a{color:var(--amber);}
  .shell{width:min(1520px,96vw); margin:0 auto;}
  /* Header */
  header.top{position:sticky; top:0; z-index:40; background:rgba(7,10,14,.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
  .topbar{display:flex; align-items:center; gap:1rem; padding:.7rem 0;}
  .brand{display:flex; align-items:center; gap:.6rem; font-weight:800; font-size:1.25rem; letter-spacing:-.01em;}
  .brand svg.tile{width:38px; height:38px; flex:none;}
  .brand .wm b{color:var(--amber2); font-weight:800;}
  .sp{flex:1;}
  .threat{display:inline-flex; align-items:center; gap:.6rem; border:1px solid var(--line2); border-radius:999px; padding:.4rem .95rem; background:var(--panel); font-family:ui-monospace,monospace;}
  .threat .lbl{font-size:.6rem; letter-spacing:.2em; color:var(--dim); text-transform:uppercase;}
  .threat .sep{width:1px; height:14px; background:var(--line2);}
  .threat .val{font-weight:800; letter-spacing:.1em; font-size:.92rem;}
  .dot{width:8px; height:8px; border-radius:50%; box-shadow:0 0 0 0 currentColor; animation:pulse 1.8s infinite; flex:none;}
  .t-hoch{color:var(--red);} .t-mittel{color:var(--amber);} .t-gering{color:var(--green);}
  @keyframes pulse{0%{box-shadow:0 0 0 0 currentColor;}70%{box-shadow:0 0 0 7px transparent;}100%{box-shadow:0 0 0 0 transparent;}}
  /* Ticker */
  .ticker{border-bottom:1px solid var(--line); background:var(--panel); overflow:hidden; white-space:nowrap;}
  .ticker-inner{display:flex; align-items:center;}
  .marquee{overflow:hidden; flex:1;}
  .marquee ul{display:inline-flex; gap:2.2rem; margin:0; padding:.3rem 1.2rem; list-style:none; animation:scroll 60s linear infinite;}
  .marquee li{font-family:ui-monospace,monospace; font-size:.76rem; color:var(--dim2); white-space:nowrap;}
  .marquee li b{color:var(--amber2); font-weight:700;} .marquee li .pp{color:var(--text);} .marquee li .ago{color:var(--dim);} .marquee li .tool{color:var(--green);}
  .marquee li::before{content:"◤"; color:var(--green); margin-right:.5rem; font-size:.6rem; vertical-align:middle;}
  @keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  .marquee:hover ul{animation-play-state:paused;}
  /* Hero */
  .hero{padding:2.2rem 0 1rem;}
  .eyebrow{font-family:ui-monospace,monospace; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--green);}
  .hero h1{font-size:2rem; line-height:1.15; margin:.5rem 0;}
  .hero p{color:var(--dim2); max-width:80ch;}
  .stamp{color:var(--dim); font-size:.82rem; margin-top:.6rem; font-family:ui-monospace,monospace;}
  /* Ops-Reihe */
  .ops{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.9rem; margin:1.4rem 0;}
  .opsbox{position:relative; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:.9rem 1.1rem;}
  .opsbox::before,.opsbox::after{content:""; position:absolute; width:9px; height:9px; border-color:var(--line2); border-style:solid;}
  .opsbox::before{top:6px; left:6px; border-width:1px 0 0 1px;}
  .opsbox::after{bottom:6px; right:6px; border-width:0 1px 1px 0;}
  .opsbox .k{font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim);}
  .opsbox .v{font-family:ui-monospace,monospace; font-size:1.5rem; font-weight:800; margin-top:.2rem;}
  .opsbox .osub{font-size:.72rem; color:var(--dim); margin-top:.2rem;}
  .lagebild{background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--green); border-radius:0 10px 10px 0; padding:1rem 1.2rem; margin:0 0 2rem; line-height:1.65;}
  .lagebild[hidden]{display:none;}
  .lagebild h2{font-family:ui-monospace,monospace; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--green); margin:0 0 .6rem;}
  /* Sektion */
  .sec-head{display:flex; align-items:baseline; gap:.8rem; margin:2rem 0 1rem; border-bottom:1px solid var(--line); padding-bottom:.5rem;}
  .sec-head h2{font-size:1.05rem; margin:0; font-family:ui-monospace,monospace; letter-spacing:.08em; text-transform:uppercase;}
  .sec-head .hint{color:var(--dim); font-size:.8rem;}
  /* Vektor-Zeilen, volle Breite */
  .rows{display:flex; flex-direction:column; gap:.7rem;}
  .vrow{display:grid; grid-template-columns:56px minmax(0,1fr) 210px 116px 130px; align-items:center; gap:1.2rem;
    background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:.9rem 1.1rem; cursor:pointer; transition:border-color .15s,background .15s;}
  .vrow:hover{border-color:var(--amber); background:var(--panel2);}
  .vico{width:56px; height:56px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:rgba(234,179,8,.1); border:1px solid var(--line2);}
  .vico svg{width:28px; height:28px; stroke:var(--amber2); fill:none; stroke-width:1.8;}
  .vico.i-hoch{background:rgba(240,80,60,.12);} .vico.i-hoch svg{stroke:var(--red);}
  .vico.i-erhöht{background:rgba(234,179,8,.12);} .vico.i-erhöht svg{stroke:var(--amber2);}
  .vico.i-gering{background:rgba(111,125,140,.12);} .vico.i-gering svg{stroke:var(--dim2);}
  .vmain .vt{font-weight:700; font-size:1.08rem; display:flex; align-items:center; gap:.55rem; flex-wrap:wrap;}
  .vmain .vd{color:var(--dim2); font-size:.86rem; margin-top:.2rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
  .badge{font-family:ui-monospace,monospace; font-size:.66rem; font-weight:700; letter-spacing:.06em; padding:.12rem .5rem; border-radius:5px; text-transform:uppercase; white-space:nowrap;}
  .b-steigend{color:var(--red); border:1px solid rgba(240,80,60,.4); background:rgba(240,80,60,.08);}
  .b-stabil{color:var(--dim2); border:1px solid var(--line2);}
  .b-fallend{color:var(--green); border:1px solid rgba(70,224,160,.35); background:rgba(70,224,160,.06);}
  .b-ruhig{color:var(--dim); border:1px solid var(--line2);}
  .chip{font-family:ui-monospace,monospace; font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); border:1px solid var(--line2); border-radius:5px; padding:.1rem .45rem;}
  .chip.cve{color:#fca5a5; border-color:rgba(240,80,60,.35);}
  .vmeter{}
  .vmeter .lbl{font-family:ui-monospace,monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); display:flex; justify-content:space-between; margin-bottom:.25rem;}
  .track{height:8px; background:var(--panel2); border:1px solid var(--line2); border-radius:5px; overflow:hidden;}
  .fill{height:100%; border-radius:5px;}
  .f-hoch{background:linear-gradient(90deg,#f0503c,#eab308);} .f-erhöht{background:var(--amber);} .f-gering{background:var(--dim2);}
  .sparkcell{display:flex; align-items:center; justify-content:center; height:30px;}
  .spark{display:block;}
  .go{justify-self:end; display:inline-flex; align-items:center; gap:.35rem; border:1px solid var(--line2); background:var(--panel2);
    color:var(--dim2); border-radius:7px; padding:.42rem .85rem; font-family:ui-monospace,monospace; font-size:.72rem; letter-spacing:.04em; white-space:nowrap;}
  .vrow:hover .go{border-color:var(--amber); color:var(--amber); background:rgba(234,179,8,.08);}
  .empty{color:var(--dim); padding:2rem 0;}
  /* Werkzeuge */
  .tools{display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:.7rem;}
  .trow{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:.85rem 1rem;}
  .trow .th{display:flex; align-items:center; gap:.5rem; justify-content:space-between;}
  .tname{font-family:ui-monospace,monospace; font-weight:700;}
  .kbadge{font-family:ui-monospace,monospace; font-size:.6rem; letter-spacing:.06em; text-transform:uppercase; padding:.12rem .48rem; border-radius:5px; border:1px solid var(--line2); color:var(--dim2); white-space:nowrap;}
  .k-exploit{color:var(--red); border-color:rgba(240,80,60,.4);}
  .k-mass{color:var(--amber2); border-color:rgba(234,179,8,.4);}
  .k-research{color:var(--green); border-color:rgba(70,224,160,.35);}
  .k-httplib{color:var(--dim2);}
  .k-spoofed{color:#c084fc; border-color:rgba(192,132,252,.4);}
  .k-unknown{color:var(--dim);}
  .tdesc{color:var(--dim2); font-size:.84rem; margin:.45rem 0 .55rem;}
  .tshare{display:flex; align-items:center; gap:.6rem;}
  .tshare .track{flex:1; height:8px; background:var(--panel2); border:1px solid var(--line2); border-radius:5px; overflow:hidden;}
  .tshare .pct{font-family:ui-monospace,monospace; font-size:.72rem; color:var(--dim); min-width:36px; text-align:right;}
  .k-ai{color:#60a5fa; border-color:rgba(96,165,250,.4);}
  /* KI-Briefing (nutzt .lagebild) + Quellen */
  .lagebild .sources{margin-top:.7rem; border-top:1px solid var(--line); padding-top:.5rem;}
  .lagebild .src-h{color:var(--dim); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:.3rem;}
  .lagebild .sources ol{margin:.2rem 0; padding-left:1.2rem;} .lagebild .sources a{word-break:break-all;}
  .lagebild sup a{color:var(--green); text-decoration:none;}
  #ki{border-left-color:#60a5fa;} #ki h2{color:#60a5fa;}
  /* CISA KEV */
  .kev{display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:.7rem;}
  .kevrow{background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--red); border-radius:0 10px 10px 0; padding:.8rem 1rem;}
  .kevtop{display:flex; justify-content:space-between; align-items:center; gap:.5rem;}
  .kevcve{font-family:ui-monospace,monospace; font-weight:700; color:#fca5a5; text-decoration:none;}
  .kevdate{font-family:ui-monospace,monospace; font-size:.72rem; color:var(--dim); white-space:nowrap;}
  .kevname{font-weight:600; font-size:.9rem; margin:.3rem 0;}
  .kevdesc{color:var(--dim2); font-size:.83rem;}
  footer{border-top:1px solid var(--line); margin-top:3rem; padding:1.6rem 0; color:var(--dim); font-size:.82rem;}
  /* Detail-Overlay */
  .overlay{position:fixed; inset:0; background:rgba(2,4,7,.78); display:flex; justify-content:center; align-items:flex-start; padding:3rem 1rem; overflow:auto; z-index:60;}
  .overlay[hidden]{display:none;}
  .sheet{background:var(--panel); border:1px solid var(--line2); border-radius:14px; max-width:840px; width:100%; padding:1.5rem 1.6rem;}
  .sheet-head{display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;}
  .sheet-head h2{margin:.1rem 0; font-size:1.5rem; display:flex; align-items:center; gap:.7rem;}
  .sheet-head svg{width:30px; height:30px; stroke:var(--amber2); fill:none; stroke-width:1.8;}
  .sheet-head button{background:none; border:none; color:var(--dim); font-size:1.6rem; cursor:pointer; line-height:1;}
  .sheet h3{font-family:ui-monospace,monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:var(--green); margin:1.5rem 0 .5rem;}
  .pathlist{list-style:none; padding:0; margin:0;}
  .pathlist li{font-family:ui-monospace,monospace; font-size:.85rem; color:var(--amber2); padding:.25rem 0; border-bottom:1px solid var(--line); word-break:break-all;}
  .cves a{display:inline-block; background:var(--panel2); border:1px solid rgba(240,80,60,.3); color:#fca5a5; border-radius:5px; padding:.1rem .5rem; margin:.2rem .3rem .2rem 0; font-size:.82rem; text-decoration:none; font-family:ui-monospace,monospace;}
  .sources{margin:.3rem 0; padding-left:1.2rem;} .sources a{word-break:break-all;}
  .tabs{display:flex; gap:.3rem; margin-bottom:.4rem;}
  .tabs button{background:var(--panel2); border:1px solid var(--line2); color:var(--dim2); border-radius:6px 6px 0 0; padding:.3rem .8rem; cursor:pointer; font:inherit; font-size:.82rem; font-family:ui-monospace,monospace;}
  .tabs button.active{border-color:var(--amber); color:var(--amber);}
  pre.snip,pre.prompt{background:var(--bg); border:1px solid var(--line2); border-radius:8px; padding:.85rem 1rem; overflow:auto; margin:.55rem 0 .2rem; font-size:.82rem; line-height:1.5; white-space:pre-wrap; word-break:break-word; font-family:ui-monospace,monospace;}
  .copybar{display:flex; align-items:center; gap:.7rem; margin:.6rem 0 .1rem;}
  .copybar button{background:var(--amber); color:#1a1206; border:none; border-radius:6px; padding:.32rem .8rem; font:inherit; font-weight:700; cursor:pointer; font-size:.84rem;}
  .note{color:var(--dim); font-size:.85rem; margin:.3rem 0;}
  .prompt-wrap h3{color:var(--amber);}
  .updnote{color:var(--dim); font-size:.8rem; margin-top:1.4rem; font-family:ui-monospace,monospace;}
  .loading{color:var(--dim); padding:1rem 0; font-family:ui-monospace,monospace;}
  @media(max-width:820px){ .vrow{grid-template-columns:48px minmax(0,1fr) auto; gap:.9rem;} .vmeter,.sparkcell{display:none;} }
  @media(max-width:560px){
    /* Kopfzeile kompakt, damit nichts ueberlaeuft */
    .topbar{gap:.5rem;}
    .brand{font-size:1.02rem; gap:.45rem;}
    .brand svg.tile{width:30px; height:30px;}
    .threat{padding:.22rem .5rem; gap:.3rem;}
    .threat .lbl, .threat .sep{display:none;}   /* "Lage"-Label + Trenner weg */
    .threat .val{font-size:.72rem; letter-spacing:.03em;}
    .dot{width:7px; height:7px;}
    /* Ops-Cards 2-spaltig */
    .ops{grid-template-columns:repeat(2,1fr); gap:.55rem; margin:1rem 0;}
    .opsbox{padding:.6rem .7rem;}
    .opsbox .k{font-size:.6rem; letter-spacing:.1em;}
    .opsbox .v{font-size:1.15rem;}
    .opsbox .osub{font-size:.66rem;}
  }
  .mapwrap{display:grid;grid-template-columns:1fr 250px;gap:1rem;align-items:stretch;margin:0 0 1.6rem;}
  .worldmap{width:100%;height:auto;display:block;border:1px solid #1c2740;border-radius:12px;background:radial-gradient(130% 130% at 50% 25%,#0f1a34,#070c19);}
  .worldmap .land{fill:#2c3d5a;stroke:#6079a3;stroke-width:.5;}
  .worldmap .halo{fill:url(#dotg);}
  .worldmap .ping{fill:none;stroke:#ffb347;stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center;animation:mping 3s ease-out infinite;}
  .worldmap .ping.hot{stroke:#ff5630;stroke-width:1.6;}
  .worldmap .dot{fill:#ffb347;transform-box:fill-box;transform-origin:center;animation:mpop 3s ease-out infinite;}
  .worldmap .dot.hot{fill:#ff5630;}
  .maplist{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;padding:.6rem;border:1px solid #1c2740;border-radius:12px;background:#0c1326;overflow:auto;}
  .maplist .crow{display:flex;align-items:center;gap:.5rem;}
  .maplist .cflag{font-size:1.1rem;line-height:1;flex:none;}
  .maplist .cname{flex:1;color:#c9d4e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .maplist .cbar{width:52px;height:6px;background:#1c2740;border-radius:3px;overflow:hidden;flex:none;}
  .maplist .cfill{display:block;height:100%;background:linear-gradient(90deg,#ffb347,#ff5630);}
  .maplist .cpct{color:#8a97a5;min-width:40px;text-align:right;flex:none;}
  @media(max-width:640px){.mapwrap{grid-template-columns:1fr;}.maplist{max-height:180px;}}
  html{scroll-behavior:smooth;}
  .hero{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;align-items:center;}
  .heromap{display:flex;flex-direction:column;gap:.6rem;}
  .minimap{width:100%;height:auto;display:block;border:1px solid #1c2740;border-radius:10px;background:radial-gradient(130% 130% at 50% 25%,#0f1a34,#070c19);}
  .minimap .mdot{fill:#ffb347;transform-box:fill-box;transform-origin:center;animation:mpop 3.4s ease-out infinite;}
  .minimap .mdot.hot{fill:#ff5630;}
  .minimap .ping{fill:none;stroke:#ffb347;stroke-width:2.4;opacity:0;transform-box:fill-box;transform-origin:center;animation:mping 3.4s ease-out infinite;}
  .minimap .ping.hot{stroke:#ff5630;}
  @keyframes mping{0%{transform:scale(.15);opacity:.9;}70%{opacity:0;}100%{transform:scale(3.4);opacity:0;}}
  @keyframes mpop{0%,55%,100%{transform:scale(1);}6%{transform:scale(1.9);}}
  .mapbtn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem .9rem;border:1px solid #2b3a5c;border-radius:8px;background:#131f38;color:#cfe0ff;text-decoration:none;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s;}
  .mapbtn:hover{background:#1a2a4c;border-color:#3a4f7a;}
  #map{scroll-margin-top:90px;}
  @media(max-width:720px){.hero{grid-template-columns:1fr;}.heromap{max-width:360px;}}
  @media(prefers-reduced-motion:reduce){.minimap .mdot,.minimap .ping,.worldmap .dot,.worldmap .ping{animation:none;}.minimap .ping,.worldmap .ping{opacity:.4;}}
  .opsbox .ospark{margin-top:.4rem;line-height:0;}
  .opsbox .ospark .spark{width:100%;height:26px;display:block;opacity:.85;}
.asnlist{display:flex;flex-direction:column;gap:.45rem;padding:.8rem 1rem;border:1px solid #1c2740;border-radius:12px;background:#0c1326;margin:0 0 1.6rem;}
.asnlist .crow{display:flex;align-items:center;gap:.6rem;font-size:.85rem;}
.asnlist .cname{flex:1;color:#c9d4e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.asnlist .cbar{width:120px;max-width:34vw;height:6px;background:#1c2740;border-radius:3px;overflow:hidden;flex:none;}
.asnlist .cfill{display:block;height:100%;background:linear-gradient(90deg,#ffb347,#ff5630);}
.asnlist .cpct{color:#8a97a5;min-width:74px;text-align:right;flex:none;}
