:root{
  --bg:#06040f;--bg2:#0c0a1d;--card:#120e2b;--line:#2a2257;
  --text:#e8eaff;--muted:#8b90b8;
  --neon:#9d7bff;--pink:#d946ef;--green:#39ff88;--warn:#ffb020;--danger:#ff4d6d;
  --glow:0 0 0 1px rgba(157,123,255,.35),0 0 24px rgba(157,123,255,.18);
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;
  background-image:radial-gradient(circle at 15% -10%,rgba(157,123,255,.12),transparent 40%),radial-gradient(circle at 90% 10%,rgba(192,38,211,.10),transparent 40%)}
a{color:var(--neon);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:'Space Grotesk','Inter',sans-serif;line-height:1.2}
.container{width:min(1180px,92%);margin-inline:auto}
.grad{background-image:linear-gradient(90deg,var(--neon),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}

/* Navbar */
.nav{position:sticky;top:0;z-index:50;background:rgba(7,8,15,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.25rem;color:var(--text)}
.brand span{color:var(--neon);text-shadow:0 0 12px var(--neon)}
.nav-links{display:flex;align-items:center;gap:1.4rem}
.nav-links a{color:var(--muted);font-weight:500}
.nav-links a:hover,.nav-links a.active{color:var(--text);text-decoration:none}
.burger{display:none;background:none;border:1px solid var(--line);color:var(--text);width:42px;height:42px;border-radius:10px;font-size:1.3rem;cursor:pointer}
@media(max-width:760px){
  .burger{display:block}
  .nav-links{position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg2);border-bottom:1px solid var(--line);display:none;padding:.5rem 4%}
  .nav-links.open{display:flex}
  .nav-links a,.nav-links button{padding:.85rem 0;border-bottom:1px solid var(--line)}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.3rem;border-radius:10px;border:1px solid var(--neon);background:transparent;color:var(--neon);font:600 .95rem 'Inter',sans-serif;cursor:pointer;transition:.2s}
.btn:hover{background:var(--neon);color:#001014;box-shadow:0 0 22px rgba(157,123,255,.5);text-decoration:none}
.btn.primary{background:linear-gradient(90deg,var(--neon),#5b8cff);color:#001014;border-color:transparent}
.btn.primary:hover{box-shadow:0 0 28px rgba(157,123,255,.6);filter:brightness(1.08)}
.btn.danger{border-color:var(--danger);color:var(--danger)}
.btn.danger:hover{background:var(--danger);color:#fff;box-shadow:0 0 20px rgba(255,77,109,.5)}
.btn.block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* Hero */
.hero{padding:4.5rem 0 2.5rem;text-align:center}
.hero h1{font-size:clamp(2rem,6vw,3.6rem);margin-bottom:1rem}
.hero p{color:var(--muted);max-width:620px;margin:0 auto 2rem;font-size:1.1rem}
.search{position:relative;max-width:640px;margin:0 auto}
.search input{width:100%;padding:1rem 1.2rem 1rem 3rem;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:1rem;outline:none;transition:.2s}
.search input:focus{border-color:var(--neon);box-shadow:var(--glow)}
.search::before{content:'🔍';position:absolute;left:1rem;top:50%;transform:translateY(-50%)}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:1.6rem 0}
.chip{padding:.45rem 1rem;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;font:500 .88rem 'Inter',sans-serif;transition:.2s}
.chip:hover{color:var(--text);border-color:var(--neon)}
.chip.on{background:rgba(157,123,255,.12);border-color:var(--neon);color:var(--neon)}

/* Cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem;padding-bottom:4rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;transition:.25s;position:relative;display:flex;flex-direction:column;gap:.6rem;color:var(--text)}
.card:hover{transform:translateY(-4px);border-color:var(--neon);box-shadow:var(--glow);text-decoration:none}
.card h3{font-size:1.15rem}
.card p{color:var(--muted);font-size:.92rem;flex:1}
.tag{align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .6rem;border-radius:6px;background:rgba(192,38,211,.12);color:var(--pink);border:1px solid rgba(192,38,211,.35)}
.meta{font-size:.8rem;color:var(--muted);display:flex;gap:1rem}
.empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:3rem 0}

/* Auth */
.auth-wrap{min-height:calc(100vh - 64px);display:grid;place-items:center;padding:2rem 0}
.auth-card{width:min(440px,92%);background:rgba(17,20,42,.85);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:2rem;box-shadow:0 0 60px rgba(157,123,255,.08),0 0 0 1px rgba(192,38,211,.08)}
.auth-card h1{font-size:1.7rem;margin-bottom:.4rem}
.auth-card .sub{color:var(--muted);margin-bottom:1.4rem}
.field{margin-bottom:1rem}
.field label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem;font-weight:500}
.field input,.field select,.field textarea{width:100%;padding:.8rem 1rem;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font:inherit;outline:none;transition:.2s}
.field textarea{resize:vertical;min-height:120px;font-family:'JetBrains Mono',monospace;font-size:.9rem}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--neon);box-shadow:0 0 0 3px rgba(157,123,255,.12)}
.field.bad input{border-color:var(--danger)}
.field.good input{border-color:var(--green)}
.err{color:var(--danger);font-size:.8rem;min-height:1.1em;margin-top:.25rem}
.strength{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:.5rem}
.strength i{display:block;height:100%;width:0;transition:.3s}
.s0 i{width:0}.s1 i{width:25%;background:var(--danger)}.s2 i{width:50%;background:var(--warn)}.s3 i{width:75%;background:#9be15d}.s4 i{width:100%;background:var(--green)}
.strength-label{font-size:.78rem;color:var(--muted);margin-top:.25rem}
.alert{padding:.8rem 1rem;border-radius:10px;font-size:.9rem;margin-bottom:1rem;display:none}
.alert.show{display:block}
.alert.error{background:rgba(255,77,109,.1);border:1px solid var(--danger);color:#ffb3c0}
.alert.ok{background:rgba(57,255,136,.1);border:1px solid var(--green);color:#b6ffd3}
.swap{text-align:center;margin-top:1.2rem;color:var(--muted);font-size:.9rem}

/* Article / docs layout */
.doc{display:grid;grid-template-columns:260px minmax(0,1fr);gap:2.5rem;padding:2.5rem 0 4rem;align-items:start}
.toc{position:sticky;top:84px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;max-height:calc(100vh - 110px);overflow:auto}
.toc h4{font:700 .75rem 'Inter';letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.8rem}
.toc a{display:block;color:var(--muted);padding:.3rem 0 .3rem .8rem;border-left:2px solid var(--line);font-size:.9rem}
.toc a:hover,.toc a.on{color:var(--neon);border-color:var(--neon);text-decoration:none}
.toc a.l3{padding-left:1.6rem;font-size:.85rem}
.article-head{margin-bottom:1.5rem}
.article-head h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:.6rem 0}
.prose{font-size:1.04rem}
.prose h1{display:none}
.prose h2{margin:2.2rem 0 .8rem;font-size:1.6rem;padding-bottom:.4rem;border-bottom:1px solid var(--line);scroll-margin-top:84px}
.prose h3{margin:1.6rem 0 .6rem;font-size:1.2rem;scroll-margin-top:84px}
.prose p,.prose ul,.prose ol,.prose table,.prose pre,.prose blockquote{margin-bottom:1rem}
.prose ul,.prose ol{padding-left:1.4rem}
.prose code{font-family:'JetBrains Mono',monospace;background:var(--bg2);border:1px solid var(--line);padding:.1rem .4rem;border-radius:6px;font-size:.88em;color:var(--green)}
.prose pre{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:1rem;overflow:auto}
.prose pre code{background:none;border:none;padding:0}
.prose blockquote{border-left:3px solid var(--pink);padding:.4rem 1rem;color:var(--muted);background:rgba(192,38,211,.05)}
.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}
.prose th,.prose td{border:1px solid var(--line);padding:.55rem .8rem;text-align:left}
.prose th{background:var(--card)}
@media(max-width:900px){.doc{grid-template-columns:1fr}.toc{position:static;max-height:none}}

/* Editor */
.editor{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.preview{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.2rem;min-height:300px;overflow:auto}
@media(max-width:900px){.editor{grid-template-columns:1fr}}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.row{grid-template-columns:1fr}}

/* Profile */
.profile{display:grid;grid-template-columns:320px 1fr;gap:1.5rem;padding:2.5rem 0 4rem}
@media(max-width:900px){.profile{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem}
.avatar{width:120px;height:120px;border-radius:50%;border:3px solid var(--neon);box-shadow:0 0 28px rgba(157,123,255,.4);object-fit:cover;display:grid;place-items:center;font:700 3rem 'Space Grotesk';background:linear-gradient(135deg,#1b2160,#5b1b61);margin:0 auto 1rem}
.ign{text-align:center;font-size:1.5rem}
.rank{display:block;width:max-content;margin:.6rem auto;padding:.25rem .9rem;border-radius:999px;font-weight:700;font-size:.8rem;background:rgba(157,123,255,.1);color:var(--neon);border:1px solid var(--neon)}
.rank.admin{background:rgba(192,38,211,.12);color:var(--pink);border-color:var(--pink)}
.rank.editor{background:rgba(57,255,136,.1);color:var(--green);border-color:var(--green)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem;margin-bottom:1.5rem}
.stat{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:1rem;text-align:center}
.stat b{display:block;font:700 1.8rem 'Space Grotesk';color:var(--neon)}
.stat span{color:var(--muted);font-size:.82rem}

.toast{position:fixed;bottom:20px;right:20px;background:var(--card);border:1px solid var(--neon);padding:.8rem 1.2rem;border-radius:10px;box-shadow:var(--glow);z-index:99;display:none}
.toast.show{display:block}
footer{border-top:1px solid var(--line);padding:1.5rem 0;text-align:center;color:var(--muted);font-size:.85rem}
.hidden{display:none!important}
.pad{padding:2.5rem 0 4rem}
.pad h1{margin-bottom:1.5rem}
.tall{min-height:380px!important}
.lbl{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem;font-weight:500}
.actions{margin-top:1rem}
.center{text-align:center;margin-top:.5rem}

/* ===== Hosting: landing ===== */
.hero-host{padding:5rem 0 3rem;text-align:center}
.hero-host .pill{display:inline-block;padding:.35rem .9rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.82rem;margin-bottom:1.2rem;background:rgba(17,20,42,.6)}
.hero-host .pill b{color:var(--green)}
.hero-host h1{font-size:clamp(2.2rem,7vw,4.2rem);margin-bottom:1rem}
.hero-host p.lead{color:var(--muted);max-width:660px;margin:0 auto 2rem;font-size:1.15rem}
.cta-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.btn.lg{padding:.9rem 1.7rem;font-size:1.02rem}
.section{padding:3rem 0}
.section h2{font-size:clamp(1.5rem,4vw,2.2rem);text-align:center;margin-bottom:.6rem}
.section .sub{color:var(--muted);text-align:center;max-width:620px;margin:0 auto 2rem}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}
.cat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;color:var(--text);transition:.25s;display:flex;flex-direction:column;gap:.5rem}
.cat-card:hover{transform:translateY(-5px);border-color:var(--pink);box-shadow:0 0 0 1px rgba(192,38,211,.35),0 0 28px rgba(192,38,211,.16);text-decoration:none}
.cat-card .ico{font-size:2rem}
.cat-card p{color:var(--muted);font-size:.93rem;flex:1}
.cat-card .go{color:var(--neon);font-weight:600;font-size:.9rem}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.feat{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:1.2rem}
.feat b{display:block;margin:.3rem 0 .2rem}
.feat span{color:var(--muted);font-size:.9rem}
.cta-band{background:linear-gradient(120deg,rgba(157,123,255,.12),rgba(192,38,211,.12));border:1px solid var(--line);border-radius:18px;padding:2.5rem 1.5rem;text-align:center;margin:2rem 0 4rem}
.cta-band h2{margin-bottom:.5rem}

/* ===== Planes ===== */
.page-head{padding:3rem 0 1rem;text-align:center}
.page-head h1{font-size:clamp(1.8rem,5vw,2.8rem);margin-bottom:.5rem}
.page-head p{color:var(--muted);max-width:640px;margin:0 auto}
.toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:.25rem;background:var(--card);margin:1rem auto}
.toggle button{border:0;background:none;color:var(--muted);padding:.45rem 1.1rem;border-radius:999px;cursor:pointer;font:600 .88rem 'Inter',sans-serif}
.toggle button.on{background:var(--neon);color:#001014}
.toggle-wrap{text-align:center}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.2rem;padding:1rem 0 4rem}
.plan{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;display:flex;flex-direction:column;gap:.7rem;position:relative;transition:.25s}
.plan:hover{transform:translateY(-4px);border-color:var(--neon);box-shadow:var(--glow)}
.plan.popular{border-color:var(--pink);box-shadow:0 0 0 1px rgba(192,38,211,.4),0 0 32px rgba(192,38,211,.14)}
.plan .ribbon{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,var(--pink),#9b5cff);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.08em;padding:.25rem .8rem;border-radius:999px;text-transform:uppercase}
.plan h3{font-size:1.3rem}
.plan .tag-line{color:var(--muted);font-size:.9rem;min-height:2.6em}
.price{font:700 2.4rem 'Space Grotesk',sans-serif}
.price small{font:500 .9rem 'Inter',sans-serif;color:var(--muted)}
.price s{font-size:1rem;color:var(--muted);margin-left:.4rem}
.plan ul{list-style:none;display:grid;gap:.45rem;flex:1;margin:.4rem 0 1rem}
.plan li{font-size:.92rem;padding-left:1.5rem;position:relative}
.plan li::before{content:'✔';position:absolute;left:0;color:var(--green)}

/* ===== Tabs / tablas / badges ===== */
.tabs{display:flex;gap:.4rem;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:1.2rem}
.tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:.7rem 1rem;cursor:pointer;font:600 .92rem 'Inter',sans-serif}
.tab:hover{color:var(--text)}
.tab.on{color:var(--neon);border-color:var(--neon)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table.t{width:100%;border-collapse:collapse;font-size:.88rem;min-width:620px}
table.t th{background:var(--bg2);color:var(--muted);text-align:left;font-weight:600;padding:.7rem .8rem;white-space:nowrap}
table.t td{padding:.65rem .8rem;border-top:1px solid var(--line);vertical-align:middle}
table.t tr:hover td{background:rgba(255,255,255,.02)}
.mono{font-family:'JetBrains Mono',monospace;font-size:.82rem}
.badge{display:inline-block;padding:.12rem .55rem;border-radius:6px;font-size:.74rem;font-weight:700;border:1px solid var(--line);color:var(--muted)}
.badge.info,.badge.active{color:var(--green);border-color:rgba(57,255,136,.4);background:rgba(57,255,136,.08)}
.badge.warn,.badge.pending{color:var(--warn);border-color:rgba(255,176,32,.4);background:rgba(255,176,32,.08)}
.badge.critical,.badge.cancelled,.badge.suspended{color:var(--danger);border-color:rgba(255,77,109,.4);background:rgba(255,77,109,.08)}
.btn.sm{padding:.3rem .7rem;font-size:.8rem;border-radius:8px}
.inline{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.inline input,.inline select{padding:.55rem .8rem;border-radius:8px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font:inherit;font-size:.88rem}

/* ===== Dashboards ===== */
.dash{padding:2rem 0 4rem}
.dash h1{margin-bottom:.3rem}
.dash .lead{color:var(--muted);margin-bottom:1.5rem}
.cols{display:grid;grid-template-columns:320px 1fr;gap:1.5rem;align-items:start}
@media(max-width:900px){.cols{grid-template-columns:1fr}}
.stack{display:grid;gap:1.5rem}
.panel h2{font-size:1.15rem;margin-bottom:1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin-bottom:1.5rem}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem}
.kpi span{display:block;color:var(--muted);font-size:.8rem}
.kpi b{display:block;font:700 1.9rem 'Space Grotesk';margin-top:.2rem}
.kpi.good b{color:var(--green)}.kpi.warn b{color:var(--warn)}.kpi.bad b{color:var(--danger)}.kpi.neon b{color:var(--neon)}
.chart{display:flex;align-items:flex-end;gap:.6rem;height:170px;padding:.5rem 0;border-bottom:1px solid var(--line)}
.chart .day{flex:1;display:flex;flex-direction:column;align-items:center;gap:.3rem;height:100%;justify-content:flex-end}
.chart .bars{display:flex;gap:3px;align-items:flex-end;height:100%;width:100%;justify-content:center}
.chart .bar{width:30%;max-width:18px;min-height:2px;border-radius:4px 4px 0 0}
.bar.ok{background:var(--green)}.bar.fail{background:var(--warn)}.bar.blocked{background:var(--danger)}
.chart-labels{display:flex;gap:.6rem}
.chart-labels span{flex:1;text-align:center;font-size:.72rem;color:var(--muted)}
.legend{display:flex;gap:1rem;font-size:.8rem;color:var(--muted);margin-top:.8rem;flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.35rem}
.two{display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem}
@media(max-width:900px){.two{grid-template-columns:1fr}}
.toplist{list-style:none;display:grid;gap:.5rem}
.toplist li{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;border-bottom:1px solid var(--line);padding-bottom:.4rem}
.note{color:var(--muted);font-size:.85rem}

/* ===== Footer ===== */
.site-footer{border-top:1px solid var(--line);margin-top:2rem;background:var(--bg2)}
.foot-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:2rem;padding:2.5rem 0 1.5rem}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}}
.foot-grid h4{font:700 .78rem 'Inter';letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.7rem}
.foot-grid a:not(.brand){display:block;color:var(--text);opacity:.8;padding:.2rem 0;font-size:.92rem}
.foot-grid a:not(.brand):hover{opacity:1;color:var(--neon);text-decoration:none}
.foot-note{color:var(--muted);font-size:.88rem;margin-top:.6rem;max-width:280px}
.foot-bottom{border-top:1px solid var(--line);padding:1rem 0 1.5rem;color:var(--muted);font-size:.82rem;text-align:center}

/* ===== Legal / About ===== */
.legal-banner{background:rgba(255,176,32,.08);border:1px solid rgba(255,176,32,.4);color:#ffd9a0;border-radius:12px;padding:.8rem 1rem;font-size:.88rem;margin-bottom:1.5rem}
.prose.wide h1{display:block;font-size:2rem;margin-bottom:.5rem}
.checkbox{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;color:var(--muted);margin-bottom:1rem}
.checkbox input{margin-top:.25rem;accent-color:var(--neon)}
.cf-turnstile-box{margin:0 0 1rem;min-height:0}
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin:1.2rem 0 2rem}
.session-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;border-top:1px solid var(--line);font-size:.88rem;flex-wrap:wrap}
.session-item:first-of-type{border-top:0}

/* ===================== Synthetix v3 · glass + neón violeta ===================== */
:root{--blue:#38bdf8;--violet:#8b5cf6;--glass:rgba(24,16,56,.55);--glass-line:rgba(157,123,255,.22)}
body{background-image:radial-gradient(900px 500px at 12% -8%,rgba(139,92,246,.28),transparent 60%),radial-gradient(800px 480px at 95% 5%,rgba(56,189,248,.16),transparent 60%),radial-gradient(700px 500px at 50% 110%,rgba(217,70,239,.14),transparent 60%);background-attachment:fixed}
.card,.plan,.panel,.kpi,.cat-card,.feat,.auth-card,.toc,.stat{background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--glass-line)}
.btn.primary{background:linear-gradient(90deg,#9d7bff,#38bdf8);color:#05020f}
.btn.primary:hover{box-shadow:0 0 30px rgba(157,123,255,.65)}
.grad{background-image:linear-gradient(90deg,#c4b5fd,#9d7bff 40%,#38bdf8)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* Hero con orbes y rejilla */
.hero-v3{position:relative;padding:5.5rem 0 3.5rem;text-align:center;overflow:hidden}
.hero-v3::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(157,123,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(157,123,255,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 72%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 72%);pointer-events:none}
.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none;animation:float 12s ease-in-out infinite}
.orb.a{width:280px;height:280px;background:#8b5cf6;left:-60px;top:20px}
.orb.b{width:240px;height:240px;background:#38bdf8;right:-40px;top:120px;animation-delay:-4s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-28px)}}
.hero-v3 .in{position:relative}
.hero-v3 h1{font-size:clamp(2.3rem,7.5vw,4.5rem);margin:.4rem 0 1rem;letter-spacing:-.02em}
.hero-v3 .lead{color:var(--muted);max-width:640px;margin:0 auto 2rem;font-size:1.15rem}

/* Estado en vivo */
.status-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .95rem;border-radius:999px;border:1px solid var(--glass-line);background:var(--glass);font-size:.84rem;color:var(--text)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--muted);flex:none}
.dot.ok{background:var(--green);box-shadow:0 0 10px var(--green);animation:pulse 2s infinite}
.dot.bad{background:var(--danger);box-shadow:0 0 10px var(--danger)}
@keyframes pulse{50%{opacity:.45}}

/* Consola decorativa */
.console{max-width:560px;margin:2.5rem auto 0;text-align:left;border:1px solid var(--glass-line);border-radius:14px;background:rgba(8,5,22,.8);box-shadow:0 0 50px rgba(139,92,246,.2);overflow:hidden}
.console .bar{display:flex;gap:6px;padding:.6rem .8rem;border-bottom:1px solid var(--glass-line)}
.console .bar i{width:10px;height:10px;border-radius:50%;background:#3b2f73}
.console pre{padding:1rem 1.1rem;font:.8rem/1.7 'JetBrains Mono',monospace;color:#cbbcff;overflow-x:auto}
.console .g{color:var(--green)}.console .m{color:var(--muted)}
.console-note{font-size:.72rem;color:var(--muted);text-align:center;margin-top:.5rem}

/* Secciones */
.feat{transition:.25s}
.feat:hover{transform:translateY(-4px);border-color:var(--neon);box-shadow:var(--glow)}
.feat .fi{font-size:1.6rem}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;counter-reset:s}
.step{position:relative;padding:1.4rem;border:1px solid var(--glass-line);border-radius:14px;background:var(--glass);counter-increment:s}
.step::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#38bdf8);color:#05020f;font:700 .95rem 'Space Grotesk';margin-bottom:.6rem}
.step span{color:var(--muted);font-size:.9rem}
details.faq{border:1px solid var(--glass-line);border-radius:12px;background:var(--glass);padding:.9rem 1.1rem;margin-bottom:.7rem}
details.faq summary{cursor:pointer;font-weight:600}
details.faq p{color:var(--muted);margin-top:.6rem;font-size:.93rem}
.narrow{max-width:820px;margin-inline:auto}

/* Estado: tarjetas */
.svc{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.2rem;border:1px solid var(--glass-line);border-radius:12px;background:var(--glass);margin-bottom:.8rem;flex-wrap:wrap}
.svc b{display:block}.svc small{color:var(--muted)}
.banner{display:flex;gap:.8rem;align-items:center;padding:1.1rem 1.3rem;border-radius:14px;border:1px solid var(--glass-line);background:var(--glass);margin-bottom:1.5rem;font-weight:600}
.banner.ok{border-color:rgba(57,255,136,.45)}.banner.bad{border-color:rgba(255,77,109,.5)}

/* Dashboard */
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin-bottom:1.5rem}
.quick a{display:flex;align-items:center;gap:.6rem;padding:.9rem 1rem;border:1px solid var(--glass-line);border-radius:12px;background:var(--glass);color:var(--text);font-weight:600;font-size:.92rem;transition:.2s}
.quick a:hover{border-color:var(--neon);box-shadow:var(--glow);text-decoration:none;transform:translateY(-2px)}
.srv{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--glass-line);border-radius:12px;background:rgba(8,5,22,.45);margin-bottom:.7rem;flex-wrap:wrap}
.srv b{display:block}.srv small{color:var(--muted)}

/* Legal */
.legal{max-width:820px}
.legal h2{font-size:1.35rem}
.legal ol,.legal ul{margin-bottom:1rem}
.legal li{margin-bottom:.35rem}
.updated{color:var(--muted);font-size:.88rem;margin-bottom:1.5rem}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.feat-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
