.banner-admin-trigger {
  position: fixed;
  z-index: 1600;
  top: 8rem;
  right: 1rem;
  background: #082416;
  border: 1px solid #45e277;
  border-radius: 0.45rem;
  color: #a9ffbb;
  font: 700 0.75rem/1.2 monospace;
  letter-spacing: 0.04em;
  padding: 0.8rem;
  cursor: pointer;
}
.banner-admin-trigger[hidden] { display: none !important; }
.banner-admin-dialog {
  background: #05150b;
  border: 1px solid #2ed45f;
  border-radius: 0.75rem;
  color: #d7ffe0;
  width: min(90vw, 36rem);
  max-height: 85vh;
  padding: 1.25rem;
  box-shadow: 0 0 3rem #000;
}
.banner-admin-dialog::backdrop { background: #000c; }
.banner-admin-form { display: grid; gap: 0.7rem; }
.banner-admin-form h2 { color: #75ff98; font: 700 1.1rem monospace; margin: 0; }
.banner-admin-description { margin: 0; font-size: 0.83rem; }
.banner-admin-form label { display: grid; gap: 0.2rem; font-size: 0.85rem; }
.banner-admin-form input:not([type="checkbox"]),
.banner-admin-form textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 0.6rem;
  color: white;
  background: #0c2b19;
  border: 1px solid #287946;
  border-radius: 0.3rem;
  font: inherit;
}
.banner-admin-form .banner-admin-check { display: flex; align-items: center; gap: 0.45rem; }
.banner-admin-preview {
  background: #0c2817;
  border: 1px solid #27653f;
  border-radius: 0.4rem;
  padding: 0.8rem;
  overflow-wrap: anywhere;
}
.banner-admin-preview p { margin: 0.4rem 0; }
.banner-preview-link { color: #6cff9c; font: 700 0.8rem monospace; }
.banner-admin-actions { display: flex; gap: 0.6rem; justify-content: flex-end; }
.banner-admin-actions button {
  background: #103b22;
  color: #e2ffe8;
  border: 1px solid #31b75f;
  border-radius: 0.3rem;
  padding: 0.6rem 0.8rem;
  cursor: pointer;
}
.banner-admin-actions button:disabled { opacity: 0.55; cursor: wait; }
.banner-admin-status { color: #c2ffe0; font-size: 0.8rem; min-height: 1rem; }
