/* Brevon panel — Nexo-layout + Brevon brand (Figtree / purple) */
@import url("https://cdn.brevonsystems.de/css/fonts.css");

:root {
  --nx-bg: #060607;
  --nx-bg2: #0a0a0c;
  --nx-card: #0e0e11;
  --nx-card2: #121216;
  --nx-border: #1f1f25;
  --nx-border2: #2d2d34;
  --nx-text: #f4f4f5;
  --nx-muted: #8a8a93;
  --nx-muted2: #a1a1aa;
  --nx-orange: #a78bfa;
  --nx-orange2: #c4b5fd;
  --nx-orange-soft: rgba(167, 139, 250, 0.16);
  --nx-green: #22c55e;
  --nx-red: #ef4444;
  --nx-blue: #3b82f6;
  --nx-radius: 10px;
  --nx-radius-lg: 14px;
}

html[data-theme="light"] {
  --nx-bg: #f4f4f5;
  --nx-bg2: #ffffff;
  --nx-card: #ffffff;
  --nx-card2: #f4f4f5;
  --nx-border: rgba(10, 10, 11, 0.1);
  --nx-border2: rgba(10, 10, 11, 0.16);
  --nx-text: #0a0a0b;
  --nx-muted: #6b6b76;
  --nx-muted2: #3f3f48;
  --nx-orange: #5b21b6;
  --nx-orange2: #6d28d9;
  --nx-orange-soft: rgba(91, 33, 182, 0.12);
}

html[data-theme="light"] body.nx-body,
html[data-theme="light"] .auth-split,
html[data-theme="light"] .auth-left,
html[data-theme="light"] .auth-right,
html[data-theme="light"] .nx-app {
  background: var(--nx-bg) !important;
  color: var(--nx-text);
}

html[data-theme="light"] .nx-side {
  background: #0a0a0b;
  color: #fff;
}

html[data-theme="light"] .nx-side-brand .brand-a {
  color: #fff;
}

html[data-theme="light"] .auth-brand .brand-a {
  color: var(--nx-text);
}

html[data-theme="light"] .auth-btn,
html[data-theme="light"] .nx-btn-primary {
  color: #fff;
}

/* ——— Auth (Nexo-like) ——— */
.auth-brand {
  text-decoration: none;
}

.auth-top {
  justify-content: space-between;
}

.auth-top a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--nx-muted2);
}

.auth-top a:hover {
  color: #fff;
}

.auth-form-wrap .auth-switch {
  margin: 0 0 1.35rem;
  color: var(--nx-muted);
  font-size: 0.95rem;
}

.auth-form-wrap .auth-switch a {
  color: var(--nx-orange);
  font-weight: 700;
}

.auth-form label {
  display: block;
  margin-bottom: 1rem;
  font-size: 0.88rem;
  color: var(--nx-muted2);
  font-weight: 600;
}

.auth-form label .req {
  color: var(--nx-orange);
}

.auth-form .field {
  margin-top: 0.45rem;
  margin-bottom: 0;
}

.auth-form input.code {
  letter-spacing: 0.36em;
  font-size: 1.35rem;
  font-weight: 800;
  text-align: center;
}

.auth-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  margin-top: 0.35rem;
}

.auth-btn i {
  font-size: 1rem;
}

.auth-hint {
  margin: 1.1rem 0 0;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--nx-muted);
  font-size: 0.88rem;
}

.auth-hint i {
  color: var(--nx-orange);
}

.auth-stats {
  margin-top: 2.25rem;
}

.auth-stat i {
  color: var(--nx-orange);
  font-size: 1.15rem;
  margin-bottom: 0.15rem;
  display: inline-flex;
}

.auth-status,
.status-msg {
  margin: 0 0 0.9rem;
  font-size: 0.9rem;
  display: none;
}

.auth-status.show,
.status-msg.show {
  display: block;
  padding: 0.7rem 0.85rem;
  border-radius: 10px;
}

.auth-status[data-kind="err"],
.status-msg.err {
  color: var(--nx-red);
  background: rgba(239, 68, 68, 0.12);
}

.auth-status[data-kind="ok"],
.status-msg.ok {
  color: var(--nx-green);
  background: rgba(34, 197, 94, 0.12);
}

/* ——— Shell polish ——— */
.nx-nav-link i,
.nx-icon-btn i,
.nx-btn i,
.dash-banner-text i {
  font-size: 1.05rem;
  line-height: 1;
  display: inline-flex;
}

.nx-nav-link i {
  width: 1.15rem;
  opacity: 0.9;
}

.nx-side {
  width: 250px;
}

.nx-side-foot {
  margin-top: auto;
  display: grid;
  gap: 0.45rem;
  padding: 1rem 0.35rem 0.25rem;
}

.nx-side-foot .nx-btn {
  width: 100%;
  justify-content: flex-start;
}

.nx-topbar {
  position: sticky;
  top: 0;
  z-index: 8;
  backdrop-filter: blur(12px);
  background: color-mix(in srgb, var(--nx-bg2) 88%, transparent);
}

.nx-search {
  flex: 1;
  min-width: 0;
  max-width: 420px;
}

.nx-search i {
  color: var(--nx-muted);
}

.balance-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--nx-border2);
  background: var(--nx-card);
  color: var(--nx-text);
  font-size: 0.84rem;
  font-weight: 700;
  text-decoration: none;
}

.balance-pill i {
  color: var(--nx-orange);
}

.balance-pill strong {
  color: var(--nx-orange);
  font-weight: 800;
}

.user-chip {
  color: var(--nx-muted);
  font-size: 0.88rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--nx-border);
  border-radius: 999px;
  background: var(--nx-card);
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.menu-btn {
  display: none;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--nx-border2);
  background: var(--nx-card);
  color: var(--nx-muted2);
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  z-index: 15;
}

.backdrop.show {
  display: block;
}

/* Status dot like Nexo / Hetzner */
.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  background: var(--nx-green);
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18);
  margin-right: 0.45rem;
  vertical-align: middle;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.dash-tabs {
  margin-bottom: 0.85rem;
}

.dash-tabs button span {
  opacity: 0.75;
}

.dash-table td .nx-btn {
  padding: 0.4rem 0.7rem;
  font-size: 0.8rem;
}

.panel-shell .field {
  display: grid;
  gap: 0.4rem;
  margin-bottom: 1rem;
}

.panel-shell .field label {
  font-size: 0.85rem;
  font-weight: 650;
  color: var(--nx-muted);
}

.panel-shell .field input {
  width: 100%;
  border: 1px solid var(--nx-border2);
  background: #0a0a0a;
  color: #fff;
  border-radius: 10px;
  padding: 0.8rem 0.95rem;
  font: inherit;
  outline: none;
}

.panel-shell .field input:focus {
  border-color: var(--nx-orange);
  box-shadow: 0 0 0 3px var(--nx-orange-soft);
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.auth-form-wrap,
.panel-shell {
  animation: rise 0.4s ease both;
}

@media (max-width: 960px) {
  .menu-btn {
    display: inline-flex;
  }
  .nx-side {
    display: flex !important;
    position: fixed;
    inset: 0 auto 0 0;
    width: min(280px, 86vw);
    z-index: 20;
    transform: translateX(-105%);
    transition: transform 0.2s ease;
  }
  .nx-side.open {
    transform: none;
  }
  .user-chip {
    display: none;
  }
  .auth-stats {
    grid-template-columns: 1fr;
  }
}
