:root {
  --adm-bg: #f3f5f8;
  --adm-surface: #ffffff;
  --adm-border: #e3e8ef;
  --adm-text: #142033;
  --adm-muted: #5f6b7d;
  --adm-side: #0e1b2c;
  --adm-side-text: #b7c3d4;
  --adm-accent: #0f8b8d;
  --adm-accent-soft: rgba(15, 139, 141, .12);
  --bs-primary: #0f8b8d;
  --bs-primary-rgb: 15, 139, 141;
  --bs-link-color: #0f8b8d;
  --bs-link-hover-color: #0b6d6f;
  --bs-body-font-family: 'Manrope', system-ui, sans-serif;
}
[data-bs-theme="dark"] {
  --adm-bg: #0b1320;
  --adm-surface: #121d2e;
  --adm-border: #22314a;
  --adm-text: #e6edf6;
  --adm-muted: #93a1b6;
  --adm-side: #070e18;
  --bs-body-bg: #0b1320;
}
body { background: var(--adm-bg); color: var(--adm-text); font-family: 'Manrope', system-ui, sans-serif; font-size: .935rem; }
.btn-primary { --bs-btn-bg: #0f8b8d; --bs-btn-border-color: #0f8b8d; --bs-btn-hover-bg: #0b6d6f; --bs-btn-hover-border-color: #0b6d6f; --bs-btn-active-bg: #095b5d; --bs-btn-disabled-bg: #0f8b8d; --bs-btn-disabled-border-color: #0f8b8d; }
.btn-outline-primary { --bs-btn-color: #0f8b8d; --bs-btn-border-color: #0f8b8d; --bs-btn-hover-bg: #0f8b8d; --bs-btn-hover-border-color: #0f8b8d; --bs-btn-active-bg: #0b6d6f; }
.form-control:focus, .form-select:focus { border-color: #0f8b8d; box-shadow: 0 0 0 .2rem rgba(15,139,141,.18); }
.form-check-input:checked { background-color: #0f8b8d; border-color: #0f8b8d; }
.mono { font-family: 'JetBrains Mono', monospace; font-size: .85em; }

/* shell */
.adm-shell { display: flex; min-height: 100vh; }
.adm-sidebar { width: 260px; flex-shrink: 0; background: var(--adm-side); color: var(--adm-side-text); position: fixed; inset: 0 auto 0 0; overflow-y: auto; z-index: 1040; transition: transform .25s ease; }
.adm-brand { display: flex; align-items: center; gap: .75rem; padding: 1.25rem 1.25rem 1rem; color: #fff; text-decoration: none; }
.adm-brand-mark { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: linear-gradient(135deg, #0f8b8d, #14b8a6); color: #fff; }
.adm-brand strong { display: block; font-size: 1.05rem; letter-spacing: .2px; }
.adm-brand small { display: block; color: var(--adm-side-text); font-size: .75rem; }
.adm-nav { padding: .25rem .75rem 2rem; }
.adm-nav-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; color: #6a7a92; padding: 1rem .75rem .4rem; font-weight: 700; }
.adm-nav a { display: flex; align-items: center; gap: .7rem; padding: .55rem .75rem; border-radius: 10px; color: var(--adm-side-text); text-decoration: none; font-weight: 500; margin-bottom: 2px; }
.adm-nav a i { font-size: 1.05rem; width: 20px; text-align: center; }
.adm-nav a:hover { background: rgba(255,255,255,.06); color: #fff; }
.adm-nav a.active { background: rgba(20,184,166,.16); color: #5eead4; }
.adm-main { flex: 1; margin-left: 260px; min-width: 0; display: flex; flex-direction: column; }
.adm-topbar { position: sticky; top: 0; z-index: 1030; display: flex; align-items: center; gap: .75rem; padding: .85rem 1.75rem; background: color-mix(in srgb, var(--adm-bg) 85%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--adm-border); }
.adm-page-title { font-size: 1.2rem; font-weight: 800; margin: 0; }
.adm-content { padding: 1.75rem; flex: 1; }
.adm-footer { padding: 1rem 1.75rem; color: var(--adm-muted); font-size: .8rem; }
.btn-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--adm-border); background: var(--adm-surface); color: var(--adm-text); }
.adm-user { display: flex; align-items: center; gap: .5rem; border: 1px solid var(--adm-border); background: var(--adm-surface); border-radius: 999px; padding: .25rem .8rem .25rem .25rem; color: var(--adm-text); }
.adm-user img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.adm-backdrop { display: none; }
@media (max-width: 991.98px) {
  .adm-sidebar { transform: translateX(-100%); }
  .adm-sidebar.open { transform: none; }
  .adm-main { margin-left: 0; }
  .adm-backdrop.show { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 1035; }
  .adm-content, .adm-topbar { padding-left: 1rem; padding-right: 1rem; }
}

/* cards */
.card-x { background: var(--adm-surface); border: 1px solid var(--adm-border); border-radius: 16px; }
.card-x .card-x-head { padding: 1rem 1.25rem; border-bottom: 1px solid var(--adm-border); display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.card-x .card-x-head h2 { font-size: 1rem; font-weight: 700; margin: 0; }
.card-x .card-x-body { padding: 1.25rem; }
.stat-card { display: flex; gap: 1rem; align-items: center; padding: 1.1rem 1.2rem; text-decoration: none; color: inherit; transition: transform .15s, box-shadow .15s; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -14px rgba(15, 30, 60, .35); color: inherit; }
.stat-icon { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; font-size: 1.3rem; background: var(--adm-accent-soft); color: var(--adm-accent); flex-shrink: 0; }
.stat-num { font-size: 1.5rem; font-weight: 800; line-height: 1.1; }
.stat-label { color: var(--adm-muted); font-size: .82rem; }

/* tables */
.table-x { margin: 0; --bs-table-bg: transparent; }
.table-x th { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--adm-muted); font-weight: 700; border-bottom-width: 1px; white-space: nowrap; }
.table-x th.sortable { cursor: pointer; user-select: none; }
.table-x th.sortable:hover { color: var(--adm-accent); }
.table-x td { vertical-align: middle; border-color: var(--adm-border); }
.table-x tbody tr:hover { background: var(--adm-accent-soft); }
.thumb { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; border: 1px solid var(--adm-border); }
.row-actions .btn { padding: .25rem .5rem; }
.empty-state { padding: 3rem 1rem; text-align: center; color: var(--adm-muted); }
.empty-state i { font-size: 2.4rem; display: block; margin-bottom: .5rem; opacity: .6; }
.badge-soft { background: var(--adm-accent-soft); color: var(--adm-accent); font-weight: 600; }
.search-box { position: relative; }
.search-box i { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--adm-muted); }
.search-box input { padding-left: 2.2rem; }
.unread td { font-weight: 700; }
.msg-body { white-space: pre-wrap; background: var(--adm-bg); border-radius: 12px; padding: 1rem; }

/* form */
.form-label { font-weight: 600; font-size: .85rem; }
.img-preview { max-height: 140px; border-radius: 10px; border: 1px solid var(--adm-border); }
.nav-pills-x .nav-link { color: var(--adm-muted); font-weight: 600; border-radius: 10px; }
.nav-pills-x .nav-link.active { background: var(--adm-accent-soft); color: var(--adm-accent); }
.confirm-icon { width: 56px; height: 56px; border-radius: 50%; background: rgba(220,53,69,.12); color: #dc3545; display: grid; place-items: center; font-size: 1.6rem; margin: 0 auto 1rem; }

/* login */
.login-wrap { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; background:
  radial-gradient(circle at 15% 20%, rgba(20,184,166,.18), transparent 40%),
  radial-gradient(circle at 85% 80%, rgba(14,27,44,.25), transparent 45%), var(--adm-bg); }
.login-card { width: 100%; max-width: 410px; padding: 2.25rem; }
.login-card .adm-brand-mark { width: 54px; height: 54px; margin-bottom: 1rem; }
