/* Back controls retain their trace. Close controls keep a static X. */
button.nexo-trace-control svg.nexo-trace-icon,
button.nexo-trace-control:not(:disabled):is(:hover,:focus-visible,:active) svg.nexo-trace-icon {
 transform:none; transition:none;
}
svg.nexo-trace-glyph { width:1em; height:1em; vertical-align:middle; }
button.nexo-trace-control:not(.nexo-close-control):not(:disabled):is(:hover,:focus-visible,:active) svg.nexo-trace-icon :is(path,line,polyline) {
 animation:nexo-control-trace 480ms ease both;
}
button.nexo-trace-control:not(.nexo-close-control):not(:disabled):is(:hover,:focus-visible,:active) svg.nexo-trace-icon :is(path,line,polyline):nth-child(2) {
 animation-delay:50ms;
}
button.nexo-trace-control:has(>svg.lucide-x):is(:hover,:focus-visible) {
 border-color:rgba(var(--theme-text-primary-rgb,244,244,246),.38);
}
@keyframes nexo-control-trace {
 from { stroke-dasharray:1; stroke-dashoffset:1; }
 to { stroke-dasharray:1; stroke-dashoffset:0; }
}
@media(prefers-reduced-motion:reduce) {
 button.nexo-trace-control svg.nexo-trace-icon :is(path,line,polyline) { animation:none!important; }
}
/* Icon-only close controls must center the glyph, regardless of legacy padding.
   Keep each surface's size, position, visibility and animation intact. */
button.nexo-close-control {
 display:inline-flex; align-items:center!important; align-content:center!important; justify-content:center!important;
 line-height:0;
}
button.nexo-close-control>svg {
 display:block; flex:none; margin:0!important; align-self:center; justify-self:center;transform:none!important;transition:none!important;
}

/* One close treatment on every surface, including dynamic Desktop windows.
   The hover square is paint only; the hitbox and glyph size stay unchanged. */
button.nexo-close-control {
 background:transparent!important; border-color:transparent!important; box-shadow:none!important; border-radius:7px;transform:none!important;
}
button.nexo-close-control.nexo-close-position { position:relative; }
button.nexo-close-control::before {
 content:''; position:absolute; inset:0; pointer-events:none; opacity:0;
 background:color-mix(in srgb,currentColor 8%,transparent);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:7px;
 transition:opacity 160ms ease;
}
button.nexo-close-control>svg { position:relative; }
button.nexo-close-control svg :is(path,line,polyline){animation:none!important;stroke-dasharray:none!important;stroke-dashoffset:0!important}
button.nexo-close-control:not(:disabled):is(:focus-visible,:active)::before { opacity:1; }
button.nexo-close-control:focus-visible { outline:2px solid var(--theme-focus,currentColor); outline-offset:2px; }
@media(hover:hover) { button.nexo-close-control:not(:disabled):hover::before { opacity:1; } }
@media(prefers-reduced-motion:reduce) { button.nexo-close-control::before { transition:none; } }
