/* NOREVYO Neon UI layer — shared visual system for secondary product surfaces */
:root{
  --nv-ink:#080a0d;
  --nv-muted:#737b88;
  --nv-line:#e3e6eb;
  --nv-blue:#6572ff;
  --nv-violet:#9e6bff;
  --nv-cyan:#46d9e1;
  --nv-green:#55d99a;
}
body.norevyo-neon-ui{
  background:
    radial-gradient(circle at 10% -5%,rgba(101,114,255,.10),transparent 26%),
    radial-gradient(circle at 92% 8%,rgba(70,217,225,.075),transparent 23%),
    radial-gradient(circle at 80% 100%,rgba(158,107,255,.055),transparent 28%),
    #f4f5f7!important;
  color:var(--nv-ink);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Roboto,Arial,sans-serif!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.norevyo-neon-ui .brand{
  font-weight:950!important;
  letter-spacing:-.075em!important;
}
body.norevyo-neon-ui .card,
body.norevyo-neon-ui .panel{
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
body.norevyo-neon-ui .card:hover,
body.norevyo-neon-ui .panel:hover{
  border-color:#d8dee8;
  box-shadow:0 18px 52px rgba(14,21,33,.075);
}
body.norevyo-neon-ui .neon-surface{
  position:relative!important;
  overflow:hidden!important;
  padding-right:min(28%,280px)!important;
  isolation:isolate;
  border-color:#dde2e9!important;
  box-shadow:0 22px 64px rgba(8,14,25,.075),0 0 0 1px rgba(101,114,255,.03);
}
body.norevyo-neon-ui .neon-surface::before{
  content:"";
  position:absolute;
  left:-18%;
  top:-58%;
  width:56%;
  height:180%;
  background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.0) 42%,rgba(255,255,255,.48) 50%,rgba(255,255,255,0) 58%,transparent 100%);
  transform:rotate(12deg);
  animation:nvSheen 7.5s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
body.norevyo-neon-ui .neon-surface > *{position:relative;z-index:1}
body.norevyo-neon-ui .neon-surface .neon-visual{
  position:absolute;
  top:18px;
  right:18px;
  width:min(250px,28%);
  height:96px;
  z-index:2!important;
  pointer-events:none;
  border:1px solid rgba(101,114,255,.14);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,255,255,.80),rgba(248,250,253,.54));
  box-shadow:0 14px 34px rgba(69,80,137,.08),inset 0 0 28px rgba(101,114,255,.035);
  backdrop-filter:blur(10px);
}
body.norevyo-neon-ui .neon-surface .neon-visual::after{
  content:"";
  position:absolute;
  width:72px;height:72px;
  right:-22px;top:-28px;border-radius:50%;
  background:radial-gradient(circle,rgba(101,114,255,.18),transparent 70%);
  filter:blur(2px);
  animation:nvFloat 4.8s ease-in-out infinite;
}
body.norevyo-neon-ui .neon-visual-label{
  position:absolute;left:10px;top:8px;
  display:flex;align-items:center;gap:5px;
  color:#7b8593;font-size:6px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;
}
body.norevyo-neon-ui .neon-visual-label::before{
  content:"";width:5px;height:5px;border-radius:50%;
  background:var(--nv-blue);box-shadow:0 0 0 3px rgba(101,114,255,.10),0 0 11px rgba(101,114,255,.46);
  animation:nvPulse 2.2s ease-in-out infinite;
}
body.norevyo-neon-ui .neon-visual svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
body.norevyo-neon-ui .neon-grid-line{stroke:#e9edf3;stroke-width:1}
body.norevyo-neon-ui .neon-trace{
  fill:none;stroke:url(#nvGradient);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;
  filter:url(#nvGlow);
}
body.norevyo-neon-ui .neon-trace-glow{
  fill:none;stroke:rgba(101,114,255,.18);stroke-width:11;stroke-linecap:round;
  filter:blur(4px);
}
body.norevyo-neon-ui .neon-dash{
  fill:none;stroke:rgba(255,255,255,.62);stroke-width:1.2;stroke-linecap:round;
  stroke-dasharray:4 10;animation:nvDash 3s linear infinite;
}
body.norevyo-neon-ui .neon-dot{
  fill:#fff;stroke:var(--nv-cyan);stroke-width:2.4;filter:url(#nvDotGlow);
  animation:nvDotPulse 1.8s ease-in-out infinite;
}
body.norevyo-neon-ui .neon-caption{
  position:absolute;right:10px;bottom:8px;color:#9aa3ae;font-size:5.5px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;
}
body.norevyo-neon-ui .primary,
body.norevyo-neon-ui .btn.primary{
  background:linear-gradient(115deg,#080a0d 0%,#161a23 48%,#253052 100%)!important;
  border-color:#080a0d!important;
  box-shadow:0 14px 30px rgba(30,38,64,.14),0 0 20px rgba(101,114,255,.08)!important;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
}
body.norevyo-neon-ui .primary:hover,
body.norevyo-neon-ui .btn.primary:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(30,38,64,.18),0 0 28px rgba(101,114,255,.14)!important;
  filter:saturate(1.04);
}
body.norevyo-neon-ui input:focus,
body.norevyo-neon-ui textarea:focus,
body.norevyo-neon-ui select:focus{
  border-color:#8d9aef!important;
  box-shadow:0 0 0 4px rgba(101,114,255,.10),0 0 22px rgba(101,114,255,.07)!important;
}
body.norevyo-neon-ui .badge.edit,
body.norevyo-neon-ui .badge.ready,
body.norevyo-neon-ui .check.ok{
  box-shadow:0 0 18px rgba(85,217,154,.10);
}
@keyframes nvSheen{0%,56%,100%{transform:translateX(-12%) rotate(12deg);opacity:0}66%{transform:translateX(330%) rotate(12deg);opacity:.9}75%{transform:translateX(410%) rotate(12deg);opacity:0}}
@keyframes nvDash{to{stroke-dashoffset:-32}}
@keyframes nvPulse{0%,100%{transform:scale(.86);opacity:.72}50%{transform:scale(1.1);opacity:1}}
@keyframes nvDotPulse{0%,100%{transform:scale(.94);filter:url(#nvDotGlow)}50%{transform:scale(1.12);filter:url(#nvDotGlowStrong)}}
@keyframes nvFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-7px,6px,0)}}
@media(max-width:900px){
  body.norevyo-neon-ui .neon-surface{padding-right:24px!important}
  body.norevyo-neon-ui .neon-surface .neon-visual{position:relative;top:auto;right:auto;width:100%;max-width:320px;height:92px;margin:16px 0 4px auto}
}
@media(max-width:620px){
  body.norevyo-neon-ui .neon-surface{padding-right:18px!important}
  body.norevyo-neon-ui .neon-surface .neon-visual{max-width:none}
}
@media(prefers-reduced-motion:reduce){
  body.norevyo-neon-ui .neon-surface::before,
  body.norevyo-neon-ui .neon-visual-label::before,
  body.norevyo-neon-ui .neon-trace,
  body.norevyo-neon-ui .neon-dash,
  body.norevyo-neon-ui .neon-dot,
  body.norevyo-neon-ui .neon-visual::after{animation:none!important}
}