html {
html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

.admin-card {
  border: 1px solid #e5e5e5;
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}

.admin-grid thead th {
  background: #f8f9fa;
  color: #495057;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.client-tabs .nav-tabs {
  background: #d9d9d9;
  border-bottom: 0;
  padding-left: 0.5rem;
}

.client-tabs .nav-link {
  border: 0;
  border-radius: 0;
  color: #212529;
  padding: 0.9rem 1.25rem;
}

.client-tabs .nav-link.active {
  background: #f8f9fa;
  color: #dc3545;
}

.admin-tab-content {
  background: #f8f9fa;
  border: 1px solid #e5e5e5;
  border-top: 0;
  padding: 1.5rem;
}

.admin-tab-content .form-label {
  color: #6c757d;
  font-size: 0.8rem;
}

.audit-row span {
  color: #6c757d;
  display: block;
  font-size: 0.8rem;
}

.audit-row strong {
  color: #212529;
  font-weight: 500;
}

.admin-sub-card {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 0.5rem;
  padding: 1rem;
}

.case-study-image-preview {
  position: relative;
  min-height: 180px;
  overflow: hidden;
  border: 1px solid #757085;
  border-radius: 0.5rem;
  background: var(--case-preview-image) center / cover no-repeat;
  isolation: isolate;
}

.case-study-image-preview::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: "";
  background: linear-gradient(90deg, rgba(8, 8, 15, .94) 0%, rgba(55, 20, 88, .76) 42%, rgba(155, 66, 255, .2) 68%, rgba(8, 8, 15, .06) 100%), linear-gradient(180deg, rgba(8, 8, 15, .12), rgba(155, 66, 255, .32));
}

.eyebrow {
  color: #6c757d;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.auth-shell {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: calc(100vh - 180px);
  padding: 2rem 0;
}

.auth-card {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 0.75rem;
  max-width: 480px;
  padding: 2rem;
  width: 100%;
}

.auth-brand {
  align-items: center;
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.brand-mark,
.tile-icon {
  align-items: center;
  background: #1b6ec2;
  border-radius: 0.5rem;
  color: #fff;
  display: inline-flex;
  font-weight: 700;
  height: 3.25rem;
  justify-content: center;
  width: 3.25rem;
}

.auth-intro,
.admin-tile p {
  color: #6c757d;
}

.admin-hero,
.admin-tile {
  background: #fff;
  border: 1px solid #e5e5e5;
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}

.admin-tile {
  border-radius: 0.75rem;
  padding: 1.5rem;
}

.admin-tile h2 {
  color: #212529;
  font-size: 1.2rem;
  margin-top: 1rem;
}

.people-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.people-filter .btn-danger,
.people-accordion .btn-danger,
.client-tabs .btn-danger {
  background-color: #d31313;
  border-color: #d31313;
}

.people-accordion .accordion-item {
  background: transparent;
  border: 0;
}

.people-accordion .accordion-button {
  box-shadow: none;
}

.person-card-header {
  background: #e5e5e5;
  color: #111;
  gap: 1rem;
  padding: 0.9rem 1rem;
}

.person-card-header:not(.collapsed) {
  background: #d31313;
  color: #fff;
}

.person-card-header::after {
  background-image: none;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: inherit;
  content: '+';
  display: inline-flex;
  font-size: 0.8rem;
  height: 1.25rem;
  justify-content: center;
  line-height: 1rem;
  margin-left: auto;
  transform: none;
  width: 1.25rem;
}

.person-card-header:not(.collapsed)::after {
  content: '-';
}

.person-icon {
  color: #000;
  font-size: 1.4rem;
  line-height: 1;
}

.person-card-header:not(.collapsed) .person-icon {
  color: #000;
}

.person-card-body {
  background: #f1f1f1;
  padding: 1rem 0 2rem;
}

.field-label {
  color: #6c757d;
  display: block;
  font-size: 0.75rem;
  margin-bottom: 0.25rem;
}

.config-accordion .accordion-item {
  background: transparent;
  border: 0;
}

.config-card-header {
  background: #e5e5e5;
  color: #111;
  padding: 0.9rem 1rem;
}

.config-card-header:not(.collapsed) {
  background: #d31313;
  color: #fff;
}

.config-card-header::after {
  background-image: none;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: inherit;
  content: '+';
  display: inline-flex;
  font-size: 0.8rem;
  height: 1.25rem;
  justify-content: center;
  line-height: 1rem;
  margin-left: auto;
  transform: none;
  width: 1.25rem;
}

.config-card-header:not(.collapsed)::after {
  content: '-';
}

.config-card-body {
  background: #f1f1f1;
  padding: 1rem 0 2rem;
}

/* Purple Dove Media admin theme */
:root {
  --pdm-bg: #08080f;
  --pdm-black: #000;
  --pdm-panel: rgba(21, 21, 31, .88);
  --pdm-panel-strong: #15151f;
  --pdm-text: #f7f4ff;
  --pdm-muted: #bdb6cf;
  --pdm-purple: #9b42ff;
  --pdm-purple-dark: #6f27c7;
  --pdm-border: rgba(255, 255, 255, .12);
  --pdm-border-strong: rgba(155, 66, 255, .48);
}

html { min-height: 100%; }

body {
  min-height: 100vh;
  margin-bottom: 0;
  background: var(--pdm-black) !important;
  color: var(--pdm-text);
  font-family: Poppins, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html,
body,
.container,
.container-fluid,
main,
.admin-main,
.admin-shell,
.tab-content,
.accordion,
.accordion-body,
.table-responsive {
  background-color: var(--pdm-black) !important;
  color: var(--pdm-text) !important;
}

a { color: var(--pdm-purple); }
a:hover { color: #c69cff; }

.admin-site-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  border-bottom: 1px solid var(--pdm-border);
  background: var(--pdm-black);
  backdrop-filter: blur(18px);
}

.admin-nav { min-height: 82px; }

.admin-nav-container,
.admin-shell {
  max-width: 1680px;
  margin-right: auto;
  margin-left: auto;
}

.admin-brand {
  display: inline-flex;
  gap: 14px;
  align-items: center;
  color: var(--pdm-text) !important;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.admin-brand img {
  width: 210px;
  height: auto;
}

.admin-brand span {
  border: 1px solid var(--pdm-border-strong);
  border-radius: 999px;
  padding: 6px 10px;
  color: var(--pdm-muted);
  font-size: .76rem;
}

.admin-menu { gap: 4px; }

.admin-menu .nav-link {
  border-radius: 999px;
  color: var(--pdm-muted) !important;
  font-weight: 600;
  padding: .65rem .9rem;
}

.admin-menu .nav-link:hover,
.admin-menu .nav-link:focus,
.admin-menu .show > .nav-link {
  background: rgba(155, 66, 255, .16);
  color: var(--pdm-text) !important;
}

.navbar-toggler {
  border-color: var(--pdm-border);
  background: rgba(255, 255, 255, .04);
}

.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(155, 66, 255, .28); }
.navbar-toggler-icon { filter: invert(1); }

.admin-dropdown,
.dropdown-menu {
  border: 1px solid var(--pdm-border);
  background: #15151f;
  box-shadow: 0 18px 44px rgba(0, 0, 0, .34);
}

.dropdown-item { color: var(--pdm-muted); }
.dropdown-item:hover,
.dropdown-item:focus {
  background: rgba(155, 66, 255, .16);
  color: var(--pdm-text);
}

.admin-login-status .navbar-text {
  color: var(--pdm-muted);
  font-size: .92rem;
}

.admin-shell { padding: 34px 24px 64px; }
.admin-main { min-height: calc(100vh - 180px); }

.admin-footer {
  border-top: 1px solid var(--pdm-border);
  padding: 20px 24px;
  color: var(--pdm-muted);
  background: var(--pdm-black);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--pdm-text);
  font-weight: 800;
}

.eyebrow { color: var(--pdm-purple); }
.text-muted, .form-text, small.text-muted { color: var(--pdm-muted) !important; }

.btn-primary,
.btn-danger,
.people-filter .btn-danger,
.people-accordion .btn-danger,
.client-tabs .btn-danger {
  border-color: var(--pdm-purple);
  background: linear-gradient(135deg, var(--pdm-purple), var(--pdm-purple-dark));
  color: #fff;
  font-weight: 700;
}

.btn-primary:hover,
.btn-danger:hover,
.people-filter .btn-danger:hover,
.people-accordion .btn-danger:hover,
.client-tabs .btn-danger:hover {
  border-color: #bd86ff;
  background: linear-gradient(135deg, #b76fff, var(--pdm-purple));
  color: #fff;
}

.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-danger,
.btn-outline-success {
  border-color: var(--pdm-border-strong);
  color: var(--pdm-text);
}

.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-danger:hover,
.btn-outline-success:hover {
  border-color: var(--pdm-purple);
  background: rgba(155, 66, 255, .18);
  color: var(--pdm-text);
}

.btn-link,
.text-danger { color: #c69cff !important; }

.admin-card,
.admin-sub-card,
.admin-hero,
.admin-tile,
.auth-card,
.card {
  border: 1px solid var(--pdm-border);
  background: var(--pdm-black) !important;
  color: var(--pdm-text);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .24);
}

.card-header,
.card-footer,
.list-group-item,
.modal-header,
.modal-footer {
  border-color: var(--pdm-border) !important;
  background: var(--pdm-black) !important;
  color: var(--pdm-text) !important;
}

.admin-card,
.admin-hero,
.admin-tile,
.auth-card,
.card { border-radius: 14px; }

.admin-sub-card {
  border-radius: 12px;
  padding: 1.15rem;
}

.admin-tile h2 { color: var(--pdm-text); }
.auth-intro, .admin-tile p { color: var(--pdm-muted); }

.auth-brand img {
  width: 210px;
  height: auto;
}

.brand-mark,
.tile-icon {
  background: linear-gradient(135deg, var(--pdm-purple), var(--pdm-purple-dark));
  color: #fff;
}

.table,
.admin-grid {
  --bs-table-bg: transparent;
  --bs-table-color: var(--pdm-text);
  --bs-table-hover-bg: rgba(155, 66, 255, .1);
  --bs-table-hover-color: var(--pdm-text);
  --bs-table-striped-bg: rgba(155, 66, 255, .06);
  --bs-table-striped-color: var(--pdm-text);
  color: var(--pdm-text);
  background: var(--pdm-black) !important;
}

.admin-grid thead th,
.table thead th {
  border-bottom: 1px solid var(--pdm-border);
  background: rgba(155, 66, 255, .16);
  color: var(--pdm-text);
}

.table > :not(caption) > * > * {
  border-bottom-color: var(--pdm-border);
  color: inherit;
  background-color: transparent !important;
}

tbody,
thead,
tr,
td,
th {
  color: var(--pdm-text) !important;
}

.badge.text-bg-light,
.badge.border {
  border-color: var(--pdm-border-strong) !important;
  background: rgba(155, 66, 255, .14) !important;
  color: var(--pdm-text) !important;
}

.badge.text-bg-success {
  background: rgba(74, 165, 100, .26) !important;
  color: #dcffe6 !important;
}

.badge.text-bg-danger {
  background: rgba(255, 190, 85, .22) !important;
  color: #ffe1ad !important;
}

.badge.text-bg-warning {
  background: rgba(155, 66, 255, .2) !important;
  color: var(--pdm-text) !important;
}

.form-label,
.admin-tab-content .form-label,
.field-label,
.audit-row span {
  color: var(--pdm-muted);
  font-weight: 600;
}

.form-control,
.form-select {
  border-color: var(--pdm-border);
  background-color: var(--pdm-black) !important;
  color: var(--pdm-text);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus {
  border-color: var(--pdm-purple);
  background-color: var(--pdm-black) !important;
  color: var(--pdm-text);
  box-shadow: 0 0 0 .2rem rgba(155, 66, 255, .22);
}

.form-control::placeholder { color: rgba(189, 182, 207, .68); }
.form-select option { background: #15151f; color: var(--pdm-text); }

.form-check-input {
  border-color: var(--pdm-border-strong);
  background-color: rgba(8, 8, 15, .72);
}

.form-check-input:checked {
  border-color: var(--pdm-purple);
  background-color: var(--pdm-purple);
}

.client-tabs .nav-tabs {
  border: 1px solid var(--pdm-border);
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  background: var(--pdm-black) !important;
  padding: .35rem .35rem 0;
}

.client-tabs .nav-link {
  border: 0;
  border-radius: 10px 10px 0 0;
  color: var(--pdm-muted);
  font-weight: 700;
}

.client-tabs .nav-link.active {
  background: rgba(155, 66, 255, .18) !important;
  color: var(--pdm-text);
}

.client-tabs .nav-link:disabled { color: rgba(189, 182, 207, .38); }

.admin-tab-content {
  border: 1px solid var(--pdm-border);
  border-top: 0;
  border-radius: 0 0 12px 12px;
  background: var(--pdm-black) !important;
}

.audit-row strong { color: var(--pdm-text); }

.accordion-item,
.people-accordion .accordion-item,
.config-accordion .accordion-item {
  border: 0;
  background: transparent;
}

.person-card-header,
.config-card-header {
  border: 1px solid var(--pdm-border);
  border-radius: 10px !important;
  background: var(--pdm-black) !important;
  color: var(--pdm-text);
}

.person-card-header:not(.collapsed),
.config-card-header:not(.collapsed) {
  border-color: var(--pdm-border-strong);
  background: rgba(155, 66, 255, .2) !important;
  color: var(--pdm-text);
}

.person-card-header::after,
.config-card-header::after {
  content: "";
  border-color: var(--pdm-border-strong);
  background: linear-gradient(var(--pdm-purple), var(--pdm-purple)) center / 10px 2px no-repeat, linear-gradient(var(--pdm-purple), var(--pdm-purple)) center / 2px 10px no-repeat;
}

.person-card-header:not(.collapsed)::after,
.config-card-header:not(.collapsed)::after {
  content: "";
  background: linear-gradient(var(--pdm-purple), var(--pdm-purple)) center / 10px 2px no-repeat;
}

.person-icon {
  position: relative;
  width: 1.4rem;
  color: transparent;
}

.person-icon::before {
  position: absolute;
  inset: .1rem;
  border-radius: 50%;
  content: "";
  background: var(--pdm-purple);
}

.person-card-body,
.config-card-body {
  border: 1px solid var(--pdm-border);
  border-top: 0;
  border-radius: 0 0 10px 10px;
  background: var(--pdm-black) !important;
  padding: 1.2rem;
}

.alert-success,
.alert-info,
.alert-light {
  border-color: var(--pdm-border-strong);
  background: rgba(155, 66, 255, .16);
  color: var(--pdm-text);
}

.alert-danger {
  border-color: rgba(255, 190, 85, .7);
  background: rgba(255, 190, 85, .16);
  color: #ffe1ad;
}

.modal-content {
  border: 1px solid var(--pdm-border);
  background: var(--pdm-black) !important;
  color: var(--pdm-text);
}

.bg-white,
.bg-light,
.text-bg-light,
.table-light {
  background-color: var(--pdm-black) !important;
  color: var(--pdm-text) !important;
}

.text-dark,
.text-body,
.text-black,
.navbar-light .navbar-nav .nav-link,
.navbar-light .navbar-brand {
  color: var(--pdm-text) !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-text-fill-color: var(--pdm-text);
  box-shadow: 0 0 0 1000px #000 inset;
}

.border,
.border-bottom,
.border-top { border-color: var(--pdm-border) !important; }
.case-study-image-preview { border-color: var(--pdm-border-strong); }

@media (max-width: 991px) {
  .admin-nav-container {
    padding-right: 18px;
    padding-left: 18px;
  }

  .admin-brand img { width: 180px; }
  .admin-menu { padding-top: 18px; }

  .admin-login-status {
    align-items: flex-start !important;
    padding: 14px 0 8px;
  }
}