/* ToolRent Admin — Apple-inspired design layer (light only).
   Loaded after Bootstrap + admin.css; restyles existing classes without changing markup hooks. */
:root {
  --ap-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Helvetica Neue", Arial, sans-serif;
  --ap-mono: ui-monospace, "SF Mono", SFMono-Regular, "IBM Plex Mono", Menlo, monospace;

  --ap-bg: #f5f5f7;
  --ap-surface: #ffffff;
  --ap-fill: rgba(118, 118, 128, 0.12);
  --ap-fill-2: rgba(118, 118, 128, 0.07);
  --ap-label: #1d1d1f;
  --ap-label-2: #6e6e73;
  --ap-label-3: #86868b;
  --ap-sep: rgba(60, 60, 67, 0.12);
  --ap-sep-strong: rgba(60, 60, 67, 0.2);

  --ap-accent: #0071e3;
  --ap-accent-hover: #0077ed;
  --ap-accent-soft: rgba(0, 113, 227, 0.1);
  --ap-green: #248a3d;
  --ap-green-fill: #34c759;
  --ap-green-soft: rgba(52, 199, 89, 0.14);
  --ap-orange: #c93400;
  --ap-orange-fill: #ff9500;
  --ap-orange-soft: rgba(255, 149, 0, 0.14);
  --ap-red: #d70015;
  --ap-red-fill: #ff3b30;
  --ap-red-soft: rgba(255, 59, 48, 0.1);
  --ap-indigo: #5856d6;
  --ap-indigo-soft: rgba(88, 86, 214, 0.12);
  --ap-pink: #c1185b;
  --ap-pink-soft: rgba(255, 45, 85, 0.1);

  --ap-radius-s: 8px;
  --ap-radius: 12px;
  --ap-radius-l: 18px;
  --ap-shadow: 0 1px 1px rgba(0, 0, 0, 0.02), 0 4px 18px rgba(0, 0, 0, 0.045);
  --ap-shadow-pop: 0 0 0 0.5px rgba(0, 0, 0, 0.08), 0 12px 32px rgba(0, 0, 0, 0.14);
  --ap-shadow-sheet: 0 0 0 0.5px rgba(0, 0, 0, 0.06), 0 30px 80px rgba(0, 0, 0, 0.22);
  --ap-ring: 0 0 0 4px rgba(0, 113, 227, 0.2);

  /* map legacy admin.css tokens onto the new palette */
  --bg: var(--ap-bg);
  --card: var(--ap-surface);
  --text: var(--ap-label);
  --muted: var(--ap-label-2);
  --border: var(--ap-sep);
  --primary: var(--ap-accent);
  --primary-dark: var(--ap-accent-hover);
  --danger: var(--ap-red);
  --warn: var(--ap-orange);
  --info: var(--ap-accent);
  --radius: var(--ap-radius);
  --font: var(--ap-font);
  --brand: var(--ap-accent);
  --sidebar-active: var(--ap-accent);

  /* Bootstrap */
  --bs-body-font-family: var(--ap-font);
  --bs-body-color: var(--ap-label);
  --bs-body-bg: var(--ap-bg);
  --bs-primary: #0071e3;
  --bs-primary-rgb: 0, 113, 227;
  --bs-success-rgb: 36, 138, 61;
  --bs-danger-rgb: 215, 0, 21;
  --bs-border-color: var(--ap-sep);
  --bs-link-color: #0071e3;
  --bs-link-color-rgb: 0, 113, 227;
  --bs-secondary-color: var(--ap-label-2);
}

/* ── Base ─────────────────────────────────────────────────── */
body.admin-body,
body.admin-auth-body {
  font-family: var(--ap-font);
  background: var(--ap-bg);
  color: var(--ap-label);
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
}
body.admin-body { grid-template-columns: 260px 1fr; }
.admin-body a { color: var(--ap-accent); }
.admin-body code,
.admin-body .mono,
.admin-body .font-monospace { font-family: var(--ap-mono); letter-spacing: 0; }
.admin-body code { color: var(--ap-label); background: var(--ap-fill-2); padding: 0.1rem 0.35rem; border-radius: 6px; font-size: 0.82em; }
.admin-body .text-muted { color: var(--ap-label-2) !important; }
.admin-body .text-primary { color: var(--ap-accent) !important; }
.admin-body .text-success { color: var(--ap-green) !important; }
.admin-body .text-danger { color: var(--ap-red) !important; }
.admin-body :focus-visible { outline: none; box-shadow: var(--ap-ring); }

/* ── Sidebar: light vibrancy, macOS source list ──────────── */
.admin-sidebar {
  background: rgba(236, 236, 241, 0.82);
  -webkit-backdrop-filter: saturate(180%) blur(24px);
  backdrop-filter: saturate(180%) blur(24px);
  color: var(--ap-label);
  border-right: 1px solid var(--ap-sep);
}
.sidebar-brand {
  padding: 1.25rem 1.1rem 1rem;
  color: var(--ap-label);
  border-bottom: 0;
  box-shadow: none;
  font-size: 0.95rem;
  font-weight: 600;
}
.sidebar-brand-logo {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  box-shadow: 0 0 0 0.5px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08);
}
.sidebar-close { background: var(--ap-fill-2); color: var(--ap-label); border-radius: 50%; }
.sidebar-nav { padding: 0.25rem 0.75rem 1rem; gap: 1px; }
.nav-group-label {
  margin: 1rem 0.65rem 0.3rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ap-label-3);
}
.admin-sidebar .nav-item {
  color: var(--ap-label);
  padding: 0.45rem 0.7rem;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 500;
  gap: 0.65rem;
}
.admin-sidebar .nav-item i { font-size: 0.92rem; width: 1.2rem; }
.admin-sidebar .nav-item .fa-gauge-high { color: #0a84ff; }
.admin-sidebar .nav-item .fa-list-check { color: #8e5cf7; }
.admin-sidebar .nav-item .fa-boxes-stacked { color: #0a84ff; }
.admin-sidebar .nav-item .fa-screwdriver-wrench { color: #8e8e93; }
.admin-sidebar .nav-item .fa-envelope { color: #ff375f; }
.admin-sidebar .nav-item .fa-calendar-days { color: #8e8e93; }
.admin-sidebar .nav-item .fa-list-ol { color: #ff9500; }
.admin-sidebar .nav-item .fa-cart-shopping { color: #30b94d; }
.admin-sidebar .nav-item .fa-users { color: #0a84ff; }
.admin-sidebar .nav-item .fa-comments { color: #ff375f; }
.admin-sidebar .nav-item .fa-wallet { color: #30b94d; }
.admin-sidebar .nav-item .fa-file-invoice { color: #af52de; }
.admin-sidebar .nav-item .fa-coins { color: #ffb800; }
.admin-sidebar .nav-item .fa-clock-rotate-left { color: #636366; }
.admin-sidebar .nav-item .fa-shield-halved { color: #ff3b30; }
.admin-sidebar .nav-item .fa-gear { color: #636366; }
.admin-sidebar .nav-item .fa-arrow-up-right-from-square { color: #32ade6; }
.nav-badge {
  margin-left: auto;
  min-width: 1.3rem;
  padding: 0.05rem 0.4rem;
  border-radius: 980px;
  background: var(--ap-red-fill);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  font-style: normal;
  text-align: center;
}
.admin-sidebar .nav-item.active .nav-badge { background: #fff; color: var(--ap-accent); }
.admin-sidebar .nav-item:hover { background: rgba(0, 0, 0, 0.05); color: var(--ap-label); }
.admin-sidebar .nav-item.active {
  background: var(--ap-accent);
  color: #fff;
  font-weight: 600;
  box-shadow: none;
}
.admin-sidebar .nav-item.active i { color: #fff; }
.sidebar-foot { border-top: 1px solid var(--ap-sep); padding: 0.6rem 0.75rem 0.9rem; }
.admin-sidebar .nav-item.text-danger,
.admin-sidebar .nav-item.text-danger i { color: var(--ap-red) !important; }

/* ── Main + title bar ────────────────────────────────────── */
.admin-main { padding: 0 2rem 2.5rem; min-width: 0; }
.admin-top {
  position: sticky;
  top: 0;
  z-index: 50;
  margin: 0 -2rem 1.5rem;
  padding: 1.6rem 2rem 1rem;
  background: rgba(245, 245, 247, 0.8);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
}
.admin-top h1 {
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: -0.035em;
}
.admin-menu-btn {
  background: var(--ap-surface);
  border: 0;
  border-radius: 50%;
  box-shadow: var(--ap-shadow);
  color: var(--ap-label);
}
.admin-user-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3rem 0.85rem 0.3rem 0.3rem;
  border-radius: 980px;
  background: var(--ap-surface);
  box-shadow: var(--ap-shadow);
  color: var(--ap-label) !important;
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: none;
}
.admin-user-chip:hover { background: #fff; text-decoration: none; }
.admin-user-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 0.8rem;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(160deg, #8e8e93, #636366);
  text-transform: uppercase;
}

/* ── Cards / panels ──────────────────────────────────────── */
.ap-card,
.admin-body .panel,
.admin-body .card,
.inv-toolbar-card {
  background: var(--ap-surface);
  border: 0 !important;
  border-radius: var(--ap-radius-l) !important;
  box-shadow: var(--ap-shadow) !important;
}
.ap-card { padding: 1.35rem 1.4rem; }
.ap-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.ap-card-head h3,
.ap-card-title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}
.ap-card-head a { font-size: 0.85rem; text-decoration: none; }
.ap-card-head a:hover { text-decoration: underline; }
.ap-card-sub { margin: 0.2rem 0 0; font-size: 0.85rem; color: var(--ap-label-2); }
.inv-toolbar-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.4rem;
}
.inv-toolbar-card h3 { font-weight: 700; letter-spacing: -0.025em; }

.ap-side-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 1.5rem;
  align-items: start;
}
.ap-two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: start;
}

/* KPI tiles */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.kpi-card {
  background: var(--ap-surface);
  border-radius: var(--ap-radius-l);
  box-shadow: var(--ap-shadow);
  padding: 1.2rem 1.3rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.kpi-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 0.95rem;
}
.kpi-icon--green { background: linear-gradient(160deg, #4cd964, #28a745); }
.kpi-icon--blue { background: linear-gradient(160deg, #3d9bff, #0063d1); }
.kpi-icon--orange { background: linear-gradient(160deg, #ffb340, #ff8a00); }
.kpi-icon--gray { background: linear-gradient(160deg, #a1a1a6, #6e6e73); }
.kpi-value {
  margin: 0;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--ap-label);
}
.kpi-label { font-size: 0.85rem; color: var(--ap-label-2); font-weight: 500; }

/* Payments stat cards */
.admin-body .stat-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-bottom: 0; }
.admin-body .stat-card {
  border: 0;
  border-radius: var(--ap-radius-l);
  box-shadow: var(--ap-shadow);
  padding: 1.2rem 1.3rem;
  display: block;
}
.stat-card-head { display: flex; justify-content: space-between; align-items: center; color: var(--ap-label-2); font-size: 0.85rem; font-weight: 500; }
.stat-card-value { margin-top: 0.6rem; font-size: 2rem; font-weight: 700; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.stat-card-meta { font-size: 0.8rem; color: var(--ap-label-3); }
.sec-panel-title { font-size: 1.15rem !important; font-weight: 700 !important; letter-spacing: -0.025em; color: var(--ap-label); }

/* ── Buttons: capsules ───────────────────────────────────── */
.admin-body .btn,
.admin-auth-body .btn {
  --bs-btn-border-radius: 980px;
  border-radius: 980px;
  border: 1px solid transparent;
  font-family: var(--ap-font);
  font-weight: 500;
  font-size: 0.875rem;
  letter-spacing: -0.01em;
  padding: 0.45rem 1rem;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  box-shadow: none;
  transition: background 0.18s, color 0.18s, transform 0.12s, filter 0.18s;
}
.admin-body .btn:active { transform: scale(0.97); }
.admin-body .btn-sm { padding: 0.28rem 0.8rem; min-height: 28px; font-size: 0.8rem; }
.admin-body .btn-primary,
.admin-auth-body .btn-primary,
.admin-body .btn-primary.shadow-sm { background: var(--ap-accent) !important; color: #fff !important; border-color: transparent !important; }
.admin-body .btn-primary:hover,
.admin-auth-body .btn-primary:hover { background: var(--ap-accent-hover) !important; }
.admin-body .btn-success { background: var(--ap-green); color: #fff; }
.admin-body .btn-success:hover { background: #1f7a35; color: #fff; }
.admin-body .btn-secondary,
.admin-body .btn-outline,
.admin-body .btn-outline-secondary,
.admin-body .btn-ghost {
  background: var(--ap-fill) !important;
  color: var(--ap-label) !important;
  border-color: transparent !important;
}
.admin-body .btn-secondary:hover,
.admin-body .btn-outline:hover,
.admin-body .btn-outline-secondary:hover,
.admin-body .btn-ghost:hover { background: rgba(118, 118, 128, 0.2) !important; }
.admin-body .btn-secondary.text-danger { color: var(--ap-red) !important; }
.admin-body .btn-outline-primary { background: var(--ap-accent-soft); color: var(--ap-accent); border-color: transparent; }
.admin-body .btn-outline-primary:hover { background: rgba(0, 113, 227, 0.16); color: var(--ap-accent); }
.admin-body .btn-danger { background: var(--ap-red-soft); color: var(--ap-red); border-color: transparent; }
.admin-body .btn-danger:hover { background: var(--ap-red-fill); color: #fff; }
.admin-body .btn-outline-danger { background: var(--ap-red-soft); color: var(--ap-red); border-color: transparent; }
.admin-body .btn-outline-danger:hover { background: var(--ap-red-fill); color: #fff; }
.admin-body .btn-outline-dark { background: rgba(0, 0, 0, 0.08); color: var(--ap-label); border-color: transparent; }
.admin-body .btn-block { width: 100%; }
.admin-body .btn:disabled { opacity: 0.4; }

/* ── Forms ───────────────────────────────────────────────── */
.admin-body .form-label,
.admin-body .form-group label,
.admin-body .ap-label {
  display: block;
  margin: 0 0 0.35rem 0.15rem;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  color: var(--ap-label-2);
  letter-spacing: 0;
}
.admin-body .form-group { margin-bottom: 0.9rem; }
.admin-body .form-control,
.admin-body .form-select,
.admin-body .form-group input:not([type="checkbox"]):not([type="radio"]),
.admin-body .form-group select,
.admin-body .form-group textarea,
.admin-body .err-filter select,
.admin-body .err-filter input,
.admin-body .inv-table-pagination select,
.admin-auth-body .form-control,
.admin-auth-body .form-group input {
  min-height: 40px;
  padding: 0.5rem 0.85rem;
  font-family: var(--ap-font);
  font-size: 0.92rem;
  color: var(--ap-label);
  background-color: var(--ap-fill-2);
  border: 1px solid transparent;
  border-radius: 10px;
  box-shadow: none;
  transition: background-color 0.18s, border-color 0.18s, box-shadow 0.18s;
}
.admin-body textarea.form-control { min-height: 0; }
.admin-body .form-control:focus,
.admin-body .form-select:focus,
.admin-body .form-group input:focus,
.admin-body .form-group select:focus,
.admin-body .form-group textarea:focus,
.admin-body .err-filter select:focus,
.admin-body .err-filter input:focus,
.admin-auth-body .form-control:focus,
.admin-auth-body .form-group input:focus {
  background-color: #fff;
  border-color: var(--ap-accent);
  box-shadow: var(--ap-ring);
  outline: none;
}
.admin-body .form-control::placeholder { color: var(--ap-label-3); }
.admin-body .form-control[readonly] { background-color: var(--ap-fill-2); }
.admin-body .form-text { color: var(--ap-label-3); font-size: 0.78rem; margin-left: 0.15rem; }
.admin-body input[type="checkbox"],
.admin-body .form-check-input { accent-color: var(--ap-accent); }
.admin-body select.form-control {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 2.2rem;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236e6e73' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='m4 6 4 4 4-4'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.8rem center;
  background-size: 14px 14px;
}

/* password fields inside Bootstrap input-group: eye sits inside the field */
.admin-body .input-group { position: relative; flex-wrap: nowrap; }
.admin-body .input-group > .form-control { border-radius: 10px !important; padding-right: 2.75rem; width: 100%; }
.admin-body .input-group > .password-toggle,
.admin-body .password-toggle.btn {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 32px;
  height: 32px;
  min-height: 0;
  padding: 0;
  border-radius: 50% !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--ap-label-2) !important;
}
.admin-body .input-group > .password-toggle:hover { background: var(--ap-fill-2) !important; color: var(--ap-label) !important; }
.admin-body .input-group-sm > .btn:not(.password-toggle) {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%); z-index: 5;
  min-height: 0; padding: 0.2rem 0.55rem; border-radius: 8px !important;
}
.admin-body .input-group-sm > .form-control { padding-right: 2.75rem; }

/* ── Tables: inset grouped lists ─────────────────────────── */
.inv-table-wrap,
.admin-body .table-responsive {
  background: var(--ap-surface);
  border-radius: var(--ap-radius-l);
  box-shadow: var(--ap-shadow);
  overflow: auto;
  padding-top: 0;
}
.admin-body .panel .table-responsive,
.admin-body .ap-card .data-table,
.admin-body .modal .data-table { box-shadow: none; }
.admin-body .panel .table-responsive { border-radius: 0; }
.admin-body .data-table { font-size: 0.875rem; color: var(--ap-label); margin: 0; }
.admin-body .data-table thead th {
  background: transparent;
  color: var(--ap-label-2);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  padding: 0.85rem 0.9rem 0.6rem;
  border-bottom: 1px solid var(--ap-sep);
}
.admin-body .data-table td {
  padding: 0.8rem 0.9rem;
  border-bottom: 1px solid var(--ap-sep);
  background: transparent;
}
.admin-body .data-table tbody tr:last-child td { border-bottom: 0; }
.admin-body .data-table tbody tr:hover td { background: rgba(0, 0, 0, 0.018); }
.admin-body .data-table tbody th { color: var(--ap-label-2); font-weight: 500; font-size: 0.82rem; padding: 0.8rem 0.9rem; border-bottom: 1px solid var(--ap-sep); }
.admin-body .data-table strong { font-weight: 600; }
.admin-body .empty-row { color: var(--ap-label-3); text-align: center; padding: 2rem 0.5rem !important; font-size: 0.9rem; }
.ap-tool-icon { width: 34px; height: 34px; object-fit: contain; border-radius: 9px; background: #fff; box-shadow: 0 0 0 0.5px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.06); padding: 2px; }
.ap-link-small { font-size: 0.85rem; text-decoration: none; }

/* ── Badges: soft capsules ───────────────────────────────── */
.admin-body .badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  border-radius: 980px;
  padding: 0.22rem 0.6rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.3;
  text-decoration: none;
  border: 0;
}
.admin-body .badge-success,
.admin-body .badge-active,
.admin-body .badge.bg-success { background: var(--ap-green-soft) !important; color: var(--ap-green) !important; }
.admin-body .badge-pending,
.admin-body .badge-warning,
.admin-body .badge-server { background: var(--ap-orange-soft) !important; color: var(--ap-orange) !important; }
.admin-body .badge-processing,
.admin-body .badge-info,
.admin-body .badge-primary,
.admin-body .badge-remote { background: var(--ap-accent-soft) !important; color: var(--ap-accent) !important; }
.admin-body .badge-reject,
.admin-body .badge-danger { background: var(--ap-red-soft) !important; color: var(--ap-red) !important; }
.admin-body .badge-expired { background: var(--ap-pink-soft) !important; color: var(--ap-pink) !important; }
.admin-body .badge-muted,
.admin-body .badge-inactive,
.admin-body .inv-offline-badge { background: var(--ap-fill) !important; color: var(--ap-label-2) !important; }

/* ── Flash / alerts ──────────────────────────────────────── */
.admin-body .flash,
.admin-body .alert,
.admin-auth-body .alert {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.85rem 1.1rem;
  border: 0 !important;
  border-radius: var(--ap-radius) !important;
  font-size: 0.9rem;
  box-shadow: none !important;
  margin-bottom: 0;
}
.admin-body .flash-success,
.admin-body .alert-success { background: var(--ap-green-soft); color: #1b6b30; }
.admin-body .flash-danger,
.admin-body .flash-error,
.admin-body .alert-danger,
.admin-auth-body .alert-danger { background: var(--ap-red-soft); color: var(--ap-red); }
.admin-body .alert-warning { background: var(--ap-orange-soft); color: #7a3300; display: block; }
.ap-flash-gap { margin-bottom: 1.25rem !important; }

/* ── Segmented controls (status tabs, settings tabs, dialog tabs) ── */
.admin-body .inv-status-tabs,
.admin-body .security-tabs,
.admin-body .inv-dialog-tabs,
.admin-body #invDrawerTabs,
.ap-segmented {
  display: inline-flex !important;
  flex-wrap: wrap;
  gap: 2px;
  padding: 3px !important;
  margin: 0;
  background: rgba(118, 118, 128, 0.12) !important;
  border: 0 !important;
  border-radius: 10px;
  width: auto;
}
.admin-body .inv-status-tabs .status-tab,
.admin-body .security-tabs .security-tab,
.admin-body .inv-dialog-tabs .inv-tab,
.admin-body #invDrawerTabs .nav-link,
.ap-segmented > a {
  background: transparent !important;
  border: 0 !important;
  border-radius: 8px !important;
  color: var(--ap-label) !important;
  font-size: 0.82rem;
  font-weight: 500;
  padding: 0.38rem 0.85rem !important;
  box-shadow: none !important;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.18s, box-shadow 0.18s;
}
.admin-body .inv-status-tabs .status-tab:hover,
.admin-body .security-tabs .security-tab:hover,
.admin-body .inv-dialog-tabs .inv-tab:hover,
.admin-body #invDrawerTabs .nav-link:hover { background: rgba(255, 255, 255, 0.5) !important; }
.admin-body .inv-status-tabs .status-tab.active,
.admin-body .security-tabs .security-tab.active,
.admin-body .inv-dialog-tabs .inv-tab.active,
.admin-body #invDrawerTabs .nav-link.active,
.ap-segmented > a.active {
  background: #fff !important;
  color: var(--ap-label) !important;
  font-weight: 600;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 0 0.5px rgba(0, 0, 0, 0.04) !important;
}
.admin-body .security-tabs .security-tab i { color: var(--ap-label-2); }
.admin-body .security-tabs .security-tab.active i { color: var(--ap-accent); }
.admin-body .inv-status-tabs .tab-count,
.admin-body .inv-status-tabs .status-tab .count {
  background: rgba(118, 118, 128, 0.16) !important;
  color: var(--ap-label-2) !important;
  font-size: 0.7rem;
  font-weight: 600;
  min-width: 1.35rem;
  text-align: center;
  padding: 0.05rem 0.4rem;
  border-radius: 980px;
}
.admin-body .inv-status-tabs .status-tab.active .tab-count { background: var(--ap-accent) !important; color: #fff !important; }
.admin-body .inv-status-tabs .status-tab[data-status="available"].active .tab-count { background: var(--ap-green-fill) !important; }
.admin-body .inv-status-tabs .status-tab[data-status="on_rent"].active .tab-count { background: var(--ap-accent) !important; }
.admin-body .inv-status-tabs .status-tab[data-status="queue"].active .tab-count { background: var(--ap-orange-fill) !important; }
.admin-body .inv-status-tabs .status-tab[data-status="failed"].active .tab-count { background: var(--ap-red-fill) !important; }

/* Settings card: tabs on a header strip */
.admin-body .security-layout > .security-tabs {
  display: flex !important;
  width: auto;
  margin: 1.1rem 1.25rem 0;
  align-self: flex-start;
}
.admin-body .security-layout { display: flex; flex-direction: column; }
.admin-body .security-layout > .security-tabs.bg-light { background: rgba(118, 118, 128, 0.12) !important; }
.admin-body .sec-status { border: 0 !important; background: var(--ap-fill-2); border-radius: var(--ap-radius) !important; }
.admin-body .security-content .card { box-shadow: none !important; background: var(--ap-fill-2) !important; }
.admin-body .security-content .card .bg-white { border: 0 !important; border-radius: 12px !important; }

/* ── Inventory ───────────────────────────────────────────── */
.inv-tools-pills-bar {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 2px 10px;
  margin-bottom: 0.75rem;
  scrollbar-width: thin;
}
.inv-tool-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  white-space: nowrap;
  padding: 0.35rem 0.9rem 0.35rem 0.35rem;
  border-radius: 980px;
  background: var(--ap-surface);
  box-shadow: var(--ap-shadow);
  color: var(--ap-label) !important;
  font-size: 0.82rem;
  font-weight: 500;
  text-decoration: none;
  transition: background 0.18s, box-shadow 0.18s;
}
.inv-tool-pill img { width: 24px; height: 24px; border-radius: 6px; object-fit: contain; background: #fff; }
.inv-tool-pill:hover { box-shadow: 0 0 0 1px var(--ap-sep-strong), var(--ap-shadow); text-decoration: none; }
.inv-tool-pill.is-active { background: var(--ap-label); color: #fff !important; }

.admin-body .inv-tool-bar {
  background: var(--ap-surface);
  border: 0;
  border-radius: var(--ap-radius-l);
  box-shadow: var(--ap-shadow);
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
  gap: 0.75rem;
}
.admin-body .inv-tool-field--bar { display: flex; align-items: center; gap: 0.75rem; }
.admin-body .inv-tool-field-logo { width: 40px; height: 40px; border-radius: 10px; object-fit: contain; box-shadow: 0 0 0 0.5px rgba(0,0,0,0.1); }
.admin-body .inv-tool-select { font-weight: 600; }
.admin-body .inv-tool-login-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  max-width: 280px;
  padding: 0.35rem 0.8rem;
  border-radius: 980px;
  background: var(--ap-accent-soft);
  color: var(--ap-accent) !important;
  font-size: 0.8rem;
  font-weight: 500;
  text-decoration: none;
  border: 0;
}
.admin-body .inv-tool-login-link .inv-tool-login-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-body .inv-head-actions { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }

.inv-filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.9rem;
}
.admin-body .inv-search-bar {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin: 0 0 1rem;
  padding: 0;
  border: 0;
}
.admin-body .inv-search-bar #invSearchQ {
  max-width: 340px;
  padding-left: 2.2rem;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle cx='7' cy='7' r='4.8' fill='none' stroke='%2386868b' stroke-width='1.6'/%3e%3cpath d='m10.6 10.6 3 3' stroke='%2386868b' stroke-width='1.6' stroke-linecap='round'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: 0.75rem center;
  background-size: 15px;
}
.inv-live-indicator {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0.7rem;
  border-radius: 980px;
  background: var(--ap-green-soft);
  color: var(--ap-green);
  font-size: 0.75rem;
  font-weight: 600;
}
.inv-live-indicator .live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ap-green-fill);
  box-shadow: 0 0 0 0 rgba(52, 199, 89, 0.5);
  animation: ap-pulse 2s infinite;
}
@keyframes ap-pulse {
  0% { box-shadow: 0 0 0 0 rgba(52, 199, 89, 0.45); }
  70% { box-shadow: 0 0 0 6px rgba(52, 199, 89, 0); }
  100% { box-shadow: 0 0 0 0 rgba(52, 199, 89, 0); }
}

.admin-body .inv-action-toolbar {
  background: var(--ap-label);
  color: #fff;
  border-radius: 980px;
  padding: 0.4rem 0.5rem 0.4rem 1.1rem;
  box-shadow: var(--ap-shadow-pop);
  border: 0;
}
.admin-body .inv-action-toolbar-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; }
.admin-body .inv-action-label { font-size: 0.85rem; color: rgba(255,255,255,0.85); }
.admin-body .inv-action-toolbar .btn-outline { background: rgba(255,255,255,0.14) !important; color: #fff !important; }
.admin-body .inv-action-toolbar .btn-outline:hover { background: rgba(255,255,255,0.24) !important; }
.admin-body .inv-action-toolbar .btn-danger { background: var(--ap-red-fill); color: #fff; }

/* rows */
.admin-body .inv-table td { white-space: nowrap; }
.admin-body .inv-table .inv-cell-status { white-space: normal; }
.admin-body tr[data-next-sell="1"] { background: rgba(52, 199, 89, 0.06); }
.admin-body tr[data-next-sell="1"] td:first-child { box-shadow: inset 3px 0 0 var(--ap-green-fill); }
.admin-body .inv-next-sell {
  border: 0;
  border-radius: 980px;
  background: var(--ap-green-fill);
  color: #fff;
  font-size: 0.62rem;
  padding: 0.12rem 0.45rem;
  letter-spacing: 0.02em;
}
.admin-body .inv-pass-verified { color: var(--ap-green-fill); }

/* iOS switch */
.admin-body .inv-online-slider {
  width: 38px;
  height: 23px;
  background: rgba(120, 120, 128, 0.16);
  transition: background 0.25s;
}
.admin-body .inv-online-slider::after {
  top: 2px;
  left: 2px;
  width: 19px;
  height: 19px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15), 0 0 0 0.5px rgba(0, 0, 0, 0.04);
  transition: transform 0.25s cubic-bezier(0.3, 0.7, 0.4, 1);
}
.admin-body .inv-online-switch input:checked + .inv-online-slider { background: var(--ap-green-fill); }
.admin-body .inv-online-switch input:checked + .inv-online-slider::after { transform: translateX(15px); }
.admin-body .inv-online-text { font-size: 0.65rem; color: var(--ap-label-3); }
.admin-body .inv-online-switch input:checked ~ .inv-online-text { color: var(--ap-green); }

/* actions popover menu */
.admin-body .inv-actions-toggle { border-radius: 50%; color: var(--ap-label-2); }
.admin-body .inv-actions-toggle:hover,
.admin-body .inv-actions-menu.is-open .inv-actions-toggle { background: var(--ap-fill); color: var(--ap-label); }
.admin-body .inv-actions-dropdown {
  min-width: 13rem;
  padding: 5px;
  border: 0;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  box-shadow: var(--ap-shadow-pop);
}
.admin-body .inv-actions-dropdown .inv-menu-item {
  border-radius: 7px;
  color: var(--ap-label);
  font-size: 0.85rem;
  padding: 0.42rem 0.6rem;
}
.admin-body .inv-actions-dropdown .inv-menu-item i { color: var(--ap-label-2); width: 1rem; }
.admin-body .inv-actions-dropdown .inv-menu-item:hover { background: var(--ap-accent); color: #fff; }
.admin-body .inv-actions-dropdown .inv-menu-item:hover i { color: #fff; }
.admin-body .inv-actions-dropdown .inv-menu-item.inv-icon-danger,
.admin-body .inv-actions-dropdown .inv-menu-item.inv-icon-danger i { color: var(--ap-red); }
.admin-body .inv-actions-dropdown .inv-menu-item.inv-icon-danger:hover { background: var(--ap-red-fill); color: #fff; }
.admin-body .inv-actions-dropdown .inv-menu-item.inv-icon-danger:hover i { color: #fff; }

/* pagination */
.admin-body .inv-table-pagination,
.admin-body .table-pagination { border: 0; padding: 0.25rem 0.25rem 0; color: var(--ap-label-2); font-size: 0.85rem; }
.admin-body .inv-table-pagination a,
.admin-body .inv-table-pagination button,
.admin-body .inv-table-pagination span[class*="page"] { border-radius: 980px !important; }

/* ── Modals: sheets ──────────────────────────────────────── */
.modal-backdrop.show { opacity: 1; background: rgba(0, 0, 0, 0.28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.modal-backdrop { background: transparent; }
.admin-body .modal-content {
  border: 0 !important;
  border-radius: 20px !important;
  background: var(--ap-surface);
  box-shadow: var(--ap-shadow-sheet) !important;
  overflow: hidden;
  font-family: var(--ap-font);
}
.admin-body .modal-header {
  background: var(--ap-surface) !important;
  border-bottom: 0 !important;
  padding: 1.25rem 1.5rem 0.5rem !important;
}
.admin-body .modal-title { font-size: 1.15rem !important; font-weight: 700 !important; letter-spacing: -0.025em; }
.admin-body .modal-header .btn-close {
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 50%;
  background-color: var(--ap-fill);
  background-size: 10px;
  opacity: 0.8;
}
.admin-body .modal-header .btn-close:hover { opacity: 1; }
.admin-body .modal-body { padding: 1rem 1.5rem 1.25rem !important; }
.admin-body .modal-footer {
  background: var(--ap-surface) !important;
  border-top: 0 !important;
  padding: 0.5rem 1.5rem 1.35rem !important;
  gap: 0.5rem;
}
.admin-body .modal-footer > * { margin: 0; }
.admin-body #invDrawer .bg-light.border-bottom { background: var(--ap-surface) !important; border: 0 !important; padding: 0 1.5rem !important; }
.admin-body #invDrawerTabs { display: flex !important; margin: 0 !important; }
.admin-body #invDrawerTabs .nav-item { flex: 1; }
.admin-body #invDrawerTabs .nav-link { width: 100%; justify-content: center; }
.admin-body #invDialogMeta { padding: 0 1.5rem !important; }
.admin-body .inv-dialog-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; margin-bottom: 1rem; font-size: 0.85rem; }
.admin-body #invDialogBody .inv-dialog-tabs { margin-bottom: 0.5rem; }

/* confirm dialog: centered alert style */
.admin-body #trConfirmModal .modal-dialog { max-width: 340px; }
.admin-body #trConfirmModal .modal-header { justify-content: center; padding-top: 1.5rem !important; }
.admin-body #trConfirmModal .modal-header .btn-close { display: none; }
.admin-body #trConfirmModal .modal-body { text-align: center; padding-top: 0.25rem !important; }
.admin-body #trConfirmModal #trConfirmText { color: var(--ap-label-2) !important; font-size: 0.9rem !important; }
.admin-body #trConfirmModal .modal-footer { display: grid; grid-template-columns: 1fr 1fr; }
.admin-body #trConfirmModal .modal-footer .btn { width: 100%; min-height: 40px; font-size: 0.92rem; }

/* busy HUD */
.admin-save-busy { background: rgba(0, 0, 0, 0.18); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.admin-save-busy-card {
  flex-direction: column;
  gap: 0.7rem;
  min-width: 150px;
  padding: 1.4rem 1.6rem;
  border: 0;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.86);
  -webkit-backdrop-filter: saturate(180%) blur(24px);
  backdrop-filter: saturate(180%) blur(24px);
  box-shadow: var(--ap-shadow-sheet);
  font-family: var(--ap-font);
  font-size: 0.9rem;
  color: var(--ap-label);
}
.admin-save-busy-card .fa-spinner { color: var(--ap-label-2); font-size: 1.6rem; }

/* ── Logs ────────────────────────────────────────────────── */
.admin-body .err-toolbar { margin-bottom: 1rem; }
.admin-body .err-toolbar-stats { gap: 0.6rem; }
.admin-body .err-stat {
  background: var(--ap-surface);
  box-shadow: var(--ap-shadow);
  border-radius: 980px;
  padding: 0.35rem 0.9rem;
  font-size: 0.82rem;
  color: var(--ap-label-2);
}
.admin-body .err-stat strong { color: var(--ap-label); }
.admin-body .err-stat--open strong { color: var(--ap-orange); }
.admin-body .err-filters {
  background: var(--ap-surface);
  border-radius: var(--ap-radius-l);
  box-shadow: var(--ap-shadow);
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
  border: 0;
}
.admin-body .err-filter label { font-size: 0.8rem; color: var(--ap-label-2); font-weight: 500; }
.admin-body .err-list { list-style: none; padding: 0; margin: 0; background: var(--ap-surface); border-radius: var(--ap-radius-l); box-shadow: var(--ap-shadow); overflow: hidden; }
.admin-body .err-list > li.log-row {
  margin: 0 !important;
  padding: 0.95rem 1.2rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.admin-body .err-list > li.log-row + li.log-row { border-top: 1px solid var(--ap-sep) !important; }
.log-row-action { font-size: 0.9rem; font-weight: 600; color: var(--ap-label); }
.log-row-msg { margin: 0.35rem 0 0.45rem; font-size: 0.875rem; color: var(--ap-label-2); line-height: 1.45; }
.log-row-meta { font-size: 0.76rem; }
.admin-body .err-empty { text-align: center; padding: 3rem 1rem; color: var(--ap-label-3); }
.admin-body .err-empty i { font-size: 2rem; margin-bottom: 0.5rem; color: var(--ap-label-3); }

/* ── Gmail guide list ────────────────────────────────────── */
.ap-steps { margin: 0; padding-left: 1.25rem; color: var(--ap-label-2); font-size: 0.9rem; line-height: 1.65; }
.ap-steps strong { color: var(--ap-label); }

/* ── Admin login ─────────────────────────────────────────── */
.admin-auth-body .auth-wrap {
  background:
    radial-gradient(80% 60% at 50% 0%, rgba(0, 113, 227, 0.08), transparent 70%),
    var(--ap-bg);
  font-family: var(--ap-font);
  color: var(--ap-label);
}
.admin-auth-body .auth-shell { width: min(400px, 100%); }
.admin-auth-body .auth-brand {
  flex-direction: column;
  text-align: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.admin-auth-body .auth-brand-logo {
  width: 72px;
  height: 72px;
  border-radius: 18px;
  object-fit: contain;
  background: #fff;
  padding: 8px;
  border: 0;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1), 0 0 0 0.5px rgba(0, 0, 0, 0.06);
}
.admin-auth-body .auth-brand strong { display: block; font-size: 1.05rem; font-weight: 600; letter-spacing: -0.02em; }
.admin-auth-body .auth-brand small { display: block; font-size: 0.8rem; color: var(--ap-label-2); }
.admin-auth-body .auth-card {
  background: var(--ap-surface);
  border: 0;
  border-radius: 22px;
  box-shadow: 0 1px 1px rgba(0,0,0,0.02), 0 12px 40px rgba(0, 0, 0, 0.07);
  padding: 2rem 1.9rem 1.75rem;
}
.admin-auth-body .auth-card h1 { font-size: 1.85rem; font-weight: 700; letter-spacing: -0.035em; margin: 0 0 0.35rem; text-align: center; }
.admin-auth-body .auth-eyebrow,
.admin-auth-body .auth-step-eyebrow {
  text-align: center;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ap-accent);
  text-transform: none;
  letter-spacing: 0;
  margin: 0 0 0.3rem;
  justify-content: center;
}
.admin-auth-body .auth-lead { text-align: center; color: var(--ap-label-2); font-size: 0.92rem; margin-bottom: 1.5rem; }
.admin-auth-body .form-group label { font-size: 0.8rem; font-weight: 500; color: var(--ap-label-2); margin: 0 0 0.35rem 0.15rem; }
.admin-auth-body .form-group input { width: 100%; min-height: 46px; font-size: 1rem; }
.admin-auth-body .password-field { position: relative; }
.admin-auth-body .password-field input { padding-right: 3rem; }
.admin-auth-body .password-toggle {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--ap-label-2);
}
.admin-auth-body .password-toggle:hover { background: var(--ap-fill-2); }
.admin-auth-body .btn-primary { min-height: 48px; font-size: 1rem; width: 100%; margin-top: 0.5rem; }
.admin-auth-body #twofa_code { min-height: 64px; font-size: 1.9rem !important; letter-spacing: 0.4rem !important; }
.admin-auth-body .auth-footer-link { text-align: center; margin-top: 1.25rem; font-size: 0.9rem; }
.admin-auth-body .auth-footer-link a,
.admin-auth-body a.text-muted { color: var(--ap-accent) !important; text-decoration: none; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 1100px) {
  .ap-two-col,
  .ap-side-layout { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  body.admin-body { grid-template-columns: 1fr; }
  .admin-sidebar { background: rgba(242, 242, 247, 0.96); }
  .admin-main { padding: 0 16px 2rem; }
  .admin-top { margin: 0 -16px 1rem; padding: 0.9rem 16px 0.75rem; }
  .admin-top h1 { font-size: 1.45rem; }
  .admin-body .inv-search-bar #invSearchQ { max-width: none; flex: 1 1 100%; }
  .inv-live-indicator { margin-left: 0; }
  .admin-body .inv-head-actions { margin-left: 0; }
  .admin-body .inv-status-tabs { display: flex !important; overflow-x: auto; flex-wrap: nowrap; }
  .admin-body .security-layout > .security-tabs { flex-wrap: nowrap; overflow-x: auto; margin: 1rem 1rem 0; }
  .admin-body .modal-dialog { margin: 0.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-body *, .admin-auth-body * { transition: none !important; animation: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .admin-sidebar, .admin-top, .admin-body .inv-actions-dropdown, .admin-save-busy-card { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--ap-surface); }
}

/* ── Brand mark (replaces image logo) ────────────────────── */
.brand-mark {
  width: 32px; height: 32px; border-radius: 9px; flex-shrink: 0;
  display: grid; place-items: center;
  color: #fff; font-size: 0.85rem;
  background: linear-gradient(150deg, #3a8dff 0%, #0058c7 100%);
  box-shadow: 0 3px 10px rgba(0, 113, 227, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}
.brand-mark--lg { width: 64px; height: 64px; border-radius: 16px; font-size: 1.6rem; box-shadow: 0 10px 28px rgba(0, 113, 227, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.25); }

/* ── Messages ────────────────────────────────────────────── */
.msg-layout { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.msg-list { padding: 1.1rem 0.75rem; }
.msg-list .ap-card-head { padding: 0 0.5rem; }
.msg-new { padding: 0 0.5rem 0.75rem; }
.msg-convos { list-style: none; margin: 0; padding: 0; }
.msg-convos a { display: flex; align-items: center; gap: 0.7rem; padding: 0.6rem 0.6rem; border-radius: 10px; color: var(--ap-label) !important; text-decoration: none; }
.msg-convos a:hover { background: var(--ap-fill-2); }
.msg-convos a.is-active { background: var(--ap-accent-soft); }
.msg-convos .admin-user-avatar { width: 34px; height: 34px; flex-shrink: 0; background: linear-gradient(160deg, #5ac8fa, #0071e3); }
.msg-convo-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.msg-convo-main strong { font-size: 0.875rem; font-weight: 600; }
.msg-convo-main small { font-size: 0.78rem; color: var(--ap-label-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.msg-pane { min-height: 480px; display: flex; flex-direction: column; }
.msg-thread { flex: 1; max-height: 56vh; overflow-y: auto; display: flex; flex-direction: column; gap: 0.5rem; padding: 0.5rem 0.25rem 1rem; }
.bubble { max-width: 72%; padding: 0.55rem 0.85rem; border-radius: 18px; font-size: 0.9rem; line-height: 1.4; }
.bubble p { margin: 0; white-space: normal; word-wrap: break-word; }
.bubble small { display: block; margin-top: 0.2rem; font-size: 0.68rem; opacity: 0.7; }
.bubble--me { align-self: flex-end; background: var(--ap-accent); color: #fff; border-bottom-right-radius: 6px; }
.bubble--them { align-self: flex-start; background: rgba(118, 118, 128, 0.14); color: var(--ap-label); border-bottom-left-radius: 6px; }
.msg-compose { display: flex; flex-direction: column; gap: 0.6rem; align-items: flex-start; }
.msg-compose textarea { width: 100%; }
.msg-compose--inline { flex-direction: row; align-items: flex-end; border-top: 1px solid var(--ap-sep); padding-top: 0.9rem; }
.msg-placeholder { flex: 1; display: grid; place-items: center; align-content: center; gap: 0.5rem; color: var(--ap-label-3); text-align: center; }
.msg-placeholder i { font-size: 2.4rem; }
.msg-announce-list { list-style: none; margin: 0; padding: 0; }
.msg-announce-list li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.8rem 0; border-top: 1px solid var(--ap-sep); }
.msg-announce-list p { margin: 0 0 0.2rem; font-size: 0.9rem; }

/* ── Utils ───────────────────────────────────────────────── */
.util-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1rem; }
.util-tile {
  display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem;
  background: var(--ap-surface); border-radius: var(--ap-radius-l); box-shadow: var(--ap-shadow);
  padding: 1.2rem 1.25rem; margin: 0;
}
.util-tile .kpi-icon { margin-bottom: 0.25rem; }
.util-tile h3 { margin: 0; font-size: 1rem; font-weight: 700; letter-spacing: -0.02em; }
.util-tile p { margin: 0 0 0.4rem; font-size: 0.82rem; color: var(--ap-label-2); flex: 1; }
.util-output { margin: 0; max-height: 320px; overflow: auto; background: #1d1d1f; color: #f5f5f7; border-radius: 12px; padding: 0.9rem 1rem; font-size: 0.78rem; line-height: 1.55; white-space: pre-wrap; }
.admin-body .btn.is-copied { color: var(--ap-green) !important; }
.admin-body .ap-segmented > a { color: var(--ap-label) !important; }

@media (max-width: 1100px) {
  .msg-layout { grid-template-columns: 1fr; }
}
.sidebar-brand > .brand-mark { flex: 0 0 32px; }
.sidebar-brand > span:not(.brand-mark) { font-size: 0.92rem; }
.admin-body .lic-table td, .admin-body .lic-table th { padding-left: 0.5rem; padding-right: 0.5rem; }
.admin-body .lic-table code { white-space: nowrap; max-width: 170px; display: inline-block; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; }
.admin-body .lic-date { width: 138px; min-height: 34px; padding: 0.3rem 0.5rem; font-size: 0.82rem; }

/* ── Update mode ─────────────────────────────────────────── */
.update-mode-card { margin-top: 2rem; padding: 1.25rem 1.35rem; border-radius: var(--ap-radius-l); background: var(--ap-fill-2); }
.update-mode-card.is-on { background: #fff8ec; box-shadow: 0 0 0 1px rgba(255, 149, 0, 0.35); }
.update-mode-card .sec-panel-title i { color: var(--ap-orange-fill); }
.update-switch { display: inline-flex; align-items: center; gap: 0.7rem; cursor: pointer; font-weight: 500; font-size: 0.92rem; }
.update-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.update-switch-track { position: relative; width: 46px; height: 28px; border-radius: 980px; background: rgba(120, 120, 128, 0.2); transition: background 0.25s; flex-shrink: 0; }
.update-switch-track::after { content: ''; position: absolute; top: 2px; left: 2px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18); transition: transform 0.25s cubic-bezier(0.3, 0.7, 0.4, 1); }
.update-switch input:checked + .update-switch-track { background: var(--ap-orange-fill); }
.update-switch input:checked + .update-switch-track::after { transform: translateX(18px); }
.update-switch input:focus-visible + .update-switch-track { box-shadow: var(--ap-ring); }
.admin-update-pill { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.35rem 0.85rem; border-radius: 980px; background: var(--ap-orange-soft); color: var(--ap-orange) !important; font-size: 0.8rem; font-weight: 600; text-decoration: none; }

/* ── Log retention ───────────────────────────────────────── */
.log-retention { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.log-retention-info { display: flex; align-items: center; gap: 0.85rem; }
.log-retention-info h3 { margin: 0; font-size: 1rem; font-weight: 700; letter-spacing: -0.02em; }
.log-retention-info p { margin: 0.1rem 0 0; font-size: 0.82rem; color: var(--ap-label-2); }
.log-retention form { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }

/* ── Inventory table: column layout + clean digits ───────── */
.admin-body .inv-table { min-width: 1180px; }
.admin-body .inv-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.admin-body .inv-table th { white-space: nowrap; }
/* Sans-serif tabular digits: no dotted/slashed zero, columns still line up */
.admin-body .inv-table .mono,
.admin-body .inv-table code,
.admin-body .inv-table .inv-pass-text,
.admin-body .inv-timer,
.admin-body .inv-rotate-done,
.admin-body .inv-rotate-elapsed,
.admin-body .inv-verify-elapsed,
.admin-body .inv-order-ref {
  font-family: var(--ap-font);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}
.admin-body .inv-table .inv-pass-text { font-weight: 500; }
.admin-body .inv-cell-pass { min-width: 12rem; }
.admin-body .inv-timer-cell.inv-cell-restock {
  max-width: none;
  min-width: 11rem;
  white-space: nowrap;
}
.admin-body .inv-cell-restock .badge { display: inline-flex; }
.admin-body .inv-cell-restock .inv-timer {
  display: block;
  width: fit-content;
  margin-top: 0.3rem;
  min-width: 0;
  border-radius: 980px;
  padding: 0.1rem 0.55rem;
  font-size: 0.8rem;
  font-weight: 600;
  background: var(--ap-green-soft);
  color: var(--ap-green);
}
.admin-body .inv-cell-restock .inv-timer-warn { background: var(--ap-orange-soft); color: var(--ap-orange); }
.admin-body .inv-cell-restock .inv-timer-due { background: var(--ap-red-soft); color: var(--ap-red); }
.admin-body .inv-cell-rotate-time { min-width: 5.5rem; }
.admin-body .inv-cell-last-password { min-width: 9rem; }
.admin-body .inv-cell-status { min-width: 7.5rem; }
.admin-body .inv-cell-status .inv-order-ref { margin-left: 0.3rem; color: var(--ap-label-3); font-size: 0.78rem; }
.admin-body .inv-table th.inv-th-actions,
.admin-body .inv-table td.inv-cell-actions { position: sticky; right: 0; z-index: 2; background: #fff; box-shadow: -8px 0 12px -10px rgba(0, 0, 0, 0.25); text-align: center; }
.admin-body .inv-table tbody tr:hover td.inv-cell-actions { background: #fbfbfb; }
.admin-body .inv-table tr[data-next-sell="1"] td.inv-cell-actions { background: #f3fbf5; }
.admin-body .inv-table td.inv-cell-actions .inv-actions-dropdown { z-index: 60; }

/* ── Password job progress sheet ─────────────────────────── */
.inv-progress {
  position: fixed; inset: 0; z-index: 5200;
  display: grid; place-items: center; padding: 16px;
  background: rgba(0, 0, 0, 0.22);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  animation: invp-fade 0.2s ease-out;
}
.inv-progress[hidden] { display: none; }
body.inv-progress-open { overflow: hidden; }
.inv-progress-card {
  width: 100%; max-width: 340px; text-align: center;
  padding: 2rem 1.6rem 1.5rem; border-radius: 22px;
  background: rgba(255, 255, 255, 0.94);
  -webkit-backdrop-filter: saturate(180%) blur(24px); backdrop-filter: saturate(180%) blur(24px);
  box-shadow: var(--ap-shadow-sheet);
  font-family: var(--ap-font);
  animation: invp-pop 0.28s cubic-bezier(0.2, 0.9, 0.3, 1.2);
}
.inv-progress-icon { position: relative; width: 64px; height: 64px; margin: 0 auto 1rem; }
.inv-progress-ring {
  position: absolute; inset: 0; border-radius: 50%;
  border: 4px solid var(--ap-accent-soft); border-top-color: var(--ap-accent);
  animation: invp-spin 0.9s linear infinite;
}
.inv-progress-icon i {
  position: absolute; inset: 0; display: none; place-items: center;
  border-radius: 50%; color: #fff; font-size: 1.7rem;
}
.inv-progress-icon .fa-check { background: var(--ap-green-fill); }
.inv-progress-icon .fa-xmark { background: var(--ap-red-fill); }
.inv-progress[data-state="success"] .inv-progress-ring,
.inv-progress[data-state="fail"] .inv-progress-ring { display: none; }
.inv-progress[data-state="success"] .fa-check,
.inv-progress[data-state="fail"] .fa-xmark { display: grid; animation: invp-pop 0.3s cubic-bezier(0.2, 0.9, 0.3, 1.3); }
.inv-progress-card h3 { margin: 0; font-size: 1.2rem; font-weight: 700; letter-spacing: -0.025em; color: var(--ap-label); }
.inv-progress-sub { margin: 0.3rem 0 0; font-size: 0.85rem; color: var(--ap-label-2); overflow-wrap: anywhere; }
.inv-progress-clock {
  margin: 1rem auto 0; font-size: 2rem; font-weight: 600; letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums; color: var(--ap-label);
}
.inv-progress[data-state="success"] .inv-progress-clock,
.inv-progress[data-state="fail"] .inv-progress-clock { font-size: 0.85rem; font-weight: 500; color: var(--ap-label-3); margin-top: 0.5rem; }
.inv-progress-result {
  display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
  margin: 1rem 0 0; padding: 0.55rem 0.55rem 0.55rem 0.9rem; border-radius: 12px; background: var(--ap-fill-2);
}
.inv-progress-result[hidden] { display: none; }
.inv-progress-result code { background: none; padding: 0; font-family: var(--ap-font); font-size: 1rem; font-weight: 600; color: var(--ap-accent); word-break: break-all; text-align: left; }
.inv-progress-note { margin: 0.9rem 0 0; font-size: 0.78rem; color: var(--ap-label-3); }
.inv-progress-note:empty { display: none; }
.inv-progress-close { width: 100%; min-height: 42px; margin-top: 1.1rem; }
@keyframes invp-spin { to { transform: rotate(360deg); } }
@keyframes invp-fade { from { opacity: 0; } }
@keyframes invp-pop { from { transform: scale(0.92); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .inv-progress, .inv-progress-card, .inv-progress-ring { animation: none; } }
