:root {
  --admin-bg: #f5f7fb;
  --admin-surface: #ffffff;
  --admin-surface-2: #f8fafc;
  --admin-sidebar: #0f172a;
  --admin-sidebar-2: #111c33;
  --admin-sidebar-border: rgba(255,255,255,.08);
  --admin-text: #0f172a;
  --admin-muted: #64748b;
  --admin-border: #e2e8f0;
  --admin-primary: #2563eb;
  --admin-primary-2: #1d4ed8;
  --admin-success: #16a34a;
  --admin-warning: #d97706;
  --admin-danger: #dc2626;
  --admin-shadow: 0 20px 45px rgba(15, 23, 42, .08);
  --admin-shadow-soft: 0 8px 25px rgba(15, 23, 42, .06);
  --admin-radius: 18px;
  --admin-sidebar-width: 288px;
}

* { box-sizing: border-box; }

.kyi-admin-body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(37, 99, 235, .08), transparent 32rem),
    linear-gradient(180deg, #f8fafc 0%, var(--admin-bg) 44%, #eef2f7 100%);
  color: var(--admin-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.kyi-admin-body a { color: inherit; }

.admin-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: var(--admin-sidebar-width) minmax(0, 1fr);
}

.admin-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  color: #dbeafe;
  background:
    linear-gradient(180deg, rgba(37, 99, 235, .16), rgba(15, 23, 42, 0) 18rem),
    linear-gradient(180deg, var(--admin-sidebar) 0%, #0b1224 100%);
  border-right: 1px solid rgba(148, 163, 184, .12);
  padding: 20px 16px;
  z-index: 80;
}

.admin-sidebar::-webkit-scrollbar { width: 8px; }
.admin-sidebar::-webkit-scrollbar-thumb { background: rgba(148, 163, 184, .28); border-radius: 99px; }

.admin-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 8px 22px;
  border-bottom: 1px solid var(--admin-sidebar-border);
  margin-bottom: 18px;
}

.admin-brand-mark {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  text-decoration: none;
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -.04em;
  background: linear-gradient(135deg, #3b82f6, #06b6d4);
  box-shadow: 0 16px 32px rgba(37, 99, 235, .34);
}

.admin-brand-title {
  color: #ffffff;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.2;
}

.admin-brand-subtitle {
  color: #93c5fd;
  font-size: 12px;
  margin-top: 3px;
}

.admin-nav {
  display: grid;
  gap: 18px;
  padding-bottom: 20px;
}

.admin-nav-label {
  color: #7dd3fc;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin: 0 10px 8px;
}

.admin-nav-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 14px;
  color: #cbd5e1;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.admin-nav-link:hover {
  color: #ffffff;
  background: rgba(255,255,255,.08);
  transform: translateX(2px);
}

.admin-nav-link.is-active {
  color: #ffffff;
  background: linear-gradient(135deg, rgba(37, 99, 235, .92), rgba(14, 165, 233, .72));
  box-shadow: 0 14px 30px rgba(37, 99, 235, .28);
}

.admin-nav-icon {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(255,255,255,.08);
  color: #e0f2fe;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: -.03em;
}

.admin-nav-link.is-active .admin-nav-icon { background: rgba(255,255,255,.2); }
.admin-nav-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.admin-sidebar-footer {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--admin-sidebar-border);
}

.admin-user-mini {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border-radius: 16px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
}

.admin-avatar {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #eff6ff;
  color: #1d4ed8;
  font-weight: 900;
}

.admin-user-copy { min-width: 0; }
.admin-user-copy strong {
  display: block;
  color: #fff;
  font-size: 13px;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-user-copy span {
  display: block;
  color: #94a3b8;
  font-size: 11px;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-logout {
  display: block;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  text-align: center;
  color: #fecaca;
  background: rgba(220, 38, 38, .1);
  border: 1px solid rgba(248, 113, 113, .18);
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
}
.admin-logout:hover { background: rgba(220, 38, 38, .18); color: #fff; }

.admin-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.admin-topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  min-height: 86px;
  padding: 18px 30px;
  background: rgba(248, 250, 252, .86);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(226, 232, 240, .88);
}

.admin-topbar-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.admin-kicker {
  margin: 0 0 3px;
  color: var(--admin-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .12em;
}

.admin-topbar h1 {
  margin: 0;
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.15;
  letter-spacing: -.045em;
  color: #0f172a;
}

.admin-topbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.admin-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 9px 13px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid var(--admin-border);
  color: #334155;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .05);
}
.admin-chip:hover { border-color: #bfdbfe; color: var(--admin-primary-2); }

.admin-content {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 28px 30px 44px;
}

.admin-menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--admin-border);
  border-radius: 14px;
  background: #fff;
  color: var(--admin-text);
  padding: 10px;
  box-shadow: var(--admin-shadow-soft);
}
.admin-menu-toggle span:not(.sr-only) {
  display: block;
  height: 2px;
  margin: 5px 0;
  border-radius: 99px;
  background: #0f172a;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

.admin-backdrop { display: none; }

/* Existing admin page polish */
.admin-content > .success,
.admin-content > .error,
.admin-content > .warning,
.admin-content > .notice {
  margin-bottom: 18px;
}

.kyi-admin-body .admin-content .card,
.kyi-admin-body .admin-content section.card,
.kyi-admin-body .admin-content article.card {
  border: 1px solid rgba(226, 232, 240, .95);
  border-radius: var(--admin-radius);
  background: rgba(255,255,255,.94);
  box-shadow: var(--admin-shadow-soft);
  padding: clamp(18px, 2.4vw, 28px);
}

.kyi-admin-body .admin-content > .card + .card,
.kyi-admin-body .admin-content > section + section {
  margin-top: 20px;
}

.kyi-admin-body .admin-content .card h2,
.kyi-admin-body .admin-content .card h3 {
  color: #0f172a;
  letter-spacing: -.03em;
}

.kyi-admin-body .admin-content .card p,
.kyi-admin-body .admin-content .help {
  color: var(--admin-muted);
}

.admin-dashboard-grid,
.kyi-admin-body .video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.admin-stat-card,
.kyi-admin-body .video-grid > .card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(226, 232, 240, .9) !important;
  background: linear-gradient(180deg, #fff 0%, #f8fbff 100%) !important;
  box-shadow: none !important;
}

.admin-stat-card::after,
.kyi-admin-body .video-grid > .card::after {
  content: "";
  position: absolute;
  right: -36px;
  top: -36px;
  width: 96px;
  height: 96px;
  border-radius: 999px;
  background: rgba(37, 99, 235, .08);
}

.admin-stat-value,
.kyi-admin-body .video-grid h3 {
  margin: 0;
  font-size: clamp(28px, 4vw, 42px);
  color: var(--admin-primary-2);
  letter-spacing: -.06em;
}

.admin-stat-label,
.kyi-admin-body .video-grid p {
  margin: 6px 0 0;
  font-weight: 800;
  color: #475569;
}

.kyi-admin-body .actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

.kyi-admin-body .btn,
.kyi-admin-body .btn-primary,
.kyi-admin-body .btn-danger,
.kyi-admin-body button,
.kyi-admin-body input[type="submit"] {
  min-height: 38px;
  border-radius: 12px;
  border: 1px solid var(--admin-border);
  padding: 9px 13px;
  font-weight: 850;
  text-decoration: none;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

.kyi-admin-body .btn:hover,
.kyi-admin-body .btn-primary:hover,
.kyi-admin-body .btn-danger:hover,
.kyi-admin-body button:hover,
.kyi-admin-body input[type="submit"]:hover {
  transform: translateY(-1px);
}

.kyi-admin-body .btn,
.kyi-admin-body button:not(.admin-menu-toggle):not(.btn-danger),
.kyi-admin-body input[type="submit"]:not(.btn-primary) {
  background: #fff;
  color: #334155;
}

.kyi-admin-body .btn-primary,
.kyi-admin-body input.btn-primary,
.kyi-admin-body button.btn-primary {
  background: linear-gradient(135deg, var(--admin-primary), #0ea5e9);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 12px 24px rgba(37, 99, 235, .22);
}

.kyi-admin-body .btn-danger,
.kyi-admin-body button.btn-danger {
  background: #fff1f2;
  border-color: #fecdd3;
  color: #be123c;
}

.kyi-admin-body .btn-danger:hover,
.kyi-admin-body button.btn-danger:hover {
  background: #e11d48;
  border-color: #e11d48;
  color: #fff;
}

.kyi-admin-body .table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--admin-border);
  border-radius: 16px;
  background: #fff;
}

.kyi-admin-body table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 760px;
}

.kyi-admin-body th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f8fafc;
  color: #475569;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-align: left;
  padding: 13px 14px;
  border-bottom: 1px solid var(--admin-border);
}

.kyi-admin-body td {
  padding: 14px;
  border-bottom: 1px solid #edf2f7;
  vertical-align: top;
}

.kyi-admin-body tr:last-child td { border-bottom: 0; }
.kyi-admin-body tbody tr:hover td { background: #f8fbff; }

.kyi-admin-body .badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #dbeafe;
  font-size: 12px;
  font-weight: 850;
}
.kyi-admin-body .badge.published,
.kyi-admin-body .badge.success { background: #ecfdf5; color: #047857; border-color: #bbf7d0; }
.kyi-admin-body .badge.draft,
.kyi-admin-body .badge.warning { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.kyi-admin-body .badge.failed,
.kyi-admin-body .badge.danger { background: #fff1f2; color: #be123c; border-color: #fecdd3; }

.kyi-admin-body .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.kyi-admin-body .form-row {
  display: grid;
  gap: 7px;
}

.kyi-admin-body label {
  color: #334155;
  font-size: 13px;
  font-weight: 850;
}

.kyi-admin-body input[type="text"],
.kyi-admin-body input[type="email"],
.kyi-admin-body input[type="password"],
.kyi-admin-body input[type="number"],
.kyi-admin-body input[type="url"],
.kyi-admin-body input[type="file"],
.kyi-admin-body select,
.kyi-admin-body textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid #cbd5e1;
  border-radius: 13px;
  background: #fff;
  color: #0f172a;
  padding: 10px 12px;
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease;
}

.kyi-admin-body textarea { min-height: 130px; resize: vertical; }

.kyi-admin-body input:focus,
.kyi-admin-body select:focus,
.kyi-admin-body textarea:focus {
  border-color: #60a5fa;
  box-shadow: 0 0 0 4px rgba(59, 130, 246, .13);
}

.kyi-admin-body .success,
.kyi-admin-body .error,
.kyi-admin-body .warning,
.kyi-admin-body .notice {
  border-radius: 16px;
  padding: 13px 15px;
  border: 1px solid;
  font-weight: 750;
}
.kyi-admin-body .success { background: #ecfdf5; border-color: #bbf7d0; color: #047857; }
.kyi-admin-body .error { background: #fff1f2; border-color: #fecdd3; color: #be123c; }
.kyi-admin-body .warning { background: #fffbeb; border-color: #fde68a; color: #b45309; }
.kyi-admin-body .notice { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }

.admin-login-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px;
  background:
    radial-gradient(circle at 20% 10%, rgba(37, 99, 235, .18), transparent 28rem),
    radial-gradient(circle at 80% 90%, rgba(14, 165, 233, .14), transparent 24rem),
    #f8fafc;
}

.admin-login-card {
  width: min(100%, 480px);
  border: 1px solid rgba(226, 232, 240, .95);
  border-radius: 24px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--admin-shadow);
  padding: clamp(24px, 5vw, 38px);
}

.admin-login-card h1 {
  margin: 18px 0 8px;
  font-size: 32px;
  letter-spacing: -.05em;
}

.admin-login-card p { color: var(--admin-muted); margin-top: 0; }

@media (max-width: 1100px) {
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(86vw, 320px);
    transform: translateX(-104%);
    transition: transform .22s ease;
    box-shadow: 24px 0 60px rgba(15, 23, 42, .28);
  }
  .admin-shell.sidebar-open .admin-sidebar { transform: translateX(0); }
  .admin-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .42);
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
    z-index: 70;
  }
  .admin-shell.sidebar-open .admin-backdrop { opacity: 1; pointer-events: auto; }
  .admin-menu-toggle { display: inline-block; flex: 0 0 auto; }
  .admin-content { padding: 22px 18px 38px; }
  .admin-topbar { padding: 16px 18px; }
}

@media (max-width: 760px) {
  .admin-topbar { align-items: flex-start; flex-direction: column; }
  .admin-topbar-actions { width: 100%; justify-content: flex-start; }
  .admin-dashboard-grid,
  .kyi-admin-body .video-grid { grid-template-columns: 1fr; }
  .kyi-admin-body .form-grid { grid-template-columns: 1fr !important; }
  .kyi-admin-body .actions { gap: 8px; }
  .kyi-admin-body .btn,
  .kyi-admin-body .btn-primary,
  .kyi-admin-body .btn-danger,
  .kyi-admin-body button,
  .kyi-admin-body input[type="submit"] { width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================
   KyiPlayer Admin Contrast Polish v1.3.0
   Purpose: keep the CMS/dashboard light theme while ensuring
   every content surface has readable dark text. White text is
   reserved for the sidebar and intentionally dark/primary UI.
   ========================================================== */
:root {
  --admin-content-text: #0f172a;
  --admin-content-heading: #020617;
  --admin-content-muted: #475569;
  --admin-content-soft: #64748b;
  --admin-content-surface: #ffffff;
  --admin-content-surface-2: #f8fafc;
  --admin-content-border: #dbe4ef;
  --admin-focus-ring: rgba(37, 99, 235, .16);
}

.kyi-admin-body {
  color: var(--admin-content-text);
}

.kyi-admin-body .admin-main,
.kyi-admin-body .admin-content {
  color: var(--admin-content-text);
}

.kyi-admin-body .admin-content {
  isolation: isolate;
}

.kyi-admin-body .admin-content :where(h1,h2,h3,h4,h5,h6),
.kyi-admin-body .admin-content :where(strong,b),
.kyi-admin-body .admin-content :where(label,legend),
.kyi-admin-body .admin-content :where(th),
.kyi-admin-body .admin-content .admin-section-title,
.kyi-admin-body .admin-content .card-title {
  color: var(--admin-content-heading) !important;
}

.kyi-admin-body .admin-content :where(p,li,dd,dt,td,figcaption),
.kyi-admin-body .admin-content :where(.help,.hint,.muted,.text-muted,.description,.small,.admin-help,.form-help),
.kyi-admin-body .admin-content :where(small) {
  color: var(--admin-content-muted) !important;
}

.kyi-admin-body .admin-content td,
.kyi-admin-body .admin-content td :where(span,div,p,a:not(.btn):not(.btn-primary):not(.btn-danger)) {
  color: var(--admin-content-text);
}

.kyi-admin-body .admin-content a:not(.btn):not(.btn-primary):not(.btn-danger):not(.admin-chip) {
  color: #1d4ed8;
  text-decoration-color: rgba(29, 78, 216, .35);
  text-underline-offset: 2px;
}

.kyi-admin-body .admin-content a:not(.btn):not(.btn-primary):not(.btn-danger):hover {
  color: #1e40af;
  text-decoration-color: currentColor;
}

.kyi-admin-body .admin-content :where(.card,.panel,.box,.admin-card,.font-card,.embed-card,.cache-card,.series-card),
.kyi-admin-body .admin-content :where(section,article).card {
  color: var(--admin-content-text) !important;
  background: var(--admin-content-surface) !important;
  border-color: var(--admin-content-border) !important;
}

.kyi-admin-body .admin-content :where(.card,.panel,.box,.admin-card,.font-card,.embed-card,.cache-card,.series-card) :where(h1,h2,h3,h4,h5,h6,strong,b,label) {
  color: var(--admin-content-heading) !important;
}

.kyi-admin-body .admin-content :where(.card,.panel,.box,.admin-card,.font-card,.embed-card,.cache-card,.series-card) :where(p,small,.help,.hint,.muted,.text-muted,.description,.meta,.subtext) {
  color: var(--admin-content-muted) !important;
}

/* Guard against legacy utility classes that made text white/light on white cards. */
.kyi-admin-body .admin-content :where(.text-white,.white,.color-white) {
  color: var(--admin-content-text) !important;
}

.kyi-admin-body .admin-content :where(.text-light,.text-gray,.light,.gray,.grey) {
  color: var(--admin-content-muted) !important;
}

/* Re-allow white text only where the background is intentionally dark/primary/danger. */
.kyi-admin-body .admin-content :where(.btn-primary,.btn-danger,.badge.published,.badge.success,.badge.failed,.badge.danger,.admin-dark,.is-dark),
.kyi-admin-body .admin-content :where(.btn-primary,.btn-danger,.badge.published,.badge.success,.badge.failed,.badge.danger,.admin-dark,.is-dark) :where(span,strong,b,small) {
  color: #ffffff !important;
}

.kyi-admin-body .admin-content :where(.badge,.status-badge) {
  color: #1d4ed8 !important;
  background: #eff6ff !important;
  border-color: #bfdbfe !important;
}

.kyi-admin-body .admin-content :where(.badge.draft,.badge.warning,.status-draft,.status-warning) {
  color: #92400e !important;
  background: #fffbeb !important;
  border-color: #fde68a !important;
}

.kyi-admin-body .admin-content :where(.badge.published,.badge.success,.status-published,.status-success) {
  color: #065f46 !important;
  background: #ecfdf5 !important;
  border-color: #a7f3d0 !important;
}

.kyi-admin-body .admin-content :where(.badge.failed,.badge.danger,.status-failed,.status-danger) {
  color: #991b1b !important;
  background: #fff1f2 !important;
  border-color: #fecdd3 !important;
}

.kyi-admin-body .admin-content :where(.table-wrap, table) {
  color: var(--admin-content-text) !important;
  background: #ffffff !important;
}

.kyi-admin-body .admin-content th {
  color: #334155 !important;
  background: #f1f5f9 !important;
}

.kyi-admin-body .admin-content td {
  color: var(--admin-content-text) !important;
  background: #ffffff;
}

.kyi-admin-body .admin-content tbody tr:hover td {
  background: #f8fbff !important;
}

.kyi-admin-body .admin-content input,
.kyi-admin-body .admin-content select,
.kyi-admin-body .admin-content textarea {
  color: var(--admin-content-text) !important;
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
}

.kyi-admin-body .admin-content input::placeholder,
.kyi-admin-body .admin-content textarea::placeholder {
  color: #94a3b8 !important;
  opacity: 1;
}

.kyi-admin-body .admin-content select option {
  color: #0f172a;
  background: #ffffff;
}

.kyi-admin-body .admin-content input:focus,
.kyi-admin-body .admin-content select:focus,
.kyi-admin-body .admin-content textarea:focus {
  border-color: #2563eb !important;
  box-shadow: 0 0 0 4px var(--admin-focus-ring) !important;
}

.kyi-admin-body .admin-content :where(pre,code,kbd) {
  color: #0f172a !important;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.kyi-admin-body .admin-content pre {
  padding: 14px;
  overflow: auto;
}

.kyi-admin-body .admin-content .btn:not(.btn-primary):not(.btn-danger),
.kyi-admin-body .admin-content button:not(.admin-menu-toggle):not(.btn-primary):not(.btn-danger),
.kyi-admin-body .admin-content input[type="submit"]:not(.btn-primary):not(.btn-danger) {
  color: #334155 !important;
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
}

.kyi-admin-body .admin-content .btn:not(.btn-primary):not(.btn-danger):hover,
.kyi-admin-body .admin-content button:not(.admin-menu-toggle):not(.btn-primary):not(.btn-danger):hover {
  color: #0f172a !important;
  background: #f8fafc !important;
  border-color: #94a3b8 !important;
}

.kyi-admin-body .admin-content .btn-primary,
.kyi-admin-body .admin-content button.btn-primary,
.kyi-admin-body .admin-content input.btn-primary,
.kyi-admin-body .admin-content input[type="submit"].btn-primary {
  color: #ffffff !important;
  background: linear-gradient(135deg, #2563eb, #0ea5e9) !important;
  border-color: transparent !important;
}

.kyi-admin-body .admin-content .btn-danger,
.kyi-admin-body .admin-content button.btn-danger {
  color: #be123c !important;
  background: #fff1f2 !important;
  border-color: #fecdd3 !important;
}

.kyi-admin-body .admin-content .btn-danger:hover,
.kyi-admin-body .admin-content button.btn-danger:hover {
  color: #ffffff !important;
  background: #e11d48 !important;
  border-color: #e11d48 !important;
}

.kyi-admin-body .admin-content :where(.success,.error,.warning,.notice,.alert) :where(strong,b,span,p,div) {
  color: inherit !important;
}

.kyi-admin-body .admin-content .success { color: #047857 !important; background: #ecfdf5 !important; border-color: #bbf7d0 !important; }
.kyi-admin-body .admin-content .error { color: #be123c !important; background: #fff1f2 !important; border-color: #fecdd3 !important; }
.kyi-admin-body .admin-content .warning { color: #92400e !important; background: #fffbeb !important; border-color: #fde68a !important; }
.kyi-admin-body .admin-content .notice { color: #1d4ed8 !important; background: #eff6ff !important; border-color: #bfdbfe !important; }

/* Keep topbar readable on the light background. */
.kyi-admin-body .admin-topbar,
.kyi-admin-body .admin-topbar h1,
.kyi-admin-body .admin-topbar .admin-kicker {
  color: var(--admin-content-heading);
}

.kyi-admin-body .admin-chip {
  color: #334155 !important;
  background: #ffffff !important;
  border-color: #dbe4ef !important;
}

.kyi-admin-body .admin-chip:hover {
  color: #1d4ed8 !important;
  border-color: #bfdbfe !important;
}

/* Font Manager / Embed Manager / Update Center common production surfaces. */
.kyi-admin-body .admin-content :where(.font-preview,.embed-preview,.preview-box,.log-box,.code-box,.health-box) {
  color: var(--admin-content-text) !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px;
}

.kyi-admin-body .admin-content :where(.font-preview,.embed-preview,.preview-box,.log-box,.code-box,.health-box) :where(p,span,div,code,pre) {
  color: var(--admin-content-text) !important;
}

/* Dark mode is intentionally not enabled here; contrast stays predictable. */

/* Admin User Management v3.0.0 */
.admin-filter-bar {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(160px, 220px) auto;
  gap: 10px;
  align-items: end;
  margin: 0 0 16px;
}
.role-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.role-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.permission-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.permission-cloud span {
  display: inline-flex;
  border-radius: 999px;
  background: #eef2ff;
  color: #3730a3;
  border: 1px solid #c7d2fe;
  padding: 4px 9px;
  font-size: 12px;
  font-weight: 700;
}
.permission-matrix {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}
.permission-group h3 {
  margin: 0 0 12px;
}
.permission-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 0;
  border-top: 1px solid #e5e7eb;
  color: #111827;
}
.permission-row:first-of-type { border-top: 0; }
.permission-row input { margin-top: 4px; }
.permission-row span { display: grid; gap: 2px; }
.permission-row small,
.check-row {
  color: #4b5563;
}
.permission-row strong {
  color: #111827;
  font-size: 13px;
}
.check-row {
  display: flex;
  gap: 9px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f9fafb;
  font-weight: 700;
}
.badge.role {
  background: #eef2ff;
  color: #3730a3;
  border: 1px solid #c7d2fe;
}
.badge.warning {
  background: #fff7ed;
  color: #9a3412;
  border: 1px solid #fed7aa;
}
.btn.btn-danger,
.btn-danger {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fecaca;
}
.btn.btn-danger:hover,
.btn-danger:hover {
  background: #fecaca;
  color: #7f1d1d;
}
.notice code {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 8px;
  background: rgba(0,0,0,.08);
  color: #111827;
  font-weight: 800;
}
@media (max-width: 760px) {
  .admin-filter-bar { grid-template-columns: 1fr; }
  .permission-matrix { grid-template-columns: 1fr; }
}
