/*
 * Chronos admin shared visual theme.
 * Matches modules/admin/admin_welcome.php (Admin Dashboard).
 * Visual overrides only: no layout actions, form names, URLs or PHP logic.
 */
:root {
  color-scheme: dark;
  --chronos-bg: #181c20;
  --chronos-panel: #202428;
  --chronos-panel-alt: #282d31;
  --chronos-panel-hover: #252a2e;
  --chronos-border: #3a4248;
  --chronos-text: #efefef;
  --chronos-muted: #aaa;
  --chronos-muted-2: #c4c4c4;
  --chronos-accent: #d7a36a;
  --chronos-action: #996633;
  --chronos-action-hover: #ad7841;
  --chronos-action-border: #a06c39;
  --chronos-danger: #dc3545;
  --chronos-success: #39d198;
}

html,
body {
  color: var(--chronos-text) !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

/* Embedded admin pages sit directly on the main admin surface. */
.admin-frame,
.admin-frame > .container,
.admin-frame > .container-fluid,
.admin-frame > div[style*="min-height: 100vh"] {
  background: transparent !important;
  box-shadow: none !important;
}

.admin-frame > div[style*="min-height: 100vh"] {
  min-height: 0 !important;
  padding: 0 !important;
}

.admin-frame {
  color: var(--chronos-text) !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.admin-frame h1,
.admin-frame h2,
.admin-frame h3,
.admin-frame h4,
.admin-frame h5,
.admin-frame h6,
.admin-frame .title,
.admin-frame .card-title,
.admin-frame legend {
  color: #fff !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.admin-frame h1,
.admin-frame h2,
.admin-frame .title {
  border-bottom: 1px solid var(--chronos-border);
  padding-bottom: 8px;
  margin-bottom: 12px !important;
}

.admin-frame a,
.admin-frame .btn-link {
  color: var(--chronos-accent) !important;
}

.admin-frame a:hover,
.admin-frame .btn-link:hover {
  color: #e8b77e !important;
}

.admin-frame p,
.admin-frame .text,
.admin-frame .multipage,
.admin-frame .playermedals,
.admin-frame small,
.admin-frame .text-muted,
.admin-frame .form-text,
.admin-frame .hint,
.admin-frame .help-block {
  color: var(--chronos-muted-2) !important;
}

/* Dashboard-style panels/cards: flat, compact, thin border. */
.admin-frame .card,
.admin-frame .panel,
.admin-frame .well,
.admin-frame .jumbotron,
.admin-frame .details-card,
.admin-frame .admin-weapons-panel,
.admin-frame .admin-weapon-awards,
.admin-frame .chronos-container,
.admin-frame .admin-frame-message,
.admin-frame fieldset,
.admin-frame .modal-content,
.admin-frame [class*="-card"]:not(.badge):not(.btn) {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.admin-frame .card-header,
.admin-frame .card-footer,
.admin-frame .panel-heading,
.admin-frame .modal-header,
.admin-frame .modal-footer {
  background: var(--chronos-panel-alt) !important;
  color: var(--chronos-text) !important;
  border-color: var(--chronos-border) !important;
}

/* Tables across the legacy and Bootstrap admin pages. */
.admin-frame table,
.admin-frame table.table,
.admin-frame .admin-weapons-table {
  width: 100%;
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  border-collapse: separate;
  border-spacing: 0;
  box-shadow: none !important;
  overflow: hidden;
}

.admin-frame table table {
  box-shadow: none !important;
}

.admin-frame table th,
.admin-frame table td,
.admin-frame .table > :not(caption) > * > * {
  border-color: var(--chronos-border) !important;
  color: var(--chronos-text) !important;
}

.admin-frame table th,
.admin-frame thead th,
.admin-frame .tableheader,
.admin-frame .weapons-row--header {
  background: var(--chronos-panel-alt) !important;
  color: var(--chronos-accent) !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase;
}

.admin-frame tbody tr,
.admin-frame .tablerow1,
.admin-frame .table-striped > tbody > tr:nth-of-type(odd) > *,
.admin-frame .weapons-row:not(.weapons-row--header) {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
}

.admin-frame tbody tr:nth-child(even),
.admin-frame .tablerow2,
.admin-frame .table-striped > tbody > tr:nth-of-type(even) > * {
  background: var(--chronos-panel-alt) !important;
  color: var(--chronos-text) !important;
}

.admin-frame tbody tr:hover > *,
.admin-frame .tablerow1:hover,
.admin-frame .tablerow2:hover,
.admin-frame .weapons-row:not(.weapons-row--header):hover {
  background: var(--chronos-panel-hover) !important;
}

.admin-frame .navigation,
.admin-frame .header {
  background: var(--chronos-panel-alt) !important;
  color: var(--chronos-text) !important;
}

/* Inputs/forms. */
.admin-frame input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.admin-frame select,
.admin-frame textarea,
.admin-frame .form-control,
.admin-frame .form-select,
.admin-frame .pb-input,
.admin-frame .pb-select,
.admin-frame .player-search {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.admin-frame input:focus,
.admin-frame select:focus,
.admin-frame textarea:focus,
.admin-frame .form-control:focus,
.admin-frame .form-select:focus {
  border-color: var(--chronos-action-hover) !important;
  box-shadow: 0 0 0 2px rgba(153,102,51,.22) !important;
  outline: none !important;
}

.admin-frame input::placeholder,
.admin-frame textarea::placeholder {
  color: var(--chronos-muted) !important;
  opacity: 1;
}

/* Primary/admin actions use the dashboard brown action colour. */
.admin-frame input[type="submit"],
.admin-frame input[type="button"],
.admin-frame button:not(.btn-danger):not(.btn-close),
.admin-frame .btn:not(.btn-danger):not(.btn-outline-danger),
.admin-frame .pb-btn-primary,
.admin-frame .pb-btn-muted,
.admin-frame .pb-btn-toggle,
.admin-frame .weapons-options button,
.admin-frame [class*="action-btn"]:not([class*="danger"]) {
  background: var(--chronos-action) !important;
  color: #fff !important;
  border: 1px solid var(--chronos-action-hover) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
  font-weight: 700 !important;
}

.admin-frame input[type="submit"]:hover,
.admin-frame input[type="button"]:hover,
.admin-frame button:not(.btn-danger):not(.btn-close):hover,
.admin-frame .btn:not(.btn-danger):not(.btn-outline-danger):hover,
.admin-frame .pb-btn-primary:hover,
.admin-frame .pb-btn-muted:hover,
.admin-frame .pb-btn-toggle:hover,
.admin-frame .weapons-options button:hover,
.admin-frame [class*="action-btn"]:not([class*="danger"]):hover {
  background: var(--chronos-action-hover) !important;
  border-color: #bd8751 !important;
  color: #fff !important;
  filter: none !important;
  transform: none !important;
}

.admin-frame .btn-danger,
.admin-frame .btn-outline-danger,
.admin-frame .pb-btn-danger,
.admin-frame [class*="danger"] button,
.admin-frame button[class*="danger"] {
  background: #7f2f32 !important;
  color: #fff !important;
  border: 1px solid #a74347 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

/* Alerts keep their semantic meaning while using the dashboard geometry. */
.admin-frame .alert {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-left: 3px solid var(--chronos-accent) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.admin-frame .alert-danger { border-left-color: #c85555 !important; }
.admin-frame .alert-success { border-left-color: #4b9f78 !important; }
.admin-frame .alert-warning { border-left-color: var(--chronos-accent) !important; }

.admin-frame .badge,
.admin-frame .ip-pill,
.admin-frame .game-pill,
.admin-frame [class*="pill"] {
  background: #33271c !important;
  color: var(--chronos-accent) !important;
  border: 1px solid #775533 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.admin-frame hr {
  border-color: var(--chronos-border) !important;
  color: var(--chronos-border) !important;
  opacity: 1;
}

.admin-frame pre,
.admin-frame code {
  background: #191d20 !important;
  color: var(--chronos-text) !important;
  border-color: var(--chronos-border) !important;
  border-radius: 4px !important;
}

/* Player bans has an older full-page charcoal wrapper and Bootstrap-blue controls. */
.admin-frame .pb-toolbar,
.admin-frame .pb-filters,
.admin-frame .pb-panel {
  background: transparent !important;
  border-color: var(--chronos-border) !important;
  box-shadow: none !important;
}

.admin-frame .pb-btn-toggle.active {
  background: var(--chronos-action-hover) !important;
  border-color: #bd8751 !important;
  color: #fff !important;
}

/* User/admin management custom controls. */
.admin-frame .status-badge,
.admin-frame .details-status,
.admin-frame [class*="status-pill"] {
  border-radius: 4px !important;
  box-shadow: none !important;
}

/* Bootstrap modal/table cleanup. */
.admin-frame .modal-backdrop { background: #000 !important; }
.admin-frame .modal-content { background: var(--chronos-panel) !important; }
.admin-frame .btn-close { filter: invert(1) grayscale(1); }

@media (max-width: 760px) {
  .admin-frame table { font-size: 12px; }
  .admin-frame .card,
  .admin-frame .panel,
  .admin-frame fieldset { border-radius: 4px !important; }
}

/* Outer admin shell: same palette/geometry as the Dashboard. */
body.chronos-admin-shell,
body:has(.admin-shell) {
  background: var(--chronos-bg) !important;
  color: var(--chronos-text) !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.admin-shell,
.admin-content {
  background: var(--chronos-bg) !important;
}

.admin-sidebar,
.admin-topbar {
  background: #1c2024 !important;
  border-color: var(--chronos-border) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.admin-sidebar {
  border-right: 1px solid var(--chronos-border) !important;
}

.admin-topbar {
  border-bottom: 1px solid var(--chronos-border) !important;
}

.admin-brand,
.topbar-title {
  color: #fff !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.topbar-subtitle,
.admin-nav h6 {
  color: var(--chronos-accent) !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.admin-subtitle,
.sidebar-meta,
.sidebar-footer,
.sidebar-credit,
.sidebar-version {
  color: var(--chronos-muted) !important;
}

.admin-nav .nav-link {
  color: var(--chronos-text) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 4px !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.admin-nav .nav-link:hover,
.admin-nav .nav-link:focus {
  color: #fff !important;
  background: #33271c !important;
  border-color: #775533 !important;
}

.sidebar-meta,
.sidebar-credit-pill,
.admin-badge {
  background: var(--chronos-panel) !important;
  color: var(--chronos-muted-2) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.topbar-actions input[type="submit"],
.topbar-actions .topbar-button,
.sidebar-footer input[type="submit"],
.admin-modal-actions input {
  background: var(--chronos-action) !important;
  color: #fff !important;
  border: 1px solid var(--chronos-action-hover) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.topbar-actions input[type="submit"]:hover,
.topbar-actions .topbar-button:hover,
.sidebar-footer input[type="submit"]:hover,
.admin-modal-actions input:hover {
  background: var(--chronos-action-hover) !important;
  border-color: #bd8751 !important;
  color: #fff !important;
}

.admin-modal,
.security-modal {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

.admin-modal input {
  background: var(--chronos-panel-alt) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
}

/* Standalone admin/support pages that are opened directly rather than through admin_frame.php. */
body.chronos-admin-standalone {
  margin: 0 !important;
  min-height: 100vh;
  background: var(--chronos-bg) !important;
  color: var(--chronos-text) !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

body.chronos-admin-standalone .container,
body.chronos-admin-standalone .container-fluid,
body.chronos-admin-standalone .admin-col,
body.chronos-admin-standalone .chronos-container {
  width: 98% !important;
  max-width: none;
  margin: 16px auto !important;
  padding: 14px !important;
  background: transparent !important;
  color: var(--chronos-text) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.chronos-admin-standalone h1,
body.chronos-admin-standalone h2,
body.chronos-admin-standalone h3,
body.chronos-admin-standalone h4,
body.chronos-admin-standalone h5,
body.chronos-admin-standalone h6 {
  color: #fff !important;
  font-family: Tahoma, Verdana, Arial, sans-serif !important;
}

body.chronos-admin-standalone h1,
body.chronos-admin-standalone h2,
body.chronos-admin-standalone h3 {
  border-bottom: 1px solid var(--chronos-border);
  padding-bottom: 8px;
}

body.chronos-admin-standalone a,
body.chronos-admin-standalone .btn-link,
body.chronos-admin-standalone .ip-link {
  color: var(--chronos-accent) !important;
}

body.chronos-admin-standalone table,
body.chronos-admin-standalone table.table,
body.chronos-admin-standalone .admin-table {
  width: 100% !important;
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
}

body.chronos-admin-standalone table th,
body.chronos-admin-standalone table td,
body.chronos-admin-standalone .table > :not(caption) > * > * {
  border-color: var(--chronos-border) !important;
  color: var(--chronos-text) !important;
}

body.chronos-admin-standalone thead th,
body.chronos-admin-standalone .tableheader {
  background: var(--chronos-panel-alt) !important;
  color: var(--chronos-accent) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase;
}

body.chronos-admin-standalone tbody tr,
body.chronos-admin-standalone .table-striped > tbody > tr:nth-of-type(odd) > * {
  background: var(--chronos-panel) !important;
}

body.chronos-admin-standalone tbody tr:nth-child(even),
body.chronos-admin-standalone .table-striped > tbody > tr:nth-of-type(even) > * {
  background: var(--chronos-panel-alt) !important;
}

body.chronos-admin-standalone tbody tr:hover > * {
  background: var(--chronos-panel-hover) !important;
}

body.chronos-admin-standalone input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
body.chronos-admin-standalone select,
body.chronos-admin-standalone textarea,
body.chronos-admin-standalone .form-control,
body.chronos-admin-standalone .form-select {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

body.chronos-admin-standalone input[type="submit"],
body.chronos-admin-standalone button:not(.btn-danger):not(.btn-outline-danger):not(.btn-close),
body.chronos-admin-standalone .btn:not(.btn-danger):not(.btn-outline-danger) {
  background: var(--chronos-action) !important;
  color: #fff !important;
  border: 1px solid var(--chronos-action-hover) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-weight: 700 !important;
}

body.chronos-admin-standalone .btn-danger,
body.chronos-admin-standalone .btn-outline-danger {
  background: #7f2f32 !important;
  color: #fff !important;
  border: 1px solid #a74347 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

body.chronos-admin-standalone .alert,
body.chronos-admin-standalone .success,
body.chronos-admin-standalone .error,
body.chronos-admin-standalone .warning,
body.chronos-admin-standalone .info,
body.chronos-admin-standalone .modal-content {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-left: 3px solid var(--chronos-accent) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

body.chronos-admin-standalone .success,
body.chronos-admin-standalone .alert-success { border-left-color: #4b9f78 !important; }
body.chronos-admin-standalone .error,
body.chronos-admin-standalone .alert-danger { border-left-color: #c85555 !important; }

body.chronos-admin-standalone code,
body.chronos-admin-standalone pre {
  background: #191d20 !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
}

/* Custom module surfaces that pre-date the shared frame. */
.admin-frame .admin-add-bg,
.admin-frame .weapon-awards-panel,
.admin-frame .awards-grid,
.admin-frame .pm-ips-wrap,
.admin-frame .perm-group {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.admin-frame .admin-btn-area {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.admin-frame .awards-row,
.admin-frame .pm-tr {
  background: var(--chronos-panel) !important;
  border-color: var(--chronos-border) !important;
}

.admin-frame .awards-row:nth-child(even) {
  background: var(--chronos-panel-alt) !important;
}

.admin-frame .awards-row--header {
  background: var(--chronos-panel-alt) !important;
  color: var(--chronos-accent) !important;
}

.admin-frame .pm-btn,
.admin-frame a.pm-btn,
.admin-frame .lookup-btn,
.admin-frame .btn-modern:not(.btn-delete) {
  background: var(--chronos-action) !important;
  color: #fff !important;
  border: 1px solid var(--chronos-action-hover) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.admin-frame .pm-btn:hover,
.admin-frame a.pm-btn:hover,
.admin-frame .lookup-btn:hover,
.admin-frame .btn-modern:not(.btn-delete):hover {
  background: var(--chronos-action-hover) !important;
  color: #fff !important;
  transform: none !important;
  box-shadow: none !important;
}

.admin-frame .pm-btn-danger,
.admin-frame .btn-delete {
  background: #7f2f32 !important;
  color: #fff !important;
  border: 1px solid #a74347 !important;
  border-radius: 4px !important;
}

.admin-frame .error-message,
.admin-frame .success-message,
.admin-frame .ajax-banner {
  background: var(--chronos-panel) !important;
  color: var(--chronos-text) !important;
  border: 1px solid var(--chronos-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.admin-frame .error-message,
.admin-frame .ajax-banner.err { border-left: 3px solid #c85555 !important; }
.admin-frame .success-message,
.admin-frame .ajax-banner.ok { border-left: 3px solid #4b9f78 !important; }

/* Preserve operational status colours/meaning while harmonising their geometry. */
.admin-frame .proxy-vpn-alert {
  color: #fff !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}
.admin-frame .proxy-vpn-alert.proxy-only {
  background: #FFA500 !important;
  border-color: #FFA500 !important;
}
.admin-frame .proxy-vpn-alert.vpn-only {
  background: #008000 !important;
  border-color: #008000 !important;
}
.admin-frame .proxy-vpn-alert.proxy-vpn {
  background: #800000 !important;
  border-color: #800000 !important;
}

/* Preserve cross-server-ban highlighting documented on the Player Bans page. */
.admin-frame tr[style*="#34282C"],
.admin-frame tr[style*="#34282c"] {
  background: #34282C !important;
}

/* Keep active/inactive state meaning while using the dashboard's compact corners. */
.admin-frame .status-active {
  background: rgba(57, 209, 152, 0.15) !important;
  color: #39d198 !important;
  border-color: rgba(57, 209, 152, 0.4) !important;
}
.admin-frame .status-inactive {
  background: rgba(255, 98, 98, 0.12) !important;
  color: #ff6262 !important;
  border-color: rgba(255, 98, 98, 0.4) !important;
}

.admin-frame .pb-server-pill-wrap span {
  border-radius: 4px !important;
  background: #33271c !important;
  color: var(--chronos-accent) !important;
  border-color: #775533 !important;
  box-shadow: none !important;
}

/* Direct-render admin content (the Admin Control Center no longer uses an iframe). */
.admin-direct-content {
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.admin-direct-content .title {
  font-weight: 700;
  font-size: 1.2rem;
  text-align: left;
  margin: 0 0 14px;
  color: #fff !important;
}
.admin-direct-content table td,
.admin-direct-content table th {
  padding: 8px 10px;
}
.admin-direct-content input:not([type="checkbox"]):not([type="radio"]),
.admin-direct-content option,
.admin-direct-content textarea,
.admin-direct-content select {
  font-size: .9rem;
}
