:root{
  --admin-bg: #0b1220;
  --admin-surface: rgba(255,255,255,.06);
  --admin-surface-2: rgba(255,255,255,.09);
  --admin-border: rgba(255,255,255,.10);
  --admin-text: rgba(255,255,255,.88);
  --admin-muted: rgba(255,255,255,.62);
  --admin-primary: #6ea8fe;
  --admin-accent: #22c55e;
  --admin-danger: #ef4444;
  --admin-radius: 14px;
  --admin-shadow: 0 14px 40px rgba(0,0,0,.38);
  --admin-sidebar-w: 276px;
  --admin-sidebar-w-collapsed: 88px;
  --admin-topbar-h: 74px;
}

.admin-body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(900px 600px at 20% -10%, rgba(110,168,254,.23), transparent 60%),
    radial-gradient(900px 600px at 95% 0%, rgba(34,197,94,.18), transparent 60%),
    var(--admin-bg);
  color: var(--admin-text);
}

.skip-link{
  position:absolute;
  left:-999px;
  top:12px;
  z-index: 9999;
  padding: 10px 14px;
  background: #fff;
  color:#111;
  border-radius: 10px;
}
.skip-link:focus{ left:12px; }

.admin-app{
  min-height: 100vh;
  display:flex;
  position:relative;
}

.admin-toast-wrap{
  position: fixed;
  top: 14px;
  right: 14px;
  z-index: 1080;
  width: min(420px, calc(100vw - 28px));
}

.admin-sidebar{
  width: var(--admin-sidebar-w);
  flex: 0 0 auto;
  background: rgba(255,255,255,.04);
  border-right: 1px solid var(--admin-border);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 14px;
  position: sticky;
  top:0;
  height: 100vh;
  overflow: auto;
}

.admin-sidebar__brand{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px;
  border-radius: 12px;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--admin-border);
}

.admin-brand{
  text-decoration:none;
  color: var(--admin-text);
  display:flex;
  align-items:center;
  gap: 10px;
  font-weight: 600;
}
.admin-brand__mark{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display:grid;
  place-items:center;
  background: linear-gradient(135deg, rgba(110,168,254,.35), rgba(34,197,94,.25));
  border: 1px solid rgba(255,255,255,.12);
}
.admin-brand__text{ letter-spacing: .2px; }

.admin-nav{ padding: 12px 4px; }
.admin-nav__section{
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--admin-muted);
  padding: 12px 10px 8px;
}
.admin-nav__link{
  display:flex;
  align-items:center;
  gap: 12px;
  padding: 10px 10px;
  border-radius: 12px;
  text-decoration:none;
  color: var(--admin-text);
  border: 1px solid transparent;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.admin-nav__link:hover{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.08);
  transform: translateY(-1px);
}
.admin-nav__link.is-active{
  background: rgba(110,168,254,.14);
  border-color: rgba(110,168,254,.22);
  box-shadow: 0 0 0 1px rgba(110,168,254,.06) inset;
}
.admin-nav__icon{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display:grid;
  place-items:center;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.09);
  flex: 0 0 auto;
}
.admin-nav__label{ font-weight: 500; }

.admin-sidebar__footer{
  padding: 12px 8px;
  border-top: 1px solid rgba(255,255,255,.08);
  margin-top: 10px;
}

.admin-shell{
  flex: 1 1 auto;
  min-width: 0;
  display:flex;
  flex-direction: column;
}

.admin-topbar{
  height: var(--admin-topbar-h);
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  position: sticky;
  top:0;
  z-index: 1020;
  border-bottom: 1px solid var(--admin-border);
  background: rgba(11,18,32,.72);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.admin-pagehead{ display:flex; flex-direction: column; gap: 4px; }
.admin-pagehead__title{ font-weight: 600; font-size: 1.05rem; }
.admin-breadcrumb{
  --bs-breadcrumb-divider-color: rgba(255,255,255,.45);
  --bs-breadcrumb-item-active-color: rgba(255,255,255,.72);
  font-size: .82rem;
}
.admin-breadcrumb a{ color: rgba(110,168,254,.92); text-decoration:none; }
.admin-breadcrumb a:hover{ text-decoration: underline; }

.admin-topbar__pill{
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.82);
}

.admin-main{
  padding: 18px 20px 28px;
}

.admin-card{
  border-radius: var(--admin-radius);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 10px 26px rgba(0,0,0,.24);
}
.admin-card .card-header{
  background: transparent;
  border-bottom: 1px solid rgba(255,255,255,.10);
}

.table{
  --bs-table-bg: transparent;
  --bs-table-color: var(--admin-text);
  --bs-table-border-color: rgba(255,255,255,.10);
  --bs-table-striped-bg: transparent;
  --bs-table-striped-color: #ffffff;
}

.admin-card .table,
.admin-card .table > :not(caption) > * > *{
  background-color: #0e1a2d !important;
  color: #ffffff !important;
}

.admin-card .table-striped > tbody > tr:nth-of-type(odd) > *{
  --bs-table-accent-bg: transparent !important;
  color: #ffffff !important;
}

.admin-card .table thead th{
  background-color: #12213a !important;
  color: #ffffff !important;
}

.admin-card .table tbody tr:hover > *{
  background-color: #162947 !important;
  color: #ffffff !important;
}

.admin-card .table td,
.admin-card .table th,
.admin-card .table a,
.admin-card .table .text-secondary,
.admin-card .table .text-muted,
.admin-card .table small,
.admin-card .table .small{
  color: #ffffff !important;
}

.form-control, .form-select{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  color: var(--admin-text);
}
.form-control:focus, .form-select:focus{
  background: rgba(255,255,255,.07);
  border-color: rgba(110,168,254,.45);
  box-shadow: 0 0 0 .25rem rgba(110,168,254,.16);
  color: var(--admin-text);
}
.form-control::placeholder{ color: rgba(255,255,255,.45); }

.btn-primary{
  --bs-btn-bg: rgba(110,168,254,.92);
  --bs-btn-border-color: rgba(110,168,254,.92);
  --bs-btn-hover-bg: rgba(110,168,254,1);
  --bs-btn-hover-border-color: rgba(110,168,254,1);
  --bs-btn-active-bg: rgba(110,168,254,1);
}
.btn-outline-secondary{
  --bs-btn-color: rgba(255,255,255,.82);
  --bs-btn-border-color: rgba(255,255,255,.18);
  --bs-btn-hover-bg: rgba(255,255,255,.08);
  --bs-btn-hover-border-color: rgba(255,255,255,.22);
}

.admin-loading{
  position: fixed;
  inset: 0;
  display:none;
  align-items:center;
  justify-content:center;
  background: rgba(11,18,32,.55);
  z-index: 1090;
}
.admin-loading.is-visible{ display:flex; }
.admin-loading__spinner{
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 3px solid rgba(255,255,255,.22);
  border-top-color: rgba(110,168,254,1);
  animation: admin-spin 1s linear infinite;
}
@keyframes admin-spin{ to{ transform: rotate(360deg); } }

/* Collapsed sidebar (desktop) */
.admin-app.is-sidebar-collapsed .admin-sidebar{
  width: var(--admin-sidebar-w-collapsed);
}
.admin-app.is-sidebar-collapsed .admin-nav__label,
.admin-app.is-sidebar-collapsed .admin-brand__text,
.admin-app.is-sidebar-collapsed .admin-nav__section{
  display:none;
}
.admin-app.is-sidebar-collapsed .admin-sidebar__collapse i{
  transform: rotate(180deg);
}

/* Mobile sidebar overlay */
@media (max-width: 991.98px){
  .admin-sidebar{
    position: fixed;
    left: 0;
    top: 0;
    transform: translateX(-105%);
    transition: transform .22s ease;
    z-index: 1050;
    box-shadow: var(--admin-shadow);
  }
  .admin-app.is-sidebar-open .admin-sidebar{ transform: translateX(0); }
  .admin-app.is-sidebar-open::before{
    content:"";
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.55);
    z-index: 1040;
  }
}

/* Force all admin text to pure white */
.admin-body,
.admin-body *{
  color: #ffffff !important;
}

/* Keep placeholders visible but softer than primary text */
.admin-body input::placeholder,
.admin-body textarea::placeholder{
  color: rgba(255,255,255,.78) !important;
}

