/* Reef Sentinel — mobile site (/m). Phone-first, readability-first. */
:root{
  --bg:#0A0D10; --bg2:#0F1418; --card:#131A1F; --card2:#19222A; --line:#24303A;
  --text:#ECE9E0; --text2:#C3CCCF; --muted:#8A9CA2;
  --accent:#35D0C4; --accent-ink:#06211F; --coral:#FF6E4E; --glow:#9CFFDD;
  --sev-ae:#FF4D6D; --sev-crit:#FF6E4E; --sev-high:#FFB020; --sev-med:#E2CC5A; --sev-low:#35D0C4; --sev-info:#8A9CA2;
  --shadow:0 10px 30px -14px rgba(0,0,0,.7);
  --read:17.5px; --lh:1.72;
  --top-h:56px; --tab-h:62px;
  --safe-b:env(safe-area-inset-bottom,0px);
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#F6F4EE; --bg2:#EFECE4; --card:#FFFFFF; --card2:#F3F1EA; --line:#E1DDD2;
  --text:#14191C; --text2:#2F3A3F; --muted:#5F6E73;
  --accent:#0E8F86; --accent-ink:#FFFFFF; --coral:#D2492B; --glow:#0E8F86;
  --sev-ae:#C81E45; --sev-crit:#D2492B; --sev-high:#B86E00; --sev-med:#8C7A00; --sev-low:#0E8F86; --sev-info:#5F6E73;
  --shadow:0 10px 26px -16px rgba(20,25,28,.35);
  color-scheme:light;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --bg:#F6F4EE; --bg2:#EFECE4; --card:#FFFFFF; --card2:#F3F1EA; --line:#E1DDD2;
    --text:#14191C; --text2:#2F3A3F; --muted:#5F6E73;
    --accent:#0E8F86; --accent-ink:#FFFFFF; --coral:#D2492B; --glow:#0E8F86;
    --sev-ae:#C81E45; --sev-crit:#D2492B; --sev-high:#B86E00; --sev-med:#8C7A00; --sev-low:#0E8F86; --sev-info:#5F6E73;
    --shadow:0 10px 26px -16px rgba(20,25,28,.35);
    color-scheme:light;
  }
}
:root[data-text="s"]{--read:15.5px;} :root[data-text="l"]{--read:19.5px;} :root[data-text="xl"]{--read:22px;}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{background:var(--bg);color:var(--text);font:400 16px/1.5 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden;
  padding-top:var(--top-h);padding-bottom:calc(var(--tab-h) + var(--safe-b));}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
img{display:block;max-width:100%;}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px;}
#view{outline:none;}
.mono{font-family:"Fira Code",ui-monospace,monospace;}

/* top bar */
.top{position:fixed;inset:0 0 auto 0;height:var(--top-h);z-index:40;display:flex;align-items:center;justify-content:space-between;
  padding:0 8px 0 16px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:border-color .2s,transform .25s;}
.top.scrolled{border-bottom-color:var(--line);}
.top.hide{transform:translateY(-100%);}
.brand{display:flex;align-items:center;gap:10px;}
.brand img{width:42px;height:42px;border-radius:50%;}
.brand span{font:700 15px/1 "Chakra Petch",sans-serif;letter-spacing:.14em;}
.top-actions{display:flex;}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--text2);}
.icon-btn:active{background:var(--card2);}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:60;transition:width .1s linear;}

/* bottom tabs */
.tabs{position:fixed;inset:auto 0 0 0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);
  height:calc(var(--tab-h) + var(--safe-b));padding-bottom:var(--safe-b);
  background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);}
.tabs a,.tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.02em;}
.tabs .on{color:var(--accent);}
.tabs .on svg{stroke-width:2.2;}

/* layout */
.wrap{padding:0 16px;}
.sec{margin-top:30px;}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;padding:0 16px;margin-bottom:12px;}
.sec-h h2{font:700 20px/1.2 "Chakra Petch",sans-serif;letter-spacing:.01em;}
.sec-h a{font-size:14px;font-weight:600;color:var(--accent);padding:8px 0 8px 12px;}
.page-h{padding:18px 16px 4px;}
.page-h h1{font:700 28px/1.15 "Chakra Petch",sans-serif;}
.page-h p{color:var(--muted);margin-top:6px;font-size:15px;}
.today{padding:14px 16px 0;color:var(--muted);font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;}

/* chips / pills */
.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 16px 4px;scrollbar-width:none;}
.chips::-webkit-scrollbar{display:none;}
.chip{flex:none;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:14px;font-weight:600;color:var(--text2);}
.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);}
.sev{--c:var(--sev-info);display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--c);}
.sev:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c);flex:none;}
.sev-ae{--c:var(--sev-ae);} .sev-crit{--c:var(--sev-crit);} .sev-high{--c:var(--sev-high);} .sev-med{--c:var(--sev-med);} .sev-low{--c:var(--sev-low);}
.meta{color:var(--muted);font-size:13px;}
.dot{margin:0 6px;opacity:.6;}

/* headlines */
/* Today's threat level */
.pulse{position:relative;margin:12px 16px 0;padding:16px 16px 14px;border-radius:20px;border:1px solid var(--line);overflow:hidden;
  background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--lv) 22%,transparent),transparent 62%),var(--card);}
.pulse-top{display:flex;justify-content:space-between;font-size:14px;font-weight:600;color:var(--text2);}
.pulse-top span+span{color:var(--muted);font-weight:500;}
.pulse-k{margin-top:16px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.pulse-lvl{display:flex;align-items:center;gap:14px;margin-top:8px;}
.pulse-lvl b{font:700 26px/1 "Chakra Petch",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--lv);}
.pulse-bars{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;flex:1;max-width:190px;}
.pulse-bars i{height:22px;border-radius:4px;background:var(--line);}
.pulse-bars i.on{background:var(--b);animation:bar .45s var(--d) both ease-out;}
@keyframes bar{from{transform:scaleY(.2);opacity:.2;}}
.pulse-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;}
.pulse-stats a{padding:10px 10px 9px;border-radius:12px;background:color-mix(in srgb,var(--bg) 55%,transparent);border:1px solid var(--line);}
.pulse-stats b{display:block;font:700 24px/1.05 "Chakra Petch",sans-serif;color:var(--text);}
.pulse-stats span{display:block;margin-top:4px;font-size:11.5px;line-height:1.3;color:var(--muted);}
.pulse-foot{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:12.5px;color:var(--muted);}
.pulse-foot .live{background:var(--lv);animation:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--lv) 25%,transparent);}
.pulse-foot .linkish{margin-left:auto;font-size:12.5px;}
.pulse-how{margin-top:10px;font-size:13px;line-height:1.5;color:var(--text2);}

/* Latest News vertical ticker (3 rows visible, endless both ways) */
.ln{margin:12px 16px 0;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.ln .heads-h{color:var(--accent);padding-bottom:10px;border-bottom:1px solid var(--line);}
.ln .live{background:var(--accent);animation-name:pulse-a;}
@keyframes pulse-a{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent);}100%{box-shadow:0 0 0 10px transparent;}}
.ln-count{margin-left:auto;font:600 12px/1 Inter,sans-serif;letter-spacing:0;color:var(--muted);}
.ln-box{--row:88px;height:calc(var(--row) * 3);overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(transparent,#000 14px,#000 calc(100% - 14px),transparent);}
.ln-box::-webkit-scrollbar{display:none;}
.ln-row{display:flex;flex-direction:column;justify-content:center;gap:6px;height:var(--row);padding:0 16px;border-bottom:1px solid var(--line);scroll-snap-align:start;}
.ln-top{display:flex;align-items:center;gap:10px;}
.ln-top .meta{margin-left:auto;font-size:12px;}
.ln-row b{font-size:15.5px;line-height:1.35;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.heads{margin:12px 16px 0;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.heads-h{display:flex;align-items:center;gap:8px;padding:14px 16px 6px;font:700 13px/1 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--coral);}
.live{width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 0 var(--coral);animation:pulse 1.8s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--coral) 60%,transparent);}100%{box-shadow:0 0 0 10px transparent;}}
.head{display:flex;gap:12px;padding:12px 16px;border-top:1px solid var(--line);}
.head:first-of-type{border-top:0;}
.head .sev{margin-top:6px;}
.head .sev:before{width:9px;height:9px;}
.head p{font-size:15.5px;line-height:1.45;color:var(--text);}
.head .hdate{display:block;font-size:12px;color:var(--muted);margin-top:4px;}
.head .sevt{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;}
.heads-more{display:block;width:100%;padding:13px;border-top:1px solid var(--line);font-size:14px;font-weight:600;color:var(--accent);}

/* horizontal rails */
.rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px 6px;scrollbar-width:none;scroll-padding:0 16px;}
.rail::-webkit-scrollbar{display:none;}
.rail>*{scroll-snap-align:start;flex:none;}
.rail-loop{scroll-padding:0 16px;}
.feat-n{margin-left:auto;padding-left:10px;font-weight:600;letter-spacing:.02em;color:var(--muted);}
.feat .label,.feat .tx>.sev{display:flex;width:100%;}
.feat-cve{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;padding:0 20px;
  background:radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--c) 28%,transparent),transparent 60%),var(--card2);border-bottom:3px solid var(--c);}
.feat-cve b{font-size:24px;font-weight:500;color:var(--text);}
.feat{width:84vw;max-width:420px;border-radius:18px;overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);}
.feat .img{aspect-ratio:1200/630;background:var(--card2);}
.feat .img img{width:100%;height:100%;object-fit:cover;}
.feat .tx{padding:14px 16px 16px;}
.feat h3{font-size:18px;line-height:1.3;font-weight:700;margin:8px 0 6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}

/* cards */
.lead{margin:0 16px;border-radius:18px;overflow:hidden;background:var(--card);border:1px solid var(--line);display:block;}
.lead .img{aspect-ratio:1200/630;background:var(--card2);}
.lead .img img{width:100%;height:100%;object-fit:cover;}
.lead .tx{padding:14px 16px 18px;}
.lead h3{font-size:21px;line-height:1.28;font-weight:700;margin:8px 0;}
.lead p{font-size:15.5px;line-height:1.5;color:var(--text2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.rows{margin:0 16px;}
.row{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);}
.row:last-child{border-bottom:0;}
.row .tx{flex:1;min-width:0;}
.row h3{font-size:16.5px;line-height:1.35;font-weight:650;margin:6px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.row p{font-size:14.5px;line-height:1.45;color:var(--text2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:6px;}
.row .th{width:118px;aspect-ratio:1200/630;align-self:flex-start;margin-top:4px;border-radius:10px;overflow:hidden;flex:none;background:var(--card2);}
.row .th img{width:100%;height:100%;object-fit:cover;}
.ad{margin:26px 16px 0;}
.ad small{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.ad img{width:100%;border-radius:14px;}
.more-btn{display:block;margin:18px 16px 0;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--card);text-align:center;font-weight:600;color:var(--accent);width:calc(100% - 32px);}
.empty{padding:40px 16px;text-align:center;color:var(--muted);}

/* skeleton */
.sk{background:linear-gradient(90deg,var(--card) 0%,var(--card2) 50%,var(--card) 100%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:12px;}
@keyframes sk{to{background-position:-200% 0;}}

/* reader */
.art{padding-bottom:20px;}
.art-cover{aspect-ratio:1200/630;background:var(--card2);}
.art-cover img{width:100%;height:100%;object-fit:cover;}
.art-h{padding:18px 18px 0;max-width:720px;margin:0 auto;}
.art-h h1{font:700 calc(var(--read) * 1.55)/1.22 Inter,sans-serif;letter-spacing:-.01em;margin:10px 0 12px;}
.art-h .lede{font-size:calc(var(--read) * 1.04);line-height:1.55;color:var(--text2);}
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;margin-top:14px;padding-bottom:16px;border-bottom:1px solid var(--line);color:var(--muted);font-size:13.5px;}
.art-tools{display:flex;gap:8px;margin-left:auto;}
.pill-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:13px;font-weight:600;color:var(--text2);}
.pill-btn svg{width:17px;height:17px;}
.body{padding:6px 18px 0;max-width:720px;margin:0 auto;font-size:var(--read);line-height:var(--lh);color:var(--text);overflow-wrap:break-word;}
.body p{margin:1em 0;}
.body h2{font:700 calc(var(--read) * 1.22)/1.3 Inter,sans-serif;margin:1.7em 0 .3em;letter-spacing:-.005em;}
.body h3{font:700 calc(var(--read) * 1.08)/1.35 Inter,sans-serif;margin:1.4em 0 .2em;}
.body ul,.body ol{margin:.9em 0;padding-left:1.35em;}
.body li{margin:.45em 0;padding-left:.2em;}
.body li::marker{color:var(--accent);}
.body strong{font-weight:700;color:var(--text);}
.body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.body code{font:500 .86em "Fira Code",monospace;background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:.1em .38em;overflow-wrap:anywhere;}
.body blockquote{margin:1.2em 0;padding:.4em 0 .4em 1em;border-left:3px solid var(--accent);color:var(--text2);font-style:italic;}
.body hr{border:0;border-top:1px solid var(--line);margin:2em 0;}
.code{position:relative;margin:1.2em -18px;background:#0B1014;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
:root[data-theme="light"] .code{background:#1B2328;}
.code pre{overflow-x:auto;padding:44px 18px 16px;font:400 13.5px/1.6 "Fira Code",monospace;color:#DCE7E6;}
.code button{position:absolute;top:7px;right:10px;padding:5px 10px;border-radius:8px;background:#1F2A31;color:#CFE;font-size:12px;font-weight:600;}
.badge{display:inline-block;font:700 .72em/1 Inter,sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:.3em .6em;border-radius:6px;background:color-mix(in srgb,var(--coral) 18%,transparent);color:var(--coral);vertical-align:.12em;}
.video{position:relative;aspect-ratio:16/9;margin:1.4em -18px;background:#000;}
.video img{width:100%;height:100%;object-fit:cover;opacity:.85;}
.video button{position:absolute;inset:0;display:grid;place-items:center;}
.video button span{width:68px;height:48px;border-radius:12px;background:#E33;display:grid;place-items:center;}
.video button svg{width:26px;height:26px;fill:#fff;stroke:none;}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.tags{display:flex;flex-wrap:wrap;gap:8px;padding:20px 18px 0;max-width:720px;margin:0 auto;}
.tags span{font-size:13px;padding:6px 11px;border-radius:999px;background:var(--card2);color:var(--text2);}
.nav2{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:26px 16px 0;max-width:720px;margin:0 auto;}
.nav2 a{display:block;padding:14px;border-radius:14px;background:var(--card);border:1px solid var(--line);min-height:96px;}
.nav2 small{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.nav2 b{font-size:14.5px;line-height:1.35;font-weight:600;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.nav2 .nx{text-align:right;}
.back-row{display:flex;align-items:center;gap:4px;padding:10px 8px 0;}
.back{display:inline-flex;align-items:center;gap:4px;padding:8px 10px;border-radius:10px;font-weight:600;color:var(--text2);font-size:15px;}
.kv{margin:16px 18px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);}
.kv div{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--line);font-size:14.5px;}
.kv div:first-child{border-top:0;}
.kv span{color:var(--muted);}
.cta{display:block;margin:20px 18px 0;padding:14px;border-radius:14px;background:var(--accent);color:var(--accent-ink);text-align:center;font-weight:700;}

/* sheets & overlays */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:70;}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--bg2);border-radius:22px 22px 0 0;border-top:1px solid var(--line);
  padding:8px 16px calc(20px + var(--safe-b));max-height:86vh;overflow-y:auto;animation:up .22s ease-out;}
@keyframes up{from{transform:translateY(100%);}}
.sheet-grip{width:40px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 10px;}
.sheet-title{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:16px 4px 10px;}
.sheet-title small{font-weight:500;letter-spacing:0;text-transform:none;margin-left:6px;}
.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.sheet-grid a{padding:14px;border-radius:14px;background:var(--card);border:1px solid var(--line);font-weight:600;font-size:15px;}
.sheet-row{display:flex;flex-wrap:wrap;gap:6px 18px;margin:20px 4px 0;font-size:14.5px;color:var(--text2);}
.linkish{color:var(--accent);font-weight:600;}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:4px;}
.seg button{padding:11px 0;border-radius:10px;font-weight:600;color:var(--text2);}
.seg button.on{background:var(--accent);color:var(--accent-ink);}
.sheet-preview{margin:18px 4px 4px;font-size:var(--read);line-height:var(--lh);color:var(--text2);}
/* share picker — same platforms and colours as the desktop Share button */
.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.share-opt{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 6px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:13.5px;font-weight:600;color:var(--text);}
.share-opt:active{border-color:var(--accent);}
.share-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:700 16px/1 "Chakra Petch",sans-serif;color:#0A0D10;background:var(--accent);}
.sh-wa .share-ic{background:#25D366;} .sh-fb .share-ic{background:#1877F2;color:#fff;} .sh-li .share-ic{background:#0A66C2;color:#fff;}
.sh-x .share-ic{background:#EDEAE0;} :root[data-theme="light"] .sh-x .share-ic{background:#14191C;color:#fff;}
.sh-tg .share-ic{background:#29A9EA;} .sh-em .share-ic{background:#FF6E4E;}
.sh-more .share-ic{background:var(--card2);border:1px solid var(--line);color:var(--accent);}
.share-link{display:flex;gap:8px;margin-top:16px;}
.share-link input{flex:1;min-width:0;font:400 13px "Fira Code",monospace;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--muted);}
.search-ov{position:fixed;inset:0;z-index:90;background:var(--bg);overflow-y:auto;padding-bottom:30px;}
.search-bar{position:sticky;top:0;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;background:var(--bg);border-bottom:1px solid var(--line);}
.search-bar svg{color:var(--muted);flex:none;}
.search-bar input{flex:1;min-width:0;height:42px;border:0;background:transparent;color:var(--text);font:500 17px Inter,sans-serif;outline:none;}
.search-res .sec{margin-top:18px;}
.toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + var(--safe-b) + 14px);transform:translate(-50%,20px);opacity:0;z-index:95;
  background:var(--text);color:var(--bg);padding:10px 16px;border-radius:12px;font-size:14px;font-weight:600;transition:.2s;pointer-events:none;}
.toast.show{opacity:1;transform:translate(-50%,0);}
.err{margin:30px 16px;padding:20px;border-radius:16px;background:var(--card);border:1px solid var(--line);text-align:center;color:var(--text2);}
.err button{margin-top:12px;}

@media (min-width:600px){
  .feat{width:60vw;} .row .th{width:180px;}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}

/* threat map */
body.on-map{overflow:hidden;}
.map-wrap{position:fixed;left:0;right:0;top:var(--top-h);bottom:calc(var(--tab-h) + var(--safe-b));}
.tmap{position:absolute;inset:0;}
.tmap.leaflet-container{background:#262B30;}
:root[data-theme="light"] .tmap.leaflet-container{background:#D4DADC;}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .tmap.leaflet-container{background:#D4DADC;}}
.leaflet-container{font:inherit;}
.leaflet-container svg{width:auto;height:auto;}
.leaflet-control-attribution{font-size:10px;background:color-mix(in srgb,var(--bg) 70%,transparent)!important;color:var(--muted)!important;}
.leaflet-control-attribution a{color:var(--muted)!important;}
.tmap .leaflet-bottom{bottom:58px;}
.map-chips{position:absolute;top:0;left:0;right:0;z-index:500;padding:10px 12px;background:linear-gradient(color-mix(in srgb,var(--bg) 85%,transparent),transparent);}
.map-chips .chip{box-shadow:var(--shadow);}
.chip-ip.on{background:#FF9F1C;border-color:#FF9F1C;color:#2A1800;}
.map-panel{position:absolute;left:0;right:0;bottom:0;z-index:600;background:var(--bg2);border-top:1px solid var(--line);border-radius:20px 20px 0 0;
  max-height:58px;overflow:hidden;transition:max-height .28s ease;box-shadow:0 -10px 30px -12px rgba(0,0,0,.6);}
.map-panel.open{max-height:72%;overflow-y:auto;}
.map-panel-h{display:block;width:100%;padding:6px 16px 12px;text-align:left;position:sticky;top:0;background:var(--bg2);}
.map-panel-h .sheet-grip{display:block;margin:2px auto 8px;}
.map-sum{font-size:14.5px;color:var(--text2);}
.map-sum b{color:var(--text);}
.map-panel-b{padding:0 16px 18px;}
.map-cty{display:grid;grid-template-columns:110px 1fr 34px;align-items:center;gap:10px;width:100%;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;text-align:left;}
.map-cty span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.map-cty b{text-align:right;}
.map-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--card2);}
.map-bar i{display:block;height:100%;}
.map-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:12.5px;color:var(--muted);}
.map-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px;}
.map-cats{display:flex;flex-wrap:wrap;gap:8px;}
.map-cats span{font-size:13px;padding:6px 10px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--text2);}
.map-note{margin-top:14px;font-size:12.5px;line-height:1.5;color:var(--muted);}
.map-detail{padding:4px 4px 6px;}
.map-detail .md-h{font-size:17px;line-height:1.35;font-weight:650;margin:8px 0 6px;}
.map-cve{font-size:18px;margin-top:10px;color:var(--text);}
.map-acts{display:flex;gap:10px;align-items:center;margin-top:16px;}
.map-acts .cta{margin:0;flex:1;padding:12px;}

/* website checker */
.wc-form{margin:14px 16px 0;padding:16px;border-radius:18px;background:var(--card);border:1px solid var(--line);}
.wc-lbl{display:block;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.wc-form input[type=url]{width:100%;height:50px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:500 17px "Fira Code",monospace;outline:none;}
.wc-form input[type=url]:focus{border-color:var(--accent);}
.wc-consent{display:flex;gap:12px;align-items:flex-start;margin-top:14px;font-size:15px;line-height:1.45;color:var(--text2);}
.wc-consent input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--accent);}
.wc-go{width:100%;margin:16px 0 0;border:0;font-size:16px;}
.wc-go:disabled{opacity:.45;}
.wc-note{margin-top:10px;font-size:12.5px;line-height:1.5;color:var(--muted);}
.wc-card{margin:14px 16px 0;padding:16px;border-radius:16px;background:var(--card);border:1px solid var(--line);}
.wc-prog{display:flex;align-items:center;gap:12px;color:var(--text2);font-size:15px;}
.wc-spin{width:20px;height:20px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin 1s linear infinite;flex:none;}
@keyframes spin{to{transform:rotate(360deg);}}
.wc-sum{border-left:4px solid var(--sev-low);}
.wc-sum.bad{border-left-color:var(--sev-crit);background:radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--sev-crit) 14%,transparent),transparent 60%),var(--card);}
.wc-verdict{font-size:18px;font-weight:700;line-height:1.3;}
.wc-sum.bad .wc-verdict b{color:var(--sev-crit);}
.wc-url{margin-top:8px;font-size:13px;color:var(--text2);overflow-wrap:anywhere;}
.wc-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:12.5px;color:var(--muted);}
.wc-h{font:700 18px/1.2 "Chakra Petch",sans-serif;margin:24px 16px 0;}
.wc-list{padding:4px 16px;}
.wc-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.wc-row:last-child{border-bottom:0;}
.wc-row b{display:block;font-size:15.5px;}
.wc-row-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:13px;text-align:right;}
.wc-bad{color:var(--sev-crit);font-weight:700;}
.wc-good{color:var(--sev-low);font-weight:600;}
.wc-tech-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;}
.wc-tech-h b{font-size:18px;}
.wc-tech-h .mono{font-size:14px;color:var(--text2);}
.wc-tech-h .sev{margin-left:auto;}
.wc-evi{margin-top:8px;font-size:12px;color:var(--muted);overflow-wrap:anywhere;}
.wc-rec{margin-top:12px;padding:12px;border-radius:12px;background:var(--card2);font-size:15px;line-height:1.55;}
.wc-cve{margin-top:10px;border:1px solid var(--line);border-left:4px solid var(--c,var(--line));border-radius:12px;background:var(--bg2);}
.wc-cve summary{list-style:none;padding:12px;cursor:pointer;display:flex;flex-direction:column;gap:4px;}
.wc-cve summary::-webkit-details-marker{display:none;}
.wc-cve summary b{font-size:15px;}
.wc-cve[open] summary{border-bottom:1px solid var(--line);}
.wc-cve p{padding:10px 12px 0;font-size:14.5px;line-height:1.55;color:var(--text2);}
.wc-cve-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.wc-tag{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 7px;border-radius:6px;background:color-mix(in srgb,var(--sev-crit) 18%,transparent);color:var(--sev-crit);}
.wc-tag.kev{background:color-mix(in srgb,var(--sev-ae) 18%,transparent);color:var(--sev-ae);}
.wc-tag.dim{background:var(--card2);color:var(--muted);}
.wc-act{color:var(--text)!important;}
.wc-links{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px;font-size:13.5px;}
.wc-links a{color:var(--accent);overflow-wrap:anywhere;}
.wc-hdrs summary{cursor:pointer;font-weight:600;}
.wc-hdrs .code{margin:12px -16px -16px;border-radius:0 0 16px 16px;}
.wc-hdrs pre{white-space:pre-wrap;word-break:break-all;padding:14px 16px;}
.wc-txt{color:var(--text2);font-size:15px;}
#wc-out{scroll-margin-top:70px;}

/* ---- desktop tool markup (recon.js) restyled for phones ---- */
.mtool{--lagoon:var(--accent);--surface:var(--card);--surface2:var(--card2);--void:var(--bg);--sand:var(--muted);--glow:var(--accent);
  padding:4px 16px 24px;font-size:15px;line-height:1.5;}
.mtool .tabs{position:static;display:flex;gap:8px;height:auto;padding:4px 0 8px;margin:0 -16px 14px!important;padding-left:16px;padding-right:16px;
  overflow-x:auto;scrollbar-width:none;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;grid-template-columns:none;z-index:auto;}
.mtool .tabs::-webkit-scrollbar{display:none;}
.mtool .tab-btn{flex:none;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:14px;font-weight:600;color:var(--text2);flex-direction:row;}
.mtool .tab-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.mtool .tab-btn.small{padding:6px 12px;font-size:13px;}
.mtool .editor-panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:14px;overflow:hidden;}
.mtool .editor-panel h3{font-size:17px;font-weight:700;margin-bottom:8px;}
.mtool .editor-panel h4{font-size:15px;font-weight:700;margin:14px 0 6px;}
.mtool .editor-note{font-size:13px;color:var(--muted);margin:6px 0;overflow-wrap:anywhere;}
.mtool .fld{display:block;font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px;}
.mtool input[type=text],.mtool input[type=email],.mtool input[type=search],.mtool input:not([type]),.mtool textarea,.mtool select{
  width:100%!important;min-width:0!important;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:500 16px Inter,sans-serif;outline:none;}
.mtool input:focus,.mtool textarea:focus{border-color:var(--accent);}
.mtool textarea{min-height:110px;font-family:"Fira Code",monospace;font-size:14px;}
.mtool .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--text);font-weight:600;font-size:15px;}
.mtool .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.mtool .btn.ghost{background:transparent;}
.mtool .btn.danger{color:var(--sev-crit);border-color:color-mix(in srgb,var(--sev-crit) 50%,transparent);}
.mtool .btn.small{padding:8px 12px;font-size:13.5px;}
.mtool .btn[disabled]{opacity:.45;}
.mtool .editor-panel>div[style*="display:flex"]{flex-direction:column;align-items:stretch!important;}
.mtool .editor-panel>div[style*="display:flex"]>.btn{width:100%;}
.mtool .editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.mtool .vapt-table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;font-size:13.5px;margin-top:6px;-webkit-overflow-scrolling:touch;}
.mtool .vapt-table th,.mtool .vapt-table td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;min-width:90px;overflow-wrap:anywhere;}
.mtool .vapt-table td:first-child{min-width:96px;color:var(--text2);}
.mtool .vapt-table th{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.mtool .empty{padding:16px 0;color:var(--muted);text-align:center;}
.mtool .muted{color:var(--muted);}
.mtool .badge{display:inline-block;color:#04211d;padding:3px 9px;border-radius:10px;font-size:11.5px;font-weight:700;background:var(--sand);}
.mtool .fs-msg{margin-top:8px;font-size:14px;}
.mtool .fs-msg.err{color:var(--sev-crit);}
.mtool .fs-msg.ok{color:var(--sev-low);}
.mtool .cmd-list{display:flex;flex-direction:column;gap:10px;}
.mtool .cmd-item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;}
.mtool .cmd-item pre,.mtool .cmd-item code{white-space:pre-wrap;word-break:break-all;font:13px/1.5 "Fira Code",monospace;}
.mtool .ni-summary{font-size:13px;margin-bottom:6px;}
.mtool .ni-list{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13.5px;}
.mtool .ni-current{color:var(--sev-low);} .mtool .ni-moved{color:var(--sev-med);} .mtool .ni-gone{color:var(--sev-crit);text-decoration:line-through;}
.mtool .ni-unknown{color:var(--muted);} .mtool .ni-ip{font:12px "Fira Code",monospace;color:var(--muted);}
.mtool .attack-pager{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;}
.mtool .attack-pager-btns{display:flex;flex-wrap:wrap;gap:6px;}
.mtool .hidden{display:none!important;}
.mtool .mono{font-family:"Fira Code",monospace;}

/* ---- forms in sheets ---- */
.m-form{display:flex;flex-direction:column;gap:10px;}
.m-form input,.m-form select,.m-form textarea{width:100%;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:500 16px Inter,sans-serif;outline:none;}
.m-form input:focus,.m-form textarea:focus,.m-form select:focus{border-color:var(--accent);}
.m-form textarea{resize:vertical;line-height:1.5;}
.m-form .cta{margin:4px 0 0;border:0;width:100%;font-size:16px;}
.m-form .cta:disabled{opacity:.5;}
.m-msg{min-height:1.2em;font-size:14px;color:var(--sev-crit);}
.m-msg a{color:var(--accent);text-decoration:underline;}
.auth-row{align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--line);}
.auth-row b{color:var(--text);}

/* ---- forum ---- */
.f-search{padding:8px 16px 0;}
.f-search input{width:100%;height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--text);font:500 16px Inter,sans-serif;outline:none;}
.f-row{align-items:center;}
.f-row.removed{opacity:.6;}
.f-count{display:flex;align-items:center;gap:5px;flex:none;font-size:14px;font-weight:600;color:var(--muted);}
.f-count svg{width:18px;height:18px;}
.fab{position:fixed;right:16px;bottom:calc(var(--tab-h) + var(--safe-b) + 16px);z-index:45;display:flex;align-items:center;gap:8px;
  padding:14px 18px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:15px;box-shadow:0 12px 28px -10px rgba(0,0,0,.6);}
.fab svg{width:20px;height:20px;stroke-width:2.4;}
.f-msgs{padding:8px 16px 0;max-width:720px;margin:0 auto;}
.f-msg{padding:16px 0;border-bottom:1px solid var(--line);}
.f-msg.first .f-body{font-size:var(--read);}
.f-msg.removed{opacity:.6;}
.f-msg-h{display:flex;align-items:center;gap:10px;}
.f-msg-h .meta{font-size:12.5px;}
.f-av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--accent) 22%,var(--card));color:var(--accent);font-weight:700;font-size:14px;}
.f-rep{margin-left:auto;font-size:12.5px;color:var(--muted);padding:6px 4px;}
.f-body{margin-top:8px;padding-left:42px;font-size:calc(var(--read) * .94);line-height:1.65;color:var(--text);overflow-wrap:anywhere;}
.f-body p+p{margin-top:.8em;}
.f-body code{font:500 .86em "Fira Code",monospace;background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:.1em .35em;}
.f-body a{color:var(--accent);text-decoration:underline;}
.f-reply{display:flex;flex-direction:column;gap:10px;padding:18px 16px 0;max-width:720px;margin:0 auto;}
.f-reply textarea{width:100%;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--text);font:500 16px/1.5 Inter,sans-serif;outline:none;resize:vertical;}
.f-reply .cta{margin:0;border:0;}

/* account: top-bar button + card at the top of More */
.acct-btn{color:var(--accent);}
.acct-btn svg{stroke-width:2.1;}
.acct-av{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--accent);color:var(--accent-ink);font:700 17px/1 Inter,sans-serif;}
.acct-av.off{background:color-mix(in srgb,var(--accent) 16%,var(--card));color:var(--accent);}
.acct-av.off svg{width:22px;height:22px;}
.acct-av.sm{width:30px;height:30px;font-size:14px;}
.acct-card{display:flex;align-items:center;gap:12px;margin:6px 0 4px;padding:14px;border-radius:16px;
  background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),var(--card);border:1px solid var(--line);}
.acct-tx{flex:1;min-width:0;}
.acct-tx b{display:block;font-size:16px;}
.acct-tx span{display:block;font-size:12.5px;line-height:1.35;color:var(--muted);margin-top:2px;}
.acct-go{margin:0;padding:10px 16px;border:0;font-size:14.5px;flex:none;}

/* ---- tablets: one aligned column (cover, title, text share the same edges) ---- */
@media (min-width:720px){
  :root:not([data-text]){--read:19px;}
  :root[data-text="s"]{--read:17px;} :root[data-text="l"]{--read:21px;} :root[data-text="xl"]{--read:24px;}
  #view{max-width:none;}
  .art-cover{margin:12px 32px 0;border-radius:18px;overflow:hidden;border:1px solid var(--line);}
  .art-h,.body,.tags,.nav2,.f-msgs,.f-reply{max-width:none;padding-left:32px;padding-right:32px;}
  .art-h{padding-top:26px;}
  .code,.video{margin-left:-32px;margin-right:-32px;}
  .code pre{padding-left:32px;padding-right:32px;}
  .back-row{padding-left:24px;}
  .art .sec .sec-h,.art .sec .rows{padding-left:16px;padding-right:16px;}
}

/* "not available on mobile" notice */
.nm-sheet{text-align:center;padding-top:8px;padding-bottom:calc(30px + var(--safe-b));}
.nm-x{position:absolute;top:10px;right:10px;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:var(--muted);}
.nm-ic{width:64px;height:64px;margin:14px auto 14px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,var(--card));color:var(--accent);}
.nm-ic svg{width:30px;height:30px;}
.nm-h{font:700 20px/1.3 Inter,sans-serif;max-width:320px;margin:0 auto;}
.nm-item{margin-top:12px;font-size:14.5px;color:var(--muted);}
.nm-item b{color:var(--text2);font-weight:600;}
.nm-item b:not(:empty)::after{content:" · ";color:var(--muted);font-weight:400;}

/* "Get the app" card in More (Android browsers only) */
.app-card{display:flex;align-items:center;gap:12px;margin:14px 0 0;padding:12px 14px;border-radius:16px;border:1px solid color-mix(in srgb,#3DDC84 45%,var(--line));
  background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,#3DDC84 16%,transparent),transparent 60%),var(--card);}
.app-card[hidden]{display:none;}
.app-ic img{width:44px;height:44px;border-radius:12px;display:block;}
.app-tx{flex:1;min-width:0;}
.app-tx b{display:block;font-size:15.5px;}
.app-tx span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;}
.app-dl{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;background:#3DDC84;color:#062A14;}
.app-dl svg{width:20px;height:20px;stroke-width:2.4;}

/* app-only tools (Recon Toolkit, Threat map) */
.ao-tag{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:6px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  vertical-align:2px;background:color-mix(in srgb,#3DDC84 18%,transparent);color:#3DDC84;}
:root[data-theme="light"] .ao-tag{color:#16803F;}
.in-app .ao-tag{display:none;}
.ao-ic{width:64px;height:64px;margin:14px auto 14px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,#3DDC84 16%,var(--card));color:#3DDC84;}
.ao-ic svg{width:30px;height:30px;}
.ao-get{display:block;max-width:320px;margin:18px auto 0;background:#3DDC84;color:#062A14;border:0;}
.ao-page{padding:40px 24px;text-align:center;}
.ao-home{margin-top:18px;}

/* tablets: don't stretch panels and buttons edge to edge (kept last so it wins) */
@media (min-width:600px){
  .sheet{left:50%;right:auto;width:min(560px,100%);transform:translateX(-50%);}
  @keyframes up{from{transform:translate(-50%,100%);}to{transform:translate(-50%,0);}}
  .cta{max-width:360px;margin-left:auto;margin-right:auto;}
  .m-form .cta{width:auto;min-width:240px;align-self:center;padding:13px 36px;}
}
.m-msg.ok{color:var(--sev-low);}
.au-links{text-align:center;}

/* ===== Account sheet (sign in · create account · verify · reset) ===== */
.acct-sheet{max-height:94vh;padding:8px 20px calc(24px + var(--safe-b));}
.ac-x{position:absolute;top:12px;right:14px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:15px;color:var(--muted);background:var(--card);border:1px solid var(--line);}
.acct{max-width:440px;margin:0 auto;}
.ac-tabs{margin:14px 44px 4px 0;}
.ac-head{margin:22px 0 18px;}
.ac-ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--accent);}
.ac-ic svg,.ac-back svg,.ac-eye svg,.ac-rules svg,.ac-tick svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.ac-ic svg{width:24px;height:24px;}
.ac-head h2{margin-top:14px;font:700 24px/1.2 "Chakra Petch",Inter,sans-serif;color:var(--text);}
.ac-head p{margin-top:8px;font-size:16px;line-height:1.55;color:var(--text2);}
.ac-head p b{color:var(--text);word-break:break-all;}
.ac-steps{display:flex;align-items:center;gap:6px;margin-top:18px;}
.ac-steps i{flex:1;max-width:56px;height:5px;border-radius:3px;background:var(--line);}
.ac-steps i.on{background:var(--accent);}
.ac-steps span{margin-left:6px;font-size:13px;font-weight:600;color:var(--muted);}
.ac-back{display:inline-flex;align-items:center;gap:4px;margin-top:12px;padding:6px 8px 6px 0;font-size:15px;font-weight:600;color:var(--accent);}
.ac-back svg{width:18px;height:18px;}
.ac-form{display:flex;flex-direction:column;gap:16px;}
.ac-f label{display:block;margin-bottom:7px;font-size:15px;font-weight:600;color:var(--text);}
.ac-f label small{font-weight:500;color:var(--muted);margin-left:4px;}
.ac-in{position:relative;}
.ac-in input{width:100%;height:52px;padding:0 15px;border-radius:13px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);font:500 17px Inter,sans-serif;outline:none;transition:border-color .15s,box-shadow .15s;}
.ac-in input:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent);}
.ac-in input[type=password],.ac-in input[name=pass],.ac-in input[name=pass2]{padding-right:52px;}
.ac-eye{position:absolute;top:4px;right:4px;width:44px;height:44px;display:grid;place-items:center;color:var(--muted);border-radius:10px;}
.ac-eye svg{width:22px;height:22px;}
.ac-hint{margin-top:7px;font-size:13.5px;line-height:1.45;color:var(--muted);}
.ac-f.bad .ac-in input{border-color:var(--sev-crit);}
.ac-ferr,.ac-msg{margin-top:7px;font-size:14px;line-height:1.45;font-weight:500;color:var(--sev-crit);}
.ac-msg{margin:0;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--sev-crit) 10%,var(--card));}
.ac-ferr[hidden],.ac-msg[hidden]{display:none;}
.ac-forgot{align-self:flex-end;margin-top:-6px;font-size:15px;padding:4px 0;}
.ac-cta{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:54px;margin-top:4px;border-radius:14px;background:var(--accent);color:var(--accent-ink);font-size:17px;font-weight:700;}
.ac-cta:disabled{opacity:.6;}
.ac-cta.busy:after{content:"";width:18px;height:18px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:ac-spin .7s linear infinite;}
@keyframes ac-spin{to{transform:rotate(360deg);}}
.ac-alt{margin-top:22px;text-align:center;font-size:15px;line-height:1.5;color:var(--text2);}
.ac-alt .linkish{font-size:15px;}
.ac-note{margin-top:16px;font-size:14px;line-height:1.5;color:var(--muted);}
/* password checklist + strength bar */
.ac-rules{list-style:none;margin:-6px 0 0;padding:12px 14px;display:grid;gap:7px;border-radius:12px;background:var(--card);border:1px solid var(--line);}
.ac-rules li{display:flex;align-items:center;gap:9px;font-size:14.5px;color:var(--muted);}
.ac-rules svg{width:18px;height:18px;padding:2px;border-radius:50%;border:1.5px solid var(--line);color:transparent;flex:none;transition:.15s;}
.ac-rules li.ok{color:var(--text);}
.ac-rules li.ok svg{background:var(--sev-low);border-color:var(--sev-low);color:var(--bg);}
.ac-meter{height:5px;margin-top:-8px;border-radius:3px;background:var(--line);overflow:hidden;}
.ac-meter i{display:block;height:100%;width:0;border-radius:3px;background:var(--sev-crit);transition:width .2s,background .2s;}
.ac-meter i[data-lvl=fair]{background:var(--sev-high);}
.ac-meter i[data-lvl=good]{background:var(--sev-low);}
/* terms */
.ac-terms{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.45;color:var(--text2);}
.ac-terms input{width:22px;height:22px;margin:0;flex:none;accent-color:var(--accent);}
.ac-terms.bad span{color:var(--sev-crit);}
.ac-terms + .ac-ferr{margin-top:-10px;}
.ac-termsbox{margin:14px 0 18px;}
.ac-termsbox h2{font:700 22px/1.25 "Chakra Petch",Inter,sans-serif;margin-bottom:10px;}
.ac-termsbody{font-size:16px;line-height:1.65;color:var(--text2);}
.ac-termsbody h2,.ac-termsbody h3{font-size:17px;margin:18px 0 6px;color:var(--text);}
.ac-termsbody p,.ac-termsbody ul{margin:8px 0;}
/* 6-box code */
.ac-otp{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;}
.ac-otp input{width:100%;min-width:0;height:60px;text-align:center;border-radius:13px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);font:700 26px/1 "Chakra Petch",Inter,sans-serif;outline:none;caret-color:var(--accent);}
.ac-otp input:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent);}
.ac-otp + .ac-ferr{margin-top:-6px;}
.ac-resend{margin-top:18px;font-size:14.5px;line-height:1.55;color:var(--text2);text-align:center;}
.ac-resend .linkish{font-size:14.5px;}
.ac-resend .linkish:disabled{color:var(--muted);}
.ac-dev{padding:10px 12px;border-radius:10px;font-size:14px;background:color-mix(in srgb,var(--sev-high) 12%,var(--card));color:var(--text2);}
/* done */
.ac-done{text-align:center;padding:16px 0 4px;}
.ac-done .ac-head{text-align:left;}
.ac-tick{width:72px;height:72px;margin:18px auto 0;border-radius:50%;display:grid;place-items:center;background:var(--sev-low);color:var(--bg);animation:ac-pop .35s ease-out;}
.ac-tick svg{width:38px;height:38px;stroke-width:2.6;}
@keyframes ac-pop{from{transform:scale(.5);opacity:0;}}
.ac-done > h2{margin-top:16px;font:700 24px/1.2 "Chakra Petch",Inter,sans-serif;}
.ac-done > p{margin:8px 0 22px;font-size:16px;color:var(--text2);}
@media (max-width:360px){.ac-otp{gap:5px;}.ac-otp input{height:52px;font-size:22px;}}

/* ===== Profile (/m/profile) ===== */
img.acct-av{object-fit:cover;padding:0;}
.acct-link{display:flex;align-items:center;gap:12px;flex:1;min-width:0;}
.pf{padding-bottom:32px;}
.pf-out{padding-top:8px;}
.pf-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 0 6px;}
.pf-av-btn{position:relative;border-radius:50%;}
.pf-av{width:96px;height:96px;border-radius:50%;object-fit:cover;display:grid;place-items:center;border:3px solid var(--card);box-shadow:0 0 0 2px var(--accent);}
.pf-init{background:var(--accent);color:var(--accent-ink);font:700 40px/1 "Chakra Petch",Inter,sans-serif;}
.pf-cam{position:absolute;right:-2px;bottom:-2px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:1px solid var(--line);color:var(--text);}
.pf-cam svg,.pf-chev,.pf-badge svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.pf-cam svg{width:18px;height:18px;}
.pf-hero h1{margin-top:14px;font:700 25px/1.2 "Chakra Petch",Inter,sans-serif;color:var(--text);word-break:break-word;}
.pf-user{margin-top:4px;font-size:15px;color:var(--muted);}
.pf-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;}
.pf-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--text2);}
.pf-badge svg{width:14px;height:14px;stroke-width:2.6;}
.pf-badge.ok{color:var(--sev-low);border-color:color-mix(in srgb,var(--sev-low) 40%,var(--line));}
.pf-badge.warn{color:var(--sev-high);border-color:color-mix(in srgb,var(--sev-high) 40%,var(--line));}
.pf-badge.adm{color:var(--accent);}
.pf-sec{margin:28px 4px 10px;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.pf-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 16px;}
.pf-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:380px){.pf-2{grid-template-columns:1fr;}}
.pf textarea,.acct textarea{width:100%;padding:13px 15px;border-radius:13px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);font:500 17px/1.5 Inter,sans-serif;outline:none;resize:vertical;}
.pf textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent);}
.pf-rows{padding:4px 0;}
.pf-row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 16px;text-align:left;border-top:1px solid var(--line);}
.pf-row:first-child{border-top:0;}
.pf-rk{flex:none;font-size:16px;font-weight:600;color:var(--text);}
.pf-rv{flex:1;min-width:0;text-align:right;font-size:15px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pf-chev{width:18px;height:18px;flex:none;color:var(--muted);}
.pf-static .pf-pill{margin-left:auto;}
.pf-pill{padding:4px 12px;border-radius:999px;font-size:13px;font-weight:700;background:var(--card2);color:var(--muted);}
.pf-pill.on{background:color-mix(in srgb,var(--sev-low) 18%,var(--card));color:var(--sev-low);}
.pf-out-btn{display:block;width:100%;height:52px;margin-top:28px;border-radius:14px;border:1.5px solid color-mix(in srgb,var(--sev-crit) 50%,var(--line));color:var(--sev-crit);font-size:16px;font-weight:700;background:transparent;}
.pf-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;}
.pf-preset{aspect-ratio:1;border-radius:50%;overflow:hidden;border:3px solid transparent;background:var(--card);}
.pf-preset img{width:100%;height:100%;display:block;}
.pf-preset.on{border-color:var(--accent);}
.pf-upload{cursor:pointer;}
.pf-upload.busy{opacity:.6;pointer-events:none;}
.pf-remove{display:block;width:100%;margin:14px 0 8px;padding:12px;font-size:15px;font-weight:600;color:var(--sev-crit);}
@media (min-width:600px){.pf{max-width:560px;margin:0 auto;}}
/* signed-out profile: centred, compact */
.pf-out{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 24px 32px;}
.pf-out h2{margin-top:16px;font:700 23px/1.2 "Chakra Petch",Inter,sans-serif;color:var(--text);}
.pf-out p{margin-top:8px;max-width:320px;font-size:16px;line-height:1.55;color:var(--text2);}
.pf-out .pf-out-cta{width:auto;min-width:180px;padding:0 32px;margin-top:22px;}
/* Latest News: cover thumbnail on the left of each row */
.ln-box{--row:96px;height:calc(var(--row) * 4);}  /* 4 stories visible */
.ln-row.has-img{flex-direction:row;align-items:center;gap:12px;}
.ln-tx{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;}
.ln-img{width:72px;height:72px;flex:none;border-radius:12px;object-fit:cover;background:var(--card2);}

/* ===== CVE page: full details from the source ===== */
.td .td-loading{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:15px;color:var(--muted);}
.td-spin{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--accent);animation:ac-spin .8s linear infinite;}
.td-sec{margin-top:26px;}
.td-sec > h2{margin-top:0;}
.td-warn{padding:12px 14px;border-radius:12px;font-size:15px;background:color-mix(in srgb,var(--sev-high) 12%,var(--card));border:1px solid color-mix(in srgb,var(--sev-high) 40%,var(--line));}
.td-bad{color:var(--sev-crit);}
.td-ok{color:var(--sev-low);}
.td-kev{margin-top:6px;padding:16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--sev-ae) 45%,var(--line));background:color-mix(in srgb,var(--sev-ae) 9%,var(--card));}
.td-kev > b{display:block;font-size:16.5px;color:var(--sev-ae);}
.td-kev > p{margin:4px 0 10px;font-size:15px;color:var(--text2);}
.td-dl{display:grid;grid-template-columns:1fr;gap:2px;margin:0;}
.td-dl dt{font-size:13px;font-weight:600;color:var(--muted);margin-top:8px;}
.td-dl dd{margin:0;font-size:16px;line-height:1.5;color:var(--text);}
.td-score{--c:var(--sev-info);margin-top:16px;padding:16px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--c) 14%,transparent),transparent 70%),var(--card);}
.td-score.sev-crit{--c:var(--sev-crit);}.td-score.sev-high{--c:var(--sev-high);}.td-score.sev-med{--c:var(--sev-med);}.td-score.sev-low{--c:var(--sev-low);}
.td-score-top{display:flex;align-items:center;gap:14px;}
.td-score-top > b{font:700 40px/1 "Chakra Petch",Inter,sans-serif;color:var(--c);}
.td-score-top span{display:block;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c);}
.td-score-top small{display:block;font-size:13.5px;color:var(--muted);margin-top:2px;}
.td-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;}
.td-metrics span{display:flex;flex-direction:column;padding:8px 10px;border-radius:10px;background:var(--bg);border:1px solid var(--line);font-size:15px;font-weight:600;color:var(--text);}
.td-metrics i{font-style:normal;font-size:12px;font-weight:500;color:var(--muted);}
.td-vector{display:block;margin-top:12px;font-size:12px;color:var(--muted);word-break:break-all;}
.td-other{margin-top:10px;font-size:14px;color:var(--text2);}
.td-rows{display:grid;gap:10px;}
.td-row{padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);}
.td-row > b{font-size:16px;}
.td-row p{margin:6px 0 0;font-size:15px;color:var(--text2);}
.td-eco{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:600;color:var(--muted);border:1px solid var(--line);vertical-align:2px;}
.td-cwes{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.td-cwes li{font-size:16px;}
.td-cwes code{color:var(--accent);margin-right:6px;}
.td-refs{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.td-refs li{padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line);}
.td-refs a{display:flex;flex-direction:column;gap:2px;color:var(--accent);}
.td-refs a b{font-size:15px;}
.td-refs a span{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td-refs em{display:inline-block;margin:6px 6px 0 0;font-style:normal;font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);}
.td-foot{margin-top:24px;padding-top:14px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted);}
/* CVE page: never wider than the screen (long reference URLs, vectors, code) */
.td{overflow-wrap:anywhere;min-width:0;}
.td-refs li{min-width:0;overflow:hidden;}
.td-refs a{min-width:0;max-width:100%;}
.td-refs a b,.td-refs a span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td code,.td-row code{overflow-wrap:anywhere;word-break:break-word;white-space:normal;}
.td pre{max-width:100%;overflow-x:auto;}
.td-kev,.td-score,.td-row,.td-rows{min-width:0;max-width:100%;}

/* CVE watch rail — "Exploit Watch" cards (2026-11-04) */
.cve{width:78vw;max-width:310px;display:flex;flex-direction:column;position:relative;border-radius:8px;background:var(--card);border:1px solid var(--line);overflow:hidden;}
.cve:before,.cve:after{content:"";position:absolute;width:14px;height:14px;border:2px solid var(--c,var(--line));pointer-events:none;}
.cve:before{top:-1px;left:-1px;border-right:0;border-bottom:0;border-top-left-radius:8px;}
.cve:after{bottom:-1px;right:-1px;border-left:0;border-top:0;border-bottom-right-radius:8px;}
.cve-band{display:flex;align-items:center;gap:8px;padding:10px 14px;background:color-mix(in srgb,var(--c,var(--line)) 13%,transparent);border-bottom:1px solid color-mix(in srgb,var(--c,var(--line)) 35%,var(--line));}
.cve-src{margin-left:auto;font:500 11px/1 "Fira Code",monospace;color:var(--text2);letter-spacing:.03em;}
.cve-b{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px;flex:1;}
.cve .id{font:600 15px/1.2 "Fira Code",monospace;color:var(--text);}
.cve-vp{font:500 11.5px/1.3 "Fira Code",monospace;color:var(--accent,var(--sev-low));}
.cve p{font-size:14px;line-height:1.4;color:var(--text2);margin-top:2px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.cve-ft{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:10px;}
.cve-ep{display:inline-flex;align-items:center;gap:7px;font:400 11.5px/1 "Fira Code",monospace;color:var(--muted);}
.cve-ep b{color:var(--text);font-weight:600;}
.cve-ep i{width:22px;height:22px;border-radius:50%;flex:none;background:conic-gradient(var(--c,var(--line)) calc(var(--p)*1%),var(--line) 0);-webkit-mask:radial-gradient(circle,transparent 6px,#000 6.5px);mask:radial-gradient(circle,transparent 6px,#000 6.5px);}
.cve-age{margin-left:auto;font:400 11.5px/1 "Fira Code",monospace;color:var(--muted);}
.cve-age.stale{color:var(--sev-med);}
