/* =====================================================================
   OniCenter · NOVA
   ---------------------------------------------------------------------
   Eigenständiges Design-System für onicenter.onimai.ch/.eu.
   Bewusst NICHT identisch mit groupler (HIVE, smaragd/bento) oder
   onimai.eu (BLOOM, rose/editorial): NOVA ist die "Leitstelle" —
   kühles Violett/Cyan, technische Mono-Labels, Signalstrasse.

   Wird als LETZTES Stylesheet geladen und überschreibt die alten
   style.css / onicenter-master.css / bothub.css Primitives.
   ===================================================================== */

/* ---------- 0. Tokens ---------- */
:root{
  --nv-void:#05060e;
  --nv-surface:#0a0c18;
  --nv-surface-2:#10131f;
  --nv-glass:rgba(16,19,31,.55);

  --nv-primary:#7c5cff;
  --nv-secondary:#22d3ee;
  --nv-glow:#a78bfa;
  --nv-mint:#3ddc97;
  --nv-amber:#fbbf24;
  --nv-danger:#ff5b6e;

  --nv-text:#f2f5ff;
  --nv-muted:#8b93b4;
  --nv-dim:#4b5474;

  --nv-border:rgba(255,255,255,.08);
  --nv-border-2:rgba(255,255,255,.15);
  --nv-ring:rgba(124,92,255,.35);

  --nv-fd:'Sora',system-ui,sans-serif;
  --nv-fb:'Inter',system-ui,sans-serif;
  --nv-fm:'JetBrains Mono',ui-monospace,monospace;

  --nv-ease:cubic-bezier(.16,.84,.44,1);
  --nv-soft:cubic-bezier(.22,1,.36,1);
  --nv-nav:80px;

  /* Alt-Tokens der Vorgänger-Sheets umbiegen, damit ungetouchte
     Subpages automatisch im NOVA-Look erscheinen. */
  --bg:#05060e;--bg-card:#0a0c18;--bg-surface:#10131f;--bg-glass:rgba(16,19,31,.72);
  --accent:#7c5cff;--accent-b:#22d3ee;--accent-dim:rgba(124,92,255,.18);
  --accent-glow:rgba(124,92,255,.35);--storm:#a78bfa;--purple:#a78bfa;
  --ok:#3ddc97;--warn:#fbbf24;--danger:#ff5b6e;--gold:#fbbf24;
  --text:#f2f5ff;--text-2:#8b93b4;--text-3:#4b5474;
  --border:rgba(255,255,255,.08);--border-h:rgba(255,255,255,.18);
  --font-d:'Sora',sans-serif;--font-b:'Inter',sans-serif;--font-m:'JetBrains Mono',monospace;
}

/* ---------- 1. Base ---------- */
html{scroll-behavior:smooth;}
html,body{background:var(--nv-void);color:var(--nv-text);overflow-x:hidden;}
body{
  font-family:var(--nv-fb);
  font-size:16px;line-height:1.55;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
img,svg{display:block;max-width:100%;}
ul{list-style:none;}
*,*::before,*::after{box-sizing:border-box;}
::selection{background:var(--nv-primary);color:#fff;}
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--nv-void);}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--nv-primary),var(--nv-secondary));border-radius:10px;}
:focus-visible{outline:2px solid var(--nv-secondary);outline-offset:3px;border-radius:6px;}

.nv-wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 32px;}

/* Kicker / Eyebrow */
.nv-kick{
  font-family:var(--nv-fm);font-size:11.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--nv-secondary);
  display:inline-flex;align-items:center;gap:10px;
}
.nv-kick::before{content:'';width:22px;height:1px;background:var(--nv-secondary);box-shadow:0 0 8px var(--nv-secondary);}
.nv-kick.center{justify-content:center;}

.nv-h2{
  font-family:var(--nv-fd);font-weight:700;
  font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.08;letter-spacing:-.025em;
}
.nv-lead{color:var(--nv-muted);font-size:clamp(1rem,1.4vw,1.12rem);max-width:52ch;margin-top:18px;}
.nv-grad{
  background:linear-gradient(96deg,var(--nv-text) 18%,var(--nv-secondary) 58%,var(--nv-primary) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ---------- 2. Buttons ---------- */
.nv-btn,
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--nv-fb);font-weight:600;font-size:15px;
  padding:14px 28px;border-radius:100px;border:none;cursor:pointer;
  transition:transform .35s var(--nv-ease),box-shadow .35s var(--nv-ease),background .35s var(--nv-ease),border-color .3s;
  white-space:nowrap;isolation:isolate;text-decoration:none;
}
.nv-btn-primary,
.btn-primary{
  background:linear-gradient(120deg,var(--nv-primary),var(--nv-secondary));
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.09),0 10px 30px -8px var(--nv-ring);
}
.nv-btn-primary:hover,
.btn-primary:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 18px 42px -8px var(--nv-ring);}
.nv-btn-ghost,
.btn-ghost,
.btn-secondary{
  background:rgba(255,255,255,.03);border:1px solid var(--nv-border-2);color:var(--nv-text);
  backdrop-filter:blur(10px);
}
.nv-btn-ghost:hover,
.btn-ghost:hover,
.btn-secondary:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.3);transform:translateY(-2px);}
.nv-btn-sm,.btn-sm{padding:10px 20px;font-size:13px;}

/* ---------- 3. Hintergrund-Layer ---------- */
#nv-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.7;}
.nv-noise{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.035;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.nv-aurora{position:fixed;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0;}
.nv-aurora.a1{width:760px;height:760px;top:-280px;left:-220px;background:radial-gradient(circle,rgba(124,92,255,.16),transparent 66%);animation:nvDrift 30s ease-in-out infinite;}
.nv-aurora.a2{width:620px;height:620px;bottom:-200px;right:-160px;background:radial-gradient(circle,rgba(34,211,238,.11),transparent 66%);animation:nvDrift 38s ease-in-out infinite reverse;}
.nv-aurora.a3{width:420px;height:420px;top:42%;left:34%;background:radial-gradient(circle,rgba(167,139,250,.07),transparent 66%);animation:nvDrift 24s ease-in-out infinite;}
@keyframes nvDrift{0%,100%{transform:translate(0,0);}33%{transform:translate(46px,-56px);}66%{transform:translate(-34px,34px);}}

/* Alte Orbs/Grid der Vorgängerseiten neutralisieren */
.orb,.grid-overlay{display:none !important;}
#bg-canvas{opacity:0 !important;}

#nv-progress{
  position:fixed;top:0;left:0;height:2px;width:0;z-index:9999;
  background:linear-gradient(90deg,var(--nv-primary),var(--nv-secondary));
  box-shadow:0 0 12px var(--nv-ring);transition:width .1s linear;
}
#scroll-bar{background:linear-gradient(90deg,var(--nv-primary),var(--nv-secondary)) !important;box-shadow:0 0 12px var(--nv-ring) !important;}

/* ---------- 4. Navigation ---------- */
#navbar,.nv-nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--nv-nav);display:flex;align-items:center;
  padding:0 !important;border-bottom:1px solid transparent;background:transparent;
  transition:height .45s var(--nv-ease),background .45s var(--nv-ease),border-color .45s var(--nv-ease);
}
#navbar.scrolled,.nv-nav.scrolled{
  height:62px;background:rgba(5,6,14,.74);
  backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--nv-border);
}
#navbar > *{position:relative;z-index:2;}
.nv-nav-inner{width:100%;max-width:1280px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:24px;}

.brand,.nv-brand{
  font-family:var(--nv-fd);font-weight:700;font-size:19px;letter-spacing:.04em;
  color:var(--nv-text);text-shadow:none;display:flex;align-items:center;gap:10px;flex-shrink:0;
}
.brand-mark,.nv-brand svg{width:24px;height:24px;color:var(--nv-secondary);animation:none;font-size:1em;}

.nav-links{display:flex;align-items:center;gap:30px;flex:1;}
.nav-links a{
  font-family:var(--nv-fb);font-size:14px;font-weight:500;letter-spacing:0;
  text-transform:none;color:var(--nv-muted);padding:0;border-radius:0;
  position:relative;transition:color .3s;
}
.nav-links a::after{
  content:'';position:absolute;left:0;right:0;bottom:-8px;height:1px;
  background:linear-gradient(90deg,var(--nv-primary),var(--nv-secondary));
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--nv-ease);
}
.nav-links a:hover{color:var(--nv-text);background:none;}
.nav-links a:hover::after{transform:scaleX(1);}
.nav-links a.active{color:var(--nv-text);}
.nav-links a.active::after{transform:scaleX(1);}

.nav-live{
  margin-left:auto;display:flex;align-items:center;gap:8px;
  font-family:var(--nv-fm);font-size:10.5px;letter-spacing:.16em;
  color:var(--nv-mint);text-transform:uppercase;
}
.nav-live-dot{width:7px;height:7px;border-radius:50%;background:var(--nv-mint);box-shadow:0 0 10px var(--nv-mint);animation:nvPulse 2.4s infinite;}
@keyframes nvPulse{0%,100%{opacity:1;}50%{opacity:.3;}}

.hamburger span{background:var(--nv-text);}
.mobile-menu{background:rgba(5,6,14,.97);}
.mobile-menu a{font-family:var(--nv-fd);font-weight:600;font-size:1.8rem;letter-spacing:-.02em;color:var(--nv-muted);}
.mobile-menu a:hover,.mobile-menu a.active{color:var(--nv-secondary);}


/* ---------- Mobiles Menü (Grundgerüst) ----------
   Kam früher aus den alten Sheets; die neuen Startseiten laden die
   nicht mehr, deshalb steht es hier im Theme selbst. */
.hamburger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:40px;height:40px;cursor:pointer;margin-left:auto;flex-shrink:0;
  align-items:flex-end;
}
.hamburger span{display:block;width:22px;height:2px;border-radius:2px;transition:transform .3s,opacity .3s;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{
  display:none;position:fixed;inset:0;z-index:999;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;
}
.mobile-menu.open{display:flex;}
@media (min-width:861px){ .mobile-menu{display:none !important;} }

/* ---------- 5. Loader ---------- */
#loader{background:var(--nv-void);}
.loader-logo{
  font-family:var(--nv-fd);font-weight:800;font-size:2.4rem;letter-spacing:-.02em;
  -webkit-text-stroke:0;color:transparent;
  background:linear-gradient(120deg,var(--nv-primary),var(--nv-secondary));
  -webkit-background-clip:text;background-clip:text;
  animation:nvPulse 1.6s ease-in-out infinite;
}
.spin{border:2px solid rgba(124,92,255,.2);border-top-color:var(--nv-secondary);}
#loadText{font-family:var(--nv-fm);letter-spacing:.2em;color:var(--nv-dim);}
.loader-bar{background:linear-gradient(90deg,var(--nv-primary),var(--nv-secondary));}

/* ---------- 6. Hero ---------- */
.nv-hero{
  display:flex;align-items:center;
  padding:calc(var(--nv-nav) + 84px) 0 92px;position:relative;overflow:hidden;
}
.nv-hero-glow{
  position:absolute;top:-22%;left:50%;transform:translateX(-50%);
  width:1100px;height:1100px;max-width:180vw;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(124,92,255,.26),rgba(34,211,238,.09) 42%,transparent 70%);
  filter:blur(22px);
}
.nv-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;}
.nv-hero h1{
  font-family:var(--nv-fd);font-weight:700;
  font-size:clamp(2.5rem,5.8vw,4.4rem);line-height:1.03;letter-spacing:-.035em;
  margin:22px 0 24px;
}
.nv-hero p.nv-sub{color:var(--nv-muted);font-size:clamp(1rem,1.3vw,1.16rem);max-width:46ch;margin-bottom:36px;}
.nv-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:52px;}
.nv-hero-stats{display:flex;gap:42px;flex-wrap:wrap;}
.nv-hero-stats b{display:block;font-family:var(--nv-fd);font-size:1.55rem;font-weight:700;letter-spacing:-.02em;}
.nv-hero-stats span{font-family:var(--nv-fm);font-size:10.5px;letter-spacing:.14em;color:var(--nv-dim);text-transform:uppercase;}

/* Bot-Konsole (Hero-Mock) */
.nv-console-wrap{position:relative;perspective:1600px;}
.nv-console{
  width:100%;max-width:430px;margin:0 auto;border-radius:28px;overflow:hidden;
  background:linear-gradient(165deg,rgba(255,255,255,.06),rgba(255,255,255,.012) 42%),var(--nv-surface);
  border:1px solid var(--nv-border-2);
  box-shadow:0 60px 120px -40px rgba(0,0,0,.85),inset 0 0 0 1px rgba(255,255,255,.04),0 0 90px -22px rgba(124,92,255,.4);
  backdrop-filter:blur(20px);
  transform:rotateY(-13deg) rotateX(6deg) rotateZ(1deg);
  transform-style:preserve-3d;transition:transform .25s var(--nv-ease);
  animation:nvFloat 7s ease-in-out infinite;
}
@keyframes nvFloat{0%,100%{translate:0 0;}50%{translate:0 -16px;}}
.nv-c-top{padding:18px 20px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--nv-border);}
.nv-c-title{font-family:var(--nv-fd);font-weight:600;font-size:14.5px;display:flex;align-items:center;gap:8px;}
.nv-c-scan{margin:14px 20px;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--nv-border);font-family:var(--nv-fm);font-size:11px;color:var(--nv-muted);display:flex;align-items:center;gap:8px;}
.nv-c-list{padding:0 12px 6px;display:flex;flex-direction:column;gap:2px;}
.nv-c-row{display:flex;align-items:center;gap:12px;padding:9px 8px;border-radius:12px;transition:background .25s;}
.nv-c-row.on{background:rgba(124,92,255,.14);}
.nv-c-av{
  width:38px;height:38px;border-radius:12px;flex-shrink:0;position:relative;
  background:linear-gradient(135deg,var(--nv-primary),var(--nv-secondary));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--nv-fd);font-weight:700;font-size:13px;color:#fff;
}
.nv-c-av .ok{position:absolute;right:-3px;bottom:-3px;width:13px;height:13px;border-radius:50%;background:var(--nv-mint);border:2px solid var(--nv-surface);}
.nv-c-txt{flex:1;min-width:0;}
.nv-c-txt .nm{font-size:13px;font-weight:600;display:flex;align-items:center;gap:5px;}
.nv-c-txt .mt{font-family:var(--nv-fm);font-size:10.5px;color:var(--nv-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nv-c-meta{text-align:right;font-family:var(--nv-fm);font-size:10px;color:var(--nv-muted);}
.nv-c-bars{padding:14px 20px 20px;border-top:1px solid var(--nv-border);display:flex;flex-direction:column;gap:9px;}
.nv-bar-row{display:flex;align-items:center;gap:10px;font-family:var(--nv-fm);font-size:10px;color:var(--nv-dim);letter-spacing:.08em;}
.nv-bar{flex:1;height:4px;border-radius:4px;background:rgba(255,255,255,.06);overflow:hidden;}
.nv-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--nv-primary),var(--nv-secondary));animation:nvFill 2.4s var(--nv-soft) forwards;}
@keyframes nvFill{from{width:0;}}

.nv-chip-float{
  position:absolute;padding:10px 15px;border-radius:14px;z-index:3;
  background:var(--nv-glass);border:1px solid var(--nv-border-2);backdrop-filter:blur(16px);
  font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;
  box-shadow:0 20px 40px -15px rgba(0,0,0,.65);
}
.nv-chip-float.f1{top:6%;left:-4%;animation:nvFloat 6s ease-in-out infinite .4s;}
.nv-chip-float.f2{bottom:-3%;right:-3%;animation:nvFloat 8s ease-in-out infinite 1s;}

/* ---------- 7. Signalstrasse ---------- */
.nv-road{position:relative;padding-top:140px;}
.nv-road-head{text-align:center;max-width:660px;margin:0 auto 40px;padding:0 32px;}
.nv-road-wrap{position:relative;width:100%;}
.nv-road-svg{position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(420px,80vw);height:100%;z-index:1;pointer-events:none;}
.nv-road-svg svg{width:100%;height:100%;overflow:visible;}
.nv-p-base{fill:none;stroke:rgba(255,255,255,.06);stroke-width:2;}
.nv-p-glow{fill:none;stroke:url(#nvRoadGrad);stroke-width:3;filter:blur(.4px);}
.nv-p-dash{fill:none;stroke:url(#nvRoadGrad);stroke-width:1.4;stroke-dasharray:2 22;opacity:.9;}

.nv-hud{
  position:fixed;left:32px;top:50%;transform:translateY(-50%);z-index:20;
  font-family:var(--nv-fm);font-size:11.5px;color:var(--nv-muted);
  display:flex;flex-direction:column;gap:10px;opacity:0;pointer-events:none;
  transition:opacity .5s var(--nv-ease);
}
.nv-hud.on{opacity:1;}
.nv-hud .n{font-size:32px;font-weight:600;color:var(--nv-text);letter-spacing:-.02em;line-height:1;}
.nv-hud .n span{font-size:15px;color:var(--nv-dim);}
.nv-hud .t{letter-spacing:.18em;color:var(--nv-secondary);}
.nv-hud .b{width:1px;height:60px;background:var(--nv-border-2);position:relative;margin-top:4px;}
.nv-hud .b i{position:absolute;top:0;left:-1.5px;width:4px;height:var(--p,0%);border-radius:2px;background:linear-gradient(var(--nv-primary),var(--nv-secondary));box-shadow:0 0 10px var(--nv-secondary);transition:height .3s;}

.nv-track{position:relative;z-index:2;}
.nv-step{min-height:100vh;display:flex;align-items:center;padding:60px 32px;}
.nv-step.r .nv-card{margin-left:auto;}
.nv-step.l .nv-card{margin-right:auto;}
.nv-card{
  width:min(470px,92vw);padding:36px 32px;border-radius:26px;
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.014));
  border:1px solid var(--nv-border);backdrop-filter:blur(18px);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.72);
  opacity:.35;transform:translateY(30px) scale(.97);
  transition:opacity .6s var(--nv-ease),transform .6s var(--nv-ease),border-color .6s,box-shadow .6s;
}
.nv-step.on .nv-card{
  opacity:1;transform:none;border-color:rgba(167,139,250,.34);
  box-shadow:0 40px 90px -30px rgba(124,92,255,.45),inset 0 0 0 1px rgba(167,139,250,.08);
}
.nv-card .num{font-family:var(--nv-fm);font-size:11.5px;color:var(--nv-secondary);letter-spacing:.2em;}
.nv-card h3{font-family:var(--nv-fd);font-weight:700;font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.14;margin:14px 0 12px;letter-spacing:-.02em;}
.nv-card p{color:var(--nv-muted);font-size:14.5px;max-width:40ch;margin-bottom:22px;}
.nv-vis{border-radius:16px;border:1px solid var(--nv-border);background:rgba(0,0,0,.26);padding:16px;}
.nv-tags{display:flex;flex-wrap:wrap;gap:8px;}
.nv-tag{font-family:var(--nv-fm);font-size:10px;letter-spacing:.1em;padding:6px 12px;border-radius:100px;border:1px solid var(--nv-border-2);color:var(--nv-secondary);background:rgba(34,211,238,.06);}
.nv-rows{display:flex;flex-direction:column;gap:9px;}
.nv-rows .r{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--nv-muted);}
.nv-dot{width:7px;height:7px;border-radius:50%;background:var(--nv-secondary);box-shadow:0 0 8px var(--nv-secondary);flex-shrink:0;}
.nv-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.nv-mini-grid div{aspect-ratio:1;border-radius:10px;background:linear-gradient(135deg,rgba(124,92,255,.32),rgba(34,211,238,.2));display:flex;align-items:center;justify-content:center;font-size:20px;}
.nv-code{
  font-family:var(--nv-fm);font-size:11.5px;line-height:1.85;color:var(--nv-muted);
  white-space:pre;overflow-x:auto;
}
.nv-code .kw{color:var(--nv-secondary);}
.nv-code .st{color:#a3f7bf;}
.nv-code .cm{color:var(--nv-dim);}

/* ---------- 8. Stat-Raster ---------- */
.nv-stats{padding:110px 0;}
.nv-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--nv-border);border:1px solid var(--nv-border);border-radius:24px;overflow:hidden;}
.nv-stat{background:var(--nv-surface);padding:48px 26px;text-align:center;}
.nv-stat .v{font-family:var(--nv-fd);font-weight:700;font-size:clamp(2rem,3.6vw,2.9rem);letter-spacing:-.03em;}
.nv-stat .k{margin-top:8px;font-family:var(--nv-fm);font-size:10.5px;letter-spacing:.18em;color:var(--nv-dim);text-transform:uppercase;}

/* ---------- 9. Plattform-/Kategorie-Kacheln ---------- */
.nv-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:44px;}
.nv-tile{
  padding:26px 24px;border-radius:20px;border:1px solid var(--nv-border);
  background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.01));
  transition:transform .35s var(--nv-ease),border-color .35s,box-shadow .35s;
  display:block;
}
.nv-tile:hover{transform:translateY(-4px);border-color:var(--nv-ring);box-shadow:0 24px 50px -26px rgba(124,92,255,.6);}
.nv-tile .ic{width:42px;height:42px;border-radius:13px;background:rgba(124,92,255,.15);border:1px solid var(--nv-border-2);display:flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:16px;}
.nv-tile h4{font-family:var(--nv-fd);font-weight:600;font-size:16px;margin-bottom:6px;}
.nv-tile p{font-size:13px;color:var(--nv-muted);}
.nv-tile .cnt{margin-top:14px;font-family:var(--nv-fm);font-size:10.5px;letter-spacing:.14em;color:var(--nv-secondary);text-transform:uppercase;}

/* ---------- 10. Bot-Karten (Trending) ---------- */
.nv-bots{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:40px;}
.nv-bot{
  padding:22px;border-radius:20px;border:1px solid var(--nv-border);
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
  display:flex;flex-direction:column;gap:14px;
  transition:transform .35s var(--nv-ease),border-color .35s,box-shadow .35s;
}
.nv-bot:hover{transform:translateY(-4px);border-color:var(--nv-ring);box-shadow:0 26px 54px -28px rgba(124,92,255,.6);}
.nv-bot-top{display:flex;align-items:center;gap:12px;}
.nv-bot-logo{width:46px;height:46px;border-radius:14px;object-fit:cover;background:linear-gradient(135deg,var(--nv-primary),var(--nv-secondary));display:flex;align-items:center;justify-content:center;font-family:var(--nv-fd);font-weight:700;color:#fff;flex-shrink:0;}
.nv-bot h4{font-family:var(--nv-fd);font-weight:600;font-size:15.5px;display:flex;align-items:center;gap:6px;}
.nv-bot .plat{font-family:var(--nv-fm);font-size:10px;letter-spacing:.14em;color:var(--nv-dim);text-transform:uppercase;}
.nv-bot p{font-size:13px;color:var(--nv-muted);flex:1;}
.nv-bot-foot{display:flex;align-items:center;justify-content:space-between;font-family:var(--nv-fm);font-size:11px;color:var(--nv-dim);}
.nv-verified{color:var(--nv-mint);font-size:12px;}
.nv-skel{height:150px;border-radius:20px;border:1px solid var(--nv-border);background:linear-gradient(100deg,rgba(255,255,255,.03) 30%,rgba(255,255,255,.07) 50%,rgba(255,255,255,.03) 70%);background-size:220% 100%;animation:nvShim 1.4s linear infinite;}
@keyframes nvShim{to{background-position:-220% 0;}}

/* ---------- 11. CTA ---------- */
.nv-cta{position:relative;padding:180px 0 200px;text-align:center;overflow:hidden;}
.nv-cta-glow{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:200px;height:200px;border-radius:50%;z-index:0;filter:blur(30px);
  background:radial-gradient(circle,rgba(124,92,255,.5),rgba(34,211,238,.22) 45%,transparent 72%);
  animation:nvExpand 5s var(--nv-soft) infinite alternate;
}
@keyframes nvExpand{from{width:200px;height:200px;opacity:.6;}to{width:880px;height:880px;opacity:1;}}
.nv-cta > *{position:relative;z-index:1;}
.nv-cta h2{font-family:var(--nv-fd);font-weight:700;font-size:clamp(2.4rem,5.6vw,4.2rem);letter-spacing:-.035em;line-height:1.04;}
.nv-cta p{color:var(--nv-muted);margin:20px auto 36px;font-size:1.08rem;max-width:52ch;}

/* ---------- 12. Footer ---------- */
footer{border-top:1px solid var(--nv-border);padding:52px 0 32px;background:transparent;position:relative;z-index:10;}
.footer-inner,.nv-foot-inner{
  width:100%;max-width:1280px;margin:0 auto;padding:0 32px;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;
}
.footer-brand,.nv-foot-brand{font-family:var(--nv-fd);font-weight:700;font-size:17px;letter-spacing:.02em;color:var(--nv-text);display:flex;align-items:center;gap:9px;}
.footer-text,.nv-foot-text{font-size:12.5px;color:var(--nv-dim);font-family:var(--nv-fb);}
.footer-live{display:flex;align-items:center;gap:8px;font-family:var(--nv-fm);font-size:10.5px;letter-spacing:.16em;color:var(--nv-mint);text-transform:uppercase;}
.nv-foot-links{display:flex;gap:20px;flex-wrap:wrap;}
.nv-foot-links a{font-size:12.5px;color:var(--nv-muted);transition:color .25s;}
.nv-foot-links a:hover{color:var(--nv-secondary);}

/* ---------- 13. Subpage-Primitives (Altbestand hübsch machen) ---------- */
.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:calc(var(--nv-nav) + 40px) 24px 80px;position:relative;z-index:10;}
.glass-panel,.panel,.card,.stat-card,.admin-table-container{
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.014)) !important;
  border:1px solid var(--nv-border) !important;border-radius:24px !important;
  backdrop-filter:blur(18px);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.7) !important;
}
.glass-panel{width:100%;max-width:440px;padding:38px 34px !important;}
.panel-header h2{font-family:var(--nv-fd) !important;font-weight:700 !important;font-size:1.7rem !important;letter-spacing:-.025em !important;line-height:1.16 !important;}
.panel-header h2 span{
  background:linear-gradient(120deg,var(--nv-secondary),var(--nv-primary));
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
}
.panel-header p{color:var(--nv-muted) !important;font-size:13.5px !important;margin-top:10px;}
.form-group{margin-bottom:16px;}
.form-group label,.field label{
  display:block;font-family:var(--nv-fm);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--nv-dim);margin-bottom:7px;
}
.form-input,.form-input-noicon,input[type=text],input[type=email],input[type=password],input[type=url],input[type=search],textarea,select{
  width:100%;background:rgba(255,255,255,.04) !important;border:1px solid var(--nv-border) !important;
  border-radius:14px !important;padding:13px 15px !important;font-family:var(--nv-fb) !important;
  font-size:14.5px !important;color:var(--nv-text) !important;transition:border-color .25s,box-shadow .25s,background .25s;
}
.input-icon-wrapper .form-input{padding-left:44px !important;}
.input-icon{color:var(--nv-dim);}
.form-input:focus,textarea:focus,select:focus,input:focus{
  outline:none;border-color:var(--nv-ring) !important;background:rgba(255,255,255,.06) !important;
  box-shadow:0 0 0 3px rgba(124,92,255,.12);
}
::placeholder{color:var(--nv-dim);}
.form-footer{margin-top:20px;text-align:center;font-size:13.5px;color:var(--nv-muted);}
.form-footer a{color:var(--nv-secondary);font-weight:600;}
.alert{border-radius:14px;border:1px solid var(--nv-border-2);background:rgba(255,255,255,.04);padding:12px 15px;font-size:13.5px;}
.section-title{font-family:var(--nv-fd) !important;font-weight:700 !important;letter-spacing:-.03em !important;line-height:1.06 !important;}
.section-title .grad{background:linear-gradient(96deg,var(--nv-secondary),var(--nv-primary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.section-label{font-family:var(--nv-fm) !important;color:var(--nv-secondary) !important;letter-spacing:.22em !important;}
.section-label::before{background:var(--nv-secondary) !important;}
code,.api-code,.api-path,.endpoint-path{font-family:var(--nv-fm) !important;}
code{color:var(--nv-secondary) !important;background:rgba(34,211,238,.08) !important;border-color:var(--nv-border) !important;}
.api-method,.method{font-family:var(--nv-fm) !important;border-radius:6px !important;}
.tag,.chip,.b-tag{font-family:var(--nv-fm);font-size:10.5px;letter-spacing:.1em;border-radius:100px;border:1px solid var(--nv-border-2);color:var(--nv-secondary);background:rgba(34,211,238,.06);}
.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px;}

/* Alt-Sheets setzen für Fliesstexte und Buttons Mono + Grossbuchstaben —
   das gehört zu Labels, nicht zu Sätzen. */
.btn,.nv-btn{text-transform:none !important;letter-spacing:0 !important;}
.panel-header p,.form-footer,.alert,.hint,.help,.sub{
  font-family:var(--nv-fb) !important;text-transform:none !important;
  letter-spacing:normal !important;line-height:1.55 !important;
}

/* ---------- 14. Reveal ---------- */
[data-nv-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s var(--nv-ease),transform .8s var(--nv-ease);}
[data-nv-reveal].in{opacity:1;transform:none;}

/* ---------- 15. Responsive ---------- */
@media (max-width:1024px){
  .nv-hero-inner{grid-template-columns:1fr;text-align:center;}
  .nv-hero p.nv-sub{margin-left:auto;margin-right:auto;}
  .nv-hero-actions,.nv-hero-stats{justify-content:center;}
  .nv-console-wrap{max-width:380px;margin:0 auto;}
  .nv-hud{display:none;}
  .nv-stat-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .nav-links{display:none;}
  .hamburger{display:flex !important;}
  .nv-nav-inner{padding:0 20px;}
}
@media (max-width:640px){
  .nv-wrap,.nv-nav-inner,.footer-inner,.nv-foot-inner{padding-left:20px;padding-right:20px;}
  .nv-step{min-height:auto;padding:34px 20px;}
  .nv-card{width:100%;margin:0 !important;opacity:1;transform:none;}
  .nv-road-svg{width:62vw;opacity:.45;}
  .nv-stat-grid{grid-template-columns:1fr;}
  .nv-chip-float{display:none;}
  .nv-cta{padding:120px 0 140px;}
  .glass-panel{padding:28px 22px !important;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  .nv-card{opacity:1;transform:none;}
  [data-nv-reveal]{opacity:1;transform:none;}
}

.nv-foot-brand svg,.footer-brand svg{width:20px;height:20px;flex-shrink:0;}

/* =====================================================================
   16. UNTERSEITEN-EBENE
   ---------------------------------------------------------------------
   Katalog, Detail, Einreichen, Dashboard, Admin, API und Bewerbung
   bringen eigene <style>-Blöcke aus der Zeit mit, als OniCenter noch
   pink war und die Navigationsleiste eine andere Höhe hatte.
   ===================================================================== */

/* Der Markenwürfel bekam aus bothub.css eine Verlaufsfläche und
   verdeckte damit das Logo. */
.brand .brand-mark,.brand-mark{
  background:none !important;border:none !important;
  border-radius:0 !important;box-shadow:none !important;padding:0 !important;
}

/* Inhaltsspur: Abstand unter der fixierten Leiste, überall gleich. */
.wrap,.page > .container{
  max-width:1280px !important;margin:0 auto !important;
  padding:calc(var(--nv-nav) + 46px) 32px 88px !important;
  position:relative;z-index:10;
}

/* Seitenüberschrift */
.wrap > h1,#pageTitle,.page-title{
  font-family:var(--nv-fd) !important;font-weight:700 !important;
  font-size:clamp(2rem,4.6vw,3.2rem) !important;
  letter-spacing:-.04em !important;line-height:1.05 !important;
  padding-top:0 !important;margin-bottom:6px !important;
}
.wrap > h1 + .sub,.count,#resultCount{
  font-family:var(--nv-fm) !important;font-size:11px !important;
  letter-spacing:.16em !important;text-transform:uppercase !important;
  color:var(--nv-dim) !important;
}

/* Filter-/Sortier-Pillen */
.tab-btn,.filter-btn,.chip-btn,.sort-btn{
  font-family:var(--nv-fm) !important;font-size:10.5px !important;
  letter-spacing:.14em !important;border-radius:100px !important;
  border:1px solid var(--nv-border-2) !important;
  background:rgba(255,255,255,.03) !important;color:var(--nv-muted) !important;
  padding:9px 17px !important;transition:all .25s var(--nv-ease);
}
.tab-btn:hover,.filter-btn:hover{color:var(--nv-text) !important;border-color:var(--nv-ring) !important;}
.tab-btn.active,.filter-btn.active{
  background:linear-gradient(120deg,var(--nv-primary),var(--nv-secondary)) !important;
  color:#fff !important;border-color:transparent !important;
}

/* Leerzustand */
.empty,.empty-state{
  border:1px solid var(--nv-border) !important;border-radius:26px !important;
  background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.01)) !important;
  padding:64px 32px !important;text-align:center;
}
.empty h2,.empty h3{font-family:var(--nv-fd) !important;font-weight:700 !important;letter-spacing:-.03em !important;}
.empty p{color:var(--nv-muted) !important;font-family:var(--nv-fb) !important;text-transform:none !important;letter-spacing:normal !important;}

/* Zeitleiste in der Bewerbung */
.tl-num{
  font-family:var(--nv-fm) !important;
  background:rgba(124,92,255,.15) !important;
  border:1px solid var(--nv-border-2) !important;color:var(--nv-secondary) !important;
}
.tl-step h3,.fb-head,.timeline-head{font-family:var(--nv-fd) !important;letter-spacing:-.03em !important;}

/* API-Dokumentation */
.api-endpoint,.endpoint{
  border:1px solid var(--nv-border) !important;border-radius:18px !important;
  background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.01)) !important;
}
.api-method,.method{
  font-family:var(--nv-fm) !important;font-size:10.5px !important;letter-spacing:.1em !important;
  border-radius:7px !important;padding:4px 9px !important;
}
.api-code,pre{
  font-family:var(--nv-fm) !important;font-size:12.5px !important;
  background:rgba(0,0,0,.35) !important;border:1px solid var(--nv-border) !important;
  border-radius:14px !important;
}

@media (max-width:640px){
  .wrap,.page > .container{padding:calc(var(--nv-nav) + 26px) 20px 60px !important;}
  .empty,.empty-state{padding:42px 20px !important;}
}

/* ---------- 16.1 Zweite Token-Familie aus style.css ----------
   admin/api/submit benutzen `--ink-*`, `--pink`, `--font-a` … eine
   eigene Namenswelt neben den `--accent`/`--text-*`-Tokens. Ohne diese
   Umbiegung bleiben genau diese Seiten pink und in Bebas Neue. */
:root{
  --bg-1:#05060e;--bg-2:#0a0c18;--bg-card-hover:#10131f;--bg-elevated:#10131f;
  --pink:#7c5cff;--pink-soft:#a78bfa;--violet:#a78bfa;--violet-deep:#22d3ee;
  --cyan:#22d3ee;--lime:#3ddc97;--rose:#ff5b6e;
  --ink-0:#f2f5ff;--ink-1:#f2f5ff;--ink-2:#8b93b4;--ink-3:#4b5474;
  --ink-4:#4b5474;--ink-muted:#4b5474;
  --line:rgba(255,255,255,.08);--line-h:rgba(255,255,255,.18);
  --font-a:'Sora',sans-serif;--font:'Inter',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --r-pill:999px;
}
.hero-pill{
  font-family:var(--nv-fm) !important;font-size:10.5px !important;
  letter-spacing:.16em !important;border-radius:100px !important;
  border:1px solid var(--nv-border-2) !important;
  background:rgba(124,92,255,.09) !important;color:var(--nv-secondary) !important;
}
.hero-side,.hero-side-row{border-color:var(--nv-border) !important;}
.hero-side-row .k{font-family:var(--nv-fm) !important;font-size:11px !important;letter-spacing:.12em !important;text-transform:uppercase !important;color:var(--nv-muted) !important;}
.hero-side-row .v{font-family:var(--nv-fd) !important;font-weight:600 !important;letter-spacing:-.02em !important;color:var(--nv-text) !important;}
.hero-side-row .v.aqua,.hero-side-row .v.mint{color:var(--nv-mint) !important;}
.hero-side-row .v.coral{color:var(--nv-glow) !important;}

/* ---------- API-Kopf: zwei Spalten, Zähler als Tafel ----------
   Die Seite erwartet ein Raster, das es in den Alt-Sheets nicht mehr
   gab — die Zählerzeilen sind sonst über beide Spalten verstreut. */
.api-hero{
  display:grid !important;grid-template-columns:1.15fr .85fr !important;
  gap:44px !important;align-items:start !important;
  max-width:1240px !important;margin:0 auto !important;
  padding:calc(var(--nv-nav) + 56px) 30px 40px !important;
  background:none !important;border:none !important;
  min-height:0 !important;overflow:visible !important;
}
.api-hero::after{display:none !important;}
.api-hero h1{
  font-family:var(--nv-fd) !important;font-weight:700 !important;
  font-size:clamp(2rem,4.4vw,3.1rem) !important;
  letter-spacing:-.04em !important;line-height:1.06 !important;
}
.api-hero .lead{color:var(--nv-muted) !important;font-family:var(--nv-fb) !important;max-width:52ch;margin-top:14px;}
.api-hero > .hero-side{
  border:1px solid var(--nv-border) !important;border-radius:22px !important;
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.014)) !important;padding:20px 22px !important;
  display:flex !important;flex-direction:column !important;gap:0 !important;
}
.api-hero .hero-side h4{
  font-family:var(--nv-fm) !important;font-size:10.5px !important;
  letter-spacing:.18em !important;text-transform:uppercase !important;
  color:var(--nv-muted) !important;margin:0 0 8px !important;
}
.api-hero .hero-side-row{
  display:flex !important;flex-direction:row !important;
  align-items:center !important;text-align:left !important;
  justify-content:space-between !important;gap:14px !important;
  padding:11px 0 !important;margin:0 !important;
  border:none !important;border-bottom:1px solid var(--nv-border) !important;
  border-radius:0 !important;background:none !important;
}
.api-hero .hero-side-row:last-child{border-bottom:none !important;}
@media (max-width:900px){
  .api-hero{grid-template-columns:1fr !important;gap:26px !important;
    padding:calc(var(--nv-nav) + 34px) 20px 28px !important;}
}

/* =====================================================================
   17. KATALOG-KARTEN — eigene Form
   ---------------------------------------------------------------------
   Ersetzt die entfernte bothub.css. Die trug nach eigenem Kommentar
   bewusst „die FORM von BotHub" (weiche 2rem-Radien, Glaskarten,
   Akzentbalken vor Überschriften). Das hier ist NOVAs eigene Geometrie:
   kantigere Radien, Signal-Ecke oben rechts statt Balken links,
   Mono-Metadaten, Verlaufskante beim Überfahren.
   ===================================================================== */
.bot-card{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:13px;
  padding:22px 22px 18px;border-radius:20px;
  border:1px solid var(--nv-border);
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
  transition:transform .35s var(--nv-ease),border-color .35s,box-shadow .35s;
}
/* Signal-Ecke: NOVAs Erkennungszeichen statt eines Akzentbalkens. */
.bot-card::before{
  content:'';position:absolute;top:0;right:0;width:56px;height:56px;
  background:linear-gradient(225deg,rgba(34,211,238,.22),transparent 62%);
  pointer-events:none;
}
.bot-card:hover{
  transform:translateY(-4px);border-color:var(--nv-ring);
  box-shadow:0 26px 54px -28px rgba(124,92,255,.6);
}
.bot-head{display:flex;align-items:center;gap:12px;}
.bot-img{
  width:46px;height:46px;border-radius:14px;overflow:hidden;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--nv-primary),var(--nv-secondary));
  font-family:var(--nv-fd);font-weight:700;font-size:15px;color:#fff;
}
.bot-img img{width:100%;height:100%;object-fit:cover;}
.bot-titles{flex:1;min-width:0;}
.bot-title{font-family:var(--nv-fd);font-weight:600;font-size:15.5px;letter-spacing:-.02em;}
.bot-platform{
  font-family:var(--nv-fm);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--nv-dim);
}
.bot-verified{color:var(--nv-mint);font-size:14px;flex-shrink:0;}
.bot-desc{color:var(--nv-muted);font-size:13.5px;line-height:1.55;flex:1;}
.bot-tags{display:flex;flex-wrap:wrap;gap:6px;}
.bot-tag{
  font-family:var(--nv-fm);font-size:10px;letter-spacing:.06em;
  padding:5px 10px;border-radius:8px;
  border:1px solid var(--nv-border-2);color:var(--nv-secondary);
  background:rgba(34,211,238,.06);
}
.bot-meta{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-top:12px;border-top:1px solid var(--nv-border);
}
.bot-cat{font-family:var(--nv-fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--nv-dim);}
.bot-actions{display:flex;gap:8px;}
.like-btn,.share-btn{
  font-family:var(--nv-fm);font-size:10.5px;letter-spacing:.08em;
  padding:7px 12px;border-radius:9px;cursor:pointer;
  border:1px solid var(--nv-border-2);background:rgba(255,255,255,.03);
  color:var(--nv-muted);transition:all .25s var(--nv-ease);
}
.like-btn:hover,.share-btn:hover{color:var(--nv-text);border-color:var(--nv-ring);background:rgba(124,92,255,.1);}
.like-btn.liked{color:var(--nv-glow);border-color:var(--nv-ring);}
.bot-invite{
  display:block;text-align:center;padding:11px 16px;border-radius:12px;
  font-family:var(--nv-fb);font-weight:600;font-size:13.5px;
  background:linear-gradient(120deg,var(--nv-primary),var(--nv-secondary));
  color:#fff;transition:transform .25s var(--nv-ease),box-shadow .25s;
}
.bot-invite:hover{transform:translateY(-1px);box-shadow:0 12px 28px -12px var(--nv-ring);}

/* Der Akzentbalken vor Überschriften war ebenfalls übernommen. */
.section-title::before{content:none !important;}

/* ---------- Handy-Feinschliff (OniCenter) ----------
   Gemessen bei 390 px: Text unter 11 px ist auf einem Telefon nicht mehr
   lesbar, Tippziele unter 36 px trifft man nicht zuverlaessig. Beides wird
   hier angehoben — am Desktop bleibt alles wie es war.
   Angehobene Selektoren: 85.
   ---------------------------------------------------------------------- */
@media (max-width:760px){
  #loadText,
  .api-auth,
  .api-card span,
  .api-hero .hero-side h4,
  .api-method,
  .auth-foot,
  .auth-form label,
  .auth-sub,
  .b-tag,
  .badge-category,
  .badge-glow,
  .badge-status,
  .bot-cat,
  .bot-invite,
  .bot-platform,
  .bot-tag,
  .botcard-meta,
  .brand-text > span > span,
  .btn-glow,
  .btn-sm,
  .chip,
  .chip-btn,
  .copy-btn,
  .duo .box span,
  .fb-date,
  .fchip,
  .field label,
  .filter-btn,
  .filter-label,
  .filter-row-label,
  .foot-content,
  .footer-live,
  .footer-text,
  .form-footer,
  .form-group label,
  .hero-eyebrow,
  .hero-pill,
  .like-btn,
  .live-card-time,
  .live-chip,
  .live-row-label,
  .logout-btn,
  .meta-h,
  .method,
  .metric-card-label,
  .metric-sub,
  .nav-btn,
  .nav-link,
  .nav-links a,
  .nav-live,
  .nv-bar-row,
  .nv-bot .plat,
  .nv-c-meta,
  .nv-c-txt .mt,
  .nv-hero-stats span,
  .nv-stat .k,
  .nv-tag,
  .nv-tile .cnt,
  .panel-header p,
  .proc-badge,
  .proc-role,
  .proc-stat-key,
  .reach .label,
  .role-badge,
  .search-btn,
  .section-label,
  .share-btn,
  .sort-btn,
  .stack .k,
  .stat-key,
  .status-pill,
  .sub-badge,
  .tab-btn,
  .tab-btn .badge,
  .tag,
  .ticker,
  .trend-likes,
  .trend-meta,
  .trend-rank,
  .trending-empty,
  .user-pill .auth,
  /* BACKWARD-COMPAT (auth.js renders these classes) */ .btn,
  /* Filter-/Sortier-Pillen */ .tab-btn,
  /* badges used in cards */ .badge-platform,
  th{
    font-size:12.5px !important;
    letter-spacing:.06em !important;
  }

  /* Von JavaScript gesetzte Kleinschriften erreicht keine Klassenregel —
     hier gezielt nur die kleinen Werte. */
  [style*="font-size: 0.58rem"],[style*="font-size:.58rem"],
  [style*="font-size: 0.6rem"],[style*="font-size:.6rem"],
  [style*="font-size: 0.62rem"],[style*="font-size:.62rem"],
  [style*="font-size: 0.65rem"],[style*="font-size:.65rem"],
  [style*="font-size: 0.68rem"],[style*="font-size:.68rem"],
  [style*="font-size:0.8em"]{font-size:12.5px !important;}

  .nv-nav a,nav a,footer a{min-height:36px;display:inline-flex;align-items:center;}
  .nv-btn,button,input[type=submit]{min-height:42px;}
}
