/* Revisola Admin Panel */
.rv-admin {
  --adm-sidebar: 220px;
  min-height: 100vh;
  background: var(--rv-dash-bg, #0a0e12);
  color: var(--rv-dash-txt, #c9d6e2);
  font-family: var(--rv-font-body, system-ui, sans-serif);
}

.rv-admin__shell {
  flex-direction: column;
  min-height: 100vh;
  max-width: var(--rv-max-wide, 1520px);
  margin: 0 auto;
}

/* display:* must not override HTML [hidden] (otherwise login sticks after auth) */
.rv-admin__shell:not([hidden]) {
  display: flex;
}

.rv-admin__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rv-space-4);
  padding: var(--rv-space-4) var(--rv-space-5);
  border-bottom: 1px solid var(--rv-dash-line, #1f2935);
  background: var(--rv-dash-panel, #11161d);
  position: sticky;
  top: 0;
  z-index: 20;
}

.rv-admin__brand {
  display: flex;
  align-items: center;
  gap: var(--rv-space-3);
  font-family: var(--rv-font-display);
  font-weight: 800;
  font-size: var(--rv-text-lg);
  color: var(--rv-mint);
  text-decoration: none;
}

.rv-admin__brand small {
  font-size: var(--rv-text-xs);
  color: var(--rv-dash-muted);
  font-weight: 600;
}

.rv-admin__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv-space-2);
  align-items: center;
  font-size: var(--rv-text-sm);
  color: var(--rv-dash-muted);
}

.rv-admin__badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: var(--rv-radius-pill);
  font-size: var(--rv-text-xs);
  font-weight: 700;
  letter-spacing: 0.03em;
  border: 1px solid var(--rv-line);
}

.rv-admin__badge--ok {
  color: var(--rv-mint);
  border-color: rgba(93, 255, 192, 0.35);
  background: rgba(93, 255, 192, 0.08);
}

.rv-admin__badge--warn {
  color: var(--rv-gold);
  border-color: rgba(230, 201, 122, 0.35);
}

.rv-admin__body {
  display: flex;
  flex: 1;
  min-height: 0;
}

.rv-admin__nav {
  width: var(--adm-sidebar);
  flex-shrink: 0;
  padding: var(--rv-space-4);
  border-right: 1px solid var(--rv-dash-line);
  background: var(--rv-dash-panel);
}

.rv-admin__nav button {
  display: block;
  width: 100%;
  text-align: left;
  padding: var(--rv-space-3) var(--rv-space-4);
  margin-bottom: var(--rv-space-1);
  border: none;
  border-radius: var(--rv-radius-md);
  background: transparent;
  color: var(--rv-dash-muted);
  font-size: var(--rv-text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background var(--rv-duration-fast), color var(--rv-duration-fast);
}

.rv-admin__nav button:hover,
.rv-admin__nav button[aria-selected="true"] {
  background: var(--rv-dash-panel-2);
  color: var(--rv-mint);
}

.rv-admin__nav button[aria-selected="true"] {
  box-shadow: inset 3px 0 0 var(--rv-mint);
}

.rv-admin__main {
  flex: 1;
  padding: var(--rv-space-5);
  overflow-x: auto;
}

.rv-admin__panel {
  display: none;
}

.rv-admin__panel[aria-hidden="false"] {
  display: block;
}

.rv-admin__panel h2 {
  font-family: var(--rv-font-display);
  font-size: var(--rv-text-xl);
  margin: 0 0 var(--rv-space-5);
  color: var(--rv-mist);
}

.rv-admin__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--rv-space-4);
  margin-bottom: var(--rv-space-6);
}

.rv-admin__card {
  background: var(--rv-dash-panel);
  border: 1px solid var(--rv-dash-line);
  border-radius: var(--rv-radius-lg);
  padding: var(--rv-space-4);
}

.rv-admin__card .k {
  font-size: var(--rv-text-xs);
  color: var(--rv-dash-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: var(--rv-space-2);
}

.rv-admin__card .v {
  font-family: var(--rv-font-mono);
  font-size: var(--rv-text-lg);
  font-weight: 700;
  color: var(--rv-mist);
}

.rv-admin__card .s {
  font-size: var(--rv-text-xs);
  color: var(--rv-dash-muted);
  margin-top: var(--rv-space-1);
}

.rv-admin__table-wrap {
  overflow-x: auto;
  border: 1px solid var(--rv-dash-line);
  border-radius: var(--rv-radius-lg);
  background: var(--rv-dash-panel);
}

.rv-admin table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--rv-text-sm);
}

.rv-admin th,
.rv-admin td {
  padding: var(--rv-space-3) var(--rv-space-4);
  text-align: left;
  border-bottom: 1px solid var(--rv-dash-line);
}

.rv-admin th {
  font-size: var(--rv-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--rv-dash-muted);
  background: var(--rv-dash-panel-2);
}

.rv-admin tr:last-child td {
  border-bottom: none;
}

.rv-admin .pos { color: var(--rv-mint); }
.rv-admin .neg { color: var(--rv-danger); }
.rv-admin .neu { color: var(--rv-gold); }

.rv-admin__bar-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rv-admin__bar-list li {
  display: flex;
  align-items: center;
  gap: var(--rv-space-3);
  margin-bottom: var(--rv-space-2);
  font-size: var(--rv-text-sm);
}

.rv-admin__bar {
  flex: 1;
  height: 8px;
  background: var(--rv-dash-panel-2);
  border-radius: var(--rv-radius-pill);
  overflow: hidden;
}

.rv-admin__bar span {
  display: block;
  height: 100%;
  background: var(--rv-mint);
  border-radius: var(--rv-radius-pill);
  min-width: 2px;
}

.rv-admin__log {
  font-family: var(--rv-font-mono);
  font-size: 11px;
  line-height: 1.45;
  max-height: 420px;
  overflow: auto;
  padding: var(--rv-space-4);
  background: #080b0f;
  border: 1px solid var(--rv-dash-line);
  border-radius: var(--rv-radius-md);
  white-space: pre-wrap;
  word-break: break-all;
}

.rv-admin__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv-space-3);
  margin-top: var(--rv-space-4);
}

.rv-admin__btn {
  padding: var(--rv-space-2) var(--rv-space-4);
  border-radius: var(--rv-radius-md);
  border: 1px solid var(--rv-dash-line);
  background: var(--rv-dash-panel-2);
  color: var(--rv-dash-txt);
  font-size: var(--rv-text-sm);
  font-weight: 600;
  cursor: pointer;
}

.rv-admin__btn:hover {
  border-color: var(--rv-mint-dim);
  color: var(--rv-mint);
}

.rv-admin__btn--primary {
  width: 100%;
  border-color: rgba(93, 255, 192, 0.45);
  background: rgba(93, 255, 192, 0.12);
  color: var(--rv-mint);
  font-weight: 700;
  padding: var(--rv-space-3) var(--rv-space-4);
}

.rv-admin__btn--primary:hover {
  background: rgba(93, 255, 192, 0.2);
}

.rv-admin__btn--danger {
  border-color: rgba(255, 77, 109, 0.4);
  color: var(--rv-danger);
}

.rv-admin__login {
  min-height: 100vh;
  align-items: center;
  justify-content: center;
  padding: var(--rv-space-5);
  background:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(93, 255, 192, 0.08), transparent),
    var(--rv-dash-bg, #0a0e12);
}

.rv-admin__login:not([hidden]) {
  display: flex;
}

.rv-admin__login-card {
  width: 100%;
  max-width: 380px;
  padding: var(--rv-space-6) var(--rv-space-5);
  background: var(--rv-dash-panel, #11161d);
  border: 1px solid var(--rv-dash-line, #1f2935);
  border-radius: var(--rv-radius-lg, 12px);
}

.rv-admin__login-card h1 {
  margin: 0 0 var(--rv-space-2);
  font-family: var(--rv-font-display);
  font-size: var(--rv-text-xl, 1.4rem);
  color: var(--rv-mint);
}

.rv-admin__login-lead {
  margin: 0 0 var(--rv-space-5);
  font-size: var(--rv-text-sm);
  color: var(--rv-dash-muted);
}

.rv-admin__field {
  display: flex;
  flex-direction: column;
  gap: var(--rv-space-2);
  margin-bottom: var(--rv-space-4);
  font-size: var(--rv-text-sm);
  color: var(--rv-dash-muted);
}

.rv-admin__field input {
  padding: var(--rv-space-3) var(--rv-space-4);
  border-radius: var(--rv-radius-md);
  border: 1px solid var(--rv-dash-line);
  background: var(--rv-dash-bg, #0a0e12);
  color: var(--rv-dash-txt);
  font-size: var(--rv-text-base, 1rem);
}

.rv-admin__field textarea {
  padding: var(--rv-space-3) var(--rv-space-4);
  border-radius: var(--rv-radius-md);
  border: 1px solid var(--rv-dash-line);
  background: var(--rv-dash-bg, #0a0e12);
  color: var(--rv-dash-txt);
  font-size: var(--rv-text-sm);
  font-family: inherit;
  resize: vertical;
  min-height: 5rem;
  line-height: 1.45;
}

.rv-admin__field input:focus,
.rv-admin__field textarea:focus {
  outline: none;
  border-color: rgba(93, 255, 192, 0.45);
}

.rv-admin__btn--danger:hover {
  background: var(--rv-danger-dim);
}

.rv-admin__note {
  font-size: var(--rv-text-sm);
  color: var(--rv-dash-muted);
  padding: var(--rv-space-3) var(--rv-space-4);
  background: var(--rv-dash-panel-2);
  border-radius: var(--rv-radius-md);
  border-left: 3px solid var(--rv-sky-dim);
  margin-bottom: var(--rv-space-4);
}

.rv-admin__tier-legend {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--rv-space-3);
  margin-top: var(--rv-space-4);
}

.rv-admin__tier-legend dt {
  font-weight: 700;
  color: var(--rv-mint);
  font-size: var(--rv-text-sm);
}

.rv-admin__tier-legend dd {
  margin: 0 0 var(--rv-space-3);
  font-size: var(--rv-text-xs);
  color: var(--rv-dash-muted);
}

.rv-admin__loading {
  color: var(--rv-dash-muted);
  font-size: var(--rv-text-sm);
}

.rv-admin__err {
  color: var(--rv-danger);
  padding: var(--rv-space-4);
  border: 1px solid rgba(255, 77, 109, 0.3);
  border-radius: var(--rv-radius-md);
  margin-bottom: var(--rv-space-4);
}

.rv-admin__footer {
  padding: var(--rv-space-3) var(--rv-space-5);
  border-top: 1px solid var(--rv-dash-line);
  font-size: var(--rv-text-xs);
  color: var(--rv-dash-muted);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--rv-space-2);
}

@media (max-width: 768px) {
  .rv-admin__body {
    flex-direction: column;
  }

  .rv-admin__nav {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--rv-dash-line);
    display: flex;
    flex-wrap: wrap;
    gap: var(--rv-space-1);
    padding: var(--rv-space-2);
  }

  .rv-admin__nav button {
    width: auto;
    flex: 1 1 auto;
    min-width: calc(50% - 4px);
    margin: 0;
    text-align: center;
    font-size: var(--rv-text-xs);
    padding: var(--rv-space-2);
  }

  .rv-admin__main {
    padding: var(--rv-space-4);
  }
}
