/* VORIVOX UI Core v4. Shared, opt-in components for Console and Cloud. */
.vx-brand-lockup{display:flex;align-items:center;gap:12px;color:var(--vx-ui-text);text-decoration:none;flex:none}
.vx-brand-lockup strong{font-size:var(--vx-title-md);font-weight:var(--vx-weight-semibold);letter-spacing:1.7px;line-height:1.2}
.vx-brand-lockup strong span{color:var(--vx-ui-accent)}
.vx-brand-lockup small{display:block;margin-top:3px;color:var(--vx-ui-muted);font-size:var(--vx-text-xs);letter-spacing:2px}
.vx-mark{width:38px;height:38px;border:1px solid var(--vx-ui-line);border-radius:10px;display:grid;place-items:center;color:var(--vx-ui-accent);background:var(--vx-ui-panel)}
.vx-icon{width:20px;height:20px;display:block;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.vx-button{min-height:40px;padding:9px 15px;border:1px solid var(--vx-ui-line);border-radius:var(--vx-control-radius);font:inherit;font-weight:var(--vx-weight-medium);background:var(--vx-ui-panel);color:var(--vx-ui-text);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer}
.vx-button.primary{background:var(--vx-ui-cta);color:var(--vx-ui-on-cta);border-color:transparent}
.vx-button.danger{background:var(--vx-ui-bad-bg);color:var(--vx-ui-bad);border-color:color-mix(in srgb,var(--vx-ui-bad) 25%,var(--vx-ui-line))}
.vx-button.quiet{background:transparent;border-color:transparent;color:var(--vx-ui-accent)}
.vx-button:hover:not(:disabled){filter:brightness(.96)}
.vx-button:disabled{opacity:.5;cursor:default}
.vx-input{width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid var(--vx-ui-line);border-radius:var(--vx-control-radius);color:var(--vx-ui-text);background:var(--vx-ui-panel);font:inherit}
.vx-input::placeholder{color:var(--vx-ui-muted)}
.vx-field{display:grid;gap:7px;text-align:start;color:var(--vx-ui-muted);font-size:var(--vx-text-sm)}
.vx-card{background:var(--vx-ui-panel);border:1px solid var(--vx-ui-line);border-radius:var(--vx-card-radius);padding:24px;min-width:0}
.vx-status{display:inline-flex;align-items:center;gap:7px;color:var(--vx-ui-muted);font-size:var(--vx-text-sm);white-space:nowrap}
.vx-status:before{content:'';width:6px;height:6px;background:currentColor;border-radius:50%;flex:none}
.vx-status.good{color:var(--vx-ui-good)}.vx-status.warn{color:var(--vx-ui-warn)}.vx-status.bad{color:var(--vx-ui-bad)}
.vx-notice{padding:14px 16px;border-radius:var(--vx-control-radius);background:var(--vx-ui-tint);color:var(--vx-ui-accent);font-size:var(--vx-text-sm);line-height:var(--vx-leading-relaxed)}
.vx-notice.warn{background:var(--vx-ui-warn-bg);color:var(--vx-ui-warn)}.vx-notice.bad{background:var(--vx-ui-bad-bg);color:var(--vx-ui-bad)}
.vx-empty{padding:36px 20px;text-align:center;color:var(--vx-ui-muted);line-height:var(--vx-leading-relaxed)}
.vx-empty .vx-icon{margin:0 auto 14px;width:32px;height:32px;color:var(--vx-ui-accent)}
.vx-empty h2{color:var(--vx-ui-text);font-size:var(--vx-title-md);font-weight:var(--vx-weight-medium)}
.vx-skeleton{border-radius:var(--vx-control-radius);background:var(--vx-ui-soft);min-height:90px;animation:vx-loading 1.4s ease-in-out infinite alternate}
@keyframes vx-loading{to{opacity:.45}}
@media(prefers-reduced-motion:reduce){.vx-skeleton{animation:none}}
:is(.vx-button,.vx-input):focus-visible{outline:2px solid var(--vx-ui-accent);outline-offset:3px}
